

# AWS CLI を使用した Cloud Control API の例
<a name="cli_cloudcontrol_code_examples"></a>

次のコード例では、Cloud Control API で AWS Command Line Interface を使用してアクションを実行し、一般的なシナリオを実装する方法を示しています。

*アクション*はより大きなプログラムからのコードの抜粋であり、コンテキスト内で実行する必要があります。アクションは個々のサービス機能を呼び出す方法を示していますが、コンテキスト内のアクションは、関連するシナリオで確認できます。

各例には完全なソースコードへのリンクが含まれており、コードの設定方法と実行方法に関する手順を確認できます。

**Topics**
+ [アクション](#actions)

## アクション
<a name="actions"></a>

### `create-resource`
<a name="cloudcontrol_CreateResource_cli_topic"></a>

次の例では、`create-resource` を使用する方法を説明しています。

**AWS CLI**  
**リソースを作成する方法**  
次の `create-resource` の例では、ResourceExample という名前の AWS ::Kinesis::Stream リソースを作成します。保持期間は 168 時間、シャード数は 3 です。  

```
aws cloudcontrol create-resource \
    --type-name AWS::Kinesis::Stream \
    --desired-state "{\"Name\": \"ResourceExample\",\"RetentionPeriodHours\":168, \"ShardCount\":3}"
```
出力:  

```
{
    "ProgressEvent": {
        "EventTime": 1632506656.706,
        "TypeName": "AWS::Kinesis::Stream",
        "OperationStatus": "IN_PROGRESS",
        "Operation": "CREATE",
        "Identifier": "ResourceExample",
        "RequestToken": "20999d87-e304-4725-ad84-832dcbfd7fc5"
    }
}
```
詳細については、「*Cloud Control API ユーザーガイド*」の「[リソースの作成](https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/resource-operations-create.html)」を参照してください。  
+  API の詳細については、AWS CLI コマンドリファレンスの「[CreateResource](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudcontrol/create-resource.html)」を参照してください。**

### `delete-resource`
<a name="cloudcontrol_DeleteResource_cli_topic"></a>

次の例では、`delete-resource` を使用する方法を説明しています。

**AWS CLI**  
**リソースを削除する方法**  
次の `delete-resource` の例では、 AWS アカウントから識別子 ResourceExample を持つ AWS ::Kinesis::Stream リソースを削除します。  

```
aws cloudcontrol delete-resource \
    --type-name AWS::Kinesis::Stream \
    --identifier ResourceExample
```
出力:  

```
{
    "ProgressEvent": {
        "TypeName": "AWS::Kinesis::Stream",
        "Identifier": "ResourceExample",
        "RequestToken": "e48f26ff-d0f9-4ab8-a878-120db1edf111",
        "Operation": "DELETE",
        "OperationStatus": "IN_PROGRESS",
        "EventTime": 1632950300.14
    }
}
```
詳細については、「*Cloud Control API ユーザーガイド*」の「[リソースの削除](https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/resource-operations-delete.html)」を参照してください。  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[DeleteResource](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudcontrol/delete-resource.html)」を参照してください。

### `get-resource-request-status`
<a name="cloudcontrol_GetResourceRequestStatus_cli_topic"></a>

次の例では、`get-resource-request-status` を使用する方法を説明しています。

**AWS CLI**  
**リソースリクエストのステータス情報を取得する方法**  
次の `get-resource-request-status` の例では、指定されたリソースリクエストに関するステータス情報を返します。  

```
aws cloudcontrol get-resource-request-status \
    --request-token "e1a6b86e-46bd-41ac-bfba-001234567890"
```
出力:  

```
{
    "ProgressEvent": {
        "TypeName": "AWS::Kinesis::Stream",
        "Identifier": "Demo",
        "RequestToken": "e1a6b86e-46bd-41ac-bfba-001234567890",
        "Operation": "CREATE",
        "OperationStatus": "FAILED",
        "EventTime": 1632950268.481,
        "StatusMessage": "Resource of type 'AWS::Kinesis::Stream' with identifier 'Demo' already exists.",
        "ErrorCode": "AlreadyExists"
    }
}
```
詳細については、「*Cloud Control API ユーザーガイド*」の「[リソースのオペレーションリクエストの管理](https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/resource-operations-manage-requests.html)」を参照してください。  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[GetResourceRequestStatus](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudcontrol/get-resource-request-status.html)」を参照してください。

### `get-resource`
<a name="cloudcontrol_GetResource_cli_topic"></a>

次の例では、`get-resource` を使用する方法を説明しています。

**AWS CLI**  
**リソースの現在の状態を取得する方法**  
次の `get-resource` の例では、ResourceExample という名前の AWS::Kinesis::Stream リソースの現在の状態を返します。  

```
aws cloudcontrol get-resource \
    --type-name AWS::Kinesis::Stream \
    --identifier ResourceExample
```
出力:  

```
{
    "TypeName": "AWS::Kinesis::Stream",
    "ResourceDescription": {
        "Identifier": "ResourceExample",
        "Properties": "{\"Arn\":\"arn:aws:kinesis:us-west-2:099908667365:stream/ResourceExample\",\"RetentionPeriodHours\":168,\"Name\":\"ResourceExample\",\"ShardCount\":3}"
    }
}
```
詳細については、「*Cloud Control API ユーザーガイド*」の「[リソースの現在の状態の読み込み](https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/resource-operations-read.html)」を参照してください。  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[GetResource](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudcontrol/get-resource.html)」を参照してください。

### `list-resource-requests`
<a name="cloudcontrol_ListResourceRequests_cli_topic"></a>

次の例では、`list-resource-requests` を使用する方法を説明しています。

**AWS CLI**  
**アクティブなリソースオペレーションリクエストを一覧表示する方法**  
次の `list-resource-requests` の例では、AWS アカウントで失敗した CREATE および UPDATE オペレーションのリソースリクエストを一覧表示します。  

```
aws cloudcontrol list-resource-requests \
    --resource-request-status-filter Operations=CREATE,OperationStatuses=FAILED
```
出力:  

```
{
    "ResourceRequestStatusSummaries": [
        {
            "TypeName": "AWS::Kinesis::Stream",
            "Identifier": "Demo",
            "RequestToken": "e1a6b86e-46bd-41ac-bfba-633abcdfdbd7",
            "Operation": "CREATE",
            "OperationStatus": "FAILED",
            "EventTime": 1632950268.481,
            "StatusMessage": "Resource of type 'AWS::Kinesis::Stream' with identifier 'Demo' already exists.",
            "ErrorCode": "AlreadyExists"
        }
    ]
}
```
詳細については、「*Cloud Control API ユーザーガイド*」の「[リソースのオペレーションリクエストの管理](https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/resource-operations-manage-requests.html)」を参照してください。  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[ListResourceRequests](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudcontrol/list-resource-requests.html)」を参照してください。

### `list-resources`
<a name="cloudcontrol_ListResources_cli_topic"></a>

次の例では、`list-resources` を使用する方法を説明しています。

**AWS CLI**  
**特定のタイプのリソースを一覧表示する方法**  
次の `list-resources` の例では、 AWS アカウントでプロビジョニングされた AWS::Kinesis::Stream リソースを一覧表示します。  

```
aws cloudcontrol list-resources \
    --type-name AWS::Kinesis::Stream
```
出力:  

```
{
    "TypeName": "AWS::Kinesis::Stream",
    "ResourceDescriptions": [
        {
            "Identifier": "MyKinesisStream",
            "Properties": "{\"Name\":\"MyKinesisStream\"}"
        },
        {
            "Identifier": "AnotherStream",
            "Properties": "{\"Name\":\"AnotherStream\"}"
        }
    ]
}
```
詳細については、「*Cloud Control API ユーザーガイド*」の「[リソースの検索](https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/resource-operations-list.html)」を参照してください。  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[ListResources](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudcontrol/list-resources.html)」を参照してください。

### `update-resource`
<a name="cloudcontrol_UpdateResource_cli_topic"></a>

次の例では、`update-resource` を使用する方法を説明しています。

**AWS CLI**  
**既存のリソースのプロパティを更新する方法**  
次の `update-resource` の例では、「ExampleLogGroup」という名前の AWS::Logs::LogGroup リソースの保持ポリシーを 90 日に更新します。  

```
aws cloudcontrol update-resource \
    --type-name AWS::Logs::LogGroup \
    --identifier ExampleLogGroup \
    --patch-document "[{\"op\":\"replace\",\"path\":\"/RetentionInDays\",\"value\":90}]"
```
出力:  

```
{
    "ProgressEvent": {
        "EventTime": "2021-08-09T18:17:15.219Z",
        "TypeName": "AWS::Logs::LogGroup",
        "OperationStatus": "IN_PROGRESS",
        "Operation": "UPDATE",
        "Identifier": "ExampleLogGroup",
        "RequestToken": "5f40c577-3534-4b20-9599-0b0123456789"
    }
}
```
詳細については、「*Cloud Control API ユーザーガイド*」の「[リソースの更新](https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/resource-operations-update.html)」を参照してください。  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[UpdateResource](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudcontrol/update-resource.html)」を参照してください。