

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

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

# 处理卖家商品
<a name="work-with-seller-products"></a>

您可以使用自动执行AWS Marketplace Catalog API处理卖家商品的任务。这包括创建、更新、查看、列出和排序产品的功能。这使您能够实现产品管理的自动化。例如，您可以在上提供自助发布功能AWS Marketplace 管理门户。

*商品*是您打算销售的单位或资源AWS Marketplace，通常称为基础产品。在您添加产品信息、部署属性和账单信息之前，买家无法消费基础产品。

*商品*描述了您打算销售的商品的商品信息、软件部署属性和计费机制。*商品*必须与*报价*配对，才能成为您可以出售且买家可以使用的可交易单位。AWS Marketplace

您也可以AWS Marketplace Catalog API使用：
+ [使用私人报价处理私人报价AWS MarketplaceAPI](work-with-private-offers.md)
+ [使用转售授权AWS MarketplaceAPI](work-with-resale-authorizations.md)
+ [使用渠道合作伙伴的私有优惠AWS MarketplaceAPI](work-with-cppos.md)

每种产品类型都有不同的产品实体。*实体*可以是产品或报价AWS Marketplace。支持以下产品类型和实体：


| 产品类型 | 实体 | 
| --- | --- | 
| 亚马逊机器映像 (AMI) 产品 | AmiProduct@1.0 | 
| 容器产品 | ContainerProduct@1.0 | 
| 软件即服务（SaaS）产品 | SaaSProduct@1.0 | 
| 机器学习 (ML) 产品 | MachineLearningProduct@1.0 | 

**注意**  
Single-AMI 不支持CloudFormation产品类型、AWS Data Exchange数据产品和专业服务产品。

以下主题假设您有权访问 API 并已完成卖家的所有先决条件，如中所述[的访问控制AWS MarketplaceCatalog API](catalog-api-access-control.md)。

