

Referensi API AWS Marketplace direstrukturisasi. Untuk informasi selengkapnya tentang operasi API yang didukung, lihat [Referensi API AWS Marketplace](https://docs.aws.amazon.com/marketplace/latest/APIReference/Welcome.html).

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Menggunakan AWS Marketplace API Katalog
<a name="catalog-apis"></a>

 AWS Marketplace Catalog API Layanan ini menyediakan antarmuka API AWS Marketplace untuk mengelola AWS organisasi Anda atau Akun AWS. Untuk penjual yang disetujui, Anda dapat mengelola produk Anda secara terprogram, termasuk kemampuan penerbitan swalayan di. [Portal Manajemen AWS Marketplace](https://aws.amazon.com/marketplace/management) Untuk administrator pasar pribadi, Anda dapat mengelola pasar pribadi Anda secara terprogram.

Dengan tindakan API Katalog, Anda dapat melihat dan memperbarui produk yang ada secara terprogram. Anda dapat mengotomatiskan proses pembaruan produk Anda dengan mengintegrasikan AWS Marketplace Catalog API dengan pipeline build atau deployment AWS Marketplace produk Anda. Anda juga dapat membuat aplikasi sendiri di atas API Katalog untuk mengelola produk Anda AWS Marketplace. Anda dapat mengelola produk yang dapat dilihat dan dibeli oleh pengguna di Akun AWS atau AWS organisasi Anda melalui pasar pribadi Anda.

 AWS Marketplace Catalog API Layanan ini menyediakan fungsionalitas AWS API standar. Anda dapat langsung menggunakan tindakan REST API yang dijelaskan dalam [Tindakan](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/API_Operations.html), atau Anda dapat menggunakan AWS SDK untuk mengakses API yang disesuaikan dengan bahasa pemrograman atau platform yang Anda gunakan. Untuk informasi selengkapnya tentang pengembangan AWS aplikasi, lihat [Memulai dengan AWS](https://aws.amazon.com/getting-started/). Untuk informasi selengkapnya tentang penggunaan AWS SDK, lihat [AWS SDK](https://aws.amazon.com/tools/#SDKs).

## Entitas API Katalog
<a name="catalog-api-entities"></a>

AWS Marketplace entitas adalah wadah data yang melayani tujuan bisnis yang berbeda, seperti produk atau penawaran. Entitas dikategorikan berdasarkan jenis. Setiap jenis entitas merangkum data yang terkait dengan domain bisnis tertentu (misalnya, produk atau akun penjual).

Untuk menyederhanakan paradigma ini, entitas dirancang dengan beberapa tingkat kesamaan dalam strukturnya. Akibatnya, memperkenalkan domain bisnis baru tidak mengharuskan Anda mempelajari struktur yang sama sekali baru.

### Struktur umum
<a name="general-structure"></a>

Struktur umum entitas apa pun adalah:
+ Tipe bernama dengan versi
+ Pengidentifikasi untuk contoh spesifik dari jenis
+ Satu atau lebih aspek yang mencakup atribut entitas

### Ketik versi
<a name="versioning"></a>

Setiap tipe bernama memiliki tipe dan versi yang terkait dengannya, misalnya,`{{Entity}}Product@1.0`. *Jenis* ({{Entity}}Produk) mewakili klasifikasi konten. *Versi* (1.0) mewakili struktur {{Entity}} Produk.

Versi ini memberi Anda detail tentang struktur entitas. Berikut ini menjelaskan kapan versi akan diubah:
+ Entitas yang ada tidak akan direstrukturisasi tanpa mengubah versi. Penambahan bidang baru opsional akan menghasilkan pembaruan versi minor.
+ Fitur apa pun yang secara mendasar mengubah struktur suatu tipe mengarah ke pembaruan versi utama. Contohnya termasuk:
  + Menghapus bidang
  + Mengganti nama bidang (nama berbeda untuk semantik yang sama)
  + Mengubah semantik bidang yang ada (misalnya, mengubah jenis yang diharapkan)
+ Pembaruan versi utama dapat mempertahankan subset aspek dari versi sebelumnya. 
+ Pengguna diberikan pemberitahuan dan dokumentasi untuk versi baru.

### Pengidentifikasi
<a name="identifier"></a>

Setiap entitas mewakili *hal* unik dalam domain bisnis. Untuk mengidentifikasi hal yang unik, kami menggunakan pengidentifikasi yang mengaitkan `EntityId` dengan`RevisionId`, misalnya, {{prod-ad8EXAMPLE651}} @. {{3}} Dalam contoh ini, `EntityId` adalah `prod-ad8EXAMPLE651` dan `RevisionId` adalah`3`. Setiap permintaan perubahan yang berhasil ke entitas akan memperbarui revisi.

Berikut ini adalah detail penting tentang pengenal:
+ Setiap entitas secara unik diidentifikasi olehnya`EntityId`, yang merupakan kunci untuk membedakan satu entitas secara global dari yang lain.
+ Setiap revisi yang diterbitkan dari suatu entitas memiliki a`RevisionId`. Itu`RevisionId`, bersama dengan`EntityId`, membedakan satu revisi yang diterbitkan dari yang lain.
+ AWS Marketplace menghasilkan `EntityId` s dan `RevisionId` s.

Anda dapat menggunakan `DescribeEntity` tindakan untuk menemukan detail dan Identifier dengan yang terbaru`revisionId`.

`RevisionId`Ini adalah bagian opsional dari permintaan untuk `StartChangeSet` (lihat[Bekerja dengan set perubahan](#working-with-change-sets)). Jika Anda menyertakan a`RevisionId`, maka permintaan untuk `StartChangeSet` akan gagal dengan `ValidationException` jika `RevisionId` bukan revisi terbaru dari entitas. Ini memungkinkan Anda untuk menerapkan penguncian optimis dalam aplikasi Anda.

**catatan**  
Ketika Anda menyertakan `RevisionId` yang bukan revisi terbaru, `ValidationException` pesan termasuk yang terbaru`RevisionId`.

Jika Anda menghilangkan`RevisionId`, permintaan dilakukan pada revisi terbaru entitas secara otomatis.

**Awas**  
Dua permintaan untuk mengubah objek yang sama dapat mengakibatkan satu permintaan menimpa perubahan permintaan lainnya, karena permintaan kedua menulis ulang data yang diubah oleh permintaan pertama. Menggunakan `RevisionId` s dalam permintaan Anda mencegah masalah ini dengan tidak mengizinkan perubahan pada revisi sebelumnya untuk menimpa revisi saat ini.

### Faset
<a name="facets"></a>

Sebuah facet adalah pengelompokan atribut yang logis. Entitas biasanya mencakup beberapa aspek yang mewakili aspek yang berbeda dari entitas. Atribut dalam sebuah facet memiliki properti sebagai berikut:
+ Setiap atribut memiliki nama unik dalam lingkup wadah miliknya. 
+ Atribut dapat berupa tipe sederhana (string, integer, atau angka mengambang).
+ Atribut dapat berupa tipe kompleks (container/structure atau array).

### Jenis entitas
<a name="product-entity"></a>

Tipe entitas mendefinisikan apa yang diwakili entitas. Entitas dapat berupa produk penjual di AWS Marketplace atau pasar pribadi. Untuk informasi selengkapnya, lihat [Bekerja dengan produk penjual](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/seller-products.html) dan [Bekerja dengan pasar pribadi](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/private-marketplace.html).

## Bekerja dengan set perubahan
<a name="working-with-change-sets"></a>

Saat menggunakan API Katalog, permintaan dibuat dan diperbarui melalui entitas dan diselesaikan dengan menggunakan permintaan perubahan. Setiap perubahan menentukan entitas yang akan diubah, jenis perubahan yang akan dilakukan, dan rincian perubahan. Jenis perubahan yang akan dilakukan disebut a`ChangeType`. Koleksi `ChangeType` s disebut a`ChangeSet`.

 Ada empat tindakan yang memungkinkan Anda bekerja dengan set perubahan: 
+  `StartChangeSet`— Meminta serangkaian perubahan. Perubahan ditambahkan ke antrian dan diproses. Untuk informasi selengkapnya, lihat [Bekerja dengan produk penjual](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/seller-products.html) dan [Bekerja dengan pasar pribadi](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/private-marketplace.html).
+  `DescribeChangeSet`— Mendapat rincian serangkaian perubahan, termasuk status permintaan. Status meliputi: 
  + `PREPARING`— Bersiap-siap untuk menerapkan perubahan.
  + `APPLYING`— Dalam proses membuat perubahan yang diminta.
  + `SUCCEEDED`— Permintaan berhasil diselesaikan.
  + `CANCELLED`— Permintaan dibatalkan oleh pengguna.
  + `FAILED`— Permintaan diselesaikan tidak berhasil. Rincian lebih lanjut tersedia dalam tanggapan.
+  `ListChangeSets`— Mendapat daftar set perubahan yang sedang dalam proses. 
+  `CancelChangeSet`— Permintaan set perubahan dibatalkan. Perubahan hanya dapat dibatalkan saat berada dalam `PREPARING` status. 

 Alur kerja tipikal adalah meminta perubahan dengan`StartChangeSet`, dan kemudian menggunakan yang dikembalikan `ChangeSetId` untuk melakukan polling `DescribeChangeSet` tindakan hingga perubahan selesai.

Berikut ini adalah contoh `DescribeChangeSet` responsnya.

```
{
  "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"
}
```

**catatan**  
Saat melakukan polling atau bekerja dengan set perubahan secara terprogram, Anda harus mematuhi batas layanan. Untuk informasi selengkapnya, lihat [Kuota layanan untuk AWS Marketplace API Katalog](catalog-service-quotas.md).

Setelah perubahan Anda selesai, Anda dapat menggunakan `ListEntities` untuk menemukan entitas yang Anda buat atau modifikasi (dan yang terkait`EntityID`). Anda kemudian dapat menggunakan `DescribeEntity` dengan `EntityID` untuk mendapatkan rincian tentang hal itu.

Untuk informasi selengkapnya tentang bekerja dengan permintaan perubahan di konsol untuk penjual, lihat [Membuat permintaan perubahan](https://docs.aws.amazon.com/marketplace/latest/userguide/ami-single-ami-products.html#single-ami-creating-change-request) di *Panduan AWS Marketplace Penjual*. 

### Membuat beberapa permintaan perubahan secara bersamaan
<a name="parallel-requests"></a>

Dalam **satu set perubahan**, Anda dapat menggabungkan semua jenis perubahan dan dijalankan bersama. Catalog API dibangun untuk membuat beberapa perubahan secara bersamaan untuk memberikan kinerja terbaik. Penjual dan Mitra Saluran dapat memanggil perubahan dengan beberapa `ChangeTypes` dibundel ke dalam file. `ChangeSet` Anda dapat memanggil beberapa perubahan pada entitas tunggal atau berbeda dalam hal yang sama`ChangeSet`. Catalog API mengevaluasi urutan perubahan mana yang perlu diterapkan dan membuat perubahan tersebut.

Namun, jika permintaan dibuat sebagai **set perubahan terpisah**, tidak AWS Marketplace dapat memulai permintaan perubahan yang bertentangan pada produk yang sama. Dalam kasus ini, AWS Marketplace mengembalikan `ResourceInUseException` kesalahan.
+ Untuk memodifikasi AMI dan produk kontainer, sebagian besar perubahan dapat dilakukan tanpa kesalahan, dengan pengecualian berikut:
  + Jika dua permintaan sama `ChangeType` pada produk yang sama, permintaan kedua mengembalikan kesalahan.
  + Jika satu permintaan adalah untuk memperbarui informasi versi, dan permintaan lainnya adalah membatasi atau menambahkan versi, maka permintaan kedua mengembalikan kesalahan.
  + Jika ada permintaan`PREPARING`, permintaan lain dapat dibuat pada produk yang sama. Namun, perubahan yang saat ini `APPLYING` dapat memblokir permintaan lain, mengembalikan kesalahan.
+ Untuk jenis produk lain dan pasar pribadi, Anda hanya dapat memiliki satu permintaan untuk suatu produk pada satu waktu. Jika permintaan berbeda untuk memperbarui produk yang sama dibuat saat permintaan pertama sedang berlangsung, permintaan kedua mengembalikan kesalahan.
+ Jika ada permintaan untuk produk apa pun yang tertunda dengan tim Operasi AWS Marketplace Penjual, maka permintaan lain pada produk tersebut mengembalikan kesalahan.

Jika Anda menerima `ResourceInUseException` kesalahan untuk permintaan perubahan, Anda dapat mencoba kembali permintaan tersebut nanti. Bergantung pada status permintaan yang sedang berlangsung, Anda juga dapat membatalkan permintaan pertama, untuk memungkinkan permintaan kedua yang dikirim ulang selesai lebih cepat.

### Memanggil beberapa jenis perubahan dalam satu set perubahan
<a name="multiple-change-types"></a>

Anda dapat menggunakan API Katalog untuk menggabungkan dan menghubungkan hingga 20 perubahan dalam satu `StartChangeSet` permintaan yang menargetkan satu atau beberapa entitas berbeda. 

Kasus penggunaan yang umum adalah membuat `SaaSProduct@1.0` draf produk, `Offer@1.0` draf penawaran, dan juga mengisi informasi metadata produk dan penawaran. Ini dilakukan dengan memasukkan empat jenis perubahan berikut dalam satu set perubahan:
+ `CreateProduct` pada `SaaSProduct@1.0`

  Tentukan parameter `ChangeName`. Kemudian, produk yang dibuat dalam jenis perubahan ini dapat direferensikan dalam perubahan yang sama yang ditetapkan oleh perubahan berikutnya. 

  Misalnya, `CreateProductChange`.
+ `UpdateInformation`pada yang `SaaSProduct@1.0` dibuat dalam set perubahan yang sama

  Di `Entity.Identifier` bidang, Anda dapat merujuk ke produk yang dibuat berdasarkan jenis `CreateProduct` perubahan menggunakan nama perubahan dalam format ini: 

  `${ChangeName}.Entity.Identifier`

  Misalnya, `$CreateProductChange.Entity.Identifier`.
+ `CreateOffer``Offer@1.0`terikat dengan yang `SaaSProduct@1.0` dibuat dalam set perubahan yang sama

  Tentukan parameter `ChangeName`. Kemudian, produk yang dibuat dalam jenis perubahan ini dapat direferensikan dalam perubahan yang sama yang ditetapkan oleh perubahan berikutnya. Misalnya, `CreateOfferChange`.

  Untuk `ProductId` parameter dalam payload jenis `CreateOffer` perubahan, Anda juga dapat merujuk ke produk SaaS yang dibuat `CreateProduct` dalam tipe perubahan dengan `${ChangeName}.Entity.Identifier` menggunakan sintaks.

  Misalnya, `{"ProductId":"$CreateProductChange.Entity.Identifier"}`.
+ `UpdateInformation`pada yang `Offer@1.0` dibuat dalam set perubahan yang sama

  Di `Entity.Identifier` bidang ini, Anda dapat merujuk ke penawaran yang dibuat oleh jenis `CreateOffer` perubahan menggunakan nama perubahan dalam format ini:

  `${ChangeName}.Entity.Identifier`

  Misalnya, `$CreateOfferChange.Entity.Identifier`.

Berikut ini adalah contoh dari gabungan set perubahan.

```
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"
      }
    }
  ]
}
```

## Bekerja dengan atribut `Details` (Legacy)
<a name="working-with-details"></a>

**catatan**  
Bagian ini menjelaskan `Details` atribut lama dalam permintaan perubahan Anda, yang memerlukan pemformatan tambahan untuk detail perubahan Anda. Sebaiknya gunakan `DetailsDocument` atribut alternatif. Itu tidak memerlukan pemformatan tambahan dan detail perubahan tidak perlu diubah. Untuk contoh `DetailsDocument` atribut, lihat [Bekerja dengan produk penjual](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/seller-products.html) dan [Bekerja dengan pasar pribadi](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/private-marketplace.html).

`Details`Atribut `StartChangeSet` operasi adalah nilai string. Isinya adalah objek JSON. Untuk menempatkan objek JSON ke dalam atribut string, Anda harus mengonversi objek menjadi string satu baris dengan melarikan diri dari semua karakter kontrol JSON, dan menghapus jeda baris.

Misalnya, jika Anda menggunakan `StartChangeSet` operasi `UpdateProcurementPolicy` untuk menonaktifkan permintaan dari pengguna di pasar pribadi Anda, buat permintaan seperti berikut ini.

```
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}}"
         }
      }
   ]
}
```

Dalam hal ini, objek JSON yang Anda gunakan untuk `Details` atribut terlihat seperti berikut (sebelum konversi ke string).

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

Tetapi `Details` atribut membutuhkan string, bukan JSON. Setelah mengonversi objek JSON ini menjadi string baris tunggal, sepertinya berikut ini.

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

Dengan string ini, Anda dapat membuat permintaan set perubahan lengkap, sebagai berikut.

```
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}}"
         }
      }
   ]
}
```

Umumnya, contoh dalam referensi API ini menunjukkan objek JSON yang sudah dikonversi ke string. Dalam beberapa kasus, sampel yang lebih rumit dengan baris baru disertakan untuk meningkatkan pemahaman.

**Mengotomatiskan konversi JSON ke string**

Mengonversi objek JSON ke string dapat diotomatisasi menggunakan alat seperti [jq, prosesor JSON](https://stedolan.github.io/jq/) baris perintah ringan. Contoh berikut menunjukkan menggunakan `jq` untuk mengkonversi objek JSON ke string yang dapat digunakan dalam `Details` atribut.

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

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

 Jika Anda bergema`"${DETAILS_JSON_STRING}"`, hasilnya adalah string berikut dengan JSON lolos dengan benar: `{\"ProductTitle\":\"My Product\",\"ShortDescription\":\"My product short description.\",\"LongDescription\":\"My product long description.\"}`

## Menggunakan DescribeEntity untuk mendapatkan informasi tentang entitas Anda
<a name="using-describe-entity"></a>

Anda dapat secara terprogram mendapatkan informasi tentang entitas Anda yang ada, termasuk produk dan pasar pribadi, melalui API Katalog.

`ListEntities`Tindakan mengembalikan daftar entitas. Kemudian, Anda dapat menggunakan `DescribeEntity` tindakan untuk mendapatkan detail tentang entitas individu. Ini dapat langsung berguna, misalnya, untuk membuat katalog produk yang Anda jual. Ini juga dapat berguna saat memperbarui entitas, karena Anda bisa mendapatkan status entitas saat ini sebelum memperbarui hanya bagian yang ingin Anda perbarui.

Contoh berikut menunjukkan penggunaan `ListEntities` untuk mendapatkan daftar produk kontainer, dan kemudian menggunakan `DescribeEntity` untuk mendapatkan informasi tentang salah satu produk tertentu.

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

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

Untuk tipe entitas, Anda harus menggunakan tipe entitas tanpa versi. Ia mengembalikan semua entitas dari jenis itu (dan tidak memfilter pada versi).

Berikut adalah contoh respons terhadap `ListEntities` tindakan tersebut.

```
{
    "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..."
}
```

Untuk mendapatkan detail dari salah satu produk ini, gunakan `DescribeEntity` aksinya. Contoh berikut menunjukkan cara mendapatkan detail tentang produk pertama yang dikembalikan di atas.

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

Berikut ini menunjukkan respons terhadap`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"
      }
    ]
  }
}
```

**catatan**  
`DetailsDocument`Atribut berisi rincian entitas sebagai objek JSON. `Details`Atribut warisan berisi objek JSON yang sama sebagai string.