AWS CLIでAWSサポートの問い合わせ確認


# 公式ドキュメント

http://docs.aws.amazon.com/cli/latest/reference/support/index.html

# 前提条件

## AWS CLIバージョン

以下のバージョンで動作確認済
* AWS CLI 1.7.29

```ruby:コマンド
aws --version
```
```ruby:結果
aws-cli/1.7.29
```

## エンドポイント

エンドポイントについては us-east-1 を指定する

http://docs.aws.amazon.com/ja_jp/general/latest/gr/rande.html#awssupport_region

ap-southeast-1 をデフォルトに指定したままaws supportコマンドを実行すると

```ruby:結果
Could not connect to the endpoint URL: "https://support.ap-northeast-1.amazonaws.com/"
```

と怒られる為、aws suportコマンドの引数に

```ruby:引数
--region=us-east-1
```

を追加する等をして対応する。

##  お問い合わせに利用する言語

日本語にてお問い合わせをする際は aws suuport の引数にてjaを指定する。

```ruby:引数
--language ja 
```

# aws supportコマンド

## お問い合わせケースの作成

```ruby:コマンド
aws support create-case \
--language ja \
--service-code (Service) \
--category-code (Category)\
--severity-code (Severity) \
--cc-emailaddresses="(メールアドレス)" \
--subject "(件名[日本語入力可])"
--communication-body="(お問い合わせ内容[日本語入力可])"
```
```ruby:結果
{
"caseId": (CaseID)
}
```
communication-bodyのお問い合わせ内容について環境によっては日本語入力がうまくいかないかもしれません。

create-caseの引数に追加を行う service-code、category-code、severity-code についてはdescribeコマンドにて確認する。

## service-code/category-code の確認

```ruby:コマンド
aws support describe-services --language ja   --region=us-east-1 
```
```ruby:結果
{
    "services": [
        {
            "code": "workspaces-application-manager",
            "name": "WorkSpaces Application Manager",
            "categories": [
                {
                    "code": "console",
                    "name": "マネジメントコンソール"
                },
～以下、省略～
```

## sererity-code の確認

```ruby:コマンド
aws support describe-severity-levels --language ja
```
```ruby:結果
{
    "severityLevels": [
        {
            "code": "low",
            "name": "低"
        },
        {
            "code": "normal",
            "name": "普通"
        },
        {
            "code": "high",
            "name": "高"
        },
        {
            "code": "urgent",
            "name": "緊急"
        }
    ]
}
```


## お問い合わせケースの確認

```ruby:コマンド
aws support describe-cases --language ja 
```

```ruby:結果
{
    "cases": [
        {
            "status": "(お問い合わせケースのステータス）",
            "recentCommunications": {
                "communications": [
                    {
                        "body": "（お問い合わせケースの内容）",
                        "attachmentSet": [],
                        "caseId": "(CaseID)",
                        "timeCreated": "(yyyy-mm-dd hh:mm:ss)",
                        "submittedBy": "（お問い合わせを行ったアカウント）"
                    },
                ]
            },
            "ccEmailAddresses": [
                "(CCに指定したメールアドレス)"
            ],
            "timeCreated": "(yyyy-mm-dd hh:mm:ss)",
            "caseId": "(CaseID)",
            "severityCode": "(Severity)",
            "language": "ja",
            "categoryCode": "(Category)",
            "serviceCode": "(Service)",
            "submittedBy": "（お問い合わせを行ったアカウントのメールアドレス）",
            "displayId": "(displayId)",
            "subject": "(お問い合わせケースの件名)"
        }
    ]
}
```

特定の問い合わせケースを確認する場合は引数に --caseid を追加する。

```ruby:コマンド
aws support describe-cases --language ja --caseid=(CaseID)
```

CaseIDについてはAWSサポートダッシュボードにて表示されるケースIDと形式が表示が違うので注意する。

caseid例）
case-1234567890AB-mjja-2015-abcdefg123456789

解決済みのお問い合わせケースを確認する場合は --include-resolved-cases を引数に追加する。

```ruby:コマンド
aws support describe-cases --language ja --caseid=(CaseID) --include-resolved-cases
```

## お問い合わせケースへの回答

```ruby:コマンド
aws support add-communication-to-case \
--language ja \
--caseid=(CaseID) \
--cc-emailaddresses="(メールアドレス)" \
--communication-body="(お問い合わせ内容[日本語入力可])"
```
```ruby:結果
{
"result": true
}
```
communication-bodyのお問い合わせ内容について環境によっては日本語入力がうまくいかないかもしれません。

## お問い合わせケースのクローズ

```ruby:コマンド
aws support resolve-case --case-id="CaseID"
```
```ruby:結果
{
"finalCaseStatus": "resolved",
"initialCaseStatus": "customer-action-completed"
}
```

aws support describe-cases --include-resolved-cases にて確認するとお問い合わせケースの"status"が

```ruby:
"status": "pending-customer-action",
```

とpending-customer-actionに更新されている事を確認する。