请参阅以下资源：
+ 要了解使用AWS Marketplace目录 API 的基础知识，请参阅[使用 AWS Marketplace Catalog API](catalog-apis.md)。
+ 有关带有工作代码示例的端到端实验室，请参阅*AWS Marketplace卖家研讨会*中的[使用 API 管理商品](https://catalog.workshops.aws/mpseller/en-US/manage-products-with-api)。
+ *有关 API 请求的代码示例，请参阅示例中的 [AWSPython](https://github.com/aws-samples/aws-marketplace-reference-code/tree/main/python/src/catalog_api/products) 和 [Java](https://github.com/aws-samples/aws-marketplace-reference-code/tree/main/java/resources/changeSets/products) 示例 GitHub。*

以下主题介绍如何使用目录 API 对您的单 AMI 产品、基于容器的产品或 SaaS 产品执行操作。

**Topics**
+ [创建产品](#create-product)
+ [更新产品详情](#update-information)
+ [添加定价维度](#add-dimensions)
+ [更新定价维度](#update-dimensions)
+ [限制定价维度](#restrict-dimensions)
+ [更新定位配置](#update-targeting)
+ [更新产品知名度](#update-visibility)
+ [发布产品](#release-product)
+ [查找您的产品编号](#seller-product-id)
+ [更改集合状态和错误](#seller-product-change-set-errors)
+ [使用 AMI-based 产品](work-with-single-ami-products.md)
+ [使用 EC2 Image Builder 组件产品](work-with-ec2-image-builder-products.md)
+ [使用基于容器的产品AWS MarketplaceAPI](work-with-container-products.md)
+ [使用 SaaS 产品使用AWS MarketplaceAPI](work-with-saas-products.md)
+ [使用机器学习产品 AWS Marketplace API](work-with-ml-products.md)

## 创建产品
<a name="create-product"></a>

**注意**  
只有当您打算在AWS Marketplace目录中创建全新的产品实体时，才需要此更改类型。更新现有产品时不需要它。

您可以使用目录 API 创建带有标识符（产品代码和产品 ID）的 AMI、容器、机器学习或 SaaS 产品文档AWS Marketplace。

您可以通过使用`CreateProduct`更改类型调用 `StartChangeSet` API 操作来创建`Draft`处于状态的产品。

如果您的请求成功处理，则AWS Marketplace Catalog API会为您生成处于`Draft`状态的产品。这是一款不完整的商品，买家看不见AWS Marketplace。

然后，您可以使用`Update`变更类型来完成创建产品流程：[UpdateInformation[UpdateDimensions](#update-dimensions)](#update-information)、[UpdateTargeting](#update-targeting)、和[UpdateVisibility](#update-visibility)。

商品完成后，您可以使用[ReleaseProduct](#release-product)变更类型完成商品创建流程，然后发布报价。此过程验证整个产品并将产品移至`Limited`状态。

**注意**  
有关使用创建商品的更多信息AWS Marketplace 管理门户，请参阅《*AWS Marketplace卖家指南》*中的以下主题：  
[创建您的单 AMI 产品](https://docs.aws.amazon.com/marketplace/latest/userguide/ami-single-ami-products.html#ami-create-product)  
您无法更新该版本的 AMI。如果您需要更新 AMI，请改为创建一个新版本。
[创建容器产品](https://docs.aws.amazon.com/marketplace/latest/userguide/container-product-getting-started.html#create-container-product)
[创建 SaaS 产品](https://docs.aws.amazon.com/marketplace/latest/userguide/saas-create-product.html)
 [创建机器学习产品](https://docs.aws.amazon.com/marketplace/latest/userguide/ml-creating-your-listing.html) 
如果您使用创建产品，则该产品将处于`Staging`状态。AWS Marketplace 管理门户

要创建处于`Draft`状态的产品，请使用`CreateProduct`更改类型调用 `StartChangeSet` API 操作，如以下示例所示。

**请求语法**

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

{
"Catalog": "AWSMarketplace",
"ChangeSet": [ 
  { 
    "ChangeType":"CreateProduct",
    "Entity":{
      "Type": "SaaSProduct@1.0" // choose from ["AmiProduct@1.0", "ContainerProduct@1.0", "SaaSProduct@1.0", "MachineLearningProduct@1.0"]
     },
     "DetailsDocument": {
        "ProductTitle": "{{Test product title set in CreateProduct}}"
     }
  }
]
}
```

为字段提供信息以添加`CreateProduct`更改类型。此变更类型可以采用`ProductTitle`属性，但其限制与发送到`UpdateInformation`变更类型的限制相同。
+ `Entity`（对象）（必填）-正在创建的对象的命名类型。
  + `Type`（字符串）（必填）— 基于您的商品将使用的配送方式（产品类型）：`AmiProduct@1.0``ContainerProduct@1.0`、`MachineLearningProduct@1.0`或`SaaSProduct@1.0`。`Type`有关更多信息，请参阅 [标识符](catalog-apis.md#identifier)。
+ `DetailsDocument`（对象）（必填）— 它可能为空。
  + `ProductTitle`（可选）-商品名称，最大长度为 72 个字符。请注意，您也可以稍后通过`UpdateInformation`更改类型来设置或更新商品名称。

**响应语法**

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

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

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

您可以通过，也可以使用 API 操作直接通过 Catalog API 检查请求的`[DescribeChangeSet](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/API_DescribeChangeSet.html)`状态。AWS Marketplace 管理门户

请求完成后（如果`Status`是`SUCCEEDED`），则会生成一个新的`ProductId`请求。

**同步验证**

以下架构验证特定于中的`CreateProduct`AWS Marketplace Catalog API操作。这些验证是在您致电`StartChangeSet`时执行的。如果请求不符合以下要求，它将失败并显示 HTTP 响应。


| 输入字段 | 验证规则 | HTTP 代码 | 
| --- | --- | --- | 
| ProductTitle （字符串） | 最大长度：72 | 400 | 

**异步错误**  
以下错误特定于中的`CreateProduct`操作AWS Marketplace Catalog API。当您在处理更改集`DescribeChangeSet`之后调用时，会返回这些错误。有关使用`DescribeChangeSet`获取变更请求状态的更多详细信息，请参阅[使用变更集](catalog-apis.md#working-with-change-sets)。


| 错误代码  | 错误消息 | 
| --- | --- | 
| INVALID\_INPUT | 在 ProductTitle 字段中发现了不恰当的内容 “{InappropriateContent}”。不 ProductTitle 提供任何不当内容。 | 

## 更新产品详情
<a name="update-information"></a>

如果您已有产品AWS Marketplace，则可以使用目录 API 更新 AMI、容器、机器学习或 SaaS 产品的产品详细信息。

**注意**  
有关使用更新商品详情的更多信息AWS Marketplace 管理门户，请参阅《*AWS Marketplace卖家指南》*中的以下主题：  
AMI-based 产品：[更新产品信息](https://docs.aws.amazon.com/marketplace/latest/userguide/ami-single-ami-products.html#single-ami-updating-product)
Container-based 产品：[为您的容器产品创建或更新产品信息](https://docs.aws.amazon.com/marketplace/latest/userguide/container-product-getting-started.html#container-product-updating-version)
SaaS-based 产品：[更新产品信息](https://docs.aws.amazon.com/marketplace/latest/userguide/saas-product-settings.html#update-product-information)
机器学习产品：[更新产品信息](https://docs.aws.amazon.com/marketplace/latest/userguide/ml-update-product.html)

要更新产品详情，请使用`UpdateInformation`更改类型和要更改的详细信息调用 `StartChangeSet` API 操作，如以下示例所示。

**请求语法**

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

{
  "Catalog": "AWSMarketplace",
  "ChangeSet":
  [
    {
      "ChangeType": "UpdateInformation",
      "Entity":
      {
        "Identifier": "{{prod-example12345}}",
        "Type": "AmiProduct@1.0"
      },
      "DetailsDocument":
      {
        "ProductTitle": "{{My Product Title}}",
        "ShortDescription": "{{My product short description.}}",
        "LongDescription": "{{My product longer description.}}",
        "Sku": "{{123example456}}",
        "LogoUrl": "https://awsmp-logos.s3.amazonaws.com/{{ca60b754fe05a24257176cdbf31c4e0d}}",
        "VideoUrls":
        [
          "https://{{example.com/my-video}}"
        ],
        "Highlights":
        [
          "{{123example45}}"
        ],
        "AdditionalResources":
        [
          {
            "Text": "{{123example456}}",
            "Url": "https://{{example.com/some-link}}"
          }
        ],
        "SupportDescription": "{{Need help? Contact our experts at support@example.com \n\nYour purchase includes 24x7 support.}}",
        "Categories":
        [
          "Operating Systems",
          "Network Infrastructure",
          "Application Development"
        ],
        "SearchKeywords":
        [
          "{{123example456}}"
        ]
      }
    }
  ]
}
```

为要添加`UpdateInformation`更改类型的字段提供信息：
+ `Entity`（对象）（必填）-正在创建的实体的命名类型。
  + `Identifier`（字符串）（必填）-您的产品编号。有关更多信息，请参阅 [标识符](catalog-apis.md#identifier)。
  + `Type`（字符串）（必填）— 基于您的商品将使用的配送方式（产品类型）：`AmiProduct@1.0``ContainerProduct@1.0`、`MachineLearningProduct@1.0`、或`SaaSProduct@1.0`。`Type`
+ `DetailsDocument`（object）（必填）-请求的详细信息，包括您要更新的产品信息。每个字段都是可选的，但必须至少包含一项更改才能更新。
  + `ProductTitle`（字符串）-要向买家显示的商品名称。
  + `ShortDescription`（字符串）-要向买家展示的商品关键方面的描述。这通常是 2-3 句话。
  + `LongDescription`（字符串）-要向买家显示的商品的较长描述。这通常是 1-3 段。
  + `Sku`（字符串或空值）-您定义为供自己使用的参考的自由格式字符串。`null`用于取消设置此字段。
  + `LogoUrl`（字符串）— 可公开访问的亚马逊简单存储服务 (Amazon S3) 存储桶中图片的网址。有关更多信息，请参阅[公司和产品徽标要求](https://docs.aws.amazon.com/marketplace/latest/userguide/product-submission.html#seller-and-product-logos)。
  + `VideoUrls`（字符串数组）— 公开可用的外部托管视频的网址列表，这些视频将在您的商品信息中作为对买家的参考提供。
**注意**  
目前，在数组中AWS Marketplace支持一个 URL。
  + `Highlights`（字符串数组）-关键产品功能的简短标注列表。
  + `AdditionalResources`（结构数组）-用于了解您的产品的其他资源的参考列表。每个参考文献都由一个文本名称和一个 URL 组成：
    + `Text`（字符串）-资源的名称或标题。
    + `Url`（字符串）-可能有助于买家了解您的商品的资源网址。
  + `SupportDescription`（字符串）-有关您为产品提供的支持服务的详细信息。
  + `Categories`（字符串数组）-描述您的产品的AWS Marketplace已定义产品类别列表。有关更多信息，请参阅《*AWS Marketplace买家指南*》中的[商品类别](https://docs.aws.amazon.com/marketplace/latest/buyerguide/buyer-product-categories.html)。
  + `SearchKeywords`（字符串数组）-用于增强搜索体验的商品关键字列表。卖家名称、商品名称和商品类别会自动包含在搜索关键词中，无需在此处重复。

**注意**  
最初填充产品的产品信息（元数据）时，您需要在`UpdateInformation`变更类型的`DetailsDocument`对象中提供以下所有内容：`ProductTitle`、、、、`ShortDescription`、`LongDescription`、`LogoUrl`、`Highlights``AdditionalResources`、`SupportDescription``Categories`、和`SearchKeywords`。`Draft`  
如果在`CreateProduct`更改类型期间已经提供了，则`ProductTitle`可以将其省略。但是，在更新产品上的现有字段时，只能在变更类型的`DetailsDocument`对象中包含需要`UpdateInformation`更改的属性。

**响应语法**

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

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

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

要检查请求状态，请使用AWS Marketplace 管理门户或调用 `[DescribeChangeSet](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/API_DescribeChangeSet.html)` API。

**同步验证**

以下架构验证特定于中的`UpdateInformation`AWS Marketplace Catalog API操作。这些验证是在您致电`StartChangeSet`时执行的。如果请求不符合以下要求，它将失败并显示 HTTP 响应。


| 输入字段 | 验证规则 | HTTP 代码 | 
| --- | --- | --- | 
| 字符串（常规）  | 没有控制字符 “\\\\ x00-\\\\ x08\\\\ x0B-\\\\ x1F” | 400 | 
| ProductTitle （字符串） | 最大长度：72 必填 | 400 | 
| ShortDescription （字符串） | 最大长度：1000 必填 | 400 | 
| LongDescription （字符串） | 最大长度：5000 必填 | 400 | 
| Sku（字符串） | 最大长度：100 可选 | 400 | 
| LogoUrl （字符串） | 网址模式：<br />^ https://(www\\.)？ [-a-z A-Z0-9@。] {1,256}\\。 [a-z A-Z0-9 ()] {2,63}\\ b ([-a-za-@\+./] \*) Z0-9<br />必填 | 400 | 
| VideoUrls （字符串数组） | 网址模式：<br />https://(www\\\\。）？ [-a-z A-Z0 -9@.\_] {1,256}\\\\。 [a-z A-Z0-9 ()] {2,63}\\\\ b ([-a-z A-Z0-9 @\_ \+.\\/] <br />可选 | 400 | 
| 亮点（字符串数组） | 必填项：最小 1-最大 3 | 400 | 
| AdditionalResources （结构数组） | 最大长度：500 可选 | 400 | 
| SupportDescription （字符串） | 最大长度：2000必填 | 400 | 
| 类别（字符串数组） | 最小 1-最大 3 必填 | 400 | 
| SearchKeywords （字符串数组） | 最小 1-最大 15 每件物品最多 50 个字符<br />必填 | 400 | 

**异步错误**

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


| 错误代码 | 错误消息 | 
| --- | --- | 
| 缺少数据  | 未提供用于执行更新的数据。为商品的至少 1 个字段提供数据。 | 
| INVALID\_INPUT | 提供 LogoUrl。 | 
| INVALID\_INPUT | 提供 ProductTitle。 | 
| INVALID\_INPUT | 提供 ShortDescription。 | 
| INVALID\_INPUT | 提供 LongDescription。 | 
| INVALID\_INPUT | 提供 SupportDescription。 | 
| INVALID\_INPUT | 至少提供一个搜索关键词。 | 
| INVALID\_INPUT | 至少提供一个亮点。 | 
| INVALID\_INPUT | 提供 1 到 3 个商品类别。 | 
| INVALID\_INPUT | 在 ProductTitle 字段中发现了不恰当的内容 “{InappropriateContent}”。不 ProductTitle 提供任何不当内容。 | 
| INVALID\_INPUT | 在 ShortDescription 字段中发现了不恰当的内容 “{InappropriateContent}”。不 ShortDescription 提供任何不当内容。 | 
| INVALID\_INPUT | 在 LongDescription 字段中发现了不恰当的内容 “{InappropriateContent}”。不 LongDescription 提供任何不当内容。 | 
| INVALID\_INPUT | 在 SupportDescription 字段中发现了不恰当的内容 “{InappropriateContent}”。不 SupportDescription 提供任何不当内容。 | 
| INVALID\_INPUT |  ProductTitle 字段无效。删除商标符号前的空格。 | 
| INVALID\_INPUT |  ShortDescription 字段无效。删除商标符号前的空格。 | 
| INVALID\_INPUT |  LongDescription 字段无效。删除商标符号前的空格。 | 
| INVALID\_INPUT |  SupportDescription 字段无效。删除商标符号前的空格。 | 
| INVALID\_INPUT |  ProductTitle 字段无效。移除不支持的字符 [UnsupportedCharacters]。 | 
| INVALID\_INPUT |  ShortDescription 字段无效。移除不支持的字符 [UnsupportedCharacters]。 | 
| INVALID\_INPUT |  LongDescription 字段无效。移除不支持的字符 [UnsupportedCharacters]。 | 
| INVALID\_INPUT |  SupportDescription 字段无效。移除不支持的字符 [UnsupportedCharacters]。 | 
| INVALID\_INPUT | 搜索关键词的组合字符数不得超过 250 个。 | 
| INVALID\_INPUT | 无法读取此更改类型的输入。提交格式正确的输入。 | 
| 无效的额外资源 | [InvalidAdditionalResourcesUrls] 中的 AdditionalResources无效 URL 请提供有效的 URL。 | 
| 类别名称无效 | 提供支持的有效类别名称AWS Marketplace。 | 
| InvalidImageProperties | 发现验证错误：文件不是图像类型。支持的图像类型：[png\|jpg\|gif]。 | 
| 显式内容 | 露骨内容：检测到 '{ExplicitContent}'。向媒体提供不含露骨内容的内容。 | 
| 无效的媒体 | URL 无效：{MediaUrl} 为存储在 S3 中的媒体提供一个新的 URL。 | 
| 无效的媒体 | 无效网址：{MediaUrl} 请提供不超过 2048 个字符的有效网址。 | 
| 无效的媒体 | 提供的位置不可访问：{MediaUrl} 为存储在 S3 中的媒体提供可访问的 URL。 | 
| 无效的媒体 | 从 S3 复制媒体时出现问题。图像大小超过 5 MB。请提供小于 5 MB 的图片。 | 
| 无效的媒体 | 在媒体中检测到恶意软件。请重新提交没有恶意软件的媒体。 | 
| 媒体太多了 | 提供不超过 15 件媒介类商品。 | 
| 复制媒体 | 产品不允许使用重复的媒体。请提供没有重复内容的媒体。 | 

## 添加定价维度
<a name="add-dimensions"></a>

您可以使用 [AWS Marketplace 目录服务操作](https://docs.aws.amazon.com/marketplace/latest/APIReference/API_Operations_AWS_Marketplace_Catalog_Service.html)来添加可计费的定价维度，使您能够向用户收取 AMI、容器或 SaaS 产品的费用。

定*价维度*是卖家为向买家收费而定义的计量单位。无论是基于使用量的定价模式还是基于合同的定价模式，卖家都必须设置此信息才能向买家收取使用产品的账单。维度的类型取决于产品的定价模型。

**注意**  
对于采用免费定价模式的 SaaS 产品，您必须使用 UsageBasedPricingTerm 或创建至少一个维度 ConfigurableUpfrontPricingTerm，并且所有维度的定价必须为 0.00 美元。此要求是 SaaS 产品所独有的，不适用于 AMI、容器或机器学习产品。

**注意**  
新的定价维度会对 SaaS 购买者产生以下影响：  
对于通过公开报价创建协议的买家，您可以报告新维度的消费，即使协议创建时报价中不存在这些维度。
对于通过私密报价创建协议的买家，您无法报告新维度的消费，因为在创建协议时，私募报价中不存在这些维度。调用 [BatchMeterUsage](https://docs.aws.amazon.com/marketplace/latest/APIReference/API_marketplace-metering_BatchMeterUsage.html)API 会成功，但不会向买家收费，因此您必须跟踪哪些买家可以和不能为任何新维度收费。您还可以使用 [GetAgreementTerms](https://docs.aws.amazon.com/marketplace/latest/APIReference/API_marketplace-agreements_GetAgreementTerms.html)API 查看每份买家协议中包含的维度。  
要报告新维度的消费并向买家开具账单，您必须[延长包含该维度的换货报价](https://docs.aws.amazon.com/marketplace/latest/userguide/private-offers-upgrades-and-renewals.html#private-offers-upgrades-and-renewals-supported-products)，并且买家必须接受该报价。

有关产品定价的更多信息，请参阅《*AWS Marketplace卖家指南*》中的以下主题：
+ [AMI 产品定价](https://docs.aws.amazon.com/marketplace/latest/userguide/pricing-ami-products.html)
+ [集装箱产品定价](https://docs.aws.amazon.com/marketplace/latest/userguide/pricing-container-products.html)
+ [SaaS 产品定价](https://docs.aws.amazon.com/marketplace/latest/userguide/saas-pricing-models.html)
+ [机器学习产品定价](https://docs.aws.amazon.com/marketplace/latest/userguide/machine-learning-pricing.html)

有关使用添加定价维度的更多信息AWS Marketplace 管理门户，请参阅《*AWS Marketplace卖家指南*》中的以下主题：
+ AMI-based 产品：[更新定价](https://docs.aws.amazon.com/marketplace/latest/userguide/ami-single-ami-products.html#single-ami-update-product-pricing)。
+ Container-based 产品：[添加定价维度](https://docs.aws.amazon.com/marketplace/latest/userguide/container-product-getting-started.html#container-add-pricing-dimensions)。
+ SaaS-based 产品：[添加定价维度](https://docs.aws.amazon.com/marketplace/latest/userguide/saas-product-settings.html#saas-add-pricing-dimensions)。
+ 机器学习产品：不支持。机器学习产品具有固定的定价维度。但是，您可以[更新定价](https://docs.aws.amazon.com/marketplace/latest/userguide/ami-single-ami-products.html#single-ami-update-product-pricing)。

要添加定价维度，请使用`AddDimensions`更改类型调用 `StartChangeSet` API，如以下示例所示。

**注意**  
在提交第一个`AddDimensions`变更类型并指定定价模型类型（使用量、合同或消费合同）后，您必须与AWS Marketplace卖家运营团队合作。它们可以帮助您添加类型超出原始定价模型的维度。

**请求语法**

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

{
  "Catalog": "AWSMarketplace",
  "ChangeSet":
  [
    {
      "ChangeType": "AddDimensions",
      "DetailsDocument":
      [
        {
          "Description": "{{Description of the dimension}}",
          "Key": "{{UniqueApiKey}}",
          "Unit": "HostHrs",
          "Name": "{{First Dimension}}",
          "Types":
          [
            "ExternallyMetered"
          ]
        }
      ],
      "Entity":
      {
        "Identifier": "{{prod-example12345}}",
        "Type": "SaaSProduct@1.0"
      }
    }
  ]
}
```

为`AddDimensions`变更类型提供以下字段。
+ `DetailsDocument`（对象数组）（必填）-请求的详细信息。
  + `Description`（字符串）（必填）-买家查看页面上将作为详细描述的尺寸的完整详细信息。
  + `Key`（字符串）（必填）— 输入将用于定义报价中费率的分面。此外，如果无法从外部计量维度，请输入发布到 AWS Marketplace Metering Service (MMS) 的维度。创建维度后，无法更改。
  + `Units`（字符串）（必填）-维度的单位类型。可能的单位包括用户、主机、GB、MB、TB、Gbps、Mbps、请求、单位、 UserHrs、 UnitHrs、、单位、 HostHrs TierHrs、和。 TaskHrs
  + `Name`（字符串）（必填）-网站和客户账单上维度的显示名称。
    + `Types`（字符串数组）（必填）（也称为**标签**）-它们表示维度是涵盖计量、授权还是支持外部计量。创建维度后，此值不可更改。
    + 
      + `Metered`— 表示应创建商务平台使用类型以允许对该维度进行计量。
      + `ExternallyMetered`— 表示应在发布期间创建AWS Marketplace计量服务 (MMS) 维度，以允许卖家通过 AWS SDK 进行计量。
      + `Entitled`— 表示可以在产品或优惠发布期间为该维度授予权利。

        下表列出了支持的定价维度和产品组合。    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/marketplace/latest/developerguide/work-with-seller-products.html)
+ `Entity`（对象）（必填）-正在创建的实体的命名类型。
  + `Identifier`（字符串）（必填）-您的产品编号。有关更多信息，请参阅 [标识符](catalog-apis.md#identifier)。
  + `Type`（字符串）（必填）— 基于您的商品将使用的配送方式（产品类型）：`AmiProduct@1.0`或`SaaSProduct@1.0`。`Type`

**响应语法**

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

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

变更请求被添加到队列中并进行处理。这包括验证信息以确保其符合AWS Marketplace准则。验证过程可能需要几分钟到几小时不等。

您可以通过，也可以使用 API 操作直接通过 Catalog API 检查请求的`[DescribeChangeSet](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/API_DescribeChangeSet.html)`状态。AWS Marketplace 管理门户

**同步验证**

以下架构验证特定于中的`AddDimensions`AWS Marketplace Catalog API操作。这些验证是在您致电`StartChangeSet`时执行的。如果请求不符合以下要求，它将失败并显示 HTTP 响应。


| 输入字段 | 验证规则 | HTTP 代码 | 
| --- | --- | --- | 
| 说明 | 最大长度：1000 必填 | 400 | 
| Key | 最大长度：100 图案：[A-Za-z0-9\_.-] \+$ <br />必填 | 400 | 
| 尺寸单位 | 最大长度：20 必填 | 400 | 
| Name | 最大长度：500 必填 | 400 | 
| 类型（标签） | 必填项：最小 1-最大 3<br />输入：已授权、按流量计量、 ExternallyMetered <br />必填 | 400 | 

**异步错误**

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


| 错误代码  | 错误消息 | 
| --- | --- | 
| 缺少数据 | 未提供用于执行更新的数据。提供至少 1 个维度的数据。 | 
| 无效维度 | 提供的维度不超过 200 个。 | 
| 无效维度 | 无法添加重复的尺寸。 | 
| 无效维度 | 无法在当前状态 “%s” 下添加维度。支持维度更新的州为 %s。 | 
| 无效维度 | 无法添加维度。字段 “%s” 在其他维度中有重复的值 “%s”。 | 
| 无效维度 | 为每个维度提供非空字段（密钥、单位、名称、类型）。 | 
| IINVALID\_TYPE | 移除无效的类型 “%s”。有效类型为 ["计量”、“已授权”、ExternallyMetered “]。 | 
| 无效单位 | 移除无效的单元 “%s”。有效单位为 [“GB”、“Gbps”、“”、HostHrs “主机”、“MB”、“Mbps”、“请求”、“”、“TB”、TaskHrs “”、“”、TierHrs “”、“”、UnitHrs “单位”、“”、“”、UserHrs “用户”]。 | 
| INVALID\_INPUT | 在 %s 字段中找到不当内容 “%s”。请不要向 %s 提供任何不当内容。 | 
| INVALID\_INPUT | “%s” 字段无效。删除商标符号前的空格。 | 
| INVALID\_INPUT | “%s” 字段无效。删除不支持的字符 %s。 | 
| 无效维度 | 移除无效的维度类型组合 %s。允许的值为 %s。 | 
| 无效维度 | 移除按流量计量维度的无效维度密钥 “%s”。 | 
| 无效维度 | 产品代码 “%s” 中名为 “%s” 的维度未通过AWS Marketplace计量服务验证 %s。 | 
| 无效维度 | 产品代码 “%s” 中名为 “%s” 的维度在计量服务中没有计量记录。该产品要么从未启动进行测试，要么配置不正确，没有对AWS Marketplace计量服务进行适当的调用。 | 

## 更新定价维度
<a name="update-dimensions"></a>

您可以使用目录 API 更新中 AMI、容器或 SaaS 产品的现有定价维度AWS Marketplace。

每个维度都由执行更新的维度键和维度类型唯一标识。更新维度不会影响原始维度创建的任何在售商品或客户。

**注意**  
有关使用更新定价维度的更多信息AWS Marketplace 管理门户，请参阅《*AWS Marketplace卖家指南*》中的以下主题：  
AMI-based 产品：[更新定价](https://docs.aws.amazon.com/marketplace/latest/userguide/ami-single-ami-products.html#single-ami-update-product-pricing)
Container-based 产品：[更新维度信息](https://docs.aws.amazon.com/marketplace/latest/userguide/container-product-getting-started.html#container-update-dimensions-information)
SaaS-based 产品：[更新定价维度](https://docs.aws.amazon.com/marketplace/latest/userguide/saas-product-settings.html#saas-update-dimension)
机器学习产品：[更新产品定价](https://docs.aws.amazon.com/marketplace/latest/userguide/ml-update-public-offer.html)

要更新定价维度，请使用`UpdateDimensions`更改类型调用 `StartChangeSet` API 操作，如以下示例所示。

**请求语法**

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

{
  "Catalog": "AWSMarketplace",
  "ChangeSet":
  [
    {
      "ChangeType": "UpdateDimensions",
      "DetailsDocument":
      [
        {
          "Key": "{{UniqueApiKey}}",
          "Types":
          [
            "{{ExternallyMetered}}"
          ],
          "Name": "{{First Dimension}}",
          "Description": "{{Description of the dimension}}"
        }
      ],
      "Entity":
      {
        "Identifier": "{{prod-example12345}}",
        "Type": "SaaSProduct@1.0"
      }
    }
  ]
}
```

使用以下字段作为`UpdateDimensions`更改类型：
+ `DetailsDocument`（对象数组）（必填）-请求的详细信息。
  + `Key`（字符串）（必填）-提供产品中现有维度的密钥以更改描述和名称。对于`UpdateDimension`，此字段仅用于标识要更改的尺寸。
  + `Types`（字符串数组）（必填）（也称为**标签**）-它们表示维度是涵盖计量、授权还是支持外部计量。创建维度后，此值不可更改。
    + `Metered`— 表示应创建商务平台使用类型以允许对该维度进行计量。
    + `ExternallyMetered`— 表示应在发布期间创建AWS Marketplace Metering Service（彩信）维度，以允许卖家通过 AWS SDK 进行计量。
    + `Entitled`— 表示可以在 product/offer发布期间为维度授予权限。  
**有效的定价维度类型组合**    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/marketplace/latest/developerguide/work-with-seller-products.html)
  + `Description`（字符串）（可选）-买家查看页面上将作为详细描述的维度的完整描述。
  + `Name`（字符串）可选-在网站和客户账单上显示维度的名称。
+ `Entity`（对象）（必填）-正在创建的实体的命名类型。
  + `Identifier`（字符串）（必填）-您的产品编号。有关更多信息，请参阅 [标识符](catalog-apis.md#identifier)。
  + `Type`（字符串）（必填）— 基于您的商品将使用的配送方式（产品类型）：`AmiProduct@1.0`或`SaaSProduct@1.0`。`Type`

**响应语法**

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

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

变更请求被添加到队列中并进行处理。这包括验证信息以确保其符合AWS Marketplace指导方针。验证过程可能需要几分钟到几小时不等。

您可以通过，也可以使用 API 操作直接通过 Catalog API 检查请求的`[DescribeChangeSet](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/API_DescribeChangeSet.html)`状态。AWS Marketplace 管理门户

**同步验证**

以下架构验证特定于中的`UpdateDimensions`AWS Marketplace Catalog API操作。这些验证是在您致电`StartChangeSet`时执行的。如果请求不符合以下要求，它将失败并显示 HTTP 响应。


| 输入字段 | 验证规则 | HTTP 代码 | 
| --- | --- | --- | 
| 说明  | 最大长度：1000<br />必填 | 400 | 
| Key  | 最大长度：100<br />图案：[A-Za-z0-9\_.-] \+$ <br />必填 | 400 | 
| Name | 最大长度：5<br />必填 | 400 | 
|  类型（标签）  | 必填项：最小 1-最大 3<br />输入：`Entitled`、`Metered`、`ExternallyMetered`<br />必填 | 422 | 

**异步错误**

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


| 错误代码 | 错误消息 | 
| --- | --- | 
| INVALID\_INPUT | “%s” 字段无效。删除商标符号前的空格。 | 
| INVALID\_INPUT | “%s” 字段无效。删除不支持的字符 %s。 | 
| 无效维度 | 为每个维度提供非空字段（KeyTypes、、Name and/orDescription）。 | 
| 无效维度 | 无法更新维度。该字段Name在其他维度中有重复的值 “%s”。 | 
| 无效维度 | 无法使用密钥 “%s” 更新同一个维度，并在同一个请求中多次键入 “%s”。 | 
| 无效维度 | 无法限制尺寸。类型为 “%s” 的维度密钥 “%s” 不存在。 | 
|  无效维度  | 无法更新维度。维度键 “%s” 是Metered。 | 
|  无效维度  | 无法为已经受限的维度更新尺寸。 | 

## 限制定价维度
<a name="restrict-dimensions"></a>

您可以使用目录 API 来限制中 AMI 或 SaaS 产品的现有定价维度AWS Marketplace。

每个维度都由执行更新的维度键和维度类型唯一标识。限制维度不会影响原始维度创建的任何在售商品或客户。

要限制定价维度，请使用`RestrictDimensions`更改类型调用 `StartChangeSet` API。

**注意**  
定价维度限制仅在产品处于草稿状态时可用。一旦产品进入有限状态或公共状态，就不允许进行更改。

以下示例说明如何限制 SaaS 产品的`Entitled`维度。

**请求语法**

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

{
  "Catalog": "AWSMarketplace",
  "ChangeSet":
  [
    {
      "ChangeType": "RestrictDimensions",
      "DetailsDocument":
      [
        {
          "Key": "{{UniqueApiKey}}",
          "Types": ["Entitled"]
        }
      ],
      "Entity":
      {
        "Identifier": "{{prod-example12345}}",
        "Type": "SaaSProduct@1.0"
      }
    }
  ]
}
```

使用以下字段作为`RestrictDimensions`更改类型：
+ `DetailsDocument`（对象数组）（必填）-请求的详细信息。
  + `Key`（字符串）（必填）-提供产品中现有维度的密钥以更改描述和名称。对于`RestrictDimensions`，此字段仅用于标识要更改的尺寸。
  + `Types`（字符串数组）（必填）（也称为**标签**）-它们表示维度是涵盖计量、授权还是支持外部计量。创建维度后，此值不可更改。
    + `["ExternallyMetered", "Entitled"]`— 对于SaaS合同，您只能将这些类型与可以预付费或计量的消费定价相结合。
    + `["Metered"]`— 有关 AMI 产品的小时定价维度。表示应创建商务平台使用类型以允许对该维度进行计量。
    + `["ExternallyMetered"]`— 适用于 AMI、容器和 SaaS 产品的灵活消费定价维度（也称为自定义计量）。表示应在发布期间创建 M AWS arketplace 计量服务 (MMS) 维度，以允许卖家通过 AWS SDK 进行计量。
    + `["Entitled"]`— 有关 SaaS 合同和专业服务产品的合同定价维度。此标签授予使用软件或服务的权利，设置使用开始和结束日期，并授予 AMI 年度产品的使用折扣权。每项权利都由AWS Marketplace Entitlement Service用于创建和更新权利的维度密钥标识。密钥表示可以在产品和优惠发布期间为该维度授予权限。
+ `Entity`（对象）（必填）-正在创建的实体的命名类型。
  + `Identifier`（字符串）（必填）-您的产品编号。有关更多信息，请参阅 [标识符](catalog-apis.md#identifier)。
  + `Type`（字符串）（必填）— 基于您的商品的配送方式（产品类型）：`AmiProduct@1.0`或`SaaSProduct@1.0`。`Type`

**响应语法**

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

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

变更请求被添加到队列中并进行处理。这包括验证信息以确保其符合AWS Marketplace指导方针。验证过程可能需要几分钟到几小时不等。

您可以通过或调用 `[DescribeChangeSet](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/API_DescribeChangeSet.html)` API 来AWS Marketplace 管理门户检查请求的状态。

**同步验证**

以下架构验证特定于中的`RestrictDimensions`AWS Marketplace Catalog API操作。这些验证是在您致电`StartChangeSet`时执行的。如果请求不符合以下要求，它将失败并显示 HTTP 响应。


| 输入字段 | 验证规则 | HTTP 代码 | 
| --- | --- | --- | 
| 说明  | 最大长度：1000<br />必填 | 400 | 
| Key  | 最大长度：100<br />图案：[A-Za-z0-9\_.-] \+$ <br />必填 | 400 | 
| Name | 最大长度：5<br />必填 | 400 | 
|  类型（标签）  | 必填项：最小 1-最大 3<br />输入：`Entitled`、`Metered`、`ExternallyMetered`<br />必填 | 400 | 

**异步错误**

以下错误特定于中的`RestrictDimensions`操作AWS Marketplace Catalog API。当您在处理更改集时调用`DescribeChangeSet`时，会返回这些错误。有关使用`DescribeChangeSet`获取变更请求状态的更多信息，请参阅[使用变更集](catalog-apis.md#working-with-change-sets)。


| 错误代码 | 错误消息 | 
| --- | --- | 
| INVALID\_INPUT | “%s” 字段无效。删除商标符号前的空格。 | 
| INVALID\_INPUT | “%s” 字段无效。删除不支持的字符 %s。 | 
| 无效维度 | 类型为 “%s” 的维度键 “%s” 已受到限制 | 
| 无效维度 | 无法限制尺寸。类型为 “%s” 的维度密钥 “%s” 不存在 | 
| 无效维度 | 无法限制重复的尺寸。 | 
| 无效维度 | 所有已授权的维度都不能受到限制。必须至少有一个有效的授权维度。 | 
|  无效维度  | 类型为 “%s” 的维度键 “%s” 与另一个不同类型的维度 “%s” 相关联。必须同时限制同一个密钥的两个维度才有效。 | 

## 更新定位配置
<a name="update-targeting"></a>

您可以使用目录 API 来添加允许在 AMI、容器、机器学习或 SaaS 产品进入`Public`状态AWS Marketplace之前通过调用`UpdateTargeting`更改类型来查看 AMI、容器、机器学习或 SaaS 产品的 AWS 账户 ID。

创建新产品时，托管目录操作 (MCO) 帐户会自动添加到允许的帐户列表中。卖家在查看允许的账户时可以在AWS Marketplace管理门户 (AMMP) 和 `DescribeEntity` API 响应`Targeting`部分看到这些 MCO 账户。

**注意**  
有关使用添加AWS 账户编号的更多信息AWS Marketplace 管理门户，请参阅《*AWS Marketplace卖家指南*》中的以下主题：  
AMI-based 产品：[更新许可名单（预览账户](https://docs.aws.amazon.com/marketplace/latest/userguide/ami-single-ami-products.html#single-ami-updating-allowlist)）
Container-based 产品：[更新 AWS 账户 ID 的许可名单](https://docs.aws.amazon.com/marketplace/latest/userguide/container-product-getting-started.html#container-update-allowlist)
SaaS-based 产品：[更新 AWS 账户 ID 的许可名单](https://docs.aws.amazon.com/marketplace/latest/userguide/saas-product-settings.html#update-allowlist)
 机器学习产品：[更新许可名单](https://docs.aws.amazon.com/marketplace/latest/userguide/ml-update-allowlist.html) 

要添加允许查看 AMI、容器、机器学习或 SaaS 产品的 AWS 账户 ID，请使用`UpdateTargeting`更改类型调用 `StartChangeSet` API 操作，如以下示例所示。

**请求语法**

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

{
  "Catalog": "AWSMarketplace",
  "ChangeSet":
  [
    {
      "ChangeType": "UpdateTargeting",
      "Entity":
      {
        "Type": "SaaSProduct@1.0",
        "Identifier": "{{prod-example12345}}"
      },
      "DetailsDocument":
      {
        "PositiveTargeting":
        {
          "BuyerAccounts":
          [
            "{{1112223334444}}"
          ]
        }
      }
    }
  ]
}
```

将以下字段与`UpdateTargeting`更改类型一起使用。
+ `Entity`（对象）（必填）-正在创建的实体的命名类型。
  + `Identifier`（字符串）（必填）-您的产品编号。有关更多信息，请参阅 [标识符](catalog-apis.md#identifier)。
  + `Type`（字符串）（必填）— 基于您的商品将使用的配送方式（产品类型）：`AmiProduct@1.0``MachineLearningProduct@1.0`、或`SaaSProduct@1.0`。`Type`
+ `DetailsDocument`（对象）（必填）-运行所需的详细信息 ChangeSet。
  + `PositiveTargeting`（object）（可选）— 正面定位定义了任何买家的个人资料都应满足的标准，才允许他们访问报价。此字段为可选字段，但如果存在此字段，则应至少提供一个定位选项。
    + `BuyerAccounts`（字符串数组）（可选）— 列为允许基于 AWS 账户进行定向的选项（也称为私募优惠）。如果目的不是将报价定向 AWS 账户，则应省略此字段。

**响应语法**

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

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

变更请求被添加到队列中并进行处理。这包括验证信息以确保其符合AWS Marketplace指导方针。验证过程可能需要几分钟到几小时不等。

要检查请求状态，请使用AWS Marketplace 管理门户或调用 `[DescribeChangeSet](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/API_DescribeChangeSet.html)` API。

请求完成后（如果`Status`是`SUCCEEDED`），则会生成一个新的`ProductId`请求。

**同步验证**

以下架构验证特定于中的`UpdateTargeting`AWS Marketplace Catalog API操作。这些验证是在您致电`StartChangeSet`时执行的。如果请求不符合以下要求，它将失败并显示 HTTP 响应。


| 定位类型 | 有效的当前可见性状态 | BuyerAccounts （输入） | Check | 
| --- | --- | --- | --- | 
| 积极 | 公开Limited、或 Draft | 12 位数的 AWS 账户 ID 字符串数组。<br />最小尺寸：0。<br />最大尺寸：5000。 | 输入的内容必须与当前文档的目标账户不同。输入必须有效AWS 账户。 | 

**异步错误**

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


| 错误代码 | 错误消息 | 
| --- | --- | 
| 商品可见性无效 | 使用现有的公共Draft产品Limited或产品。 | 
| 无效\_ S AWS\_ACCOUNT\_ID | 提供有效的AWS 账户身份证件。 AWS 账户未找到:[x, y, z]。 | 
| ValidationException | 专业服务产品没有许可名单。与其他产品类型不同，有限状态下的专业服务产品无需许可名单即可扩展到任何买家。 | 

## 更新产品知名度
<a name="update-visibility"></a>

您可以使用目录 API 更新中 AMI、容器、机器学习或 SaaS 产品的可见性（也称为生命周期状态）AWS Marketplace。

**注意**  
有关使用更新商品知名度的更多信息AWS Marketplace 管理门户，请参阅《*AWS Marketplace卖家指南*》中的以下主题：  
AMI-based 产品：[更新产品知名度](https://docs.aws.amazon.com/marketplace/latest/userguide/ami-single-ami-products.html#ami-update-self-service-visibility)
Container-based 产品：[更新产品知名度](https://docs.aws.amazon.com/marketplace/latest/userguide/container-product-getting-started.html#container-product-visibility)
SaaS-based 产品：[更新产品知名度](https://docs.aws.amazon.com/marketplace/latest/userguide/saas-product-settings.html#saas-update-visibility)
机器学习产品：[更新产品知名度](https://docs.aws.amazon.com/marketplace/latest/userguide/ml-update-visibility.html)

允许的目标生命周期状态为`Limited``Public`、或`Restricted`。

`Limited`   
产品已完成并已成功完成`ReleaseProduct``ChangeType`。在此状态下，卖家可以查看商品详情。该产品未公开。但是，卖家可以定位特定的买家以允许他们预览商品。

`Public`   
该产品在中可见AWS Marketplace。买家可以查看和订阅该产品。

`Restricted`   
该产品不再对公众可见，也不接受新的订阅者。现有订阅者可以继续使用此产品，直到其订阅到期。

**注意**  
`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": "SaaSProduct@1.0",
        "Identifier": "{{prod-example12345}}"
      },
      "DetailsDocument":
      {
        "TargetVisibility": "Public"
      }
    }
  ]
}
```

因为什么时候`TargetVisibility`是`Restricted`。

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

{
  "Catalog": "AWSMarketplace",
  "ChangeSet":
  [
    {
      "ChangeType": "UpdateVisibility",
      "Entity":
      {
        "Type": "SaaSProduct@1.0",
        "Identifier": "{{prod-example12345}}"
      },
      "DetailsDocument":
      {
        "TargetVisibility": "Restricted",
        "ReplacementProductId": "{{prod-example54321}}"
      }
    }
  ]
}
```

为字段提供信息以添加`UpdateVisibility`更改类型。
+ `Entity`（对象）（必填）-正在创建的实体的命名类型。
  + `Identifier`（字符串）（必填）-您的产品编号。有关更多信息，请参阅 [标识符](catalog-apis.md#identifier)。
  + `Type`（字符串）（必填）— 基于您的商品将使用的配送方式（产品类型）：`AmiProduct@1.0`、`SaaSProduct@1.0`、`ContainerProduct@1.0`、`MachineLearningProduct@1.0`。`Type`有关更多信息，请参阅 [标识符](catalog-apis.md#identifier)。
+ `DetailsDocument`（对象）（必填）-运行所需的详细信息`ChangeSet`。
  + 
    + `TargetVisibility`— 产品预期的新知名度。

      可能的值：`Public`、`Limited` 和 `Restricted`
    + `ReplacementProductId`（字符串）（可选）-要使用的产品的替换产品编号`Restricted`。用于通知当前订阅者有关产品限制的信息。

      仅接受`Restricted``TargetVisibility`。

**同步验证**

以下架构验证特定于中的`UpdateVisibility`AWS Marketplace Catalog API操作。这些验证是在您致电`StartChangeSet`时执行的。如果请求不符合以下要求，它将失败并显示 HTTP 响应。


| 定位类型  | 有效的当前状态 | ReplacementProductId （输入）  | 验证检查 | 
| --- | --- | --- | --- | 
| Public | Limited 和 Restricted | 不允许 | 有效的当前状态 | 
| Limited | 公众和 Restricted | 不允许 | 有效的当前状态 | 
| Restricted | 公众和 Limited | 字符串（可选） | ReplacementProductId 必须属于现有产品Limited或公共产品。 | 

触发此更改类型后，最多可能需要 37 天才能完成。这包括AWS Marketplace卖家运营团队需要审查、审计和批准的时间。限制商品时，在AWS Marketplace卖家运营团队开始审计之前`CancelChangeSet`，您有 24 小时的时间通过致电来改变主意。有关更多信息，请参阅 [https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/API_CancelChangeSet.html](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/API_CancelChangeSet.html)。

**响应语法**

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

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

变更请求被添加到队列中并进行处理。这包括验证信息以确保其符合AWS Marketplace指导方针。验证过程可能需要几分钟到几小时不等。

您可以通过，也可以使用 API 操作直接通过 Catalog API 检查请求的`[DescribeChangeSet](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/API_DescribeChangeSet.html)`状态。AWS Marketplace 管理门户

请求完成后（如果`Status`是`SUCCEEDED`），则会生成一个新的`ProductId`请求。

**异步错误**

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


| 错误代码  | 错误消息 | 
| --- | --- | 
| 产品状态无效 | 使用现有的PublicLimited、或Restricted产品。 | 
| 目标可见性无效 | 提供有效的目标可见性状态：PublicLimited、或Restricted。 | 
| 空目标可见性 | 提供有效的目标可见性状态：PublicLimited、或Restricted。 | 
| 无效的替换商品编码 | 使用现有Limited产品Public或产品作为替代品。 | 
| 无效的替换商品编码 | 替换商品编码仅在限制商品时有效。 | 
| 审计错误 | 根据 MCO 手动审核而有所不同。 | 
| 缺少卖家个人资料信息 | 在将商品更新为 “公开” 之前，您必须向卖家账户添加公开个人资料。 | 

## 发布产品
<a name="release-product"></a>

您可以使用目录 API 将 `Draft` AMI、容器、机器学习或 SaaS 产品发布到`Limited`状态AWS Marketplace。

**注意**  
对于`AmiProduct@1.0`和`SaaSProduct@1.0`，`ReleaseProduct`变更类型必须附有为此产品创建的相应草稿公共`Offer@1.0`实体上的`ReleaseOffer`变更类型。

要发布产品，请使用`ReleaseProduct`更改类型调用 `StartChangeSet` API 操作，如以下示例所示。

**请求语法**

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

{
  "Catalog": "AWSMarketplace",
  "ChangeSet":
  [
    {
      "ChangeType": "ReleaseProduct",
      "Entity":
      {
        "Type": "SaaSProduct@1.0",
        "Identifier": "{{prod-example12345}}"
      },
      "DetailsDocument": {}
    }
  ]
}
```

为要添加到`ReleaseProduct`更改类型的字段提供信息。此更改类型不使用任何参数负载。
+ `Entity`（对象）（必填）-正在创建的实体的命名类型。
  + `Identifier`（字符串）（必填）-您的产品编号。有关更多信息，请参阅 [标识符](catalog-apis.md#identifier)。
  + `Type`（字符串）（必填）— 基于您的商品将使用的配送方式（产品类型）：`AmiProduct@1.0`、`SaaSProduct@1.0`、`ContainerProduct@1.0`、`MachineLearningProduct@1.0`。`Type`有关更多信息，请参阅 [标识符](catalog-apis.md#identifier)。
+ `DetailsDocument`（对象）（必填）-必须是空对象。变更类型`ReleaseProduct`不接受任何细节。

**响应语法**

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

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

变更请求被添加到队列中并进行处理。这包括验证信息以确保其符合AWS Marketplace指导方针。验证过程可能需要几分钟到几小时不等。

您可以通过，也可以使用 API 操作直接通过 Catalog API 检查请求的`[DescribeChangeSet](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/API_DescribeChangeSet.html)`状态。AWS Marketplace 管理门户

请求完成后（如果`Status`是`SUCCEEDED`），则会生成一个新的`ProductId`请求。

**异步错误**

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


| 错误代码  | 错误消息 | 
| --- | --- | 
| 验证失败 | 提供描述信息。 | 
| 验证失败 | 提供版本信息。 | 
| 验证失败 | 提供尺寸信息。 | 
| 验证失败 | 提供描述\| PromotionalResources \| SupportInformation 信息。 | 

## 查找您的产品编号
<a name="seller-product-id"></a>

您必须先获取产品的产品编码，然后才能使用AWS Marketplace目录 API 对其进行修改。有两种方法可以找到服务器产品的产品 ID：
+ 打开AWS Marketplace 管理门户并使用您的卖家账户登录。从 “**产品**” 菜单中选择 “**服务器产品**”，然后选择您感兴趣的产品。产品 ID 列在 “**产品一览**” 部分。
+ 使用带`EntityType`**AmiProduct**或**ContainerProduct**、**SaaSProduct****MachineLearningProduct**、或的[https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/API_ListEntities.html](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/API_ListEntities.html)操作**DataProduct**，通过目录 API 获取产品列表，包括其产品 ID。 `ListEntities`要求您不包括实体类型的版本（例如`AmiProduct@1.0`）。

**注意**  
产品编号仅在您的产品发布后才可用，并且至少您自己可以在中看到AWS Marketplace。首次创建商品时，可能需要几天时间才能完成审核和完全创建。在此期间，它将没有可用的产品编号。

以下主题说明了如何通过筛选实体 ID、产品标题、上次修改日期或可见性来查找产品。

**Topics**
+ [根据产品标题查找产品](#find-product-using-title)
+ [根据上次修改日期查找产品](#find-product-using-last-mod-date)
+ [根据产品知名度查找产品](#find-product-using-visibility)
+ [根据产品标题、上次修改日期和产品知名度查找产品](#find-product-using-all)
+ [获取有关产品的更多详细信息](#get-additional-details)

### 根据产品标题查找产品
<a name="find-product-using-title"></a>

**请求**

```
POST /ListEntities HTTP/1.1
Content-Type: application/json
      
{
    "Catalog": "AWSMarketplace",
    "EntityType": "AmiProduct",
    "MaxResults": 10,
    "EntityTypeFilters": {
        "AmiProductFilters": {
            "ProductTitle": {
                "WildCardValue": "{{XYZ}}"
            }
        }
    }
}
```

**响应**

```
HTTP/1.1 200
Content-type: application/json

{ 
  "EntitySummaryList": [ 
    { 
      "EntityArn": "arn:aws:aws-marketplace:{{us-east-1}}:{{123456789012}}:AWSMarketplace/AmiProduct/example-abcd-1234",
      "EntityId": "example1-abcd-1234-5ef6-7890abcdef12@1",
      "EntityType": "AmiProduct",
      "LastModifiedDate": "2018-02-27T13:45:22Z",
       "AmiProductSummary": {
            "ProductTitle": "{{ABC-XYZ-123}}",
            "Visibility": "Public"
       }
    } 
  ],
  "NextToken": "" 
}
```

### 根据上次修改日期查找产品
<a name="find-product-using-last-mod-date"></a>

**请求**

```
POST /ListEntities HTTP/1.1
Content-Type: application/json
      
{
    "Catalog": "AWSMarketplace",
    "EntityType": "AmiProduct",
    "MaxResults": 10,
    "EntityTypeFilters": {
        "AmiProductFilters": {
            "LastModifiedDate": {
                "DateRange": {
                    "BeforeValue": "{{2018-03-27T13:45:22Z}}",
                    "AfterValue": "{{2018-01-27T13:45:22Z}}"
                }
            }
        }
    }
}
```

**响应**

```
HTTP/1.1 200
Content-type: application/json

{ 
  "EntitySummaryList": [ 
    { 
      "EntityArn": "arn:aws:aws-marketplace:{{us-east-1}}:{{123456789012}}:AWSMarketplace/AmiProduct/example-abcd-1234",
      "EntityId": "{{example1-abcd-1234-5ef6-7890abcdef12@1}}",
      "EntityType": "AmiProduct",
      "LastModifiedDate": "{{2018-02-27T13:45:22Z}}",
       "AmiProductSummary": {
            "ProductTitle": "{{ABC-XYZ-123}}",
            "Visibility": "Public"
       }
    } 
  ],
  "NextToken": "" 
}
```

### 根据产品知名度查找产品
<a name="find-product-using-visibility"></a>

**请求**

```
POST /ListEntities HTTP/1.1
Content-Type: application/json
      
{
    "Catalog": "AWSMarketplace",
    "EntityType": "AmiProduct",
    "MaxResults": 10,
    "EntityTypeFilters": {
        "AmiProductFilters": {
            "Visibility": {
                "ValueList": [
                    "Public"
                ]
            }
        }
    }
}
```

**响应**

```
HTTP/1.1 200
Content-type: application/json

{ 
  "EntitySummaryList": [ 
    { 
      "EntityArn": "arn:aws:aws-marketplace:{{us-east-1}}:{{123456789012}}:AWSMarketplace/AmiProduct/example-abcd-1234",
      "EntityId": "{{example1-abcd-1234-5ef6-7890abcdef12@1}}",
      "EntityType": "AmiProduct",
      "LastModifiedDate": "{{2018-02-27T13:45:22Z}}",
       "AmiProductSummary": {
            "ProductTitle": "{{ABC-XYZ-123}}",
            "Visibility": "Public"
       }
    } 
  ],
  "NextToken": "" 
}
```

### 根据产品标题、上次修改日期和产品知名度查找产品
<a name="find-product-using-all"></a>

**请求**

```
POST /ListEntities HTTP/1.1
Content-Type: application/json
      
{
    "Catalog": "AWSMarketplace",
    "EntityType": "AmiProduct",
    "MaxResults": 10,
    "EntityTypeFilters": {
        "AmiProductFilters": {
            "LastModifiedDate": {
                "DateRange": {
                    "BeforeValue": "{{2018-03-27T13:45:22Z}}",
                    "AfterValue": "{{2018-01-27T13:45:22Z}}"
                }
            },
            "Visibility": {
                "ValueList": [
                    "Public"
                ]
            },
            "ProductTitle": {
                "ValueList": [
                    "{{ABC-XYZ-123}}"
                ]
            }
        }
    }
}
```

**响应**

```
HTTP/1.1 200
Content-type: application/json

{ 
  "EntitySummaryList": [ 
    { 
      "EntityArn": "arn:aws:aws-marketplace:{{us-east-1}}:{{123456789012}}:AWSMarketplace/AmiProduct/example-abcd-1234",
      "EntityId": "example1-abcd-1234-5ef6-7890abcdef12@1",
      "EntityType": "AmiProduct",
      "LastModifiedDate": "{{2018-02-27T13:45:22Z}}",
       "AmiProductSummary": {
            "ProductTitle": "{{ABC-XYZ-123}}",
            "Visibility": "Public"
       }
    } 
  ],
  "NextToken": "" 
}
```

### 获取有关产品的更多详细信息
<a name="get-additional-details"></a>

您可以使用带有`DescribeEntity`操作的实体 ID 来获取有关产品的更多详细信息。

**请求**

```
GET /DescribeEntity?catalog=AWSMarketplace&entityId={{example-abcd-1234}} HTTP/1.1
```

**响应**

```
HTTP/1.1 200
Content-type: application/json

{
   "DetailsDocument": {
        "ProductTitle": "{{ABC-XYZ-123}}",
        "ShortDescription": "{{My product short description.}}", 
        "LongDescription": "{{My product longer description.}}", 
        "Sku": "123example456", 
        "SupportDescription": "{{Need help? Contact our experts at support@example.com \n\nYour purchase includes 24x7 support.}}", 
        "Categories": [ 
            "Operating Systems", 
            "Network Infrastructure", 
            "Application Development" 
            ] 
   }
    "EntityArn": "arn:aws:aws-marketplace:{{us-east-1}}:{{123456789012}}:AWSMarketplace/AmiProduct/{{example-abcd-1234}}",
    "EntityId": "{{example1-abcd-1234-5ef6-7890abcdef12@1}}",
    "EntityType": "AmiProduct",
    "LastModifiedDate": "{{2018-02-27T13:45:22Z}}",
}
```

## 更改集合状态和错误
<a name="seller-product-change-set-errors"></a>

在AWS Marketplace目录 API 中对卖家商品进行更改需要创建描述您要进行的更改的变更集，然后使用`StartChangeSet`操作开始更改。根据请求的不同，对请求的更改可能需要几分钟、几小时或更长时间才能完成。对此请求的响应如下所示。

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

变更请求将被添加到队列中并进行处理，包括扫描文件和信息以确保其符合产品AWS Marketplace指南。根据变更请求，此过程可能需要几分钟到几天的时间。您可以通过或在目录 API 中使用`DescribeChangeSet`操作检查请求的状态。AWS Marketplace 管理门户有关更改集的更多信息，请参阅[使用变更集](catalog-apis.md#working-with-change-sets)。

要查看您的请求状态，请使用`DescribeChangeSet`操作。

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

{
   "Catalog": "AWSMarketplace",
   "ChangeSetID": "{{{{example123456789012abcdef}}}}"
}
```

此调用的结果如下所示（在本例中，用于向容器产品添加新版本）。

```
{
  "ChangeSetId": "{{example123456789012abcdef}}",
  "ChangeSetArn": "arn:aws:aws-marketplace:{{us-east-1}}:{{123456789012}}:AWSMarketplace/ChangeSet/{{example123456789012abcdef}}",
  "ChangeSetName": "Submitted by {{123456789012}}",
  "StartTime": "{{2020-10-27T22:21:26Z}}",
  "EndTime": "{{2020-10-27T22:32:19Z}}",
  "Status": "SUCCEEDED",
  "ChangeSet":
  [
    {
      "ChangeType": "AddDeliveryOptions",
      "Entity":
      {
        "Type": "ContainerProduct@1.0",
        "Identifier": "{{example-1234-abcd-56ef-abcdef12345678@4}}"
      },
      "Details": "{\"Version\": {\"VersionTitle\": \"1.1\",\"ReleaseNotes\": \"Minor bug fix\"},\"DeliveryOptions\": [{\"DeliveryOptionTitle\": \"EKSDelivery\",\"Details\": {\"EcrDeliveryOptionDetails\" : {\"ContainerImages\": [\"{{111122223333}}.dkr.ecr.us-east-1.amazonaws.com/sellername/reponame1:1.1\"],\"DeploymentResources\": [{\"Name\": \"HelmDeploymentTemplate\",\"Url\": \"{{111122223333}}.dkr.ecr.us-east-1.amazonaws.com/sellername/reponame2:mychart1.1\"}],\"CompatibleServices\": [\"EKS\"],\"Description\": \"Sample Description\",\"UsageInstructions\":\"helm pull {{111122223333}}.dkr.ecr.us-east-1.amazonaws.com/sellername/reponame2:mychart1.1\"}}},{\"DeliveryOptionTitle\": \"HelmChartDeliveryOption\",\"Details\": {\"HelmDeliveryOptionDetails\": {\"CompatibleServices\": [\"EKS\", \"EKS-Anywhere\"],\"ContainerImages\": [\"{{111122223333}}.dkr.ecr.us-east-1.amazonaws.com/sellername/reponame1:1.1\"],\"HelmChartUri\": \"{{111122223333}}.dkr.ecr.us-east-1.amazonaws.com/sellername/reponame1:helmchart1.1\",\"Description\": \"Helm chart description\",\"UsageInstructions\": \"Usage instructions\",\"MarketplaceServiceAccountName\": \"Service account name\",\"ReleaseName\": \"Optional release name\",\"Namespace\": \"Optional Kubernetes namespace\",\"OverrideParameters\": [{\"Key\": \"HelmKeyName1\",\"DefaultValue\": \"${AWSMP_LICENSE_SECRET}\"},{\"Key\": \"HelmKeyName2\",\"DefaultValue\": \"${AWSMP_SERVICE_ACCOUNT}\"}]}}}]}",
      "DetailsDocument":
      {
        "Version":
        {
          "VersionTitle": "1.1",
          "ReleaseNotes": "Minor bug fix"
        },
        "DeliveryOptions":
        [
          {
            "DeliveryOptionTitle": "EKSDelivery",
            "Details":
            {
              "EcrDeliveryOptionDetails":
              {
                "ContainerImages":
                [
                  "{{111122223333}}.dkr.ecr.us-east-1.amazonaws.com/sellername/reponame1:1.1"
                ],
                "DeploymentResources":
                [
                  {
                    "Name": "HelmDeploymentTemplate",
                    "Url": "{{111122223333}}.dkr.ecr.us-east-1.amazonaws.com/sellername/reponame2:mychart1.1"
                  }
                ],
                "CompatibleServices":
                [
                  "EKS"
                ],
                "Description": "Sample Description",
                "UsageInstructions": "helm pull {{111122223333}}.dkr.ecr.us-east-1.amazonaws.com/sellername/reponame2:mychart1.1"
              }
            }
          },
          {
            "DeliveryOptionTitle": "HelmChartDeliveryOption",
            "Details":
            {
              "HelmDeliveryOptionDetails":
              {
                "CompatibleServices":
                [
                  "EKS",
                  "EKS-Anywhere"
                ],
                "ContainerImages":
                [
                  "{{111122223333}}.dkr.ecr.us-east-1.amazonaws.com/sellername/reponame1:1.1"
                ],
                "HelmChartUri": "{{111122223333}}.dkr.ecr.us-east-1.amazonaws.com/sellername/reponame1:helmchart1.1",
                "Description": "Helm chart description",
                "UsageInstructions": "Usage instructions",
                "MarketplaceServiceAccountName": "Service account name",
                "ReleaseName": "Optional release name",
                "Namespace": "Optional Kubernetes namespace",
                "OverrideParameters":
                [
                  {
                    "Key": "HelmKeyName1",
                    "DefaultValue": "${AWSMP_LICENSE_SECRET}"
                  },
                  {
                    "Key": "HelmKeyName2",
                    "DefaultValue": "${AWSMP_SERVICE_ACCOUNT}"
                  }
                ]
              }
            }
          }
        ]
      },
      "ErrorDetailList":
      []
    }
  ]
}
```

该`Status`字段显示请求的当前状态，在本例中为`SUCCEEDED`。

如果出现故障，则结果可能包括两种类型的错误。对于大多数错误，直接包含错误消息。但是，在扫描产品是否存在安全漏洞时发现的错误会包含一个文件的 URL，该文件列出了该`ErrorMessage`字段中发现的所有错误。扫描时发现的错误有 `ErrorCode` “`SCAN_ERROR`”。

```
{
  "ChangeSetId": "{{example123456789012abcdef}}",
  "ChangeSetArn": "arn:aws:aws-marketplace:{{us-east-1}}:{{123456789012}}:AWSMarketplace/ChangeSet/{{example123456789012abcdef}}",
  "ChangeSetName": "Submitted by {{123456789012}}",
  "StartTime": "{{2020-10-27T22:21:26Z}}",
  "EndTime": "{{2020-10-27T22:32:19Z}}",
  "Status": "FAILED",
  "FailureDescription": "Change set preparation has failed. For details see 'ErrorDetailList'.",
  "ChangeSet":
  [
    {
      "ChangeType": "AddDeliveryOptions",
      "Entity":
      {
        "Type": "ContainerProduct@1.0",
        "Identifier": "{{example-1234-abcd-56ef-abcdef12345678@4}}"
      },
      "Details": "{\"Version\": {\"VersionTitle\": \"1.1\",\"ReleaseNotes\": \"Minor bug fix\"},\"DeliveryOptions\": [{\"DeliveryOptionTitle\": \"EKSDelivery\",\"Details\": {\"EcrDeliveryOptionDetails\" : {\"ContainerImages\": [\"{{111122223333}}.dkr.ecr.us-east-1.amazonaws.com/sellername/reponame1:1.1\"],\"DeploymentResources\": [{\"Name\": \"HelmDeploymentTemplate\",\"Url\": \"{{111122223333}}.dkr.ecr.us-east-1.amazonaws.com/sellername/reponame2:mychart1.1\"}],\"CompatibleServices\": [\"EKS\"],\"Description\": \"Sample Description\",\"UsageInstructions\":\"helm pull {{111122223333}}.dkr.ecr.us-east-1.amazonaws.com/sellername/reponame2:mychart1.1\"}}},{\"DeliveryOptionTitle\": \"HelmChartDeliveryOption\",\"Details\": {\"HelmDeliveryOptionDetails\": {\"CompatibleServices\": [\"EKS\", \"EKS-Anywhere\"],\"ContainerImages\": [\"{{111122223333}}.dkr.ecr.us-east-1.amazonaws.com/sellername/reponame1:1.1\"],\"HelmChartUri\": \"{{111122223333}}.dkr.ecr.us-east-1.amazonaws.com/sellername/reponame1:helmchart1.1\",\"Description\": \"Helm chart description\",\"UsageInstructions\": \"Usage instructions\",\"MarketplaceServiceAccountName\": \"Service account name\",\"ReleaseName\": \"Optional release name\",\"Namespace\": \"Optional Kubernetes namespace\",\"OverrideParameters\": [{\"Key\": \"HelmKeyName1\",\"DefaultValue\": \"${AWSMP_LICENSE_SECRET}\"},{\"Key\": \"HelmKeyName2\",\"DefaultValue\": \"${AWSMP_SERVICE_ACCOUNT}\"}]}}}]}",
      "DetailsDocument":
      {
        "Version":
        {
          "VersionTitle": "1.1",
          "ReleaseNotes": "Minor bug fix"
        },
        "DeliveryOptions":
        [
          {
            "DeliveryOptionTitle": "EKSDelivery",
            "Details":
            {
              "EcrDeliveryOptionDetails":
              {
                "ContainerImages":
                [
                  "{{111122223333}}.dkr.ecr.us-east-1.amazonaws.com/sellername/reponame1:1.1"
                ],
                "DeploymentResources":
                [
                  {
                    "Name": "HelmDeploymentTemplate",
                    "Url": "{{111122223333}}.dkr.ecr.us-east-1.amazonaws.com/sellername/reponame2:mychart1.1"
                  }
                ],
                "CompatibleServices":
                [
                  "EKS"
                ],
                "Description": "Sample Description",
                "UsageInstructions": "helm pull {{111122223333}}.dkr.ecr.us-east-1.amazonaws.com/sellername/reponame2:mychart1.1"
              }
            }
          },
          {
            "DeliveryOptionTitle": "HelmChartDeliveryOption",
            "Details":
            {
              "HelmDeliveryOptionDetails":
              {
                "CompatibleServices":
                [
                  "EKS",
                  "EKS-Anywhere"
                ],
                "ContainerImages":
                [
                  "{{111122223333}}.dkr.ecr.us-east-1.amazonaws.com/sellername/reponame1:1.1"
                ],
                "HelmChartUri": "{{111122223333}}.dkr.ecr.us-east-1.amazonaws.com/sellername/reponame1:helmchart1.1",
                "Description": "Helm chart description",
                "UsageInstructions": "Usage instructions",
                "MarketplaceServiceAccountName": "Service account name",
                "ReleaseName": "Optional release name",
                "Namespace": "Optional Kubernetes namespace",
                "OverrideParameters":
                [
                  {
                    "Key": "HelmKeyName1",
                    "DefaultValue": "${AWSMP_LICENSE_SECRET}"
                  },
                  {
                    "Key": "HelmKeyName2",
                    "DefaultValue": "${AWSMP_SERVICE_ACCOUNT}"
                  }
                ]
              }
            }
          }
        ]
      },
      "ErrorDetailList":
      [
        {
          "ErrorCode": "DUPLICATE_VERSION_TITLE",
          "ErrorMessage": "The version title must be different from any other version titles of this product."
        },
        {
          "ErrorCode": "SCAN_ERROR",
          "ErrorMessage": "https://123sample456.cloudfront.net/example-1234-abcd-5678-abcdef12345678/1234abcdef567890"
        }
      ]
    }
  ]
}
```

在此示例中，直接报告了一个错误 (`DUPLICATE_VERSION_TITLE`)。另一个错误有一个包含错误消息的文件（在链接的文件中，单个错误`SCAN_ERROR`可能存在多个已发现的错误）。

**注意**  
中返回的链接有效期`ErrorMessage`为 60 天。