

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](https://docs.aws.amazon.com/marketplace/latest/APIReference/Welcome.html).

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á.

# Trabalhe com soluções
<a name="work-with-solutions"></a>

Uma solução é uma coleção de produtos e serviços que trabalham juntos para resolver problemas específicos do cliente. As soluções podem incluir produtos do AWS Marketplace e produtos não pertencentes ao AWS Marketplace. As soluções ajudam você a mostrar como vários produtos se integram para abordar casos de uso específicos do setor. A solução descreve o problema do cliente, os casos de uso, os detalhes da integração e os produtos relacionados.

## Soluções no AWS Marketplace e na Central de Parceiros da AWS
<a name="solutions-in-marketplace-partner-central"></a>

Ao migrar do Partner Central 2.0 para o Partner Central 3.0, você é solicitado a criar uma conta da AWS e se registrar como vendedor do AWS Marketplace. Para obter mais informações, consulte [Registrar e criar seu perfil de vendedor](https://docs.aws.amazon.com/marketplace/latest/userguide/create-public-profile.html). Esse registro é necessário para:
+ Migre suas soluções atuais do Partner Central para o catálogo do AWS Marketplace (todas as soluções serão migradas para o `AWSMarketplace` catálogo)
+ Permita que suas soluções do AWS Marketplace funcionem com APIs do Partner Central, como [APIs de venda](https://docs.aws.amazon.com/partner-central/latest/APIReference/working-with-your-opportunities.html).

### Entendendo a vinculação e a migração de perfis
<a name="understanding-profile-linking-migration"></a>

Há dois cenários distintos para conectar suas contas do Partner Central e do AWS Marketplace:

**Somente vinculação de perfil** — Se você vincular suas contas do AWS Partner Central e da AWS sem migrar para o Partner Central 3.0, suas soluções do AWS Marketplace e as soluções do Partner Central permanecerão separadas. Você gerencia cada plataforma de forma independente.

**Migração de perfil** — Quando você migra para o Partner Central 3.0 com perfis de vendedor vinculados do AWS Marketplace:
+ Suas soluções do Partner Central 2.0 migram para o AWS Marketplace
+ Você gerencia soluções somente por meio do AWS Marketplace
+ As APIs do Partner Central podem acessar soluções migradas

**nota**  
Se você já vinculou suas contas da Central de Parceiros da AWS e da AWS (consulte [Vinculação da Central de Parceiros da AWS e contas da AWS](https://docs.aws.amazon.com/partner-central/latest/getting-started/account-linking.html)), você não precisa criar uma nova conta da AWS. No entanto, verifique se sua conta existente da AWS está registrada como vendedora do AWS Marketplace. Para disponibilizar sua solução publicamente no site do comprador do AWS Marketplace, você precisa de um perfil público como vendedor do AWS Marketplace. Para obter instruções de registro de vendedores no AWS Marketplace, consulte [Registrar e criar seu perfil de vendedor](https://docs.aws.amazon.com/marketplace/latest/userguide/create-public-profile.html).

### Disponibilização de soluções preexistentes do AWS Marketplace para as APIs do Partner Central
<a name="making-pre-existing-solutions-available"></a>

As soluções do AWS Marketplace que você criou antes da migração do perfil do Partner Central 3.0 não são reconhecidas automaticamente pelas APIs do Partner Central. Isso se aplica mesmo depois de concluir a migração e vincular sua conta da AWS a uma conta do Partner Central.

Para tornar uma solução de pré-migração existente visível para as APIs do Partner Central, atualize qualquer campo na solução. Você pode inserir as mesmas informações que estão lá atualmente. Repita esse processo para cada solução que você criou antes da migração do perfil do Partner Central 3.0.

Por exemplo, use o tipo de `UpdateInformation` alteração para atualizar o nome de uma solução com seu valor atual. Depois de atualizar uma solução uma vez, as APIs do Partner Central reconhecerão automaticamente quaisquer atualizações futuras dessa solução.

## Entidade de solução
<a name="solution-entity"></a>

Uma solução é um documento de marketing que ajuda os compradores a descobrir e entender suas ofertas. As soluções contêm título, descrição, casos de uso, produtos do AWS Marketplace e produtos que não são do AWS Marketplace. A solução é um tipo de entidade separado dos conjuntos de produtos, ofertas e ofertas. Cada solução tem sua própria experiência de descoberta e listagem, que os compradores podem pesquisar separadamente dos produtos individuais.

**Características principais**
+ Agrupe vários produtos, incluindo produtos do AWS Marketplace e produtos que não são do AWS Marketplace.
+ Crie uma experiência exclusiva de descoberta e listagem para os compradores.
+ Agrupe produtos que você possui com produtos de outros vendedores.

O tipo de entidade da solução é`Solution@1.0`.

**Identificadores de entidade**

As soluções usam o formato de `soln-*` identificador (por exemplo,`soln-abc123def456`).

**Formato ARN da entidade**

As soluções seguem o formato ARN padrão da AWS:

```
arn:{aws-partition}:aws-marketplace:{region}:{account-id}:{aws-marketplace-catalog}/Solution/{solution-id}
```

Exemplo:

```
arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/Solution/soln-abc123def456
```

## Introdução às soluções
<a name="getting-started-with-solutions"></a>

Esta seção fornece informações detalhadas sobre como criar e gerenciar soluções usando os [tipos de alteração](https://docs.aws.amazon.com/marketplace/latest/APIReference/API_Change.html) da API de AWS Marketplace catálogo.

Antes de começar, você deve ter o seguinte:
+ Registro de vendedor válido no AWS Marketplace e um perfil público. Para obter mais informações, consulte [Registrar e criar seu perfil de vendedor](https://docs.aws.amazon.com/marketplace/latest/userguide/create-public-profile.html).
+ Acesso à API e pré-requisitos preenchidos do vendedor. Para obter mais informações, consulte [Controle de acesso para a API do AWS Marketplace Catalog](https://docs.aws.amazon.com/marketplace/latest/APIReference/catalog-api-access-control.html).
+ Aprenda os conceitos básicos do uso da API do AWS Marketplace Catalog, consulte Como [usar a API do AWS Marketplace Catalog](https://docs.aws.amazon.com/marketplace/latest/APIReference/catalog-apis.html).

## Liste suas soluções
<a name="list-your-solutions"></a>

Para listar todas as soluções em sua conta, chame a operação da `ListEntities` API e `EntityType` defina como Solução.

**Solicitação**

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

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

**Resposta**

```
{
  "EntitySummaryList": [
    {
      "EntityArn": "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/Solution/soln-abc123456",
      "EntityId": "soln-abc123456",
      "EntityType": "Solution",
      "LastModifiedDate": "2024-10-10T19:50:43Z",
      "Name": "Test Solution 1",
      "Visibility": "Limited"
    }
  ],
  "NextToken": null
}
```

### Filtrar soluções por visibilidade
<a name="filter-solutions-by-visibility"></a>

Você pode filtrar soluções por visibilidade usando o `FilterList` parâmetro.

**Solicitação**

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

{
  "Catalog": "AWSMarketplace",
  "EntityType": "Solution",
  "FilterList": [
    {
      "Name": "Visibility",
      "ValueList": [
        "Public"
      ]
    }
  ]
}
```

## Obtenha detalhes da solução
<a name="get-solution-details"></a>

Para obter informações detalhadas sobre uma solução específica, chame a operação `DescribeEntity` da API.

**nota**  
A DescribeEntity resposta retorna um `EntityIdentifier` que combina uma `EntityId` com quatro `RevisionId.` soluções, `EntityId` é o ID da solução e `RevisionId` pode ser usada para um bloqueio otimista. Para obter mais informações, consulte [Identificadores](https://docs.aws.amazon.com/marketplace/latest/APIReference/catalog-apis.html#identifier).

**Solicitação**

```
GET /DescribeEntity?catalog=AWSMarketplace&entityId=soln-abc123456 HTTP/1.1
```

**Resposta**

```
{
  "Details": "{...}",
  "DetailsDocument": {
    "Lifecycle": {
      "Visibility": "Limited"
    },
    "Identifiers": {
      "Id": "soln-abc123456"
    },
    "Presentation": {
      "Title": "My Solution",
      "Name": "solution_for_customer_X",
      "ShortDescription": "Solution value proposition",
      "LongDescription": "Detailed solution description",
      "LogoUrl": "https://s3.amazonaws.com/logo.jpg",
      "UseCases": [
        {
          "Group": "advertising_and_marketing",
          "SubGroup": "ad_intelligence_and_measurement",
          "Item": "amazon_ads_insights",
          "Description": "Use case description"
        }
      ]
    },
    "RelatedProducts": {
      "AwsMarketplaceProducts": [
        {
          "ProductId": "prod-123"
        }
      ],
      "IntegrationDescription": "How products work together",
      "NonAwsMarketplaceProducts": [
        {
          "Type": "Hardware",
          "Title": "A hardware product",
          "Url": "https://example.com",
          "Description": "My hardware product description"
        }
      ]
    },
    "BuyerEngagement": [
      {
        "EngagementOption": "RequestPrivateOffer"
      }
    ]
  },
  "EntityArn": "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/Solution/soln-abc123456",
  "EntityIdentifier": "soln-abc123456@12",
  "EntityType": "Solution@1.0",
  "LastModifiedDate": "2025-04-22T01:02:48Z"
}
```

## Listar o histórico de alterações de uma solução
<a name="list-change-history-for-solution"></a>

Para ver o histórico de alterações de uma solução específica, chame a operação da `ListChangeSets` API com um filtro de entidade.

**Sintaxe da solicitação**

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

{
  "Catalog": "AWSMarketplace",
  "FilterList": [
    {
      "Name": "EntityId",
      "ValueList": [
        "soln-abc123456"
      ]
    }
  ]
}
```

## Marque soluções e conjuntos de mudanças
<a name="tag-solutions-and-change-sets"></a>

Você pode adicionar tags às soluções e aos conjuntos de alterações durante a criação ou atualizá-los posteriormente.

**Etiqueta durante a criação**

Você pode adicionar `EntityTags` somente ao tipo de `CreateSolution` alteração, não a outros tipos de alteração da solução. Você pode adicionar `ChangeSetTags` a qualquer `StartChangeSet` carga útil.

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

{
  "Catalog": "AWSMarketplace",
  "ChangeSet": [
    {
      "ChangeType": "CreateSolution",
      "Entity": {
        "Type": "Solution@1.0"
      },
      "DetailsDocument": {
        "Name": "Test solution resource name"
      },
      "EntityTags": [
        {
          "Key": "Team",
          "Value": "Solutions"
        }
      ]
    }
  ],
  "ChangeSetTags": [
    {
      "Key": "Environment",
      "Value": "Production"
    }
  ]
}
```

**Gerencie tags em recursos existentes**

Use as operações `TagResource` e a `UntagResource` API para gerenciar tags em soluções e conjuntos de alterações existentes. Use `ListTagsForResource` para visualizar as tags atuais.

Para obter mais informações, consulte [Gerenciando tags em recursos](https://docs.aws.amazon.com/marketplace/latest/APIReference/catalog-api-access-control.html#managing-tags-on-resources) e [Adicionando tags a uma entidade e conjunto de alterações durante a criação](https://docs.aws.amazon.com/marketplace/latest/APIReference/catalog-api-access-control.html#example-adding-tags-entity-creation).

## Criar uma solução
<a name="create-solution"></a>

Você pode usar o tipo de `CreateSolution` alteração para criar um novo documento de solução com apenas uma ID e nome da solução. Outros valores ainda não foram preenchidos.

Quando sua solicitação é processada com sucesso, o AWS Marketplace cria uma solução com `Draft` status para você. Essa solução incompleta não está visível para os compradores no AWS Marketplace.

Em seguida, você usa outros tipos de alteração para concluir a solução: `UpdateInformation``UpdateRelatedProducts`,, `UpdateBuyerEngagementOptions` (opcional para criar uma `Limited` solução) `ReleaseSolution` e. O tipo de `ReleaseSolution` alteração valida se todos os campos obrigatórios necessários para uma `Limited` solução estão presentes na solução e, em seguida, os move para a `Limited` visibilidade.

**nota**  
Para mover uma solução para o status Público ou alterar o status de uma solução, use o tipo de `UpdateVisibility` alteração depois de fornecer os valores necessários.

**Sintaxe da solicitação**

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

{
  "Catalog": "AWSMarketplace",
  "ChangeSet": [
    {
      "ChangeType": "CreateSolution",
      "Entity": {
        "Type": "Solution@1.0"
      },
      "ChangeName": "CreateSolutionChange",
      "DetailsDocument": {
        "Name": "solution_for_customerX_en",
        "Title": "New Partner Solution"
      }
    }
  ]
}
```

Forneça informações sobre os campos para adicionar o tipo de `CreateSolution` alteração:
+ `Entity`(objeto) (obrigatório) — O tipo nomeado da entidade da solução que está sendo criada.
  + `Type`(string) (obrigatório) — O `Type` must be`Solution@1.0`.
+ `DetailsDocument`(objeto) (obrigatório) — Os detalhes da solicitação.
  + `Name`(string) (obrigatório) — Nome do recurso da AWS somente para referência do vendedor (não visível para os compradores). Tamanho máximo: 100 caracteres. Não deve conter espaços em branco à esquerda ou à direita, quebras de linha ou caracteres de controle. Você também pode atualizar o bloco da solução por meio do tipo de `UpdateInformation` alteração.
  + `Title`(string) (opcional) — O título da sua solução. Tamanho máximo: 255 caracteres. Não deve conter espaços em branco à esquerda ou à direita, quebras de linha ou caracteres de controle. Você também pode definir ou atualizar o título da solução por meio do tipo de `UpdateInformation` alteração.

**Sintaxe de resposta**

Um conjunto de alterações é criado para sua solicitação. A resposta fornece a você o `ChangeSetId` e`ChangeSetArn`:

```
{
  "ChangeSetId": "example123456789012abcdef",
  "ChangeSetArn": "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/ChangeSet/example123456789012abcdef"
}
```

A solicitação de alteração é adicionada a uma fila e processada. Você pode verificar o status usando o portal de gerenciamento do AWS Marketplace ou a operação `DescribeChangeSet` da API.

Quando a solicitação for concluída com sucesso (se `Status` for o caso`SUCCEEDED`), uma nova ID da solução será gerada.

**Erros assíncronos**

`CreateSolution`ações retornam erros específicos, além de erros [assíncronos comuns](#solution-error-codes). Você recebe esses erros `DescribeChangeSet` após o término do processamento de um conjunto de alterações. Para saber como obter o status da solicitação de alteração, consulte Como [trabalhar com conjuntos de alterações](https://docs.aws.amazon.com/marketplace/latest/APIReference/catalog-apis.html#working-with-change-sets).


| Código de erro | Mensagem de erro | 
| --- | --- | 
| NOME\_INVÁLIDO | O comprimento do nome da solução não é válido. Insira um nome que tenha entre 1 e 100 caracteres e tente novamente. | 
| NOME\_AUSENTE | É necessário um valor de nome. Especifique um valor de nome e tente novamente. | 
| TÍTULO\_INVÁLIDO | O tamanho do título da solução não é válido. Insira um título que tenha entre 1 e 255 caracteres e tente novamente. | 

## Atualizar as informações da solução
<a name="update-solution-information"></a>

Se você já tem uma solução no AWS Marketplace, pode usar a API do catálogo para atualizar as informações da solução.

Para atualizar as informações da solução, chame a operação da `StartChangeSet` API com o tipo de `UpdateInformation` alteração e seus detalhes atualizados. Veja o exemplo a seguir.

**nota**  
Os tipos de `UpdateInformation` alteração se comportam como operações HTTP PATCH para atributos de nível superior. Como os campos são atualizados:  
Se um atributo de nível superior estiver presente no`DetailsDocument`, o fluxo de trabalho valida sua entrada e substitui os valores existentes.
Se um campo de nível superior não estiver presente no`DetailsDocument`, o valor existente será preservado.
Para cancelar a definição de um campo opcional, envie um JSON explícito `null` para esse campo.

O AWS Marketplace verifica e ingere logotipos e ativos de mídia promocional em um local da AWS Marketplace-owned . DescribeEntity retorna um URL acessível para os arquivos ingeridos, não sua entrada original de StartChangeSet. Para ver seus URLs originais enviados, use a DescribeChangeSet API.

**nota**  
Quando você modifica arquivos de `PromotionalMedia` ativos (fornecendo novos URLs) em uma `Public` solução, é `UpdateInformation` necessária uma análise manual da equipe de operações do vendedor do AWS Marketplace. Isso aumenta o tempo de execução. Nesse cenário, use `UpdateInformation` separadamente em seu próprio conjunto de alterações.

**Sintaxe da solicitação**

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

{
  "Catalog": "AWSMarketplace",
  "ChangeSet": [
    {
      "ChangeType": "UpdateInformation",
      "Entity": {
        "Identifier": "soln-1234abcd",
        "Type": "Solution@1.0"
      },
      "DetailsDocument": {
        "Name": "project_cold_harbor",
        "Title": "My Awesome Solution",
        "ShortDescription": "Solution value proposition",
        "LongDescription": "Detailed solution description explaining how this addresses customer needs",
        "LogoUrl": "https://s3.amazonaws.com/awsmp-logos/logo.jpg",
        "PromotionalMedia": [
          {
            "Type": "Image",
            "Url": "https://s3.amazonaws.com/awsmp-media/image.jpg",
            "Title": "Sample image",
            "Description": "Sample image description"
          },
          {
            "Type": "Video",
            "Url": "https://s3.amazonaws.com/awsmp-media/video.mp4",
            "Title": "Sample video",
            "PreviewUrl": "https://s3.amazonaws.com/awsmp-media/preview.png",
            "Description": "Sample video description"
          }
        ],
        "AdditionalResources": [
          {
            "Text": "Troubleshooting guide",
            "Url": "https://example.com/troubleshooting"
          }
        ],
        "UseCases": [
          {
            "Group": "advertising_and_marketing",
            "SubGroup": "ad_intelligence_and_measurement",
            "Item": "amazon_ads_insights",
            "Description": "Highlight description of this use case"
          }
        ]
      }
    }
  ]
}
```

Forneça informações sobre os campos para adicionar o tipo de `UpdateInformation` alteração:
+ `Entity`(objeto) (obrigatório) — O tipo nomeado de entidade que está sendo atualizado.
  + `Identifier`(string) (obrigatório) — O ID da solução.
  + `Type`(string) (obrigatório) — Deve ser`Solution@1.0`.
+ `DetailsDocument`(objeto) (obrigatório) — Os detalhes da solicitação, incluindo as informações que você deseja atualizar para sua solução. Cada campo é opcional, mas você deve incluir pelo menos uma alteração para atualizar.
  + `Name`(string) — O nome do recurso da solução, visível somente para o vendedor por meio das operações de leitura da API de catálogo, não visível para os compradores. Tamanho máximo: 100 caracteres. Não deve conter espaços em branco à esquerda ou à direita, quebras de linha ou caracteres de controle.
  + `Title`(string) — O título da solução a ser exibida aos compradores. Tamanho máximo: 255 caracteres. Não deve conter espaços em branco à esquerda ou à direita, quebras de linha ou caracteres de controle.
  + `ShortDescription`(string) — A descrição da proposta de valor dos principais aspectos da solução a ser exibida aos compradores. Isso geralmente é de 2 a 3 frases. Tamanho máximo: 1000 caracteres. Não deve conter espaços em branco à esquerda ou à direita nem caracteres de controle.
  + `LongDescription`(string) — A descrição mais longa dessa solução a ser exibida aos compradores. Isso geralmente é de 1 a 3 parágrafos. Tamanho máximo: 5000 caracteres. Não deve conter espaços em branco à esquerda ou à direita nem caracteres de controle.
  + `LogoUrl`(string) — O URL de uma imagem em um bucket do Amazon S3 acessível ao público ou em um URL pré-assinado do S3. Deve ser um URL direto do S3 (não atrás do CloudFront API Gateway). Tamanho máximo: 2048 caracteres. Para obter as especificações do logotipo, consulte os [requisitos do logotipo da empresa e do produto](https://docs.aws.amazon.com/marketplace/latest/userguide/product-submission.html#seller-and-product-logos).
  + `PromotionalMedia`(matriz de objetos) — A lista de imagens e vídeos promocionais. Máximo de 15 itens (5 vídeos e 10 imagens). Para especificações de mídia promocional, consulte [Melhore seu produto do AWS Marketplace com mídia promocional](https://docs.aws.amazon.com/marketplace/latest/userguide/promotional-media.html).
    + `Type`(string) (obrigatório) — `Image` Ou`Video`.
    + `Url`(string) (obrigatório) — O URL do arquivo de mídia. Deve ser uma URL direta do S3 ou uma URL pré-assinada do S3. Tamanho máximo: 2048 caracteres. Deve ser um URL https.
    + `Title`(string) (obrigatório) — O título da mídia. Tamanho máximo: 100 caracteres. Não deve conter espaços em branco à esquerda ou à direita, quebras de linha ou caracteres de controle.
    + `Description`(string) (obrigatório) — A descrição da mídia. Extensão máxima: 200 caracteres. Não deve conter espaços em branco à esquerda ou à direita nem caracteres de controle.
    + `PreviewUrl`(string) (opcional) — Somente para vídeos, o URL de uma imagem de pré-visualização. Tamanho máximo: 2048 caracteres. Deve ser um URL https.
  + `AdditionalResources`(matriz de objetos) — A lista de referências a recursos adicionais. Máximo de 8 itens.
    + `Text`(string) — O nome ou título do recurso. Tamanho máximo: 500 caracteres. Não deve conter espaços em branco à esquerda ou à direita, quebras de linha ou caracteres de controle.
    + `Url`(string) — O URL do recurso. Tamanho máximo: 2048 caracteres. Deve ser um URL https.
  + `UseCases`(matriz de objetos) — A lista de casos de uso abordados por essa solução. Máximo de 3 itens. Para categorias de casos de uso válidas (uma combinação de Grupo e Item) SubGroup, consulte a [lista de categorias de casos de uso](https://d1z4dgsxp8pfa2.cloudfront.net/awsmp-solutions/use-case-categories-list.json) para ver os valores ativos aceitos e seus [rótulos de introdução](https://d1z4dgsxp8pfa2.cloudfront.net/awsmp-solutions/i18n/en.json). A combinação de Grupo SubGroup, e Item deve ser um item válido na lista de categorias de casos de uso.
    + `Group`(string) — Categoria da indústria ou tecnologia. Deve ser um dos valores do Grupo na [lista de categorias de casos de uso](https://d1z4dgsxp8pfa2.cloudfront.net/awsmp-solutions/use-case-categories-list.json).
    + `SubGroup`(string) — Grupo de casos de uso dentro da categoria. Deve ser um dos SubGroup valores na [lista de categorias de casos de uso](https://d1z4dgsxp8pfa2.cloudfront.net/awsmp-solutions/use-case-categories-list.json).
    + `Item`(string) — Caso de uso específico. Deve ser um dos valores do item na [lista de categorias de casos de uso](https://d1z4dgsxp8pfa2.cloudfront.net/awsmp-solutions/use-case-categories-list.json).
    + `Description`(string) — Descrição de como essa solução aborda o caso de uso. Tamanho máximo: 500 caracteres. Não deve conter espaços em branco à esquerda ou à direita nem caracteres de controle.

Para obter informações sobre URLs pré-assinadas, consulte [Compartilhamento de objetos com URLs pré-assinadas](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ShareObjectPreSignedURL.html).

**nota**  
Ao chamar UpdateInformation change type, você sempre pode fornecer um subconjunto de campos a serem atualizados no `DetailsDocument` objeto. No entanto, antes de mover uma solução de `Draft` para`Limited`, os seguintes campos devem ser definidos corretamente: `Title` `ShortDescription``LongDescription`,, `LogoUrl` e.  
No entanto, ao atualizar os campos existentes na solução, você pode incluir somente os atributos que precisam ser alterados no `DetailsDocument` objeto do tipo de `UpdateInformation` alteração.

**Sintaxe de resposta**

Um conjunto de alterações é criado para sua solicitação. A resposta a essa solicitação fornece a `ChangeSetId` e `ChangeSetArn` para o conjunto de alterações e tem a seguinte aparência.

```
{
  "ChangeSetId": "example123456789012abcdef",
  "ChangeSetArn": "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/ChangeSet/example123456789012abcdef"
}
```

A solicitação de alteração é adicionada a uma fila e processada. Para verificar o status da solicitação, use o portal de gerenciamento do AWS Marketplace ou chame a `DescribeChangeSet` API.

Depois de acionar esse tipo de alteração com `PromotionalMedia` ativos modificados para uma `Public` solução, ele pode levar até 37 dias para ser concluído. Isso inclui o tempo que a equipe de operações de vendedores do AWS Marketplace precisa analisar, auditar e aprovar.

**Erros assíncronos**

Além dos erros [assíncronos comuns, os erros](#solution-error-codes) a seguir são específicos de `UpdateInformation` ações na API do AWS Marketplace Catalog. Esses erros são retornados quando você liga `DescribeChangeSet` após o processamento de um conjunto de alterações. Para obter mais informações sobre como usar `DescribeChangeSet` para obter o status de uma solicitação de alteração, consulte Como [trabalhar com conjuntos de alterações](https://docs.aws.amazon.com/marketplace/latest/APIReference/catalog-apis.html#working-with-change-sets).


| Código de erro | Mensagem de erro | 
| --- | --- | 
| DESCRIÇÃO\_CURTA INVÁLIDA | O ShortDescription comprimento da solução não é válido. Insira um ShortDescription que tenha entre 1 e 1000 caracteres e tente novamente. | 
| DESCRIÇÃO\_LONGA INVÁLIDA | O LongDescription comprimento da solução não é válido. Insira um LongDescription que tenha entre 1 e 5000 caracteres e tente novamente. | 
| NOME\_INVÁLIDO | O comprimento do nome da solução não é válido. Insira um nome que tenha entre 1 e 100 caracteres e tente novamente. | 
| TÍTULO\_INVÁLIDO | O tamanho do título da solução não é válido. Insira um título que tenha entre 1 e 255 caracteres e tente novamente. | 
| RECURSOS\_ADICIONAIS INVÁLIDOS | A solução AdditionalResources [%d] .O tamanho do texto não é válido. Insira um texto entre 1 e 500 caracteres e tente novamente. | 
| RECURSOS\_ADICIONAIS INVÁLIDOS | Os seguintes URLs nos recursos adicionais fornecidos estão inacessíveis: [%s]. Forneça URLs válidos e acessíveis | 
| RECURSOS\_ADICIONAIS INVÁLIDOS | É necessário um valor de URL. Especifique um valor de URL e tente novamente. | 
| RECURSOS\_ADICIONAIS INVÁLIDOS | O texto não pode faltar. Forneça um texto | 
| CASO\_DE\_USO INVÁLIDO | A solução UseCases [%d] .O comprimento da descrição não é válido. Insira uma descrição que tenha entre 1 e 500 caracteres e tente novamente. | 
| CASO\_DE\_USO INVÁLIDO | UseCases[%d] .Group: O grupo fornecido (%s) é inválido. Forneça um grupo válido. | 
| CASO\_DE\_USO INVÁLIDO | UseCases[%d]. SubGroup: O grupo fornecido (%s) é inválido. Forneça um válido SubGroup. | 
| CASO\_DE\_USO INVÁLIDO | UseCases[%d] .Item: O item fornecido (%s) é inválido. Forneça um item válido. | 
| CASO\_DE\_USO INVÁLIDO | UseCases[%d] .Item: o caso de uso fornecido está inativo. Forneça um caso de uso ativo | 
| CASO\_DE\_USO INVÁLIDO | UseCases[%d] .Grupo: O grupo não pode faltar. Forneça um grupo. | 
| CASO\_DE\_USO INVÁLIDO | UseCases[%d]. SubGroup: SubGroup não pode faltar. Forneça um SubGroup. | 
| CASO\_DE\_USO INVÁLIDO | UseCases[%d] .Item: SubGroup não pode faltar. Forneça um item. | 
| MÍDIA\_INVÁLIDA | A solução PromotionalMedia [%d] .O tamanho do título não é válido. Insira um título que tenha entre 1 e 100 caracteres e tente novamente. | 
| MÍDIA\_INVÁLIDA | A solução PromotionalMedia [%d] .O comprimento da descrição não é válido. Insira uma descrição que tenha entre 1 e 200 caracteres e tente novamente. | 
| MÍDIA\_INVÁLIDA | URL inválida: %s Forneça uma nova URL para mídia armazenada no S3. | 
| MÍDIA\_INVÁLIDA | Local da mídia não acessível: %s Forneça um URL novo e acessível para a mídia armazenada em um dos seguintes locais: [S3]. | 
| MÍDIA\_INVÁLIDA | O tamanho da imagem excede %s. Forneça uma imagem abaixo de %s. | 
| MÍDIA\_INVÁLIDA | O tamanho do vídeo excede %s. Forneça um vídeo abaixo de %s. | 
| MÍDIA\_INVÁLIDA | O tamanho do logotipo excede %s. Forneça um logotipo abaixo de %s. | 
| MÍDIA\_INVÁLIDA | Malware detectado em %s. Forneça mídia sem malware. | 
| MÍDIA\_INVÁLIDA | Conteúdo impróprio: %s detectado. Forneça mídia sem conteúdo impróprio | 
| MÍDIA\_INVÁLIDA | Conteúdo explícito em %s: '{ExplicitContent}' detectado. Forneça mídia sem conteúdo explícito. | 
| MÍDIA\_INVÁLIDA | PromotionalMedia[%s] .Url: %s não está em um formato compatível (%s). Use uma imagem bem formada em um formato compatível: [JPEG, PNG]. | 
| MÍDIA\_INVÁLIDA | PromotionalMedia[%s] .Url: %s não está em um formato compatível (%s). Use um vídeo bem formado em um formato compatível: [MP4, MOV]. | 
| MÍDIA\_INVÁLIDA | LogoUrl em %s tem proporção inválida. Forneça uma imagem com proporção de 1:1 (quadrado) ou 2:1 (amplo). | 
| MÍDIA\_INVÁLIDA | Logotipo: %s tem dimensões inválidas. Forneça uma imagem entre 120x120 e 1080x1080 pixels. | 
| MÍDIA\_INVÁLIDA | PromotionalMedia[%d] .Type não é suportado. Forneça PromotionalMedia em um tipo compatível: %s | 
| MÍDIA\_DUPLICADA | Mídia duplicada detectada: [%s] Forneça itens de mídia sem duplicatas. | 
| MÍDIA\_INVÁLIDA | PromotionalMedia[%d] .Url: malware detectado em %s. Forneça mídia sem malware. | 
| MUITOS\_ITENS | Não forneça mais do que %d %s. | 

## Atualizar produtos relacionados
<a name="update-related-products"></a>

Você pode usar a API do Catálogo para atualizar os produtos e serviços incluídos na sua solução, incluindo produtos do AWS Marketplace e produtos que não são do AWS Marketplace.

Para atualizar produtos relacionados, chame a operação da `StartChangeSet` API com o tipo de `UpdateRelatedProducts` alteração, conforme mostrado no exemplo a seguir.

**nota**  
O tipo de `UpdateRelatedProducts` alteração se comporta como uma operação HTTP PATCH para atributos de nível superior. Você pode fornecer todos os tipos de produtos atuais do AWS Marketplace como `AwsMarketplaceProducts` em`UpdateRelatedProducts`.

**Sintaxe da solicitação**

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

{
  "Catalog": "AWSMarketplace",
  "ChangeSet": [
    {
      "ChangeType": "UpdateRelatedProducts",
      "Entity": {
        "Type": "Solution@1.0",
        "Identifier": "soln-123456"
      },
      "DetailsDocument": {
        "IntegrationDescription": "How to use the products in this solution (usage guide)",
        "AwsMarketplaceProducts": [
          {
            "ProductId": "prod-123"
          },
          {
            "ProductId": "prod-456"
          }
        ],
        "NonAwsMarketplaceProducts": [
          {
            "Type": "Hardware",
            "Title": "Diamond engine",
            "Description": "Hardware details",
            "Url": "https://example.com/hardware-product-specs.html"
          }
        ]
      }
    }
  ]
}
```

Forneça informações sobre os campos para adicionar o tipo de `UpdateRelatedProducts` alteração:
+ `Entity`(objeto) (obrigatório) — O tipo nomeado de entidade que está sendo atualizado.
  + `Identifier`(string) (obrigatório) — O ID da solução.
  + `Type`(string) (obrigatório) — Deve ser`Solution@1.0`.
+ `DetailsDocument`(objeto) (obrigatório) — Os detalhes da solicitação. Cada campo é opcional, mas você deve incluir pelo menos uma alteração para atualizar.
  + `IntegrationDescription`(string) — Descrição de como os produtos funcionam juntos nessa solução. Tamanho máximo: 5000 caracteres. Não deve conter espaços em branco à esquerda ou à direita nem caracteres de controle.
  + `AwsMarketplaceProducts`(matriz de objetos) — produtos do AWS Marketplace incluídos nesta solução. Máximo de 5 itens
    + `ProductId`(string) — ID do produto do AWS Marketplace (um UUID ou uma string começando com`prod-`). Tamanho máximo: 50 caracteres.
  + `NonAwsMarketplaceProducts`(matriz de objetos) — Produtos não disponíveis no AWS Marketplace. Máximo de 5 itens.
    + `Type`(string) (obrigatório) — Tipo do produto. Valores possíveis:`Software`,`Consulting`,`Hardware`,`Communication`,`Professional Service`,`Managed Service`,`Value-Added Resale`, `Training`
    + `Title`(string) (obrigatório) — Título do produto. Tamanho máximo: 255 caracteres. Não deve conter espaços em branco à esquerda ou à direita, quebras de linha ou caracteres de controle.
    + `Description`(string) (opcional) — Descrição do produto. Tamanho máximo: 220 caracteres. Não deve conter espaços em branco à esquerda ou à direita nem caracteres de controle.
    + `Url`(string) (opcional) — URL para obter mais informações sobre o produto. Tamanho máximo: 2048 caracteres. Deve ser um URL https.

**Sintaxe de resposta**

Um conjunto de alterações é criado para sua solicitação. A resposta a essa solicitação fornece a `ChangeSetId` e `ChangeSetArn` para o conjunto de alterações e tem a seguinte aparência.

```
{
  "ChangeSetId": "example123456789012abcdef",
  "ChangeSetArn": "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/ChangeSet/example123456789012abcdef"
}
```

A solicitação de alteração é adicionada a uma fila e processada.

Para verificar o status da solicitação, use o portal de gerenciamento do AWS Marketplace ou chame a `DescribeChangeSet` API.

**Erros assíncronos**

Além dos erros [assíncronos comuns, os erros](#solution-error-codes) a seguir são específicos de `UpdateRelatedProducts` ações na API do AWS Marketplace Catalog. Esses erros são retornados quando você liga `DescribeChangeSet` após o processamento de um conjunto de alterações. Para obter mais informações sobre como usar `DescribeChangeSet` para obter o status de uma solicitação de alteração, consulte Como [trabalhar com conjuntos de alterações](https://docs.aws.amazon.com/marketplace/latest/APIReference/catalog-apis.html#working-with-change-sets).


| Código de erro | Mensagem de erro | 
| --- | --- | 
| SOLUÇÃO\_DE\_OPERATION\_UPDATE\_RELATED\_PRODUCTS\_INCOMPATIBLE\_UPDATE\_RELATED\_PRODUCTS\_ | A operação para atualizar produtos relacionados não é compatível com soluções públicas. Para fazer essa alteração, primeiro altere a visibilidade da solução para limitada e tente novamente. | 
| INVÁLIDO\_ AWS\_MARKETPLACE\_PRODUCTS | O produto '%s' do AWS Marketplace não está disponível para sua conta. Escolha um produto público ou um produto limitado ao qual você tenha acesso à lista de permissões ou entre em contato com o vendedor para solicitar acesso. | 
| INVÁLIDO\_ AWS\_MARKETPLACE\_PRODUCTS | O tipo de produto especificado '%s' não é suportado. Forneça um desses tipos de produto válidos: [AmiProduct, SaasProduct,, ContainerProduct, MachineLearningProduct, ProfessionalServicesProduct, DataProduct] e tente novamente. | 
| INVÁLIDO\_ AWS\_MARKETPLACE\_PRODUCTS | Produto '%s' não encontrado. Forneça uma ID de produto válida no mesmo catálogo. | 
| INVÁLIDO\_NÃO\_ AWS\_MARKETPLACE\_PRODUCTS | Os URLs de produtos especificados do Non-AWS Marketplace não estão acessíveis: [%s]. Verifique se os URLs são válidos e acessíveis ao público e tente novamente. | 
| DESCRIÇÃO\_DE\_INTEGRAÇÃO INVÁLIDA | Forneça uma solução IntegrationDescription entre 1 e 5000 caracteres. | 
| INVÁLIDO\_NÃO\_ AWS\_MARKETPLACE\_PRODUCTS | A solução NonAwsMarketplaceProduct [%d] .O tamanho do título não é válido. Insira uma descrição que tenha entre 1 e 255 caracteres e tente novamente. | 
| INVÁLIDO\_NÃO\_ AWS\_MARKETPLACE\_PRODUCTS | A solução NonAwsMarketplaceProduct [%d] .O comprimento da descrição não é válido. Insira uma descrição entre 1 e 220 caracteres e tente novamente. | 
| INVÁLIDO\_NÃO\_ AWS\_MARKETPLACE\_PRODUCTS | A solução NonAwsMarketplaceProduct [%d] .O tamanho do tipo não é válido. Insira um Tipo que tenha entre 1 e 50 caracteres e tente novamente. | 
| INVÁLIDO\_NÃO\_ AWS\_MARKETPLACE\_PRODUCTS | NonAwsMarketplaceProduct[%d] .Type não é um tipo de produto válido que não seja do AWS Marketplace. Forneça um dos seguintes tipos de produtos que não são do AWS Marketplace: [%s] | 
| INVÁLIDO\_NÃO\_ AWS\_MARKETPLACE\_PRODUCTS | Um valor de NonAwsMarketplaceProduct [%d] .Title é obrigatório. Especifique um valor de título e tente novamente. | 
| INVÁLIDO\_NÃO\_ AWS\_MARKETPLACE\_PRODUCTS | Um valor de NonAwsMarketplaceProduct [%d] .Type é obrigatório. Especifique um valor de Tipo e tente novamente. | 
| MUITOS PRODUTOS | O número máximo de produtos do AWS Marketplace que você pode vincular é %d. Remova os produtos vinculados existentes antes de adicionar novos. | 
| MUITOS PRODUTOS | O número máximo de nenhum produto do AWS Marketplace que você pode adicionar é %d. Remova produtos não existentes do AWS Marketplace antes de adicionar novos. | 
| INVÁLIDO\_ AWS\_MARKETPLACE\_PRODUCTS | IDs duplicadas de produtos do AWS Marketplace não são permitidas. Cada ID de produto deve ser exclusiva em sua solução. | 
| OPERAÇÃO\_REMOVE\_INVÁLIDA | Operação inválida, você não pode remover todos os produtos. | 

## Libere uma solução
<a name="release-solution"></a>

Você pode usar a API do Catalog para publicar uma `Draft` solução com `Limited` visibilidade no AWS Marketplace.

O tipo de `ReleaseSolution` alteração valida que todos os campos obrigatórios de uma `Limited` solução estão presentes. Em seguida, ele move a solução da `Draft` `Limited` visibilidade. Quando uma solução está em `Limited` visibilidade, você não pode movê-la de volta à `Draft` visibilidade.

Para liberar uma solução, chame a operação da `StartChangeSet` API com o tipo de `ReleaseSolution` alteração, conforme mostrado no exemplo a seguir.

**Sintaxe da solicitação**

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

{
  "Catalog": "AWSMarketplace",
  "ChangeSet": [
    {
      "ChangeType": "ReleaseSolution",
      "Entity": {
        "Type": "Solution@1.0",
        "Identifier": "soln-1234abcd"
      },
      "DetailsDocument": {}
    }
  ]
}
```

Forneça informações sobre os campos para adicionar o tipo de `ReleaseSolution` alteração:
+ `Entity`(objeto) (obrigatório) — O tipo nomeado da entidade que está sendo liberada.
  + `Identifier`(string) (obrigatório) — O ID da solução.
  + `Type`(string) (obrigatório) — Deve ser`Solution@1.0`.
+ `DetailsDocument`(objeto) (obrigatório) — Deve ser um objeto vazio. O tipo de alteração `ReleaseSolution` não aceita nenhum detalhe.

**Sintaxe de resposta**

Um conjunto de alterações é criado para sua solicitação. A resposta a essa solicitação fornece a `ChangeSetId` e `ChangeSetArn` para o conjunto de alterações e tem a seguinte aparência.

```
{
  "ChangeSetId": "example123456789012abcdef",
  "ChangeSetArn": "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/ChangeSet/example123456789012abcdef"
}
```

A solicitação de alteração é adicionada a uma fila e processada. Você pode verificar o status da solicitação por meio do Portal de Gerenciamento do AWS Marketplace ou diretamente por meio da API do Catálogo usando a operação da `DescribeChangeSet` API.

**Erros assíncronos**

Além dos erros [assíncronos comuns, os erros](#solution-error-codes) a seguir são específicos de `ReleaseSolution` ações na API do AWS Marketplace Catalog. Esses erros são retornados quando você liga `DescribeChangeSet` após o processamento de um conjunto de alterações. Para obter mais informações sobre como usar `DescribeChangeSet` para obter o status de uma solicitação de alteração, consulte Como [trabalhar com conjuntos de alterações](https://docs.aws.amazon.com/marketplace/latest/APIReference/catalog-apis.html#working-with-change-sets).


| Código de erro | Mensagem de erro | 
| --- | --- | 
| CAMPOS\_OBRIGATÓRIOS AUSENTES | A solicitação não tem os parâmetros obrigatórios: [%s]. Especifique valores para todos os parâmetros necessários e tente novamente. | 
| SOLUÇÃO\_OPERATION\_RELEASE\_INCOMPATÍVEL | O tipo de alteração só pode ser invocado no status Soluções em Rascunho. Atualize a visibilidade da solução para Rascunho e tente novamente. | 

## Atualizar as opções de engajamento do comprador
<a name="update-buyer-engagement-options"></a>

Você pode usar a API do Catálogo para configurar como os compradores interagem com você sobre sua solução.

**nota**  
Para usar esse tipo de alteração, você deve ter uma inscrição ativa no programa [APN Customer Engagements (](https://aws.amazon.com/partners/programs/ace/)ACE). Você também deve vincular sua conta da AWS à sua conta da Central de Parceiros da AWS que está inscrita no ACE. Para obter instruções, consulte Como [vincular contas da AWS Partner Central e da AWS](https://docs.aws.amazon.com/partner-central/latest/getting-started/account-linking.html).

Para atualizar as opções de engajamento do comprador, chame a operação da `StartChangeSet` API com o tipo de `UpdateBuyerEngagementOptions` alteração, conforme mostrado no exemplo a seguir.

**Sintaxe da solicitação**

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

{
  "Catalog": "AWSMarketplace",
  "ChangeSet": [
    {
      "ChangeType": "UpdateBuyerEngagementOptions",
      "Entity": {
        "Type": "Solution@1.0",
        "Identifier": "soln-1234abcd"
      },
      "DetailsDocument": [
        {
          "EngagementOption": "RequestProductDemo"
        },
        {
          "EngagementOption": "RequestPrivateOffer"
        }
      ]
    }
  ]
}
```

Forneça informações sobre os campos para adicionar o tipo de `UpdateBuyerEngagementOptions` alteração:
+ `Entity`(objeto) (obrigatório) — O tipo nomeado de entidade que está sendo atualizado.
  + `Identifier`(string) (obrigatório) — O ID da solução.
  + `Type`(string) (obrigatório) — Deve ser`Solution@1.0`.
+ `DetailsDocument`(matriz de objetos) (obrigatório) — As opções de engajamento do comprador a serem ativadas.
  + `EngagementOption`(string) (obrigatório) — O tipo de opção de engajamento. Valores válidos: `RequestPrivateOffer`, `RequestProductDemo`.

**Sintaxe de resposta**

Um conjunto de alterações é criado para sua solicitação. A resposta a essa solicitação fornece a `ChangeSetId` e `ChangeSetArn` para o conjunto de alterações e tem a seguinte aparência.

```
{
  "ChangeSetId": "example123456789012abcdef",
  "ChangeSetArn": "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/ChangeSet/example123456789012abcdef"
}
```

A solicitação de alteração é adicionada a uma fila e processada.

Para verificar o status da solicitação, use o portal de gerenciamento do AWS Marketplace ou chame a `DescribeChangeSet` API.

**Erros assíncronos**

Além dos erros [assíncronos comuns, os erros](#solution-error-codes) a seguir são específicos de `UpdateBuyerEngagementOptions` ações na API do AWS Marketplace Catalog. Esses erros são retornados quando você liga `DescribeChangeSet` após o processamento de um conjunto de alterações. Para obter mais informações sobre como usar `DescribeChangeSet` para obter o status de uma solicitação de alteração, consulte Como [trabalhar com conjuntos de alterações](https://docs.aws.amazon.com/marketplace/latest/APIReference/catalog-apis.html#working-with-change-sets).


| Código de erro | Mensagem de erro | 
| --- | --- | 
| VENDEDOR\_INELEGÍVEL | A validação de elegibilidade do ACE não está completa. Para continuar: 1) Vincule sua conta do AWS Marketplace à sua conta da APN, 2) Preencha os requisitos de elegibilidade do ACE. | 

## Atualize a visibilidade da solução
<a name="update-solution-visibility"></a>

Você pode usar a API do Catálogo para atualizar a visibilidade de uma solução no AWS Marketplace.

Você pode definir as visibilidades do alvo como `Limited``Public`, ou`Restricted`.
+ **`Limited`**— A solução está completa e concluiu com êxito o tipo de `ReleaseSolution` alteração. Você pode visualizar os detalhes da solução no site do comprador nessa visibilidade. No site do comprador do AWS Marketplace, a solução é visível somente para a conta proprietária, para os proprietários de cada produto do AWS Marketplace incluído na solução e para a equipe de operações de vendedores do AWS Marketplace.
+ **`Public`**— A solução está visível no AWS Marketplace. Os compradores podem ver e interagir com a solução.
+ **`Restricted`**— A solução não está mais visível para o público no site do comprador do AWS Marketplace.

**nota**  
Para mover uma solução para a `Public` visibilidade, você deve atender aos seguintes requisitos:  
Você deve ter um perfil público no AWS Marketplace.
A solução não deve conter produtos que não sejam `Public` produtos.
A solução deve ter pelo menos dois produtos do `Public` AWS Marketplace.
A solução deve ter pelo menos 1 produto do AWS Marketplace da mesma conta da AWS.
A solução deve ter a opção de engajamento do `RequestPrivateOffer` comprador ativada.
A equipe de operações de vendedores do AWS Marketplace analisa todas as solicitações para transformar uma solução em `Public` visibilidade. Para obter suporte, consulte [Obter suporte para o AWS Marketplace](https://docs.aws.amazon.com/marketplace/latest/buyerguide/getting-support.html).

Quando você define como`Public`, `TargetVisibility` o tipo de `UpdateVisibility` alteração exige uma revisão manual da equipe de operações do vendedor do AWS Marketplace. Isso aumenta o tempo de execução. Use `UpdateVisibility` separadamente em seu próprio conjunto de alterações.

Para atualizar a visibilidade da sua solução, chame a operação da `StartChangeSet` API com o tipo de `UpdateVisibility` alteração, conforme mostrado no exemplo a seguir.

**Sintaxe da solicitação**

Para quando `TargetVisibility` é `Public` ou`Limited`.

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

{
  "Catalog": "AWSMarketplace",
  "ChangeSet": [
    {
      "ChangeType": "UpdateVisibility",
      "Entity": {
        "Type": "Solution@1.0",
        "Identifier": "soln-1234abcd"
      },
      "DetailsDocument": {
        "TargetVisibility": "Public"
      }
    }
  ]
}
```

Para quando `TargetVisibility` é`Restricted`.

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

{
  "Catalog": "AWSMarketplace",
  "ChangeSet": [
    {
      "ChangeType": "UpdateVisibility",
      "Entity": {
        "Type": "Solution@1.0",
        "Identifier": "soln-1234abcd"
      },
      "DetailsDocument": {
        "TargetVisibility": "Restricted"
      }
    }
  ]
}
```

Forneça informações sobre os campos para adicionar o tipo de `UpdateVisibility` alteração:
+ `Entity`(objeto) (obrigatório) — O tipo nomeado de entidade que está sendo atualizado.
  + `Identifier`(string) (obrigatório) — O ID da solução.
  + `Type`(string) (obrigatório) — Deve ser`Solution@1.0`.
+ `DetailsDocument`(objeto) (obrigatório) — Os detalhes necessários para executar o conjunto de alterações.
  + `TargetVisibility`(string) (obrigatório) — A nova visibilidade pretendida da solução. Valores possíveis: `Public`, `Limited` e `Restricted`.

**Sintaxe de resposta**

Um conjunto de alterações é criado para sua solicitação. A resposta a essa solicitação fornece a `ChangeSetId` e `ChangeSetArn` para o conjunto de alterações e tem a seguinte aparência.

```
{
  "ChangeSetId": "example123456789012abcdef",
  "ChangeSetArn": "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/ChangeSet/example123456789012abcdef"
}
```

A solicitação de alteração é adicionada a uma fila e processada.

Você pode verificar o status da solicitação por meio do Portal de Gerenciamento do AWS Marketplace ou diretamente por meio da API do Catálogo usando a operação da `DescribeChangeSet` API.

Depois de acionar esse tipo de alteração com `TargetVisibility` as`Public`, pode levar até 37 dias para ser concluído. Isso inclui o tempo que a equipe de operações de vendedores do AWS Marketplace precisa analisar, auditar e aprovar.

**Erros assíncronos**

Os erros a seguir são específicos de `UpdateVisibility` ações na API do AWS Marketplace Catalog. Esses erros são retornados quando você liga `DescribeChangeSet` após o processamento de um conjunto de alterações. Para obter mais informações sobre como usar `DescribeChangeSet` para obter o status de uma solicitação de alteração, consulte Como [trabalhar com conjuntos de alterações](https://docs.aws.amazon.com/marketplace/latest/APIReference/catalog-apis.html#working-with-change-sets).


| Código de erro | Mensagem de erro | 
| --- | --- | 
| TRANSIÇÃO\_DE VISIBILIDADE INVÁLIDA | A solução não pode ser movida de volta para o estado Rascunho. Depois de lançadas, as soluções só podem fazer a transição entre os estados Limitado, Público e Restrito. | 
| POUQUÍSSIMOS CASOS DE USO | É necessário pelo menos um caso de uso para tornar uma solução pública. Adicione um caso de uso e tente novamente. | 
| POUQUÍSSIMOS PRODUTOS PÚBLICOS | É necessário um mínimo de dois produtos públicos do AWS Marketplace para tornar uma solução pública. Adicione os produtos necessários e tente novamente. | 
| PRODUTOS\_INCOMPATÍVEIS | A solução contém um ou mais produtos não públicos do AWS Marketplace. Para tornar a solução pública, remova todos os produtos não públicos e tente novamente. | 
| POUQUÍSSIMOS PRODUTOS PRÓPRIOS | A solução requer pelo menos um produto do AWS Marketplace de propriedade do proprietário da solução. Adicione um produto do AWS Marketplace da sua conta e tente novamente. | 
| OPÇÕES\_DE\_ENGAJAMENTO DO COMPRADOR INCOMPATÍVEIS | A opção de engajamento do RequestPrivateOffer comprador deve estar habilitada para tornar essa solução pública. Ative RequestPrivateOffer e tente novamente. | 
| OPERAÇÃO\_ATUALIZAÇÃO\_VISIBILIDADE\_INCOMPATÍVEL | UpdateVisibility não é compatível com soluções no estado Rascunho. Publique a solução primeiro de Rascunho para Uso Limitado ReleaseSolution e, em seguida, UpdateVisibility use-a para mudar para Pública ou Restrita. | 
| O LIMITE EXCEDEU MUITAS SOLUÇÕES PÚBLICAS | Essa conta atingiu o limite de 5 soluções públicas. Atualize uma solução pública existente para visibilidade limitada ou restrita e tente novamente. | 
| INFORMAÇÕES DO PERFIL\_DO\_VENDEDOR AUSENTES | É necessário um perfil público de vendedor para tornar as soluções públicas. Crie um perfil público na sua conta de vendedor e tente novamente. | 

## Códigos de erro assíncronos comuns
<a name="solution-error-codes"></a>

Há algumas validações assíncronas que se aplicam a todos os tipos de alteração de solução, como verificações de validade de URL e caracteres não suportados, e seus códigos de erro e mensagens de erro estão listados aqui.

Cada campo de URL fornecido deve usar o protocolo HTTPS e estar em conformidade com os padrões RFC2396 ou RFC 2732.


| Código de erro | Mensagem de erro | 
| --- | --- | 
| INVALID\_INPUT | Campo '%s' inválido. Remova caracteres não suportados %s. | 
| INVALID\_INPUT | Conteúdo impróprio '%s' encontrado no campo %s. Forneça %s sem conteúdo impróprio. | 
| CATALOGO\_NÃO SUPORTADO | O catálogo solicitado %s não é compatível com esse tipo de alteração. | 
| OPERAÇÃO\_REMOVE\_INVÁLIDA | Operação inválida, você não pode remover %s | 
| ERRO\_DE\_AUDITORIA | (varia de acordo com o resultado da auditoria da equipe de operações de vendedores do AWS Marketplace) | 

## Ciclo de vida da solução
<a name="solution-lifecycle"></a>

As soluções progridem por meio dos seguintes valores de visibilidade:
+ `Draft`- Visibilidade inicial após a criação. Você pode adicionar informações progressivamente usando outros tipos de alteração.
+ `Limited`- A solução está completa e visível para você e para os proprietários do produto para pré-visualização. Você consegue isso usando`ReleaseSolution`.
+ `Public`- A solução é visível para todos os compradores que navegam no site do AWS Marketplace. Isso requer validação adicional.
+ `Restricted`- A solução não está mais visível para novos compradores.

**Importante**  
Depois que uma solução passa da `Draft` `Limited` visibilidade, você não pode movê-la de volta para`Draft`. `ReleaseSolution`valida se todos os campos obrigatórios de uma `Limited` solução estão presentes antes da transição para a `Limited` visibilidade.

### Requisitos mínimos para uma solução completa
<a name="minimum-requirements-complete-solution"></a>

Para criar uma solução completa e publicá-la além do status de Rascunho, você precisa dos seguintes tipos e atributos de alteração:
+ **`CreateSolution`**: `Name`
+ **`UpdateInformation`**: `Title`, `ShortDescription`, `LongDescription`, `LogoUrl`
+ **`UpdateRelatedProducts`**:`IntegrationDescription`, pelo menos um item de diâmetro `AwsMarketplaceProducts` e `NonAwsMarketplaceProducts`
+ **`ReleaseSolution`**

O exemplo a seguir mostra como criar uma solução completa com `Limited` visibilidade em um único conjunto de alterações:

```
{
  "Catalog": "AWSMarketplace",
  "ChangeSet": [
    {
      "ChangeType": "CreateSolution",
      "Entity": {
        "Type": "Solution@1.0"
      },
      "ChangeName": "CreateSolutionChange",
      "DetailsDocument": {
        "Name": "complete_solution_example",
        "Title": "Complete Solution Example"
      }
    },
    {
      "ChangeType": "UpdateInformation",
      "Entity": {
        "Type": "Solution@1.0",
        "Identifier": "$CreateSolutionChange.Entity.Identifier"
      },
      "ChangeName": "UpdateInformationChange",
      "DetailsDocument": {
        "ShortDescription": "A comprehensive solution for customer needs",
        "LongDescription": "This solution combines multiple products to address specific customer requirements in the advertising and marketing space.",
        "LogoUrl": "https://s3.amazonaws.com/awsmp-logos/solution-logo.jpg",
        "UseCases": [
          {
            "Group": "advertising_and_marketing",
            "SubGroup": "ad_intelligence_and_measurement",
            "Item": "amazon_ads_insights",
            "Description": "Provides comprehensive advertising insights and measurement capabilities"
          }
        ]
      }
    },
    {
      "ChangeType": "UpdateRelatedProducts",
      "Entity": {
        "Type": "Solution@1.0",
        "Identifier": "$CreateSolutionChange.Entity.Identifier"
      },
      "ChangeName": "UpdateRelatedProductsChange",
      "DetailsDocument": {
        "AwsMarketplaceProducts": [
          {
            "ProductId": "prod-123"
          }
        ],
        "IntegrationDescription": "These products work together to provide end-to-end advertising analytics and optimization capabilities."
      }
    },
    {
      "ChangeType": "UpdateBuyerEngagementOptions",
      "Entity": {
        "Type": "Solution@1.0",
        "Identifier": "$CreateSolutionChange.Entity.Identifier"
      },
      "ChangeName": "UpdateBuyerEngagementChange",
      "DetailsDocument": [
        {
          "EngagementOption": "RequestPrivateOffer"
        }
      ]
    },
    {
      "ChangeType": "ReleaseSolution",
      "Entity": {
        "Type": "Solution@1.0",
        "Identifier": "$CreateSolutionChange.Entity.Identifier"
      },
      "ChangeName": "ReleaseSolutionChange",
      "DetailsDocument": {}
    }
  ]
}
```

## Permissões do IAM para soluções
<a name="solution-iam-permissions"></a>

A API do AWS Marketplace Catalog usa permissões padrão do IAM. Consulte [Controle de acesso para a API do AWS Marketplace Catalog](https://docs.aws.amazon.com/marketplace/latest/APIReference/catalog-api-access-control.html) para obter mais detalhes.

Você pode usar `AWSMarketplaceSellerProductFullAccess` para realizar todas as operações necessárias para acessar a Solução por meio da API do Catálogo e do Partner Central 3.0 no AWS Management Console.

### Exemplo de política de IAM para soluções
<a name="sample-iam-policy-solutions"></a>

O exemplo de política do IAM a seguir permite ações específicas (`DescribeEntity``ListEntities`, e`StartChangeSet`) na `Solution@1.0` entidade. Você pode restringi-lo ainda mais para restringir o acesso de um principal a determinados tipos de alteração em determinados IDs de entidade ou ampliá-lo para permitir que um principal também opere em outro tipo de entidade compatível com a API de catálogo.

```
{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "aws-marketplace:StartChangeSet"
      ],
      "Resource": [
        "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/Solution/*",
        "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/ChangeSet/*"
      ],
      "Condition": {
        "StringEquals": {
          "catalog:ChangeType": [
            "CreateSolution",
            "UpdateInformation",
            "UpdateRelatedProducts",
            "ReleaseSolution",
            "UpdateBuyerEngagementOptions",
            "UpdateVisibility"
          ]
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "aws-marketplace:ListEntities",
        "aws-marketplace:DescribeEntity"
      ],
      "Resource": [
        "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/Solution/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "aws-marketplace:DescribeChangeSet",
        "aws-marketplace:ListChangeSets",
        "aws-marketplace:CancelChangeSet"
      ],
      "Resource": [
        "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/ChangeSet/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "aws-marketplace:TagResource",
        "aws-marketplace:UntagResource",
        "aws-marketplace:ListTagsForResource"
      ],
      "Resource": [
        "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/Solution/*",
        "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/ChangeSet/*"
      ]
    }
  ]
}
```

### Restringindo o acesso a soluções específicas
<a name="restricting-access-specific-solutions"></a>

Você pode restringir o acesso a soluções específicas usando o ID da solução no ARN do recurso:

```
{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "aws-marketplace:DescribeEntity",
        "aws-marketplace:StartChangeSet"
      ],
      "Resource": [
        "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/Solution/soln-specific123"
      ]
    }
  ]
}
```

### Restringindo o acesso a tipos específicos de alteração
<a name="restricting-access-specific-change-types"></a>

Você pode restringir o acesso a tipos de alteração específicos usando chaves de condição:

```
{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "aws-marketplace:StartChangeSet"
      ],
      "Resource": [
        "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/Solution/*"
      ],
      "Condition": {
        "StringEquals": {
          "catalog:ChangeType": [
            "UpdateInformation",
            "UpdateRelatedProducts"
          ]
        }
      }
    }
  ]
}
```