

AWS Marketplace API 参考已重组。有关支持的 API 操作的更多信息，请参阅 [AWS Marketplace API 参考](https://docs.aws.amazon.com/marketplace/latest/APIReference/Welcome.html)。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用解决方案
<a name="work-with-solutions"></a>

解决方案是一系列产品和服务，它们协同工作以解决特定的客户问题。解决方案可以包括 AWS Marketplace 产品和非 AWS 市场产品。解决方案可帮助您展示多种产品如何集成以解决特定行业的用例。该解决方案描述了客户的问题、用例、集成细节和相关产品。

## AWS Marketplace 和 AWS 合作伙伴中心中的解决方案
<a name="solutions-in-marketplace-partner-central"></a>

当您从合作伙伴中心 2.0 迁移到合作伙伴中心 3.0 时，系统会提示您创建 AWS 账户并注册为 AWS Marketplace 卖家。有关更多信息，请参阅[注册并创建您的卖家资料](https://docs.aws.amazon.com/marketplace/latest/userguide/create-public-profile.html)。此注册必须：
+ 将您现有的合作伙伴中心解决方案迁移到 AWS Marketplace 目录（所有解决方案都将迁移到`AWSMarketplace`目录中）
+ 使您的 AWS Marketplace 解决方案能够与合作伙伴中心 API 配合使用，例如[销售 API](https://docs.aws.amazon.com/partner-central/latest/APIReference/working-with-your-opportunities.html)。

### 了解个人资料关联和迁移
<a name="understanding-profile-linking-migration"></a>

关联您的合作伙伴中心账户和 AWS Marketplace 账户有两种不同的方案：

**仅限个人资料链接** — 如果您在未迁移到合作伙伴中心 3.0 的情况下关联您的 AWS 合作伙伴中心和 AWS 账户，则您的 AWS Marketplace 解决方案和合作伙伴中心解决方案将保持分开。您可以独立管理每个平台。

**个人资料迁移** — 当您使用关联的 AWS Marketplace 卖家资料迁移到合作伙伴中心 3.0 时：
+ 您的合作伙伴中心 2.0 解决方案迁移到 AWS Marketplace
+ 您只能通过 AWS Marketplace 管理解决方案
+ 合作伙伴中心 API 可以访问迁移的解决方案

**注意**  
如果您已经关联了 AWS 合作伙伴中心和 AWS 账户（请参阅[关联 AWS 合作伙伴中心和 AWS 账户](https://docs.aws.amazon.com/partner-central/latest/getting-started/account-linking.html)），则无需创建新的 AWS 账户。但是，请确认您的现有 AWS 账户已注册为 AWS Marketplace 卖家。要在 AWS Marketplace 买家网站上公开您的解决方案，您需要公开作为 AWS Marketplace 卖家的个人资料。有关 AWS Marketplace 卖家[注册说明，请参阅注册并创建您的卖家资料](https://docs.aws.amazon.com/marketplace/latest/userguide/create-public-profile.html)。

### 将预先存在的 AWS Marketplace 解决方案提供给合作伙伴中心 API
<a name="making-pre-existing-solutions-available"></a>

合作伙伴中心 API 不会自动识别您在合作伙伴中心 3.0 配置文件迁移之前创建的 AWS Marketplace 解决方案。即使在您完成迁移并将您的 AWS 账户与合作伙伴中心账户关联之后，这仍然适用。

要使现有的迁移前解决方案在 Partner Central API 中可见，请更新解决方案中的任何字段。您可以输入与当前相同的信息。对在 Partner Central 3.0 配置文件迁移之前创建的每个解决方案重复此过程。

例如，使用`UpdateInformation`更改类型将解决方案的名称更新为其当前值。在您更新一次解决方案后，Partner Central API 将自动识别该解决方案的未来任何更新。

## 解决方案实体
<a name="solution-entity"></a>

解决方案是一份营销文档，可帮助买家发现和了解您的产品。解决方案包含标题、描述、用例、AWS Marketplace 产品和非 AWS Marketplace 产品。解决方案是一种独立于产品、优惠和优惠集的实体类型。每种解决方案都有自己的发现和上架体验，买家可以将这些体验与单个产品分开浏览。

**主要特性**
+ 对多个产品进行分组，包括 AWS Marketplace 产品和非 AWS Marketplace 产品。
+ 为买家打造专门的发现和上市体验。
+ 将您拥有的商品与其他卖家的产品进行分组。

解决方案实体类型为`Solution@1.0`。

**实体标识符**

解决方案使用标`soln-*`识符格式（例如，`soln-abc123def456`）。

**实体 ARN 格式**

解决方案遵循标准的 AWS ARN 格式：

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

示例：

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

## 解决方案入门
<a name="getting-started-with-solutions"></a>

本节提供有关使用 Catalo AWS Marketplace g API [更改类型](https://docs.aws.amazon.com/marketplace/latest/APIReference/API_Change.html)创建和管理解决方案的详细信息。

开始之前，请确保您已具备以下条件：
+ 有效的 AWS Marketplace 卖家注册和公开资料。有关更多信息，请参阅[注册并创建您的卖家资料](https://docs.aws.amazon.com/marketplace/latest/userguide/create-public-profile.html)。
+ 访问 API 并完成卖家先决条件。有关更多信息，请参阅 [AWS Marketplace 目录 API 的访问控制](https://docs.aws.amazon.com/marketplace/latest/APIReference/catalog-api-access-control.html)。
+ 了解了使用 AWS Marketplace Catalog API 的基础知识，请参阅[使用 AWS Marketplace 目录 API](https://docs.aws.amazon.com/marketplace/latest/APIReference/catalog-apis.html)。

## 列出您的解决方案
<a name="list-your-solutions"></a>

要列出您账户中的所有解决方案，请调用 `ListEntities` API 操作并设置`EntityType`为 “解决方案”。

**请求**

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

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

**响应**

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

### 按可见性筛选解决方案
<a name="filter-solutions-by-visibility"></a>

您可以使用`FilterList`参数按可见性筛选解决方案。

**请求**

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

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

## 获取解决方案详情
<a name="get-solution-details"></a>

要获取有关特定解决方案的详细信息，请调用 `DescribeEntity` API 操作。

**注意**  
 DescribeEntity 响应会返回一个`EntityIdentifier``EntityId``RevisionId.`与 For 解决方案组合在一起`EntityId`的，是解决方案 ID，`RevisionId`可用于乐观锁定。有关更多信息，请参阅[标识符](https://docs.aws.amazon.com/marketplace/latest/APIReference/catalog-apis.html#identifier)。

**请求**

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

**响应**

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

## 列出解决方案的更改历史记录
<a name="list-change-history-for-solution"></a>

要查看特定解决方案的更改历史记录，请使用实体筛选器调用 `ListChangeSets` API 操作。

**请求语法**

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

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

## 标记解决方案和变更集
<a name="tag-solutions-and-change-sets"></a>

您可以在创建过程中向解决方案添加标签和更改集，也可以在以后对其进行更新。

**在创建过程中添加标签**

`EntityTags`只能添加到`CreateSolution`变更类型，不能添加到其他解决方案变更类型。您可以`ChangeSetTags`添加到任何`StartChangeSet`有效载荷。

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

**管理现有资源的标签**

使用`TagResource`和 `UntagResource` API 操作来管理现有解决方案和变更集上的标签。`ListTagsForResource`用于查看当前标签。

有关更多信息，请参阅[管理资源标签和在](https://docs.aws.amazon.com/marketplace/latest/APIReference/catalog-api-access-control.html#managing-tags-on-resources)[创建过程中向实体添加标签和更改集](https://docs.aws.amazon.com/marketplace/latest/APIReference/catalog-api-access-control.html#example-adding-tags-entity-creation)。

## 创建解决方案
<a name="create-solution"></a>

您可以使用`CreateSolution`更改类型来创建仅包含解决方案 ID 和名称的新解决方案文档。其他值尚未填写。

成功处理您的请求后，AWS Marketplace 会为您创建一个处于`Draft`状态的解决方案。在 AWS Marketplace 上，买家看不到这个不完整的解决方案。

然后，您可以使用其他更改类型来完成解决方案：`UpdateInformation`、`UpdateRelatedProducts`、`UpdateBuyerEngagementOptions`（创建`Limited`解决方案时可选）和`ReleaseSolution`。`ReleaseSolution`更改类型会验证解决方案所需的所有必填字段是否都存在于`Limited`解决方案中，然后将其移至`Limited`可见状态。

**注意**  
要将解决方案移至 “公开” 状态或更改解决方案的状态，请在提供所需值后使用`UpdateVisibility`更改类型。

**请求语法**

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

为要添加`CreateSolution`更改类型的字段提供信息：
+ `Entity`（对象）（必填）-正在创建的解决方案实体的命名类型。
  + `Type`（字符串）（必填）-`Type` 必须是`Solution@1.0`。
+ `DetailsDocument`（对象）（必填）-请求的详细信息。
  + `Name`（字符串）（必填）— AWS 资源名称仅供卖家自己参考（买家不可见）。最大长度：100 个字符。不得包含前导或尾随空格、换行符或控制字符。您也可以通过`UpdateInformation`更改类型来更新解决方案图块。
  + `Title`（字符串）（可选）-解决方案的标题。最大长度：255 个字符。不得包含前导或尾随空格、换行符或控制字符。您也可以通过`UpdateInformation`更改类型来设置或更新解决方案标题。

**响应语法**

已根据您的请求创建更改集。回复会给你`ChangeSetId`和`ChangeSetArn`：

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

变更请求被添加到队列中并进行处理。您可以使用 AWS Marketplace 管理门户网站或 `DescribeChangeSet` API 操作查看状态。

成功完成请求后（如果`Status`是`SUCCEEDED`），则会生成一个新的解决方案 ID。

**异步错误**

`CreateSolution`除了[常见的异步错误外，操作还会返回特定的错误](#solution-error-codes)。更改集处理完`DescribeChangeSet`毕后，您会收到这些错误。要了解如何获取变更请求状态，请参阅[使用变更集](https://docs.aws.amazon.com/marketplace/latest/APIReference/catalog-apis.html#working-with-change-sets)。


| 错误代码 | 错误消息 | 
| --- | --- | 
| 名字无效 | 解决方案名称长度无效。请输入一个介于 1 到 100 个字符之间的名称，然后重试。 | 
| 缺少名字 | “名称” 值是必填的。请指定 “名称” 值，然后重试。 | 
| 无效标题 | 解决方案标题长度无效。请输入介于 1 到 255 个字符之间的标题，然后重试。 | 

## 更新解决方案信息
<a name="update-solution-information"></a>

如果您在 AWS Marketplace 中已有解决方案，则可以使用目录 API 来更新解决方案信息。

要更新解决方案信息，请使用`UpdateInformation`更改类型和更新后的详细信息调用 `StartChangeSet` API 操作。请参阅以下示例。

**注意**  
`UpdateInformation`更改类型的行为类似于顶级属性的 HTTP 补丁操作。字段的更新方式：  
如果中存在顶级属性`DetailsDocument`，则工作流程会验证您的输入并覆盖现有值。
如果中不存在顶级字段`DetailsDocument`，则保留现有值。
要取消设置可选字段，请发送该字段的显式 J `null` SON。

AWS Marketplace 会验证徽标和宣传媒体资产并将其提取到 AWS Marketplace-owned 地点。 DescribeEntity 返回已收录文件的可访问网址，而不是您从中 StartChangeSet输入的原始网址。要查看您最初提交的网址，请使用 DescribeChangeSet API。

**注意**  
当您修改`Public`解决方案的`PromotionalMedia`资产文件（通过提供新 URL）时，`UpdateInformation`需要 AWS Marketplace 卖家运营团队进行手动审查。这会增加执行时间。在这种情况下，请在自己的更改集中`UpdateInformation`单独使用。

**请求语法**

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

为要添加`UpdateInformation`更改类型的字段提供信息：
+ `Entity`（对象）（必填）-要更新的实体的命名类型。
  + `Identifier`（字符串）（必填）-解决方案 ID。
  + `Type`（字符串）（必填）-必须是`Solution@1.0`。
+ `DetailsDocument`（object）（必填）-请求的详细信息，包括您要为解决方案更新的信息。每个字段都是可选的，但必须至少包含一项更改才能更新。
  + `Name`（字符串）— 解决方案的资源名称，仅卖家通过目录 API 读取操作可见，买家不可见。最大长度：100 个字符。不得包含前导或尾随空格、换行符或控制字符。
  + `Title`（字符串）-要向买家显示的解决方案标题。最大长度：255 个字符。不得包含前导或尾随空格、换行符或控制字符。
  + `ShortDescription`（字符串）— 要向买家展示的解决方案关键方面的价值主张描述。这通常是 2-3 句话。最大长度：1000 个字符。不得包含前导或尾随空格或控制字符。
  + `LongDescription`（字符串）-要向买家显示的此解决方案的较长描述。这通常是 1-3 段。最大长度：5000 个字符。不得包含前导或尾随空格或控制字符。
  + `LogoUrl`（字符串）— 可公开访问的 Amazon S3 存储桶中图像的网址或预签名 S3 网址。必须是直接 S3 网址（不在后面 CloudFront 或 API Gateway）。最大长度：2048 个字符。有关徽标规格，请参阅[公司和产品徽标要求](https://docs.aws.amazon.com/marketplace/latest/userguide/product-submission.html#seller-and-product-logos)。
  + `PromotionalMedia`（对象数组）-宣传图片和视频的列表。最多 15 个项目（5 个视频和 10 个图片）。有关宣传媒体的规格，请参阅[使用促销媒体增强您的 AWS Marketplace 产品](https://docs.aws.amazon.com/marketplace/latest/userguide/promotional-media.html)。
    + `Type`（字符串）（必填）-要`Image`么是`Video`。
    + `Url`（字符串）（必填）-媒体文件的 URL。必须是直接 S3 网址或预签名 S3 网址。最大长度：2048 个字符。必须是 https 网址。
    + `Title`（字符串）（必填）-媒体的标题。最大长度：100 个字符。不得包含前导或尾随空格、换行符或控制字符。
    + `Description`（字符串）（必填）-媒体的描述。长度上限：200 个字符。不得包含前导或尾随空格或控制字符。
    + `PreviewUrl`（字符串）（可选）-仅适用于视频，指向预览图像的 URL。最大长度：2048 个字符。必须是 https 网址。
  + `AdditionalResources`（对象数组）-对其他资源的引用列表。最多 8 件物品。
    + `Text`（字符串）-资源的名称或标题。最大长度：500 个字符。不得包含前导或尾随空格、换行符或控制字符。
    + `Url`（字符串）-资源的 URL。最大长度：2048 个字符。必须是 https 网址。
  + `UseCases`（对象数组）-此解决方案解决的用例列表。最多 3 件物品。有关有效的用例类别（组 SubGroup、和项目的组合），请参阅[用例类别列表](https://d1z4dgsxp8pfa2.cloudfront.net/awsmp-solutions/use-case-categories-list.json)，了解有效的可接受值及其[介绍标签](https://d1z4dgsxp8pfa2.cloudfront.net/awsmp-solutions/i18n/en.json)。群组 SubGroup、和项目的组合必须是用例类别列表中的有效项目。
    + `Group`（字符串）-行业或技术类别。必须是[用例类别列表](https://d1z4dgsxp8pfa2.cloudfront.net/awsmp-solutions/use-case-categories-list.json)中的分组值之一。
    + `SubGroup`（字符串）-类别中的用例组。必须是[用例类别列表](https://d1z4dgsxp8pfa2.cloudfront.net/awsmp-solutions/use-case-categories-list.json)中的 SubGroup 值之一。
    + `Item`（字符串）-特定用例。必须是[用例类别列表](https://d1z4dgsxp8pfa2.cloudfront.net/awsmp-solutions/use-case-categories-list.json)中的项目值之一。
    + `Description`（字符串）-此解决方案如何解决用例的描述。最大长度：500 个字符。不得包含前导或尾随空格或控制字符。

有关预签名 URL 的信息，请参阅[使用预签名 URL 共享对象](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ShareObjectPreSignedURL.html)。

**注意**  
调用 ch UpdateInformation ange type 时，您始终可以在`DetailsDocument`对象中提供要更新的字段子集。但是，在将解决方案从移动`Draft`到之前`Limited`，必须正确设置以下字段：`Title``ShortDescription`、`LongDescription`、和`LogoUrl`。  
但是，在更新解决方案中的现有字段时，只能在变更类型的`DetailsDocument`对象中包含需要`UpdateInformation`更改的属性。

**响应语法**

已根据您的请求创建更改集。对该请求的响应为您提供了变更集的和，如下所示。`ChangeSetId` `ChangeSetArn`

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

变更请求被添加到队列中并进行处理。要查看请求状态，请使用 AWS Marketplace 管理门户网站或调用 `DescribeChangeSet` API。

使用针对`Public`解决方案修改的`PromotionalMedia`资产触发此变更类型后，最多可能需要 37 天才能完成。这包括 AWS Marketplace 卖家运营团队需要审查、审计和批准的时间。

**异步错误**

除了[常见的异步错误外，以下错误](#solution-error-codes)还特定于 AWS Marketplace Catalog API 中的`UpdateInformation`操作。当您在处理更改集`DescribeChangeSet`之后调用时，会返回这些错误。有关使用`DescribeChangeSet`获取变更请求状态的更多信息，请参阅[使用变更集](https://docs.aws.amazon.com/marketplace/latest/APIReference/catalog-apis.html#working-with-change-sets)。


| 错误代码 | 错误消息 | 
| --- | --- | 
| 无效\_简短\_描述 | 解决方案 ShortDescription 长度无效。请输入介于 1 ShortDescription 到 1000 个字符之间的，然后重试。 | 
| 无效\_LONG\_描述 | 解决方案 LongDescription 长度无效。请输入介于 1 LongDescription 到 5000 个字符之间的，然后重试。 | 
| 名字无效 | 解决方案名称长度无效。请输入一个介于 1 到 100 个字符之间的名称，然后重试。 | 
| 无效标题 | 解决方案标题长度无效。请输入介于 1 到 255 个字符之间的标题，然后重试。 | 
| 无效的额外资源 | 解决方案 AdditionalResources [%d] .文本长度无效。请输入介于 1 到 500 个字符之间的文本，然后重试。 | 
| 无效的额外资源 | 无法访问提供的其他资源中的以下 URL：[%s]。提供有效且可访问的 URL | 
| 无效的额外资源 | 网址值是必需的。请指定 Url 值，然后重试。 | 
| 无效的额外资源 | 不能缺少文本。提供文本 | 
| 用例无效 | 解决方案 UseCases [%d] .描述长度无效。请输入介于 1 到 500 个字符之间的描述，然后重试。 | 
| 用例无效 | UseCases[%d] .Group：提供的组 (%s) 无效。提供有效的群组。 | 
| 用例无效 | UseCases[%d]。 SubGroup: 提供的组 (%s) 无效。请提供有效的 SubGroup。 | 
| 用例无效 | UseCases[%d]。商品：提供的商品 (%s) 无效。提供有效的物品。 | 
| 用例无效 | UseCases[%d] .Item：提供的用例处于非活动状态。提供一个活跃的用例 | 
| 用例无效 | UseCases[%d] .Group: 群组不能丢失。提供群组。 | 
| 用例无效 | UseCases[%d]。 SubGroup: SubGroup 不能丢失。提供一个 SubGroup. | 
| 用例无效 | UseCases[%d]。商品： SubGroup 不能丢失。提供一件物品。 | 
| INVALID\_MEDIA | 解决方案 PromotionalMedia [%d] .标题长度无效。请输入介于 1 到 100 个字符之间的标题，然后重试。 | 
| INVALID\_MEDIA | 解决方案 PromotionalMedia [%d] .描述长度无效。请输入介于 1 到 200 个字符之间的描述，然后重试。 | 
| INVALID\_MEDIA | 无效的 URL: %s 为存储在 S3 中的媒体提供一个新的 URL。 | 
| INVALID\_MEDIA | 媒体位置不可访问：%s 为存储在以下位置之一的媒体提供一个新的、可访问的 URL：[S3]。 | 
| INVALID\_MEDIA | 图像大小超过 %s。请提供一张低于 %s 的图片。 | 
| INVALID\_MEDIA | 视频大小超过 %s。提供低于 %s 的视频。 | 
| INVALID\_MEDIA | 徽标大小超过 %s。提供低于 %s 的徽标。 | 
| INVALID\_MEDIA | 在 %s 中检测到恶意软件。提供没有恶意软件的媒体。 | 
| INVALID\_MEDIA | 不当内容：检测到 %s。向媒体提供没有不当内容的内容 | 
| INVALID\_MEDIA | 检测到 %s 中的显式内容：'{ExplicitContent}'。提供不含露骨内容的媒体。 | 
| INVALID\_MEDIA | PromotionalMedia[%s] .Url: %s 的格式不支持 (%s)。使用格式良好的图像，格式支持以下格式：[JPEG，PNG]。 | 
| INVALID\_MEDIA | PromotionalMedia[%s] .Url: %s 的格式不支持 (%s)。使用格式良好的视频，格式支持以下格式：[MP4，MOV]。 | 
| INVALID\_MEDIA | LogoUrl %s 处的纵横比无效。提供宽高比为 1:1（正方形）或 2:1（宽）的图像。 | 
| INVALID\_MEDIA | 徽标:%s 的尺寸无效。提供介于 120x120 和 1080x1080 像素之间的图像。 | 
| INVALID\_MEDIA | PromotionalMedia[%d]。不支持类型。 PromotionalMedia 以支持的类型提供：%s | 
| 复制媒体 | 检测到重复的媒体：[%s] 提供没有重复内容的媒体项目。 | 
| INVALID\_MEDIA | PromotionalMedia[%d] .Url：在 %s 中检测到恶意软件。提供没有恶意软件的媒体。 | 
| 物品太多了 | 提供的数量不超过 %d %s。 | 

## 更新相关产品
<a name="update-related-products"></a>

您可以使用目录 API 来更新解决方案中包含的产品和服务，包括 AWS Marketplace 产品和非 AWS Marketplace 产品。

要更新相关产品，请使用`UpdateRelatedProducts`更改类型调用 `StartChangeSet` API 操作，如以下示例所示。

**注意**  
`UpdateRelatedProducts`更改类型的行为类似于顶级属性的 HTTP PATCH 操作。您可以提供所有当前的 AWS Marketplace 产品类型，如`AwsMarketplaceProducts`所示`UpdateRelatedProducts`。

**请求语法**

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

为要添加`UpdateRelatedProducts`更改类型的字段提供信息：
+ `Entity`（对象）（必填）-要更新的实体的命名类型。
  + `Identifier`（字符串）（必填）-解决方案 ID。
  + `Type`（字符串）（必填）-必须是`Solution@1.0`。
+ `DetailsDocument`（对象）（必填）-请求的详细信息。每个字段都是可选的，但必须至少包含一项更改才能更新。
  + `IntegrationDescription`（字符串）— 描述产品如何在此解决方案中协同工作。最大长度：5000 个字符。不得包含前导或尾随空格或控制字符。
  + `AwsMarketplaceProducts`（对象数组）— 此解决方案中包含的 AWS Marketplace 产品。最多 5 件物品
    + `ProductId`（字符串）— AWS Marketplace 产品编号（UUID 或以开头的字符串`prod-`）。最大长度：50 个字符。
  + `NonAwsMarketplaceProducts`（对象数组）— AWS Marketplace 上不可用的产品。最多 5 件物品。
    + `Type`（字符串）（必填）-产品类型。可能的值：`Software``Consulting`、`Hardware`、`Communication`、`Professional Service`、`Managed Service`、`Value-Added Resale`、`Training`
    + `Title`（字符串）（必填）-商品名称。最大长度：255 个字符。不得包含前导或尾随空格、换行符或控制字符。
    + `Description`（字符串）（可选）-产品描述。最大长度：220 个字符。不得包含前导或尾随空格或控制字符。
    + `Url`（字符串）（可选）— 指向产品更多信息的 URL。最大长度：2048 个字符。必须是 https 网址。

**响应语法**

已根据您的请求创建更改集。对该请求的响应为您提供了变更集的和，如下所示。`ChangeSetId` `ChangeSetArn`

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

变更请求被添加到队列中并进行处理。

要查看请求状态，请使用 AWS Marketplace 管理门户网站或调用 `DescribeChangeSet` API。

**异步错误**

除了[常见的异步错误外，以下错误](#solution-error-codes)还特定于 AWS Marketplace Catalog API 中的`UpdateRelatedProducts`操作。当您在处理更改集`DescribeChangeSet`之后调用时，会返回这些错误。有关使用`DescribeChangeSet`获取变更请求状态的更多信息，请参阅[使用变更集](https://docs.aws.amazon.com/marketplace/latest/APIReference/catalog-apis.html#working-with-change-sets)。


| 错误代码 | 错误消息 | 
| --- | --- | 
| 不兼容\_操作\_更新\_相关\_产品\_解决方案 | 公共解决方案不支持更新相关产品的操作。要进行此更改，请先将解决方案的可见性更改为受限，然后重试。 | 
| 无效\_ AWS\_MARKETPLACE\_PRODUCTS | AWS Marketplace 产品 “%s” 不适用于您的账户。选择您有权访问许可名单的公共产品或受限产品，或者联系卖家申请访问权限。 | 
| 无效\_ AWS\_MARKETPLACE\_PRODUCTS | 不支持指定的产品类型 “%s”。请提供以下有效产品类型之一：[AmiProduct、SaasProduct、 ContainerProduct、 MachineLearningProduct ProfessionalServicesProduct、 DataProduct]，然后重试。 | 
| 无效\_ AWS\_MARKETPLACE\_PRODUCTS | 未找到产品 “%s”。在同一目录中提供有效的商品编码。 | 
| 无效\_非\_ AWS\_MARKETPLACE\_PRODUCTS | 无法访问指定的 Non-AWS Marketplace 商品网址：[%s]。请验证 URL 是否有效且可公开访问，然后重试。 | 
| 无效集成描述 | 提供介于 1 IntegrationDescription 到 5000 个字符之间的解决方案。 | 
| 无效\_非\_ AWS\_MARKETPLACE\_PRODUCTS | 解决方案 NonAwsMarketplaceProduct [%d] .标题长度无效。请输入介于 1 到 255 个字符之间的描述，然后重试。 | 
| 无效\_非\_ AWS\_MARKETPLACE\_PRODUCTS | 解决方案 NonAwsMarketplaceProduct [%d] .描述长度无效。请输入介于 1 到 220 个字符之间的描述，然后重试。 | 
| 无效\_非\_ AWS\_MARKETPLACE\_PRODUCTS | 解决方案 NonAwsMarketplaceProduct [%d] .Type 长度无效。请输入介于 1 到 50 个字符之间的类型，然后重试。 | 
| 无效\_非\_ AWS\_MARKETPLACE\_PRODUCTS | NonAwsMarketplaceProduct[%d] .Type 不是有效的非 AWS Marketplace 产品类型。提供以下非 AWS Marketplace 产品类型之一：[%s] | 
| 无效\_非\_ AWS\_MARKETPLACE\_PRODUCTS |  NonAwsMarketplaceProduct[%d] .Title 值为必填值。请指定标题值，然后重试。 | 
| 无效\_非\_ AWS\_MARKETPLACE\_PRODUCTS | 必须输入 NonAwsMarketplaceProduct [%d] .Type 值。请指定 Type 值，然后重试。 | 
| 产品太多了 | 您可以关联的 AWS Marketplace 产品的最大数量为 %d。在添加新产品之前，请先移除现有的关联产品。 | 
| 产品太多了 | 您可以添加的无 AWS Marketplace 产品的最大数量为 %d。在添加新产品之前，请移除现有的 AWS Marketplace 产品。 | 
| 无效\_ AWS\_MARKETPLACE\_PRODUCTS | 不允许使用重复的 AWS Marketplace 产品编码。在您的解决方案中，每个产品编号都必须是唯一的。 | 
| 移除操作无效 | 操作无效，您无法移除所有产品。 | 

## 发布解决方案
<a name="release-solution"></a>

您可以使用目录 API 发布`Draft`解决方案，使其在 AWS Marketplace 上公开。`Limited`

`ReleaseSolution`更改类型用于验证`Limited`解决方案的所有必填字段是否都存在。然后，它将解决方案从可见性移`Draft`至`Limited`可见性。解决方案一旦可`Limited`见，就无法将其移回`Draft`可见状态。

要发布解决方案，请使用`ReleaseSolution`更改类型调用 `StartChangeSet` API 操作，如以下示例所示。

**请求语法**

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

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

为要添加`ReleaseSolution`更改类型的字段提供信息：
+ `Entity`（对象）（必填）-要发布的实体的命名类型。
  + `Identifier`（字符串）（必填）-解决方案 ID。
  + `Type`（字符串）（必填）-必须是`Solution@1.0`。
+ `DetailsDocument`（对象）（必填）-必须是空对象。变更类型`ReleaseSolution`不接受任何细节。

**响应语法**

已根据您的请求创建更改集。对该请求的响应为您提供了变更集的和，如下所示。`ChangeSetId` `ChangeSetArn`

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

变更请求被添加到队列中并进行处理。您可以通过 AWS Marketplace 管理门户网站查看请求的状态，也可以使用 API 操作直接通过 Catalog AP `DescribeChangeSet` I 查看请求的状态。

**异步错误**

除了[常见的异步错误外，以下错误](#solution-error-codes)还特定于 AWS Marketplace Catalog API 中的`ReleaseSolution`操作。当您在处理更改集`DescribeChangeSet`之后调用时，会返回这些错误。有关使用`DescribeChangeSet`获取变更请求状态的更多信息，请参阅[使用变更集](https://docs.aws.amazon.com/marketplace/latest/APIReference/catalog-apis.html#working-with-change-sets)。


| 错误代码 | 错误消息 | 
| --- | --- | 
| 缺少必填字段 | 请求缺少必需的参数：[%s]。请为所有必需的参数指定值，然后重试。 | 
| 不兼容操作发布解决方案 | 变更类型只能在处于 “草稿” 状态的解决方案上调用。将解决方案的可见性更新为 “草稿”，然后重试。 | 

## 更新买家参与选项
<a name="update-buyer-engagement-options"></a>

您可以使用目录 API 来配置买家如何就您的解决方案与您互动。

**注意**  
要使用此变更类型，您必须有效注册 [APN 客户互动 (ACE)](https://aws.amazon.com/partners/programs/ace/) 计划。您还必须将您的 AWS 账户与已注册 ACE 的 AWS 合作伙伴中心账户关联起来。有关说明，请参阅[关联 AWS 合作伙伴中心和 AWS 账户](https://docs.aws.amazon.com/partner-central/latest/getting-started/account-linking.html)。

要更新买家参与度选项，请使用`UpdateBuyerEngagementOptions`更改类型调用 `StartChangeSet` API 操作，如以下示例所示。

**请求语法**

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

为要添加`UpdateBuyerEngagementOptions`更改类型的字段提供信息：
+ `Entity`（对象）（必填）-要更新的实体的命名类型。
  + `Identifier`（字符串）（必填）-解决方案 ID。
  + `Type`（字符串）（必填）-必须是`Solution@1.0`。
+ `DetailsDocument`（对象数组）（必填）-要启用的买家参与选项。
  + `EngagementOption`（字符串）（必填）-参与选项的类型。有效值：`RequestPrivateOffer`、`RequestProductDemo`。

**响应语法**

已根据您的请求创建更改集。对该请求的响应为您提供了变更集的和，如下所示。`ChangeSetId` `ChangeSetArn`

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

变更请求被添加到队列中并进行处理。

要查看请求状态，请使用 AWS Marketplace 管理门户网站或调用 `DescribeChangeSet` API。

**异步错误**

除了[常见的异步错误外，以下错误](#solution-error-codes)还特定于 AWS Marketplace Catalog API 中的`UpdateBuyerEngagementOptions`操作。当您在处理更改集`DescribeChangeSet`之后调用时，会返回这些错误。有关使用`DescribeChangeSet`获取变更请求状态的更多信息，请参阅[使用变更集](https://docs.aws.amazon.com/marketplace/latest/APIReference/catalog-apis.html#working-with-change-sets)。


| 错误代码 | 错误消息 | 
| --- | --- | 
| 不符合资格的卖家 | ACE 资格验证尚未完成。要继续：1) 将您的 AWS Marketplace 账户关联到您的 APN 账户，2) 完成 ACE 资格要求。 | 

## 更新解决方案可见性
<a name="update-solution-visibility"></a>

您可以使用目录 API 来更新解决方案在 AWS Marketplace 中的可见性。

您可以将目标可见性设置为`Limited``Public`、或。`Restricted`
+ **`Limited`**— 解决方案已完成，并且已成功完成`ReleaseSolution`更改类型。您可以在此可见性中预览买家网站中解决方案的详细信息。在 AWS Marketplace 买家网站上，只有拥有该解决方案的账户、解决方案中包含的每个 AWS Marketplace 产品的所有者以及 AWS Marketplace 卖家运营团队才能看到该解决方案。
+ **`Public`**— 该解决方案在 AWS Marketplace 上可见。买家可以查看解决方案并与之互动。
+ **`Restricted`**— 该解决方案已不再在 AWS Marketplace 买家网站上向公众公开。

**注意**  
要将解决方案移至`Public`可见性，必须满足以下要求：  
您必须在 AWS Marketplace 上公开个人资料。
该解决方案必须没有非`Public`产品。
该解决方案必须至少有 2 个 `Public` AWS Marketplace 产品。
该解决方案必须有来自同一 AWS 账户的至少 1 个 AWS Marketplace 产品。
该解决方案必须启用`RequestPrivateOffer`买家参与选项。
AWS Marketplace 卖家运营团队会审查所有将解决方案`Public`提升到可见性的请求。要[获得支持，请参阅获取 AWS Marketplace 支持](https://docs.aws.amazon.com/marketplace/latest/buyerguide/getting-support.html)。

如果设置为 `TargetVisibility``Public`，则`UpdateVisibility`更改类型需要 AWS Marketplace 卖家运营团队进行手动审查。这会增加执行时间。在自己的零钱套装中`UpdateVisibility`单独使用。

要更新解决方案的可见性，请使用`UpdateVisibility`更改类型调用 `StartChangeSet` API 操作，如以下示例所示。

**请求语法**

什么时候`TargetVisibility`是`Public`或`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"
      }
    }
  ]
}
```

因为什么时候`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"
      }
    }
  ]
}
```

为要添加`UpdateVisibility`更改类型的字段提供信息：
+ `Entity`（对象）（必填）-要更新的实体的命名类型。
  + `Identifier`（字符串）（必填）-解决方案 ID。
  + `Type`（字符串）（必填）-必须是`Solution@1.0`。
+ `DetailsDocument`（object）（必填）-运行变更集所需的详细信息。
  + `TargetVisibility`（字符串）（必填）-解决方案的预期新可见性。可能的值：`Public`、`Limited` 和 `Restricted`。

**响应语法**

已根据您的请求创建更改集。对该请求的响应为您提供了变更集的和，如下所示。`ChangeSetId` `ChangeSetArn`

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

变更请求被添加到队列中并进行处理。

您可以通过 AWS Marketplace 管理门户网站查看请求的状态，也可以使用 API 操作直接通过 Catalog AP `DescribeChangeSet` I 查看请求的状态。

使用 a `TargetVisibility` s 触发此更改类型后`Public`，最多可能需要 37 天才能完成。这包括 AWS Marketplace 卖家运营团队需要审查、审计和批准的时间。

**异步错误**

以下错误特定于 AWS Marketplace Catalog API 中的`UpdateVisibility`操作。当您在处理更改集`DescribeChangeSet`之后调用时，会返回这些错误。有关使用`DescribeChangeSet`获取变更请求状态的更多信息，请参阅[使用变更集](https://docs.aws.amazon.com/marketplace/latest/APIReference/catalog-apis.html#working-with-change-sets)。


| 错误代码 | 错误消息 | 
| --- | --- | 
| 无效\_可见性\_过渡 | 无法将解决方案移回 “草稿” 状态。解决方案发布后，只能在 “受限”、“公开” 和 “受限” 状态之间过渡。 | 
| 用例太少了 | 要公开解决方案，至少需要一个用例。添加用例并重试。 | 
| PUBLIC\_PUBLIC\_PRODUCTS | 要将解决方案公开，至少需要 2 个 AWS Marketplace 公开产品。请添加所需的产品，然后重试。 | 
| 不兼容的产品 | 该解决方案包含一个或多个非公开的 AWS Marketplace 产品。要公开该解决方案，请移除所有非公开产品并重试。 | 
| 自有产品太少了 | 该解决方案要求解决方案所有者拥有至少一款 AWS Marketplace 产品。从您的账户中添加 AWS Marketplace 产品并重试。 | 
| 不兼容\_买家\_参与度\_选项 | 必须启用 RequestPrivateOffer 买家参与选项才能公开此解决方案。启用 RequestPrivateOffer 并重试。 | 
| 不兼容操作更新可见性 | UpdateVisibility 处于 “草稿” 状态的解决方案不支持。首先使用将解决方案从 “草稿” 发布到 “受限” ReleaseSolution，然后使用 UpdateVisibility 将其更改为 “公开” 或 “受限”。 | 
| LIMIT\_EXECED\_TOO\_MANY\_PUBLIC\_SOLUTIONS | 此账户已达到 5 个公共解决方案的上限。将现有公共解决方案更新为 “可见性受限” 或 “受限”，然后重试。 | 
| 缺少卖家个人资料信息 | 公开解决方案需要公开卖家资料。在您的卖家账户中创建公开个人资料，然后重试。 | 

## 常见的异步错误码
<a name="solution-error-codes"></a>

有些异步验证适用于所有解决方案更改类型，例如检查网址有效性和不支持的字符，此处列出了它们的错误代码和错误消息。

提供的每个 URL 字段都必须使用 HTTPS 协议，并且符合 RFC2396 或 RFC 2732 标准。


| 错误代码 | 错误消息 | 
| --- | --- | 
| INVALID\_INPUT | “%s” 字段无效。删除不支持的字符 %s。 | 
| INVALID\_INPUT | 在 %s 字段中找到不当内容 “%s”。请不要向 %s 提供任何不当内容。 | 
| 不支持的目录 | 此更改类型不支持请求的目录 %s。 | 
| 移除操作无效 | 操作无效，您无法删除 %s | 
| 审计错误 | （因 AWS Marketplace 卖家运营团队的审计结果而异） | 

## 解决方案生命周期
<a name="solution-lifecycle"></a>

解决方案通过以下可见性值进行推进：
+ `Draft`-创建后的初始可见性。您可以使用其他更改类型逐步添加信息。
+ `Limited`-解决方案已完成，可供您和产品所有者查看以供预览。您可以通过使用来实现此目的`ReleaseSolution`。
+ `Public`-所有浏览 AWS Marketplace 网站的买家都可以看到解决方案。这需要额外的验证。
+ `Restricted`-解决方案不再对新买家可见。

**重要**  
解决方案从可见性移动`Draft`到`Limited`可见性后，您就无法将其移回可见性`Draft`。 `ReleaseSolution`验证`Limited`解决方案的所有必填字段在过渡到`Limited`可见性之前是否都存在。

### 完整解决方案的最低要求
<a name="minimum-requirements-complete-solution"></a>

要创建完整的解决方案并将其发布到超过 “草稿” 状态，您需要以下更改类型和属性：
+ **`CreateSolution`**: `Name`
+ **`UpdateInformation`**: `Title`, `ShortDescription`, `LongDescription`, `LogoUrl`
+ **`UpdateRelatedProducts`**:`IntegrationDescription`，至少有一件物品横跨`AwsMarketplaceProducts`和 `NonAwsMarketplaceProducts`
+ **`ReleaseSolution`**

以下示例向您展示了如何在单个更改集中创建具有`Limited`可见性的完整解决方案：

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

## 解决方案的 IAM 权限
<a name="solution-iam-permissions"></a>

AWS Marketplace 目录 API 使用标准的 IAM 权限。有关更多详细信息，请参阅 [AWS Marketplace 目录 API 的访问控制](https://docs.aws.amazon.com/marketplace/latest/APIReference/catalog-api-access-control.html)。

您可以使用`AWSMarketplaceSellerProductFullAccess`执行通过 AWS 管理控制台中的 Catalog API 和 Partner Central 3.0 访问解决方案所需的所有操作。

### 解决方案的 IAM 策略示例
<a name="sample-iam-policy-solutions"></a>

以下示例 IAM 策略允许对`Solution@1.0`实体执行特定操作（`DescribeEntity``ListEntities`、和`StartChangeSet`）。您可以进一步缩小范围，限制委托人访问某些实体 ID 上的某些变更类型，也可以将其扩大到允许委托人同时对 Catalog API 支持的另一种实体类型进行操作。

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

### 限制对特定解决方案的访问
<a name="restricting-access-specific-solutions"></a>

您可以使用资源 ARN 中的解决方案 ID 来限制对特定解决方案的访问：

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

### 限制对特定变更类型的访问权限
<a name="restricting-access-specific-change-types"></a>

您可以使用条件键限制对特定更改类型的访问权限：

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