

La référence d'API AWS Marketplace a été restructurée. Pour plus d'informations sur les opérations d'API prises en charge, consultez le manuel [AWS Marketplace API Reference](https://docs.aws.amazon.com/marketplace/latest/APIReference/Welcome.html).

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Utilisation de AWS Marketplace Catalogue API
<a name="catalog-apis"></a>

Le AWS Marketplace Catalog API service fournit une interface API à gérer AWS Marketplace pour votre AWS organisation ou Compte AWS. Pour les vendeurs approuvés, vous pouvez gérer vos produits de manière programmatique, notamment grâce aux fonctionnalités de publication en libre-service du. [Portail de gestion AWS Marketplace](https://aws.amazon.com/marketplace/management) Pour les administrateurs de marchés privés, vous pouvez gérer votre place de marché privée de manière programmatique.

Grâce aux actions de l'API Catalog, vous pouvez afficher et mettre à jour votre produit existant par programmation. Vous pouvez automatiser le processus de mise à jour de votre produit en l'intégrant AWS Marketplace Catalog API aux pipelines de création ou de déploiement de votre AWS Marketplace produit. Vous pouvez également créer vos propres applications au-dessus de l'API Catalog pour gérer vos produits dans AWS Marketplace. Vous pouvez gérer les produits que les utilisateurs de votre AWS entreprise Compte AWS ou de votre organisation peuvent voir et acheter par le biais de votre place de marché privée.

Le AWS Marketplace Catalog API service fournit des fonctionnalités AWS d'API standard. Vous pouvez directement utiliser les actions de l'API REST décrites dans [Actions](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/API_Operations.html), ou vous pouvez utiliser un AWS SDK pour accéder à une API adaptée au langage de programmation ou à la plate-forme que vous utilisez. Pour plus d'informations sur le développement AWS d'applications, consultez [Getting Started with AWS](https://aws.amazon.com/getting-started/). Pour plus d'informations sur l'utilisation des AWS kits SDK, consultez la section [SDK AWS](https://aws.amazon.com/tools/#SDKs).

## Entités de l'API du catalogue
<a name="catalog-api-entities"></a>

AWS Marketplace les entités sont des conteneurs de données qui répondent à différents objectifs commerciaux, tels qu'un produit ou une offre. Les entités sont classées par type. Chaque type d'entité encapsule les données relatives à un domaine commercial spécifique (par exemple, un produit ou un compte vendeur).

Pour simplifier ce paradigme, les entités sont conçues avec un certain niveau de similitude dans leurs structures. Par conséquent, l'introduction d'un nouveau domaine d'activité ne nécessite pas l'apprentissage d'une toute nouvelle structure.

### Structure générale
<a name="general-structure"></a>

La structure générale de toute entité est la suivante :
+ Un type nommé avec une version
+ Un identifiant pour l'instance spécifique du type
+ Une ou plusieurs facettes qui incluent les attributs de l'entité

### Versionnage des types
<a name="versioning"></a>

Chaque type nommé est associé à un type et à une version, par exemple,`{{Entity}}Product@1.0`. Le *type* ({{Entity}}Produit) représente la classification du contenu. La *version* (1.0) représente la structure du {{Entity}} produit.

La version vous donne des détails sur la structure de l'entité. Ce qui suit décrit à quel moment une version sera modifiée :
+ Les entités existantes ne seront pas restructurées sans modification de version. L'ajout de nouveaux champs facultatifs entraînera une mise à jour mineure de la version.
+ Toute fonctionnalité qui modifie fondamentalement la structure d'un type entraîne une mise à jour majeure de la version. En voici quelques exemples :
  + Supprimer un champ
  + Renommer un champ (nom différent pour la même sémantique)
  + Modification de la sémantique d'un champ existant (par exemple, modification du type attendu)
+ Une mise à jour de version majeure peut conserver un sous-ensemble de facettes de la version précédente. 
+ Les utilisateurs reçoivent des notifications et de la documentation pour les nouvelles versions.

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

Chaque entité représente un *élément* unique au sein d'un domaine d'activité. Pour identifier l'objet unique, nous utilisons un identifiant `EntityId` associant un à un`RevisionId`, par exemple {{prod-ad8EXAMPLE651}} @{{3}}. Dans cet exemple, le `EntityId` est `prod-ad8EXAMPLE651` et le `RevisionId` est`3`. Chaque demande de modification réussie adressée à l'entité mettra à jour la révision.

Voici des informations importantes concernant l'identifiant :
+ Chaque entité est identifiée de manière unique par son `EntityId` identifiant, ce qui est essentiel pour distinguer globalement une entité d'une autre.
+ Chaque révision publiée d'une entité possède un`RevisionId`. Ils permettent`RevisionId`, avec le`EntityId`, de distinguer une révision publiée d'une autre.
+ AWS Marketplace génère `EntityId` `RevisionId` s et s.

Vous pouvez utiliser cette `DescribeEntity` action pour trouver les informations et l'identifiant le plus récent`revisionId`.

`RevisionId`Il s'agit d'une partie facultative des demandes adressées à `StartChangeSet` (voir[Travailler avec des ensembles de modifications](#working-with-change-sets)). Si vous incluez un`RevisionId`, la demande `StartChangeSet` échouera avec a `ValidationException` s'il ne s'`RevisionId`agit pas de la dernière révision de l'entité. Cela vous permet d'implémenter un verrouillage optimiste dans votre application.

**Note**  
Lorsque vous incluez une révision `RevisionId` qui n'est pas la plus récente, le `ValidationException` message inclut la dernière`RevisionId`.

Si vous omettez le`RevisionId`, la demande est automatiquement exécutée sur la dernière révision de l'entité.

**Avertissement**  
Deux demandes de modification du même objet peuvent avoir pour résultat qu'une demande remplace les modifications de l'autre demande, car la seconde demande réécrit les données modifiées par la première demande. L'utilisation de `RevisionId` s dans vos demandes permet d'éviter ce problème en empêchant une modification apportée à une révision antérieure de remplacer la révision actuelle.

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

Une facette est un regroupement logique d'attributs. Une entité comprend généralement plusieurs facettes qui représentent différents aspects de l'entité. Les attributs d'une facette possèdent les propriétés suivantes :
+ Chaque attribut possède un nom unique dans le cadre du conteneur auquel il appartient. 
+ Les attributs peuvent être de type simple (chaîne, entier ou nombre flottant).
+ Les attributs peuvent être de type complexe (container/structure ou tableau).

### Type d’entité
<a name="product-entity"></a>

Le type d'entité définit ce que représente l'entité. Une entité peut être un produit vendeur sur un marché privé AWS Marketplace ou un marché privé. Pour plus d'informations, consultez les [sections Utilisation des produits des vendeurs](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/seller-products.html) et [Utilisation d'un site de vente privé](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/private-marketplace.html).

## Travailler avec des ensembles de modifications
<a name="working-with-change-sets"></a>

Lorsque vous utilisez l'API Catalog, les demandes sont créées et mises à jour via des entités et traitées à l'aide de demandes de modification. Chaque modification indique l'entité à modifier, le type de modification à effectuer et les détails de la modification. Le type de modification à effectuer est appelé `ChangeType` a. Une collection de `ChangeType` s est appelée `ChangeSet` a.

 Quatre actions vous permettent de travailler avec des ensembles de modifications : 
+  `StartChangeSet`— Demande un ensemble de modifications. Les modifications sont ajoutées à une file d'attente et traitées. Pour plus d'informations, consultez les [sections Utilisation des produits des vendeurs](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/seller-products.html) et [Utilisation d'un site de vente privé](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/private-marketplace.html).
+  `DescribeChangeSet`— Récupère les détails d'un ensemble de modifications, y compris le statut de la demande. Les statuts incluent : 
  + `PREPARING`— Se préparer à appliquer les modifications.
  + `APPLYING`— En train d'apporter les modifications demandées.
  + `SUCCEEDED`— La demande a été traitée avec succès.
  + `CANCELLED`— La demande a été annulée par l'utilisateur.
  + `FAILED`— La demande a été traitée sans succès. De plus amples informations sont disponibles dans la réponse.
+  `ListChangeSets`— Obtient la liste des ensembles de modifications actuellement en cours de traitement. 
+  `CancelChangeSet`— Demande l'annulation d'un ensemble de modifications. Les modifications ne peuvent être annulées que lorsqu'elles sont dans le `PREPARING` statut. 

 Un flux de travail typique consiste à demander une modification avec`StartChangeSet`, puis à utiliser le résultat `ChangeSetId` pour interroger l'`DescribeChangeSet`action jusqu'à ce que la modification soit complète.

Voici un exemple de `DescribeChangeSet` réponse.

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

**Note**  
Lorsque vous interrogez ou utilisez des ensembles de modifications par programmation, vous devez respecter les limites du service. Pour de plus amples informations, veuillez consulter [Quotas de service pour AWS Marketplace Catalogue API](catalog-service-quotas.md).

Une fois votre modification terminée, vous pouvez l'utiliser `ListEntities` pour rechercher l'entité que vous avez créée ou modifiée (et les entités associées`EntityID`). Vous pouvez ensuite utiliser `DescribeEntity` avec le `EntityID` pour obtenir des détails à ce sujet.

Pour plus d'informations sur le traitement des demandes de modification dans la console pour les vendeurs, consultez la section [Création d'une demande de modification](https://docs.aws.amazon.com/marketplace/latest/userguide/ami-single-ami-products.html#single-ami-creating-change-request) dans le *Guide du AWS Marketplace vendeur*. 

### Effectuer plusieurs demandes de modification simultanément
<a name="parallel-requests"></a>

Au sein d'un **même ensemble de modifications**, vous pouvez regrouper tous les types de modifications et les exécuter ensemble. L'API du catalogue est conçue pour apporter plusieurs modifications simultanément afin de fournir les meilleures performances. Les vendeurs et les partenaires de distribution peuvent demander des modifications en `ChangeTypes` regroupant plusieurs dans un`ChangeSet`. Vous pouvez invoquer plusieurs modifications sur une ou plusieurs entités d'une même entité`ChangeSet`. L'API du catalogue évalue dans quel ordre les modifications doivent être appliquées et effectue ces modifications.

Toutefois, si les demandes sont effectuées sous la forme d'**ensembles de modifications distincts**, AWS Marketplace vous ne pouvez pas initier de demandes de modification contradictoires sur le même produit. Dans ces cas, AWS Marketplace renvoie une `ResourceInUseException` erreur.
+ Pour modifier les produits AMI et conteneur, la plupart des modifications peuvent être effectuées sans erreur, à l'exception des exceptions suivantes :
  + Si deux demandes sont identiques `ChangeType` sur le même produit, la deuxième demande renvoie une erreur.
  + Si une demande vise à mettre à jour les informations de version et que l'autre demande vise à restreindre ou à ajouter une version, la seconde demande renvoie une erreur.
  + Si c'est le cas`PREPARING`, une autre demande peut être faite sur le même produit. Cependant, une modification en cours `APPLYING` peut bloquer d'autres demandes et renvoyer une erreur.
+ Pour les autres types de produits et les sites de vente privés, vous ne pouvez faire qu'une seule demande de produit à la fois. Si une autre demande de mise à jour du même produit est faite alors qu'une première demande est en cours, la seconde renvoie une erreur.
+ Si une demande concernant un produit est en attente auprès de l'équipe des opérations AWS Marketplace vendeurs, toute autre demande concernant ce produit renvoie une erreur.

Si vous recevez un `ResourceInUseException` message d'erreur suite à une demande de modification, vous pouvez réessayer ultérieurement. En fonction de l'état de la demande en cours, vous pouvez également annuler la première demande afin de permettre à la deuxième demande soumise de nouveau de se terminer plus rapidement.

### Invoquer plusieurs types de modifications dans un seul ensemble de modifications
<a name="multiple-change-types"></a>

Vous pouvez utiliser l'API Catalog pour combiner et enchaîner jusqu'à 20 modifications dans une `StartChangeSet` demande ciblant une ou plusieurs entités différentes. 

Un cas d'utilisation typique consiste à créer un `SaaSProduct@1.0` brouillon de produit, un `Offer@1.0` projet d'offre et à renseigner les informations de métadonnées du produit et de l'offre. Cela se fait en incluant les quatre types de modifications suivants dans un ensemble de modifications :
+ `CreateProduct` sur `SaaSProduct@1.0`

  Spécifiez le paramètre `ChangeName`. Le produit créé avec ce type de modification peut ensuite être référencé dans le même ensemble de modifications par des modifications ultérieures. 

  Par exemple, `CreateProductChange`.
+ `UpdateInformation`sur le `SaaSProduct@1.0` créé dans le même ensemble de modifications

  Dans le `Entity.Identifier` champ, vous pouvez faire référence au produit créé par type de `CreateProduct` modification en utilisant le nom de la modification au format suivant : 

  `${ChangeName}.Entity.Identifier`

  Par exemple, `$CreateProductChange.Entity.Identifier`.
+ `CreateOffer`sur `Offer@1.0` lié à celui `SaaSProduct@1.0` créé dans le même ensemble de modifications

  Spécifiez le paramètre `ChangeName`. Le produit créé avec ce type de modification peut ensuite être référencé dans le même ensemble de modifications par des modifications ultérieures. Par exemple, `CreateOfferChange`.

  Pour le `ProductId` paramètre du type de `CreateOffer` modification dans la charge utile, vous pouvez également vous référer au produit SaaS créé dans le type de `CreateProduct` modification en utilisant `${ChangeName}.Entity.Identifier` la syntaxe.

  Par exemple, `{"ProductId":"$CreateProductChange.Entity.Identifier"}`.
+ `UpdateInformation`sur le `Offer@1.0` créé dans le même ensemble de modifications

  Dans le `Entity.Identifier` champ, vous pouvez faire référence à l'offre créée par le type de `CreateOffer` modification en utilisant le nom de la modification au format suivant :

  `${ChangeName}.Entity.Identifier`

  Par exemple, `$CreateOfferChange.Entity.Identifier`.

Voici un exemple d'ensemble de modifications combiné.

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

## Utilisation de l'attribut `Details` (Legacy)
<a name="working-with-details"></a>

**Note**  
Cette section décrit l'`Details`attribut existant de votre demande de modification, qui nécessite un formatage supplémentaire pour les détails de vos modifications. Nous vous recommandons d'utiliser l'`DetailsDocument`attribut alternatif. Il ne nécessite pas de mise en forme supplémentaire et les détails des modifications n'ont pas besoin d'être modifiés. Pour des exemples de `DetailsDocument` cet attribut, consultez les [sections Utilisation des produits des vendeurs](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/seller-products.html) et [Utilisation d'un marché privé](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/private-marketplace.html).

L'`Details`attribut de l'`StartChangeSet`opération est une valeur de chaîne. Son contenu est constitué d'objets JSON. Pour placer un objet JSON dans un attribut de chaîne, vous devez convertir l'objet en chaîne d'une seule ligne en évitant tous les caractères de contrôle JSON et en supprimant les sauts de ligne.

Par exemple, si vous utilisez l'`StartChangeSet`opération with `UpdateProcurementPolicy` pour désactiver les demandes des utilisateurs de votre place de marché privée, faites une demande comme celle-ci.

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

Dans ce cas, l'objet JSON que vous utilisez pour l'`Details`attribut ressemble à ce qui suit (avant la conversion en chaîne).

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

Mais l'`Details`attribut nécessite une chaîne, pas un JSON. Après avoir converti cet objet JSON en une chaîne d'une seule ligne, il ressemble à ce qui suit.

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

Avec cette chaîne, vous pouvez créer la demande d'ensemble de modifications complète, comme suit.

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

En général, les exemples de cette référence d'API montrent que l'objet JSON a déjà été converti en chaîne. Dans certains cas, des échantillons plus complexes comportant de nouvelles lignées sont inclus pour améliorer la compréhension.

**Automatisez la conversion de JSON en chaîne**

La conversion d'un objet JSON en chaîne peut être automatisée à l'aide d'outils tels que [jq](https://stedolan.github.io/jq/), un processeur JSON léger en ligne de commande. L'exemple suivant montre comment `jq` convertir un objet JSON en une chaîne pouvant être utilisée dans l'`Details`attribut.

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

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

 Si vous émettez un écho`"${DETAILS_JSON_STRING}"`, le résultat est la chaîne suivante avec le JSON correctement échappé : `{\"ProductTitle\":\"My Product\",\"ShortDescription\":\"My product short description.\",\"LongDescription\":\"My product long description.\"}`

## Utilisation DescribeEntity pour obtenir des informations sur vos entités
<a name="using-describe-entity"></a>

Vous pouvez obtenir par programmation des informations sur vos entités existantes, y compris les produits et le marché privé, via l'API Catalog.

L'`ListEntities`action renvoie une liste d'entités. Vous pouvez ensuite utiliser l'`DescribeEntity`action pour obtenir des informations sur une entité individuelle. Cela peut être directement utile, par exemple, pour cataloguer les produits que vous vendez. Cela peut également être utile lors de la mise à jour d'entités, car vous pouvez obtenir l'état actuel de l'entité avant de mettre à jour uniquement les parties que vous souhaitez mettre à jour.

L'exemple suivant montre comment utiliser `ListEntities` pour obtenir une liste de produits en conteneur, puis `DescribeEntity` pour obtenir des informations sur l'un des produits spécifiques.

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

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

Pour le type d'entité, vous devez utiliser le type d'entité sans la version. Il renvoie toutes les entités de ce type (et ne filtre pas selon la version).

Voici un exemple de la réponse à l'`ListEntities`action.

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

Pour obtenir les détails de l'un de ces produits, utilisez l'`DescribeEntity`action. L'exemple suivant montre comment obtenir des informations sur le premier produit renvoyé ci-dessus.

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

Ce qui suit montre la réponse à`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"
      }
    ]
  }
}
```

**Note**  
L'`DetailsDocument`attribut contient les détails de l'entité sous forme d'objet JSON. L'`Details`attribut legacy contient le même objet JSON sous forme de chaîne.