

AWS Marketplace API リファレンスが再構築されました。サポートされている API オペレーションの詳細については、[AWS Marketplace API リファレンス](https://docs.aws.amazon.com/marketplace/latest/APIReference/Welcome.html)を参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AWS Marketplace Catalog API の使用
<a name="catalog-apis"></a>

この AWS Marketplace Catalog API サービスは、組織または AWS Marketplace AWS を管理するための API インターフェイスを提供します AWS アカウント。承認された販売者は、 のセルフサービス公開機能など、製品をプログラムで管理できます[AWS Marketplace 管理ポータル](https://aws.amazon.com/marketplace/management)。プライベートマーケットプレイス管理者は、プライベートマーケットプレイスをプログラムで管理できます。

Catalog API アクションを使用すると、既存の製品をプログラムで表示および更新できます。を製品ビルドまたはデプロイパイプラインと統合することで AWS Marketplace Catalog API 、 AWS Marketplace 製品更新プロセスを自動化できます。Catalog API 上に独自のアプリケーションを作成して、製品を管理することもできます AWS Marketplace。 AWS アカウント または AWS 組織のユーザーがプライベートマーケットプレイスを通じて表示および購入できる製品を管理できます。

この AWS Marketplace Catalog API サービスは、標準の AWS API 機能を提供します。[アクション](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/API_Operations.html)で説明されている REST API アクションを直接使用するか、 AWS SDK を使用して、使用しているプログラミング言語またはプラットフォームに合わせた API にアクセスできます。 AWS アプリケーション開発の詳細については、[「 の開始方法 AWS](https://aws.amazon.com/getting-started/)」を参照してください。 AWS SDKs[「AWS SDKs](https://aws.amazon.com/tools/#SDKs)」を参照してください。

## カタログ API エンティティ
<a name="catalog-api-entities"></a>

AWS Marketplace エンティティは、製品やオファーなど、さまざまなビジネス目的を果たすデータのコンテナです。エンティティはタイプ別に分類されます。各エンティティタイプは、特定のビジネスドメイン (製品や販売者アカウントなど) に関連するデータをカプセル化します。

このパラダイムを簡素化するために、エンティティは構造にある程度の共通性を持つように設計されています。その結果、新しいビジネスドメインを導入しても、まったく新しい構造を学ぶ必要はありません。

### 一般的な構造
<a name="general-structure"></a>

エンティティの一般的な構造は次のとおりです。
+ バージョンを持つ名前付きタイプ
+ タイプの特定のインスタンスの識別子
+ エンティティの属性を含む 1 つ以上のファセット

### 型バージョニング
<a name="versioning"></a>

すべての名前付きタイプには、 などのタイプとバージョンが関連付けられています`{{Entity}}Product@1.0`。*タイプ* ({{エンティティ}}製品) はコンテンツの分類を表します。*バージョン* (1.0) は、{{エンティティ}}製品の構造を表します。

バージョンは、エンティティの構造に関する詳細を提供します。バージョンを変更するタイミングを以下に示します。
+ 既存のエンティティは、バージョンを変更せずに再構築されません。オプションの新しいフィールドを追加すると、マイナーバージョンが更新されます。
+ タイプの構造を根本的に変更する機能は、メジャーバージョンの更新につながります。以下に例を示します。
  + フィールドの削除
  + フィールドの名前変更 (同じセマンティックの異なる名前)
  + 既存のフィールドのセマンティックの変更 (たとえば、予想されるタイプの変更)
+ メジャーバージョンの更新では、以前のバージョンのファセットのサブセットを保持できます。
+ ユーザーには、新しいバージョンの通知とドキュメントが提供されます。

### 識別子
<a name="identifier"></a>

各エンティティは、ビジネスドメイン内の一意の*モノ*を表します。一意のモノを識別するには、{{prod-ad8EXAMPLE651}}@{{3}} `RevisionId`など、 `EntityId`を に関連付ける識別子を使用します。この例では、 `EntityId`は `prod-ad8EXAMPLE651`で、 `RevisionId`は です`3`。エンティティへの変更リクエストが成功するたびに、リビジョンが更新されます。

以下は、識別子に関する重要な詳細です。
+ 各エンティティは によって一意に識別されます。これは`EntityId`、あるエンティティを別のエンティティとグローバルに区別するためのキーです。
+ エンティティの公開された各リビジョンには があります`RevisionId`。`RevisionId`は、 とともに`EntityId`、公開されたリビジョンを別のリビジョンと区別します。
+ AWS Marketplace は `EntityId`と を生成します`RevisionId`。

`DescribeEntity` アクションを使用して、最新の で詳細と識別子を検索できます`revisionId`。

`RevisionId` は、 へのリクエストのオプション部分です `StartChangeSet` (「」を参照[変更セットの使用](#working-with-change-sets))。を含めると`RevisionId`、 `StartChangeSet`がエンティティの最新リビジョンで`ValidationException`ない場合、 へのリクエスト`RevisionId`は で失敗します。これにより、アプリケーションに楽観的ロックを実装できます。

**注記**  
最新のリビジョン`RevisionId`ではない を含めると、`ValidationException`メッセージには最新の が含まれます`RevisionId`。

を省略すると`RevisionId`、エンティティの最新リビジョンに対してリクエストが自動的に実行されます。

**警告**  
同じオブジェクトを変更する 2 つのリクエストでは、1 つのリクエストが他のリクエストの変更を上書きする可能性があります。2 番目のリクエストは、最初のリクエストによって変更されたデータを書き換えるためです。リクエスト`RevisionId`で を使用すると、以前のリビジョンに変更を加えて現在のリビジョンを上書きできないため、この問題を回避できます。

### ファセット
<a name="facets"></a>

ファセットは属性の論理グループです。エンティティには通常、エンティティのさまざまな側面を表すいくつかのファセットが含まれます。ファセット内の属性には、次のプロパティがあります。
+ 各属性には、属するコンテナのスコープ内で一意の名前があります。
+ 属性は、単純な型 (文字列、整数、または浮動小数点数) にすることができます。
+ 属性は複雑なタイプ (コンテナ/構造または配列) にすることができます。

### エンティティタイプ
<a name="product-entity"></a>

エンティティタイプは、エンティティが表すものを定義します。エンティティは、 の販売者製品 AWS Marketplace でもプライベートマーケットプレイスでもかまいません。詳細については、[「販売者製品の使用](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/seller-products.html)」および[「プライベートマーケットプレイスの使用](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/private-marketplace.html)」を参照してください。

## 変更セットの使用
<a name="working-with-change-sets"></a>

Catalog API を使用する場合、リクエストはエンティティを通じて作成および更新され、変更リクエストを使用して完了します。すべての変更は、変更するエンティティ、実行する変更のタイプ、および変更の詳細を指定します。実行する変更のタイプは と呼ばれます`ChangeType`。のコレクション`ChangeType`は と呼ばれます`ChangeSet`。

 変更セットを操作できるアクションは 4 つあります。
+  `StartChangeSet` – 一連の変更をリクエストします。変更はキューに追加され、処理されます。詳細については、[「販売者製品の使用](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/seller-products.html)」および[「プライベートマーケットプレイスの使用](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/private-marketplace.html)」を参照してください。
+  `DescribeChangeSet` – リクエストのステータスなど、一連の変更の詳細を取得します。ステータスは次のとおりです。
  + `PREPARING` – 変更を適用する準備をします。
  + `APPLYING` – リクエストされた変更を行うプロセス中。
  + `SUCCEEDED` – リクエストは正常に完了しました。
  + `CANCELLED` – リクエストはユーザーによってキャンセルされました。
  + `FAILED` – リクエストは正常に完了しませんでした。詳細については、レスポンスを参照してください。
+  `ListChangeSets` – 現在進行中の変更セットのリストを取得します。
+  `CancelChangeSet` – 変更セットのキャンセルをリクエストします。変更は、 `PREPARING`ステータスの場合にのみキャンセルできます。

 一般的なワークフローは、 で変更をリクエストし`StartChangeSet`、返された を使用して、変更が完了するまで`DescribeChangeSet`アクションを`ChangeSetId`ポーリングすることです。

`DescribeChangeSet` レスポンスの例を次に示します。

```
{
  "ChangeSet":
  [
    {
      "ChangeName": "myChangeName",
      "ChangeType": "UpdateInformation",
      "Details": "{  \"ProductTitle\": \"My Product Title\",  \"ShortDescription\": \"My product short description.\",  \"LongDescription\": \"My product longer description.\",  \"Sku\": \"123example456\",  \"SupportDescription\": \"Need help? Contact our experts at support@example.com\\n\\nYour purchase includes 24x7 support.\",  \"Categories\": [    \"Operating Systems\",    \"Network Infrastructure\",    \"Application Development\"  ]}",
      "DetailsDocument":
      {
        "ProductTitle": "My Product Title",
        "ShortDescription": "My product short description.",
        "LongDescription": "My product longer description.",
        "Sku": "123example456",
        "SupportDescription": "Need help? Contact our experts at support@example.com\n\nYour purchase includes 24x7 support.",
        "Categories":
        [
          "Operating Systems",
          "Network Infrastructure",
          "Application Development"
        ]
      },
      "Entity":
      {
        "Identifier": "example1-abcd-1234-5ef6-7890abcdef12",
        "Type": "AmiProduct@1.0"
      },
      "ErrorDetailList":
      []
    }
  ],
  "ChangeSetArn": "arn:aws:aws-marketplace:[exampleARN]",
  "ChangeSetId": "example123456789012abcdef",
  "ChangeSetName": "myChangeSetName",
  "EndTime": "2023-03-03T00:00:00Z",
  "FailureCode": null,
  "FailureDescription": null,
  "StartTime": "2023-03-02T00:00:00Z",
  "Status": "SUCCEEDED"
}
```

**注記**  
プログラムで変更セットをポーリングまたは操作する場合は、サービスの制限に従う必要があります。詳細については、「[AWS Marketplace Catalog API のサービスクォータ](catalog-service-quotas.md)」を参照してください。

変更が完了したら、 `ListEntities`を使用して、作成または変更したエンティティ (および関連する `EntityID`) を検索できます。その後、 `DescribeEntity`で `EntityID` を使用して詳細を取得できます。

販売者のコンソールでの変更リクエストの操作の詳細については、*AWS Marketplace 「 販売者ガイド*」の[「変更リクエストの作成](https://docs.aws.amazon.com/marketplace/latest/userguide/ami-single-ami-products.html#single-ami-creating-change-request)」を参照してください。

### 複数の変更リクエストを同時に行う
<a name="parallel-requests"></a>

1 **つの変更セット**内で、すべての変更タイプをバンドルでき、まとめて実行されます。Catalog API は、最高のパフォーマンスを提供するために複数の変更を同時に行うように構築されています。販売者とチャネルパートナーは、 に`ChangeTypes`バンドルされた複数の で変更を呼び出すことができます`ChangeSet`。同じ 内の単一または異なるエンティティに対して複数の変更を呼び出すことができます`ChangeSet`。Catalog API は、変更を適用する必要がある順序を評価し、それらの変更を行います。

ただし、リクエストが**個別の変更セット**として行われた場合、 AWS Marketplace は同じ製品に対して競合する変更リクエストを開始できません。このような場合、 は`ResourceInUseException`エラー AWS Marketplace を返します。
+ AMI およびコンテナ製品を変更する場合、ほとんどの変更はエラーなしで行うことができますが、以下の例外があります。
  + 同じ製品`ChangeType`で 2 つのリクエストが同じ場合、2 番目のリクエストはエラーを返します。
  + 1 つのリクエストがバージョン情報を更新し、もう 1 つのリクエストがバージョンを制限または追加する場合、2 番目のリクエストはエラーを返します。
  + リクエストが の場合`PREPARING`、同じ製品に対して別のリクエストを行うことができます。ただし、現在変更すると、他のリクエストがブロックされ、エラーが返される`APPLYING`可能性があります。
+ 他の製品タイプやプライベートマーケットプレイスでは、一度に 1 つの製品に対して 1 つのリクエストしか持つことができません。最初のリクエストが進行中に同じ製品を更新する別のリクエストが行われた場合、2 番目のリクエストはエラーを返します。
+ Seller Operations チームで AWS Marketplace 保留中の製品に対するリクエストがある場合、その製品の他のリクエストはエラーを返します。

変更リクエストに`ResourceInUseException`エラーが表示された場合は、後でリクエストを再試行できます。進行中のリクエストの状態に応じて、最初のリクエストをキャンセルして、再送信された 2 番目のリクエストをより早く完了できるようにすることもできます。

### 1 つの変更セットで複数の変更タイプを呼び出す
<a name="multiple-change-types"></a>

Catalog API を使用して、1 つ以上の異なるエンティティをターゲットとする 1 つの`StartChangeSet`リクエストで最大 20 個の変更を結合および連鎖できます。

一般的なユースケースは、`SaaSProduct@1.0`ドラフト製品、`Offer@1.0`ドラフトオファーを作成し、製品とオファーのメタデータ情報を入力することです。これは、次の 4 つの変更タイプを 1 つの変更セットに含めることによって行われます。
+ `SaaSProduct@1.0` での `CreateProduct`

  `ChangeName` パラメータを指定します。その後、この変更タイプで作成された製品は、後続の変更と同じ変更セットで参照できます。

  例えば、`CreateProductChange`。
+ `UpdateInformation` 同じ変更セットで`SaaSProduct@1.0`作成された の

  `Entity.Identifier` フィールドでは、次の形式の`CreateProduct`変更名を使用して、変更タイプによって作成された製品を参照できます。

  `${ChangeName}.Entity.Identifier`

  例えば、`$CreateProductChange.Entity.Identifier`。
+ `CreateOffer` 同じ変更セットで`SaaSProduct@1.0`作成された `Offer@1.0`に関連付けられた の

  `ChangeName` パラメータを指定します。その後、この変更タイプで作成された製品は、後続の変更と同じ変更セットで参照できます。例えば、`CreateOfferChange`。

  `CreateOffer` 変更タイプのペイロードの `ProductId`パラメータについては、 `${ChangeName}.Entity.Identifier`構文を使用して`CreateProduct`変更タイプで作成された SaaS 製品を参照することもできます。

  例えば、`{"ProductId":"$CreateProductChange.Entity.Identifier"}`。
+ `UpdateInformation` 同じ変更セットで`Offer@1.0`作成された の

  `Entity.Identifier` フィールドでは、次の形式の`CreateOffer`変更名を使用して、変更タイプによって作成されたオファーを参照できます。

  `${ChangeName}.Entity.Identifier`

  例えば、`$CreateOfferChange.Entity.Identifier`。

以下は、組み合わせた変更セットの例です。

```
POST /StartChangeSet HTTP/1.1
Content-type: application/json

{
  "Catalog": "AWSMarketplace",
  "ChangeSet": [
    {
      "ChangeType": "CreateProduct",
      "Entity": {
        "Type": "SaaSProduct@1.0"
      },
      "ChangeName": "CreateProductChange",
      "DetailsDocument": {}
    },
    {
      "ChangeType": "UpdateInformation",
      "Entity": {
        "Type": "SaaSProduct@1.0",
        "Identifier": "$CreateProductChange.Entity.Identifier"
      },
      "ChangeName": "UpdateProductInformationChange",
      "DetailsDocument": {
        "ProductTitle": "My Product Title",
        "ShortDescription": "My product short description.",
        "LongDescription": "My product longer description.",
        "Sku": "123example456",
        "LogoUrl": "https://s3.amazonaws.com/presigned-or-public-url-to-logo-stored-in-s3",
        "VideoUrls": [
          "https://example.com"
        ],
        "Highlights": [
          "123example45"
        ],
        "AdditionalResources": "123example456",
        "SupportDescription": "Need help? Contact our experts at support@example.com \n\nYour purchase includes 24x7 support.",        
        "Categories": [
          "Operating Systems",
          "Network Infrastructure",
          "Application Development"
        ],
        "SearchKeywords": [
          "123example45"
        ],
      }
    },
    {
      "ChangeType": "CreateOffer",
      "Entity": {
        "Type": "Offer@1.0"
      },
      "ChangeName": "CreateOfferChange",
      "DetailsDocument": {
        "ProductId": "$CreateProductChange.Entity.Identifier"
      }
    },
    {
      "ChangeType": "UpdateInformation",
      "Entity": {
        "Type": "Offer@1.0",
        "Identifier": "$CreateOfferChange.Entity.Identifier"
      },
      "DetailsDocument": {
        "Name": "Offer created together with SaaSProduct",
        "Description": "Test offer created together with SaaSProduct in the same Catalog API change set"
      }
    }
  ]
}
```

## `Details` 属性の操作 (レガシー)
<a name="working-with-details"></a>

**注記**  
このセクションでは、変更リクエストのレガシー`Details`属性について説明します。変更の詳細には追加のフォーマットが必要です。代替`DetailsDocument`属性を使用することをお勧めします。追加のフォーマットは不要で、変更の詳細を変更する必要はありません。`DetailsDocument` 属性の例については、[「販売者製品の使用](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/seller-products.html)」および[「プライベートマーケットプレイスの使用](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/private-marketplace.html)」を参照してください。

`StartChangeSet` オペレーションの `Details` 属性は文字列値です。その内容は JSON オブジェクトです。JSON オブジェクトを文字列属性に配置するには、すべての JSON コントロール文字をエスケープし、改行を削除して、オブジェクトを 1 行の文字列に変換する必要があります。

たとえば、 で `StartChangeSet`オペレーションを使用してプライベートマーケットプレイスのユーザーからのリクエスト`UpdateProcurementPolicy`を無効にする場合は、次のようなリクエストを行います。

```
POST /StartChangeSet HTTP/1.1
Content-type: application/json

{
   "Catalog": "AWSMarketplace",
   "ChangeSet": [ 
      { 
         "ChangeType": "UpdateProcurementPolicy",
         "Details": "{{<string>}}",
         "Entity": {
            "Type": "Experience@1.0",
            "Identifier" : "{{exp-1234example@5}}"
         }
      }
   ]
}
```

この場合、`Details`属性に使用する JSON オブジェクトは次のようになります (文字列に変換する前）。

```
{
    "Configuration": {
        "PolicyResourceRequests": "Deny"
    }
}
```

ただし、 `Details` 属性には JSON ではなく文字列が必要です。この JSON オブジェクトを 1 行の文字列に変換すると、次のようになります。

```
"{\"Configuration\" : {\"PolicyResourceRequests\" : \"Deny\"}}"
```

この文字列を使用すると、次のように完全な変更セットリクエストを作成できます。

```
POST /StartChangeSet HTTP/1.1
Content-type: application/json

{
   "Catalog": "AWSMarketplace",
   "ChangeSet": [ 
      { 
         "ChangeType": "UpdateProcurementPolicy",
         "Details": "{\"Configuration\" : {\"PolicyResourceRequests\" : \"Deny\"}}",
         "Entity": {
            "Type": "Experience@1.0",
            "Identifier" : "{{exp-1234example@5}}"
         }
      }
   ]
}
```

一般的に、この API リファレンスの例は、すでに文字列に変換されている JSON オブジェクトを示しています。場合によっては、理解を強化するために、新しい行を含むより複雑なサンプルが含まれることがあります。

**JSON の文字列への変換を自動化する**

JSON オブジェクトの文字列への変換は、軽量のコマンドライン JSON プロセッサである [jq](https://stedolan.github.io/jq/) などのツールを使用して自動化できます。次の例は、 `jq`を使用して JSON オブジェクトを `Details` 属性で使用できる文字列に変換する方法を示しています。

```
DETAILS_JSON='{
  "ProductTitle": "My Product Title",
  "ShortDescription": "My product short description.",
  "LongDescription": "My product long description."
}';

DETAILS_JSON_STRING="$(echo "${DETAILS_JSON}" | jq 'tostring';)";
```

 をエコーする場合`"${DETAILS_JSON_STRING}"`、結果は JSON が適切にエスケープされた次の文字列になります。 `{\"ProductTitle\":\"My Product\",\"ShortDescription\":\"My product short description.\",\"LongDescription\":\"My product long description.\"}`

## DescribeEntity を使用してエンティティに関する情報を取得する
<a name="using-describe-entity"></a>

Catalog API を使用して、製品やプライベートマーケットプレイスなどの既存のエンティティに関する情報をプログラムで取得できます。

`ListEntities` アクションはエンティティのリストを返します。次に、 `DescribeEntity`アクションを使用して、個々のエンティティの詳細を取得できます。これは、販売する製品をカタログ化するなどに直接役立ちます。更新するパートのみを更新する前にエンティティの現在の状態を取得できるため、エンティティを更新するときにも便利です。

次の例は、 `ListEntities`を使用してコンテナ製品のリストを取得し、 `DescribeEntity`を使用して特定の製品の 1 つに関する情報を取得する方法を示しています。

```
POST /ListEntities HTTP/1.1
Content-type: application/json

{
  "Catalog": "AWSMarketplace",
  "EntityType": "ContainerProduct"
}
```

エンティティタイプでは、 バージョンなしでエンティティタイプを使用する必要があります。そのタイプのすべてのエンティティを返します (バージョンはフィルタリングされません）。

`ListEntities` アクションに対するレスポンスの例を次に示します。

```
{
    "EntitySummaryList": [
        {
            "Name": "Container Product 1",
            "EntityType": "ContainerProduct",
            "EntityId": "example1-abcd-1234-5ef6-7890abcdef12",
            "EntityArn": "arn:aws:aws-marketplace:[exampleARN]",
            "LastModifiedDate": "2021-03-01T00:00:00Z",
            "Visibility": "Public"
        },
        {
            "Name": "Container Product 2",
            "EntityType": "ContainerProduct",
            "EntityId": "example2-abcd-1234-5ef6-7890abcdef12",
            "EntityArn": "arn:aws:aws-marketplace:[exampleARN]",
            "LastModifiedDate": "2021-03-02T00:00:00Z",
            "Visibility": "Public"
        }
    ],
    "NextToken": "exampleabcdef12345..."
}
```

これらの製品の 1 つの詳細を取得するには、 `DescribeEntity`アクションを使用します。次の例は、上記で返された最初の製品に関する詳細を取得する方法を示しています。

```
GET /DescribeEntity?catalog=AWSMarketplace&entityId={{example1-abcd-1234-5ef6-7890abcdef12}} HTTP/1.1
```

へのレスポンスを次に示します`DescribeEntity`。

```
{
  "EntityType": "ContainerProduct@1.0",
  "EntityIdentifier": "example1-abcd-1234-5ef6-7890abcdef12@9",
  "EntityArn": "arn:aws:aws-marketplace:[exampleARN]",
  "LastModifiedDate": "2021-03-02T20:19:14Z",
  "Details": "{\"Versions\":[{\"Id\":\"example2-0000-aaaa-5ef6-7890abcdef12\",\"ReleaseNotes\":\"My release notes\",\"UpgradeInstructions\":\"N/A\",\"VersionTitle\":\"1.0\",\"CreationDate\":\"2021-03-02T00:00:00.000Z\",\"Sources\":[{\"Type\":\"DockerImages\",\"Id\":\"example3-1111-bbbb-5ef6-7890abcdef12\",\"Images\":[\"111122223333.dkr.ecr.us-east-1.amazonaws.com/some-seller-prefix/my-repo-1:some-tag\"],\"Compatibility\":{\"Platform\":\"Linux\"}}],\"DeliveryOptions\":[{\"Id\":\"example4-2222-cccc-2222-cccccccccccc\",\"Type\":\"ElasticContainerRegistry\",\"SourceId\":\"example3-1111-bbbb-5ef6-7890abcdef12\",\"Title\":\"New delivery option 1\",\"ShortDescription\":\"Delivery option 1\",\"isRecommended\":false,\"Compatibility\":{\"AWSServices\":[\"ECS\",\"EKS\"]},\"Instructions\":{\"Usage\":\"test\"},\"Recommendations\":{\"AdditionalArtifacts\":[]},\"Visibility\":\"Limited\"}]}],\"Description\":{\"Highlights\":[\"Some highlight\"],\"LongDescription\":\"Description of my product\",\"ProductCode\":\"123456789012abcdef1234567\",\"Manufacturer\":null,\"Visibility\":\"Limited\",\"AssociatedProducts\":null,\"Sku\":null,\"SearchKeywords\":[\"some keyword\"],\"ProductTitle\":\"Container Product 1\",\"ShortDescription\":\"Description of my product\",\"Categories\":[\"Operating Systems\"]},\"PromotionalResources\":{\"LogoUrl\":\"https://awsmp-logos.s3.amazonaws.com/PLACEHOLDER_Logo_for_Containers_products.png\",\"AdditionalResources\":[],\"Videos\":[]},\"SupportInformation\":{\"Description\":\"Description of support information.\",\"Resources\":[]},\"RegionAvailability\":{\"Regions\":[\"ap-south-1\",\"eu-west-3\",\"eu-north-1\",\"eu-west-2\",\"eu-west-1\",\"ap-northeast-2\",\"ap-northeast-1\",\"me-south-1\",\"ca-central-1\",\"sa-east-1\",\"ap-east-1\",\"ap-southeast-1\",\"ap-southeast-2\",\"eu-central-1\",\"us-east-1\",\"us-east-2\",\"us-west-1\",\"us-west-2\"],\"FutureRegionSupport\":null},\"Repositories\":[{\"Url\":\"111122223333.dkr.ecr.us-east-1.amazonaws.com/some-seller-prefix/my-repo-1\",\"Type\":\"ECR\"}]}",
  "DetailsDocument":
  {
    "Versions":
    [
      {
        "Id": "example2-0000-aaaa-5ef6-7890abcdef12",
        "ReleaseNotes": "My release notes",
        "UpgradeInstructions": "N/A",
        "VersionTitle": "1.0",
        "CreationDate": "2021-03-02T00:00:00.000Z",
        "Sources":
        [
          {
            "Type": "DockerImages",
            "Id": "example3-1111-bbbb-5ef6-7890abcdef12",
            "Images":
            [
              "111122223333.dkr.ecr.us-east-1.amazonaws.com/some-seller-prefix/my-repo-1:some-tag"
            ],
            "Compatibility":
            {
              "Platform": "Linux"
            }
          }
        ],
        "DeliveryOptions":
        [
          {
            "Id": "example4-2222-cccc-2222-cccccccccccc",
            "Type": "ElasticContainerRegistry",
            "SourceId": "example3-1111-bbbb-5ef6-7890abcdef12",
            "Title": "New delivery option 1",
            "ShortDescription": "Delivery option 1",
            "isRecommended": false,
            "Compatibility":
            {
              "AWSServices":
              [
                "ECS",
                "EKS"
              ]
            },
            "Instructions":
            {
              "Usage": "test"
            },
            "Recommendations":
            {
              "AdditionalArtifacts":
              []
            },
            "Visibility": "Limited"
          }
        ]
      }
    ],
    "Description":
    {
      "Highlights":
      [
        "Some highlight"
      ],
      "LongDescription": "Description of my product",
      "ProductCode": "123456789012abcdef1234567",
      "Manufacturer": null,
      "Visibility": "Limited",
      "AssociatedProducts": null,
      "Sku": null,
      "SearchKeywords":
      [
        "some keyword"
      ],
      "ProductTitle": "Container Product 1",
      "ShortDescription": "Description of my product",
      "Categories":
      [
        "Operating Systems"
      ]
    },
    "PromotionalResources":
    {
      "LogoUrl": "https://awsmp-logos.s3.amazonaws.com/PLACEHOLDER_Logo_for_Containers_products.png",
      "AdditionalResources":
      [],
      "Videos":
      []
    },
    "SupportInformation":
    {
      "Description": "Description of support information.",
      "Resources":
      []
    },
    "RegionAvailability":
    {
      "Regions":
      [
        "ap-south-1",
        "eu-west-3",
        "eu-north-1",
        "eu-west-2",
        "eu-west-1",
        "ap-northeast-2",
        "ap-northeast-1",
        "me-south-1",
        "ca-central-1",
        "sa-east-1",
        "ap-east-1",
        "ap-southeast-1",
        "ap-southeast-2",
        "eu-central-1",
        "us-east-1",
        "us-east-2",
        "us-west-1",
        "us-west-2"
      ],
      "FutureRegionSupport": null
    },
    "Repositories":
    [
      {
        "Url": "111122223333.dkr.ecr.us-east-1.amazonaws.com/some-seller-prefix/my-repo-1",
        "Type": "ECR"
      }
    ]
  }
}
```

**注記**  
`DetailsDocument` 属性には、エンティティの詳細が JSON オブジェクトとして含まれます。レガシー`Details`属性には、文字列と同じ JSON オブジェクトが含まれます。