

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

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

# 使用私有市场合作AWS MarketplaceAPI
<a name="work-with-private-marketplace"></a>

您可以使用AWS Marketplace Catalog API来管理您AWS 账户或[组织的](https://docs.aws.amazon.com/organizations/latest/userguide/)*私有市场*。

所有变更类型只能从组织的管理账户调用，也可以由作为私有市场委托管理员的成员账户调用。如果您目前是未AWS Organizations集成私有市场的私有市场客户，则可以通过组织中任何具有 `AWSPrivateMarketplaceAdminFullAccess` IAM 政策的账户创建和管理私有市场。

 有关私有市场的更多信息，请参阅《*AWS Marketplace买家*指南》中的[私有市场](https://docs.aws.amazon.com/marketplace/latest/buyerguide/private-marketplace.html)。

 下表详细介绍了一组用于管理私有市场的任务以及适用于每项任务的变更类型。


| Task | 处理建议 | 更改类型 | 
| --- | --- | --- | 
| [创建私有市场](#creating-a-private-marketplace) | `StartChangeSet` | `CreateExperience`<br />`CreateProcurementPolicy` | 
| [改变私有市场体验的品牌形象](#private-marketplace-branding) | `StartChangeSet` | `CreateBrandingSettings`<br />`UpdateBrandingSettings` | 
| [启用或禁用私有市场体验](#enable-private-marketplace) | `StartChangeSet` | `UpdateExperience` | 
| [启用或禁用用户请求](#private-marketplace-user-requests) | `StartChangeSet` | `UpdateProcurementPolicy` | 
| [获取私有市场体验中的产品清单](#private-marketplace-policy-details) | `DescribeEntity` | 不适用 | 
| [在私人市场中添加或移除商品](#private-marketplace-add-products) | `StartChangeSet` | `AllowProductProcurement`<br />`DenyProductProcurement` | 
| [查找产品](#finding-product-ids) | 不适用 | 不适用 | 
| [与私人市场合作AWS Organizations](#private-marketplace-organizations) | 不适用 | 不适用 | 
| [将校长与体验联系起来](#private-marketplace-associate-accounts) | `StartChangeSet` | `AssociateAudience`<br />`DisassociateAudience` | 
| [存档并重新激活 Private Marketplace 体验](#archiving-and-reactivating-a-private-marketplace-experience-capi) | `StartChangeSet` | `RestrictExperience`<br />`ReviveExperience` | 

## 创建私有市场
<a name="creating-a-private-marketplace"></a>

的私人市场AWS 账户可以看作是允许用户使用该账户购买的产品列表以及该市场的品牌推广。在拥有多个账户的组织中，您可以使用AWS Organizations被叫[组织单位 (OU)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html#organizationalunit) 中的分组与体验关联。例如，您可以拥有一组允许组织内所有账户购买的产品，也可以为组织中的每个 OU 制定不同的产品清单。您也可以为组织中的个人账户制定不同的产品清单。每份经批准的产品和品牌列表都被称为采购*体验*。

在中AWS Marketplace Catalog API，四个实体代表一种体验：
+ `Experience`entity — 此实体处于体验的最高等级，包含两个子实体。
+ `ProcurementPolicy`实体 — 此实体代表您的私有市场允许和拒绝的商品。
+ `BrandingSettings`实体 — 您还可以创建一个`BrandingSettings`实体来定义您的私有市场对用户的看法。
+ `Audience`实体 — 您还必须关联一个或多个`Audience`实体，这些实体定义了体验所适用的AWS 账户、OU 或组织的集合。

创建采购体验的步骤如下：

1. 创建实`Experience`体。

1. 创建一个`ProcurementPolicy`实体来存储允许或拒绝提供体验的产品列表。

1. （可选）创建一个`BrandingSettings`实体以自定义您的商城体验外观。

1. 将校长与你的经历联系起来。委托人可以是AWS 账户、OU 或组织。

1. 启用体验。

**注意**  
如果您的账户是中组织的一部分AWS Organizations，请参阅[与私人市场合作AWS Organizations](#private-marketplace-organizations)。

**创建实`Experience`体**

要创建`Experience`实体，请使用带有`ChangeType`参数`CreateExperience`值的`StartChangeSet`操作来请求创建体验AWS Marketplace。请看下面的代码示例。

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

{
  "Catalog": "AWSMarketplace",
  "ChangeSet":
  [
    {
      "ChangeType": "CreateExperience",
      "DetailsDocument":
      {
        "Name": "ExamplePrivateMarketplace"
      },
      "Entity":
      {
        "Type": "Experience@1.0"
      }
    }
  ],
  "ChangeSetName": "Create Private Marketplace Example"
}
```

在此操作中，`Entity`是您要创建的实体的模板。它是在创建`EntityId`时被分配的。 `ChangeSetName`标识更改以帮助您稍后查找。

响应看起来与以下内容类似。

```
{
   "ChangeSetArn": "arn:...:AWSMarketplace/ChangeSet/abcd1234example5678frjzkz",
   "ChangeSetId": "abcd1234example5678frjzkz"
}
```

响应中包含一个`ChangeSetId`，您可以使用该响应来获取变更请求在处理变更请求时的状态`DescribeChangeSet`。您也可以使用`ListEntities`来查找您的`Experience`实体，而无需使用`ChangeSetId`. 有关更改集的更多信息，请参阅[使用变更集](catalog-apis.md#working-with-change-sets)。

默认情况下，新创建的`Experience`实体没有采购政策。它也是使用默认的品牌设置创建的。有关品牌设置的更多信息，包括如何对其进行自定义，请参阅[改变私有市场体验的品牌形象](#private-marketplace-branding)。

**创建实`ProcurementPolicy`体**

您必须创建一个`ProcurementPolicy`实体。默认情况下，新`Experience`实体处于禁用状态，因此您可以在启用采购政策之前创建它。

**注意**  
*没有*采购政策（空）的`Experience`实体允许在您的私人市场上采购所有产品。采购政策为*空*的`Experience`实体没有可供用户采购的产品。

要允许和拒绝在您的私人市场上销售商品，您必须创建采购政策。要做到这一点，你再次打电话`StartChangeSet`，但这次是用 o `ChangeType` f `CreateProcurementPolicy`。以下代码示例创建了一个空的采购政策。

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

{
  "Catalog": "AWSMarketplace",
  "ChangeSet":
  [
    {
      "ChangeType": "CreateProcurementPolicy",
      "DetailsDocument":
      {
        "Name": "ExampleProcurementPolicy"
      },
      "Entity":
      {
        "Type": "Experience@1.0",
        "Identifier": "exp-1234example@1"
      }
    }
  ]
}
```

`Entity`您在此操作中提供的`Experience`实体是您想要在其中创建采购政策的实体，因此您必须包括之前创建的实体的标识符。用于`ListEntities`查找实`Experience`体。也可以通过使用`CreateExperience`操作中的更改集标识`DescribeChangeSet`符来返回标识符

**注意**  
此示例显示了修订版为的标识符`1`。有关标识符修订版的更多信息，请参阅[标识符](catalog-apis.md#identifier)。

您可以再次使用`DescribeChangeSet``CreateProcurementPolicy`变更类型来跟踪您的请求的处理情况。

**注意**  
您为`Experience`和`ProcurementPolicy`对象提供的名称不会出现在中AWS Marketplace。这些名称只是为了便于您在 API 中查找实体。

在您创建了采购政策后，您的私有市场将显示在AWS 管理控制台。（你可以前往 P [rivate Marketplace 页面](https://aws.amazon.com/marketplace/privatemarketplace)查看。） 完成这些步骤后，您的私有市场将被禁用，使用默认品牌，采购政策为空，并且不会与组织中的任何委托人关联。您可以更新品牌并添加任何您想要的产品，将体验与一个或多个账户相关联，然后启用您的私人市场。

以下各节介绍如何使用管理您的私有市场AWS Marketplace Catalog API。

## 改变私有市场体验的品牌形象
<a name="private-marketplace-branding"></a>

您可以为用户自定义私有市场的外观。如果不进行自定义，您的私有商城将使用默认的品牌设置，如下所述。在私有市场中，您可以更改品牌的各个方面包括以下方面：
+ `Title`— 为您的私人市场显示的名称。这与私募市场**配置文件设置**屏幕中的**姓名**字段相同。如果您将设置为**Example**，则显示的文本`Title`为 Example P **rivate Marketplace**。默认为**私有市场**。
+ `Information`— 在您的私人市场中，该段落显示在名称下。这与 “**配置文件设置” 中的 “****描述**” 字段相同。默认值为无信息，在这种情况下，将显示私有市场的一般描述。
+ `ThemeColor`— 您的私人市场横幅中显示的颜色。这是一种采用 RGB 十六进制格式的颜色。此值与 “**配置文件设置” 中的 “****主题颜色**” 字段相同。默认值为 `#232F3E`。
+ `LogoUrl`— 指向要在您的私有市场上用作徽标的图片文件的 URL。该网址必须公开可用（例如，已签名的亚马逊 S3 网址）。该文件必须是.png 或.svg 文件，且大小必须小于 500kb。如有必要，图像文件的大小将调整为最大高度为 30 像素，最大宽度为 100 像素。这与 “**配置文件设置****” 中的 “**徽标**选择”** 值相同。默认为不显示徽标。

要设置这些值，必须先创建一个具有`CreateBrandingSettings`更改类型的`BrandingSettings`实体。然后，您可以申请`UpdateBrandingSettings`更改以设置或更改品牌。您只需要创建一个`BrandingSettings`对象一次。要创建此对象，请`StartChangeSet`使用`CreateBrandingSettings`更改类型进行调用，如以下代码示例所示。

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

{
  "Catalog": "AWSMarketplace",
  "ChangeSet":
  [
    {
      "ChangeType": "CreateBrandingSettings",
      "DetailsDocument":
      {
        "Name": "ExampleBrandingSettingsName"
      },
      "Entity":
      {
        "Type": "Experience@1.0",
        "Identifier": "exp-1234example@2"
      }
    }
  ]
}
```

此示例通过向`Experience`实体添加`BrandingSettings`对象来修改实体。实体标识符的修订版已增加到。`2`有关标识符修订版的更多信息，请参阅[标识符](catalog-apis.md#identifier)。

**注意**  
您可以在调用中指定品牌设置的所有详细信息以创建品牌设置实体。和的细节方面相同`CreateBrandingSettings`。`UpdateBrandingSettings`

您可以通过使用`UpdateBrandingSettings`更改类型调`StartChangeSet`用来修改设置。这些设置是`DetailsDocument`对象的一部分。`Configuration`

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

{
  "Catalog": "AWSMarketplace",
  "ChangeSet":
  [
    {
      "ChangeType": "UpdateBrandingSettings",
      "DetailsDocument":
      {
        "Name": "ExampleBrandingSettingsName",
        "Description": "Example description",
        "Configuration":
        {
          "Title": "ExampleName",
          "Information": "Example description.",
          "ThemeColor": "#0e7f74",
          "LogoUrl": "https://example.com/path/mylogo.png"
        }
      },
      "Entity":
      {
        "Type": "Experience@1.0",
        "Identifier": "exp-1234example@3"
      }
    }
  ]
}
```

**注意**  
在更新更改期间，徽标的 URL 用于制作副本。更改完成后，如果您删除或更改该路径上的网址，除非您再次提出请求，否则不会影响您的私有市场`UpdateBrandingSettings`。

## 启用或禁用私有市场体验
<a name="enable-private-marketplace"></a>

启用私有市场（且有采购政策）后，关联账户中的用户只能购买您批准的产品。如果账户未启用私有市场体验，则用户可以在整个AWS Marketplace目录中购买产品。

要启用私有市场，请使用带有`UpdateExperience`更改类型的`StartChangeRequest`操作。

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

{
  "Catalog": "AWSMarketplace",
  "ChangeSet":
  [
    {
      "ChangeType": "UpdateExperience",
      "DetailsDocument":
      {
        "Status": "Enabled"
      },
      "Entity":
      {
        "Type": "Experience@1.0",
        "Identifier": "exp-1234example@4"
      }
    }
  ]
}
```

同样，你可以使用同样的操作和`ChangeType`，但`DetailsDocument``Disabled`要将其更改为禁用私有市场。`Status`

**注意**  
禁用私有商城会保留允许和拒绝的产品列表以及品牌推广等自定义设置。禁用私有市场后，用户将无法再看到私有市场（尽管他们可能仍受组织的默认体验的约束）。如果账户没有启用私有市场体验，则所有限制都将被取消，用户可以在公共AWS Marketplace场合购买任何产品。

## 启用或禁用用户请求
<a name="private-marketplace-user-requests"></a>

您组织中的用户可以查看全部公开AWS Marketplace内容，但他们只能订阅您允许的产品。默认情况下，他们可以请求将不在私有市场上的产品添加到该商城中。这些请求显示在私有市场管理员页面（Privat [e Marketplace](https://aws.amazon.com/marketplace/privatemarketplace/admin/)）中，您可以在其中决定是接受还是拒绝该请求（以及是否阻止对同一商品的进一步请求）。您无法使用目录 API 查看或响应请求。

您可以启用或禁用用户针对您的私有市场体验创建请求的功能。`StartChangeSet`与`UpdateProcurementPolicy`更改类型一起使用。在以下代码示例中，发出请求的功能被禁用。

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

{
  "Catalog": "AWSMarketplace",
  "ChangeSet":
  [
    {
      "ChangeType": "UpdateProcurementPolicy",
      "DetailsDocument":
      {
        "Configuration":
        {
          "PolicyResourceRequests": "Deny"
        }
      },
      "Entity":
      {
        "Type": "Experience@1.0",
        "Identifier": "exp-1234example@5"
      }
    }
  ]
}
```

要为用户启用变更请求功能，请使用`Allow`代替 `Deny` in `PolicyResourceRequests`。

要了解如何获取此设置的当前状态，请参阅下一节[获取私有市场体验中的产品清单](#private-marketplace-policy-details)。

## 获取私有市场体验中的产品清单
<a name="private-marketplace-policy-details"></a>

私人市场上允许（和拒绝）的产品是该`Experience`实体采购政策的一部分。要获取有关私人市场中采购政策的详细信息，您需要先从`Experience`实体那里获取采购政策标识符，然后`DescribeEntity`使用该标识符致电。

要获取采购政策标识符，请在您感兴趣的`Experience`实体`DescribeEntity`上使用，如以下命令所示。

```
GET /DescribeEntity?catalog=AWSMarketplace&entityId={{exp-example01}}
```

以下是示例响应。

```
{
  "Details": "{\"Name\":\"New Private Marketplace\", \"Status\":\"Enabled\", \"ProcurementPolicies\":[\"procpolicy-123example456\"], \"BrandingSettings\":[\"brandsettings-456example123\"]}",
  "DetailsDocument":
  {
    "Name": "New Private Marketplace",
    "Status": "Enabled",
    "ProcurementPolicies":
    [
      "procpolicy-123example456"
    ],
    "BrandingSettings":
    [
      "brandsettings-456example123"
    ]
  },
  "EntityArn": "arn:<...>:AWSMarketplace/Experience/exp-example-01",
  "EntityIdentifier": "exp-example01@6",
  "EntityType": "Experience@1.0",
  "LastModifiedDate": "2021-01-13T20:31:36Z"
}
```

**注意**  
该`DetailsDocument`属性以 JSON 对象的形式包含实体详细信息。旧`Details`属性包含与字符串相同的 JSON 对象。

您可以使用返回`EntityId`的采购政策来获取详细信息，如以下命令所示。

```
GET /DescribeEntity?catalog=AWSMarketplace&entityId={{procpolicy-123example456}}
```

这将返回政策的全部细节，包括允许和拒绝的产品。以下是示例响应。

```
{
  "Details": "{\"Name\":\"ExampleProcurementPolicy\", \"Statements\":[{\"Effect\":\"Allow\",\"Resources\":[{\"Type\":\"Product\",\"Ids\":[\"example1-1234-abcd-5678-90abcdef1234\"]},{\"Type\":\"Product\",\"Ids\":[\"example2-2345-bcde-6789-01bcdea2345\"]}]},{\"Effect\":\"Deny\",\"Resources\":[{\"Type\":\"Product\",\"Ids\":[\"example3-3456-cdef-7890-12defabc5678\"]}]}],\"Configuration\":{\"PolicyResourceRequests\":\"Allow\"}}",
  "DetailsDocument":
  {
    "Name": "ExampleProcurementPolicy",
    "Statements":
    [
      {
        "Effect": "Allow",
        "Resources":
        [
          {
            "Type": "Product",
            "Ids":
            [
              "example1-1234-abcd-5678-90abcdef1234"
            ]
          },
          {
            "Type": "Product",
            "Ids":
            [
              "example2-2345-bcde-6789-01bcdea2345"
            ]
          }
        ]
      },
      {
        "Effect": "Deny",
        "Resources":
        [
          {
            "Type": "Product",
            "Ids":
            [
              "example3-3456-cdef-7890-12defabc5678"
            ]
          }
        ]
      }
    ],
    "Configuration":
    {
      "PolicyResourceRequests": "Allow"
    }
  },
  "EntityArn": "arn:<...>AWSMarketplace/ProcurementPolicy/procpolicy-123example456",
  "EntityIdentifier": "procpolicy-123example456@4",
  "EntityType": "ProcurementPolicy@1.0",
  "LastModifiedDate": "2020-10-01T12:00:00Z"
}
```

在此示例中，采购政策有两个允许的产品和一个被拒绝的产品。该策略允许用户请求资源。

## 在私人市场中添加或移除商品
<a name="private-marketplace-add-products"></a>

默认情况下，私有市场中没有任何经批准的商品。使用变更请求来添加或移除产品。要添加产品，请使用`AllowProductProcurement`更改类型。要移除商品，请使用`DenyProductProcurement`更改类型。

以下代码示例显示了`AllowProductProcurement`变更类型以及向私有市场添加产品的`StartChangeSet`操作。

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

{
  "Catalog": "AWSMarketplace",
  "ChangeSet":
  [
    {
      "ChangeType": "AllowProductProcurement",
      "DetailsDocument":
      {
        "Products":
        [
          {
            "Ids":
            [
              "example-1234-abcd-5678-90abcded1234"
            ],
            "Notes": "Useful product"
          }
        ]
      },
      "Entity":
      {
        "Identifier": "exp-1234example@6",
        "Type": "Experience@1.0"
      }
    }
  ]
}
```

您可以通过使用将产品添加到私有市场的`Experience`实体中`AllowProductProcurement`。将商品从私有市场移除的语法相同，唯一的不同是您使用`DenyProductProcurement``ChangeType`代替`AllowProductProcurement`。这些产品将添加到您的`ProcurementPolicy``Experience`实体所包含的实体的允许（或拒绝）列表中。

**注意**  
更改中的产品列表是一个数组`Ids`，因此您可以通过添加产品标识符列表来一次性添加（或删除）多个产品。`DetailsDocument`单个请求的上限为 50 个产品。  
列表的`Notes`字段`Ids`不是必填字段。但是，您可以使用它来记录为什么做出允许或拒绝一组产品的决定。

## 查找产品
<a name="finding-product-ids"></a>

通过获取您的采购政策的详细信息，您可以找到已在私人市场上销售的产品的产品编号。但是，AWS Marketplace Catalog API不提供查找其他商品的商品编码的方法。有两种方法可以获取用于目录 API 服务的产品 ID：
+ **公共市场**-在公共市场找到产品后，选择 “**继续订阅**” 以查看有关该产品的详细信息页面（它不会向您订阅该产品）。该网址将包括产品编号作为参数。例如，在 URL 中`https://aws.amazon.com/marketplace/fulfillment?productId=ab1234cd-1234-abcd-5678-90abcdef1234&ref_=dtl_psb_continue`，{{ab1234cd-1234-abcd-5678-90abcdef1234}}是产品 ID。
+ **AWS Marketplace发现 API** — 通过编程方式，您可以使用 Discovery API 访问中产品的完整列表。AWS Marketplace发现 API 是一个私有 API。您必须申请访问权限才能使用它。有关更多信息，请参阅 [的访问控制 AWS Marketplace 发现 API](discovery-api-access-control.md)。

## 与私人市场合作AWS Organizations
<a name="private-marketplace-organizations"></a>

无论您是为账户还是组织使用私有市场，您都使用相同的 API。但是，在组织内工作时会有一些区别：
+ 在组织中使用私有市场功能之前，您必须[启用可信访问权限](https://docs.aws.amazon.com/organizations/latest/APIReference/API_EnableAWSServiceAccess.html)以提供私有市场服务 (`private-marketplace.marketplace.amazonaws.com`) 对您的AWS Organizations数据的访问权限。您还必须在管理账户[中创建私有市场服务相关角色](https://docs.aws.amazon.com/organizations/latest/APIReference/API_EnableAWSServiceAccess.html)。该角色包括私有市场代表您描述AWS Organizations和更新私有市场资源所需的所有权限。这些操作只能由管理账户执行。建议使用私有市场管理员页面进行此启用。如果您是新客户，请参阅《*AWS Marketplace买家指南》*中的[私有市场](https://docs.aws.amazon.com/marketplace/latest/buyerguide/buyer-using-service-linked-roles.html)。如果您是现有客户，请参阅*《AWS Marketplace买家指南》*中的[创建和管理私有市场](https://docs.aws.amazon.com/marketplace/latest/buyerguide/private-catalog-administration.html)。
+ 组织中的私有市场资源是在管理账户中创建的，并与作为私有市场委托管理员的成员账户共享。
+ 在私有市场中通过作为私有市场委托管理员的成员账户在私有市场上架对象时，您必须使用`SharedWithMe`筛选器专门请求他们。这适用于`ListEntities`和`ListChangeSets`操作。

要列出您自己账户中的`Experience`对象，请`ListEntities`按以下代码示例所示调用。

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

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

但是，要列出已与您共享的实体，必须添加`FilterList`带有 a `Scope` 的`SharedWithMe`，如以下代码示例所示。因此，在您自己的账户之外AWS Marketplace进行搜索以查找与您共享的实体。

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

{"Catalog":"AWSMarketplace", 
"EntityType":"Experience",
 "FilterList": 
  [{
     "Name": "Scope",
     "ValueList":
      ["SharedWithMe"]
      }]}
```

在这种情况下，只会返回您账户之外的实体（您所在组织的实体）。

同样，要调用`ListChangeSets`，必须设置作用域，如以下代码示例所示。

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

{"Catalog":"AWSMarketplace", 
 "FilterList": 
  [{
     "Name": "Scope",
     "ValueList":
      ["SharedWithMe"]
      }]}
```

这将返回适用于贵组织共享私有市场的变更集。

## 将校长与体验联系起来
<a name="private-marketplace-associate-accounts"></a>

私有市场体验必须有一个或多个与之关联的委托人，才能对您的组织产生任何影响。对于单曲AWS 账户，您必须将账户与体验关联才能使用私有市场。在一个组织中，您可以将多种体验应用于不同的负责人。

**注意**  
与组织关联的体验是组织中所有其他账户的默认体验。将成员账户或 OU 与不同的体验关联会直接为 OU 的成员账户或子账号设置不同的体验。
如果您当前是私有市场客户，但没有与私有市场AWS Organizations集成，则与管理账户关联的体验将是组织中所有其他账户的默认体验。

要将委托人与体验相关联，请将`AssociateAudience`更改类型与`StartChangeSet`操作结合使用，如以下代码示例所示。

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

{
  "Catalog": "AWSMarketplace",
  "ChangeSet":
  [
    {
      "Entity":
      {
        "Type": "Experience@1.0",
        "Identifier": "exp-example01@1"
      },
      "ChangeType": "AssociateAudience",
      "DetailsDocument":
      {
        "Name": "AudienceName",
        "Description": "Audience example.",
        "Principals":
        [
          "012345678901",
          "ou-abcd-01234567",
          "o-0123456789"
        ]
      }
    }
  ],
  "ChangeSetName": "Set Audience for experience 01"
}
```

受*众*是与之相关的*校长*名单。`Experience`委托人是由其 ID 定义的组织单位或组织。AWS 账户 `Principals`是一个列表，因此您可以包括多个要与体验关联的委托人。第一次调用后，后续调用`AssociateAudience`变更类型会将体验的委托人添加到关联中。

您也可以从体验中移除账号。使用`DisassociateAudience`更改类型来执行此操作，如以下代码示例所示。

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

{
  "Catalog": "AWSMarketplace",
  "ChangeSet":
  [
    {
      "Entity":
      {
        "Type": "Experience@1.0",
        "Identifier": "exp-example01@02"
      },
      "ChangeType": "DisassociateAudience",
      "DetailsDocument":
      {
        "Principals":
        [
          "012345678901",
          "ou-abcd-01234567",
          "o-0123456789"
        ]
      }
    }
  ],
  "ChangeSetName": "Disassociate audience example"
}
```

**注意**  
委托人只能与一项体验直接关联。要将委托人从直接关联到另一种体验，必须将其与初始体验解除关联，然后将其与第二个体验关联。

## 存档并重新激活 Private Marketplace 体验
<a name="archiving-and-reactivating-a-private-marketplace-experience-capi"></a>

您可以通过存档来删除 Private Marketplace 体验。存档的体验无法更新或用于管理组织中的账户。如果您的受众与已存档的体验关联，则可以将其与其他体验关联起来。如果您决定稍后使用该体验，可以随时重新激活它。管理账户的管理员或作为私有市场委托管理员的成员账户的管理员有权存档和重新激活体验。如果您目前是未与私有市场AWS Organizations集成的私有市场客户，则创建体验的账户的管理员有权存档和重新激活体验。

**注意**  
存档体验之前，须先将其禁用。有关禁用体验的信息，请参阅《*AWS Marketplace买家指南》中的[配置您的私有市场](https://docs.aws.amazon.com/marketplace/latest/buyerguide/private-catalog-administration.html#configure-your-private-marketplace)。*

要存档体验，请使用带有`StartChangeSet`操作的`RestrictExperience`更改类型，如以下代码示例所示。

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

{
  "Catalog": "AWSMarketplace",
  "ChangeSet":
  [
    {
      "ChangeType": "RestrictExperience",
      "DetailsDocument":
      {},
      "Entity":
      {
        "Type": "Experience@1.0",
        "Identifier": "exp-1234example"
      }
    }
  ]
}
```

要重新激活体验，请在`StartChangeSet`操作中使用`ReviveExperience`更改类型，如以下代码示例所示。

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

{
  "Catalog": "AWSMarketplace",
  "ChangeSet":
  [
    {
      "ChangeType": "ReviveExperience",
      "DetailsDocument":
      {},
      "Entity":
      {
        "Type": "Experience@1.0",
        "Identifier": "exp-1234example"
      }
    }
  ]
}
```

## 私有市场 API 中的错误
<a name="private-marketplace-error-codes"></a>

以下错误特定于AWS Marketplace目录 API 中的私有市场操作。


<table>
<thead>
  <tr><th>更改类型</th><th>错误代码</th><th>错误消息</th><th>说明</th></tr>
</thead>
<tbody>
  <tr><td colspan="4">Errors returned directly by the StartChangeSet action</td></tr>
  <tr><td>全部</td><td>422</td><td>文档的 JSON 格式无效</td><td>使用的 JSON 输入无效，请检查您的语法。</td></tr>
  <tr><td>AllowProductProcurement, DenyProductProcurement</td><td>422</td><td>Ids 数组中的值必须是唯一的</td><td>您不能在单个变更请求中多次包含同一商品。</td></tr>
  <tr><td>AllowProductProcurement, DenyProductProcurement</td><td>422</td><td>Ids 数组中的累积值数必须小于或等于 50</td><td>在单个变更请求中，您最多可以允许或拒绝 50 个产品。</td></tr>
  <tr><td colspan="4">Errors found by calling the DescribeChangeSet action</td></tr>
  <tr><td>CreateBrandingSettings, UpdateBrandingSettings</td><td>网址无效</td><td>无法从输入 URL 中获取图片</td><td>您必须为中的徽标字段指定一个有效、可访问的 URL `BrandingSettings`。</td></tr>
  <tr><td>CreateBrandingSettings, UpdateBrandingSettings</td><td>无效的图片</td><td>类型、内容或文件大小的图像验证失败。仅支持大小小于或等于 500KB 的.png 和.svg 文件类型。</td><td>您的图片文件必须符合品牌设置的徽标要求。</td></tr>
  <tr><td>AllowProductProcurement, DenyProductProcurement</td><td>找不到实体</td><td>体验中缺少采购政策</td><td>`ProcurementPolicy`在允许或拒绝商品之前，您必须先创建。</td></tr>
  <tr><td>CreateProcurementPolicy</td><td>实体\_已经存在了</td><td>存在针对体验的采购政策</td><td>您只能为私人市场制定单一的采购政策。</td></tr>
  <tr><td>UpdateProcurementPolicy</td><td>找不到实体</td><td>体验中缺少采购政策</td><td>`ProcurementPolicy`在更新采购政策之前，必须先创建。</td></tr>
  <tr><td>CreateBrandingSettings</td><td>实体\_已经存在了</td><td>存在针对体验的品牌设置</td><td>对于私有市场，您只能使用单一品牌设置。</td></tr>
  <tr><td>UpdateBrandingSettings</td><td>找不到实体</td><td>体验中缺少品牌设置</td><td>在更新品牌设置之前，必须先创建`BrandingSettings`实体。</td></tr>
  <tr><td>AssociateAudience</td><td>来电者\_未\_授权</td><td>来电者无权执行操作</td><td>您必须拥有调用操作的权限。要添加的帐户必须位于同一个组织中。</td></tr>
  <tr><td>CreateExperience</td><td>来电者\_未\_授权</td><td>来电者无权创建体验。</td><td>您必须拥有创建体验的权限。</td></tr>
  <tr><td>AssociateAudience</td><td>实体\_已经存在了</td><td>已将体验与账户 {accountID} 关联。在更新之前取消与之前的体验的关联</td><td>您只能将单一体验与一个账号关联。在关联新体验之前，先取消当前体验的关联。</td></tr>
  <tr><td>AssociateAudience, DisassociateAudience</td><td>使用中的实体</td><td>所选账户的更改已发生冲突。请稍后再试</td><td>当另一个更改关联的变更请求正在进行时，您无法更改与账户的关联。</td></tr>
</tbody>
</table>


## 由私有市场定义的实体类型
<a name="entity-types-defined-by-private-marketplace"></a>

下表列出了私有市场实体类型、目的和可以指定每种类型、目的和操作。每种实体类型都可用于指定可用于 (IAM) 策略的资源 Amazon 资源名称 AWS Identity and Access Management (ARN)。有关 ARN 格式的更多详细信息，请参阅。[编录 API 实体](catalog-apis.md#catalog-api-entities)


| 实体 | 用途 | 操作 | 
| --- | --- | --- | 
| `Experience` | 存储私有市场的顶级设置 | `StartChangeSet`<br />`DescribeEntity` | 
| `BrandingSettings` | 存储私有市场的品牌设置 | `DescribeEntity` | 
| `ProcurementPolicy` | 将采购设置和产品清单存储在私人市场中 | `DescribeEntity` | 
| `Audience` | 存储与私有市场关联的委托人的详细信息 | `DescribeEntity` | 