A referência da API do AWS Marketplace foi reestruturada. Para obter mais informações sobre as operações de API suportadas, consulte a Referência de API do AWS Marketplace.
As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Usar o AWS Marketplace API do Catalog
O AWS Marketplace Catalog API serviço fornece uma interface de API AWS Marketplace para gerenciar sua AWS
organização ou Conta da AWS. Para vendedores aprovados, você pode gerenciar seus produtos de forma programática, incluindo os recursos de publicação por autoatendimento no. Portal de gerenciamento do AWS Marketplace
Com as ações da API de catálogo, você pode visualizar e atualizar seu produto existente de forma programática. Você pode automatizar o processo de atualização do produto integrando-o AWS Marketplace Catalog API aos pipelines de criação ou implantação AWS Marketplace do produto. Você também pode criar seus próprios aplicativos em cima da API do Catálogo para gerenciar seus produtos em AWS Marketplace. Você pode gerenciar os produtos que os usuários de sua Conta da AWS AWS organização podem ver e comprar por meio de seu mercado privado.
O AWS Marketplace Catalog API serviço fornece a funcionalidade padrão AWS da API. Você pode usar diretamente as ações da API REST descritas em Ações ou pode usar um AWS SDK para acessar uma API personalizada para a linguagem de programação ou plataforma que você está usando. Para obter mais informações sobre o desenvolvimento de AWS aplicativos, consulte Introdução ao AWS
Entidades da API de catálogo
AWS Marketplace entidades são contêineres de dados que servem a diferentes propósitos comerciais, como um produto ou oferta. As entidades são categorizadas por tipos. Cada tipo de entidade encapsula dados relacionados a um domínio comercial específico (por exemplo, um produto ou uma conta de vendedor).
Para simplificar esse paradigma, as entidades são projetadas com algum nível de semelhança em suas estruturas. Como resultado, a introdução de um novo domínio comercial não exige que você aprenda uma estrutura completamente nova.
Estrutura geral
A estrutura geral de qualquer entidade é:
-
Um tipo nomeado com uma versão
-
Um identificador para a instância específica do tipo
-
Uma ou mais facetas que incluem os atributos da entidade
Controle de versão de tipos
Cada tipo nomeado tem um tipo e uma versão associados a ele, por exemplo,. O tipo (EntityProduct@1.0EntityProduto) representa a classificação do conteúdo. A versão (1.0) representa a estrutura do Entity Produto.
A versão fornece detalhes sobre a estrutura da entidade. O seguinte descreve quando uma versão será alterada:
-
As entidades existentes não serão reestruturadas sem alterar a versão. A adição de novos campos opcionais resultará em uma pequena atualização da versão.
-
Qualquer recurso que altere fundamentalmente a estrutura de um tipo leva a uma grande atualização da versão. Os exemplos incluem:
-
Removendo um campo
-
Renomeando um campo (nome diferente para a mesma semântica)
-
Alterar a semântica de um campo existente (por exemplo, alterar o tipo esperado)
-
-
Uma atualização de versão principal pode reter um subconjunto de facetas da versão anterior.
-
Os usuários recebem notificações e documentação para novas versões.
Identificador
Cada entidade representa algo único dentro de um domínio comercial. Para identificar a coisa única, usamos um identificador associando an EntityId a aRevisionId, por exemplo, prod-ad8EXAMPLE651 @3. Neste exemplo, o EntityId é prod-ad8EXAMPLE651 e o RevisionId é3. Cada solicitação de alteração bem-sucedida para a entidade atualizará a revisão.
Veja a seguir detalhes importantes sobre o identificador:
-
Cada entidade é identificada exclusivamente por sua
EntityId, que é a chave para distinguir globalmente uma entidade da outra. -
Cada revisão publicada de uma entidade tem uma
RevisionId. ORevisionId, junto com oEntityId, distingue uma revisão publicada de outra. -
AWS Marketplace gera
EntityIdRevisionIds e s.
Você pode usar a DescribeEntity ação para encontrar os detalhes e o Identificador com os mais recentesrevisionId.
RevisionIdÉ uma parte opcional das solicitações para StartChangeSet (consulteTrabalhando com conjuntos de alterações). Se você incluir umRevisionId, a solicitação StartChangeSet falhará com a ValidationException se não RevisionId for a revisão mais recente da entidade. Isso permite que você implemente um bloqueio otimista em seu aplicativo.
nota
Quando você inclui uma revisão RevisionId que não é a mais recente, a ValidationException mensagem inclui a mais recenteRevisionId.
Se você omitir oRevisionId, a solicitação será executada automaticamente na última revisão da entidade.
Atenção
Duas solicitações para alterar o mesmo objeto podem resultar em uma solicitação sobrescrevendo as alterações da outra solicitação, já que a segunda solicitação reescreve os dados alterados pela primeira solicitação. Usar RevisionId s em suas solicitações evita esse problema ao não permitir que uma alteração em uma revisão anterior substitua a revisão atual.
Facetas
Uma faceta é um agrupamento lógico de atributos. Uma entidade geralmente inclui várias facetas que representam diferentes aspectos da entidade. Os atributos dentro de uma faceta têm as seguintes propriedades:
-
Cada atributo tem um nome exclusivo dentro do escopo do contêiner ao qual pertence.
-
Os atributos podem ser de um tipo simples (string, número inteiro ou número flutuante).
-
Os atributos podem ser de um tipo complexo (container/structure ou matriz).
Tipo de entidade
O tipo de entidade define o que a entidade representa. Uma entidade pode ser um vendedor de um produto AWS Marketplace ou um mercado privado. Para obter mais informações, consulte Trabalhar com produtos do vendedor e Trabalhar com um mercado privado.
Trabalhando com conjuntos de alterações
Ao usar a API de catálogo, as solicitações são criadas e atualizadas por meio de entidades e concluídas usando solicitações de alteração. Cada alteração especifica a entidade a ser alterada, o tipo de alteração a ser executada e os detalhes da alteração. O tipo de alteração a ser realizada é chamado deChangeType. Uma coleção de ChangeType s é chamada de ChangeSet a.
Há quatro ações que permitem trabalhar com conjuntos de alterações:
-
StartChangeSet— Solicita um conjunto de alterações. As alterações são adicionadas a uma fila e processadas. Para obter mais informações, consulte Trabalhar com produtos do vendedor e Trabalhar com um mercado privado. -
DescribeChangeSet— Obtém os detalhes de um conjunto de alterações, incluindo o status da solicitação. Os status incluem:-
PREPARING— Preparando-se para aplicar as mudanças. -
APPLYING— No processo de fazer as alterações solicitadas. -
SUCCEEDED— A solicitação foi concluída com sucesso. -
CANCELLED— A solicitação foi cancelada pelo usuário. -
FAILED— A solicitação foi concluída sem sucesso. Mais detalhes estão disponíveis na resposta.
-
-
ListChangeSets— Obtém uma lista dos conjuntos de alterações que estão atualmente em andamento. -
CancelChangeSet— Solicita que um conjunto de alterações seja cancelado. As alterações só podem ser canceladas enquanto estiverem noPREPARINGstatus.
Um fluxo de trabalho típico é solicitar uma alteração com eStartChangeSet, em seguida, usar o retornado ChangeSetId para pesquisar a DescribeChangeSet ação até que a alteração seja concluída.
Veja a seguir um exemplo da DescribeChangeSet resposta.
{ "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" }
nota
Ao pesquisar ou trabalhar com conjuntos de alterações de forma programática, você deve respeitar os limites do serviço. Para obter mais informações, consulte Cotas de serviço para AWS Marketplace API do Catalog.
Depois que sua alteração for concluída, você poderá usar ListEntities para encontrar a entidade que você criou ou modificou (e sua associadaEntityID). Em seguida, você pode usar DescribeEntity com o EntityID para obter detalhes sobre isso.
Para obter mais informações sobre como trabalhar com solicitações de alteração no console para vendedores, consulte Criação de uma solicitação de alteração no Guia do AWS Marketplace vendedor.
Fazendo várias solicitações de alteração simultaneamente
Em um único conjunto de alterações, você pode agrupar todos os tipos de alterações e elas são executadas em conjunto. A API de catálogo foi criada para fazer várias alterações simultaneamente para fornecer o melhor desempenho. Vendedores e parceiros de canal podem invocar alterações com várias ChangeTypes agrupadas em um. ChangeSet Você pode invocar várias alterações em entidades únicas ou diferentes na mesmaChangeSet. A API de catálogo avalia em qual ordem as alterações precisam ser aplicadas e faz essas alterações.
No entanto, se as solicitações forem feitas como conjuntos de alterações separados, não AWS Marketplace será possível iniciar solicitações de alteração conflitantes no mesmo produto. Nesses casos, AWS Marketplace retorna um ResourceInUseException erro.
-
Para modificar produtos de AMI e contêiner, a maioria das alterações pode ser feita sem erros, com as seguintes exceções:
-
Se duas solicitações forem iguais
ChangeTypeno mesmo produto, a segunda solicitação retornará um erro. -
Se uma solicitação for atualizar as informações da versão e a outra solicitar restringir ou adicionar uma versão, a segunda solicitação retornará um erro.
-
Se houver uma solicitação
PREPARING, outra solicitação poderá ser feita no mesmo produto. No entanto, uma alteração atualmente existenteAPPLYINGpode bloquear outras solicitações, retornando um erro.
-
-
Para outros tipos de produtos e mercados privados, você só pode ter uma única solicitação de um produto por vez. Se uma solicitação diferente para atualizar o mesmo produto for feita enquanto a primeira solicitação estiver em andamento, a segunda retornará um erro.
-
Se houver uma solicitação de algum produto pendente na equipe de operações do AWS Marketplace vendedor, qualquer outra solicitação desse produto retornará um erro.
Se você receber um ResourceInUseException erro em uma solicitação de alteração, poderá repetir a solicitação mais tarde. Dependendo do estado da solicitação em andamento, você também pode cancelar a primeira solicitação para permitir que a segunda solicitação reenviada seja concluída mais cedo.
Invocando vários tipos de alteração em um conjunto de alterações
Você pode usar a API de catálogo para combinar e encadear até 20 alterações em uma StartChangeSet solicitação direcionada a uma ou várias entidades diferentes.
Um caso de uso típico é criar um SaaSProduct@1.0 rascunho de produto, um Offer@1.0 rascunho de oferta e também preencher as informações de metadados do produto e da oferta. Isso é feito incluindo os quatro tipos de alteração a seguir em um conjunto de alterações:
-
CreateProductnaSaaSProduct@1.0Especifique o parâmetro
ChangeName. Em seguida, o produto criado nesse tipo de alteração pode ser referenciado no mesmo conjunto de alterações pelas alterações subsequentes.Por exemplo, .
CreateProductChange -
UpdateInformationnoSaaSProduct@1.0criado no mesmo conjunto de alteraçõesNo
Entity.Identifiercampo, você pode se referir ao produto criado pelo tipo deCreateProductalteração usando o nome da alteração neste formato:${ChangeName}.Entity.IdentifierPor exemplo, .
$CreateProductChange.Entity.Identifier -
CreateOfferonOffer@1.0vinculado aoSaaSProduct@1.0criado no mesmo conjunto de alteraçõesEspecifique o parâmetro
ChangeName. Em seguida, o produto criado nesse tipo de alteração pode ser referenciado no mesmo conjunto de alterações pelas alterações subsequentes. Por exemplo, .CreateOfferChangePara o
ProductIdparâmetro na carga útil do tipo deCreateOfferalteração, você também pode consultar o produto SaaS criadoCreateProductno tipo de alteração usando${ChangeName}.Entity.Identifiera sintaxe.Por exemplo, .
{"ProductId":"$CreateProductChange.Entity.Identifier"} -
UpdateInformationnoOffer@1.0criado no mesmo conjunto de alteraçõesNo
Entity.Identifiercampo, você pode se referir à oferta criada pelo tipo deCreateOfferalteração usando o nome da alteração neste formato:${ChangeName}.Entity.IdentifierPor exemplo, .
$CreateOfferChange.Entity.Identifier
Veja a seguir um exemplo de um conjunto de alterações combinado.
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" } } ] }
Trabalhando com o atributo Detalhes (Legado)
nota
Esta seção descreve o Details atributo legado em sua solicitação de alteração, que exige formatação adicional para os detalhes da alteração. Recomendamos usar o DetailsDocument atributo alternativo. Não requer formatação adicional e os detalhes da alteração não precisam ser alterados. Para exemplos do DetailsDocument atributo, consulte Como trabalhar com produtos do vendedor e Trabalhar com um mercado privado.
O Details atributo da StartChangeSet operação é um valor de string. Seu conteúdo são objetos JSON. Para colocar um objeto JSON em um atributo de string, você deve converter o objeto em uma string de linha única escapando de todos os caracteres de controle JSON e removendo quebras de linha.
Por exemplo, se você estiver usando a StartChangeSet operação com UpdateProcurementPolicy para desativar solicitações de usuários em seu mercado privado, faça uma solicitação como a seguinte.
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" } } ] }
Nesse caso, o objeto JSON que você usa para o Details atributo tem a seguinte aparência (antes da conversão em uma string).
{ "Configuration": { "PolicyResourceRequests": "Deny" } }
Mas o Details atributo requer uma string, não JSON. Depois de converter esse objeto JSON em uma string de linha única, ele se parece com o seguinte.
"{\"Configuration\" : {\"PolicyResourceRequests\" : \"Deny\"}}"
Com essa string, você pode criar a solicitação completa do conjunto de alterações, da seguinte maneira.
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" } } ] }
Geralmente, os exemplos nessa referência de API mostram o objeto JSON já convertido em uma string. Em alguns casos, amostras mais complicadas com novas linhas são incluídas para melhorar a compreensão.
Automatize a conversão de JSON em uma string
A conversão de um objeto JSON em uma string pode ser automatizada usando ferramentas como o jq, um processador JSONjq para converter um objeto JSON em uma string que pode ser usada no Details atributo.
DETAILS_JSON='{ "ProductTitle": "My Product Title", "ShortDescription": "My product short description.", "LongDescription": "My product long description." }'; DETAILS_JSON_STRING="$(echo "${DETAILS_JSON}" | jq 'tostring';)";
Se você ecoar"${DETAILS_JSON_STRING}", o resultado será a seguinte string com o JSON escapado corretamente: {\"ProductTitle\":\"My
Product\",\"ShortDescription\":\"My product short
description.\",\"LongDescription\":\"My product long
description.\"}
Usando DescribeEntity para obter informações sobre suas entidades
Você pode obter informações programaticamente sobre suas entidades existentes, incluindo produtos e mercado privado, por meio da API de catálogo.
A ListEntities ação retorna uma lista de entidades. Em seguida, você pode usar a DescribeEntity ação para obter detalhes sobre uma entidade individual. Isso pode ser diretamente útil, por exemplo, para catalogar os produtos que você vende. Também pode ser útil ao atualizar entidades, porque você pode obter o estado atual da entidade antes de atualizar apenas as partes que deseja atualizar.
O exemplo a seguir mostra o uso ListEntities para obter uma lista de produtos de contêiner e, em seguida, o uso DescribeEntity para obter informações sobre um dos produtos específicos.
POST /ListEntities HTTP/1.1 Content-type: application/json { "Catalog": "AWSMarketplace", "EntityType": "ContainerProduct" }
Para o tipo de entidade, você deve usar o tipo de entidade sem a versão. Ele retorna todas as entidades desse tipo (e não filtra pela versão).
Aqui está uma amostra da resposta à ListEntities ação.
{ "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..." }
Para obter os detalhes de um desses produtos, use a DescribeEntity ação. O exemplo a seguir mostra como obter detalhes sobre o primeiro produto devolvido acima.
GET /DescribeEntity?catalog=AWSMarketplace&entityId=example1-abcd-1234-5ef6-7890abcdef12HTTP/1.1
O seguinte mostra a resposta DescribeEntity a.
{ "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" } ] } }
nota
O DetailsDocument atributo contém os detalhes da entidade como um objeto JSON. O Details atributo legacy contém o mesmo objeto JSON que uma string.