

AWS Marketplace API 參考已重組。如需支援的 API 操作的詳細資訊，請參閱 [AWS Marketplace API 參考](https://docs.aws.amazon.com/marketplace/latest/APIReference/Welcome.html)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 AWS Marketplace API 處理私有市集
<a name="work-with-private-marketplace"></a>

您可以使用 AWS Marketplace Catalog API 來管理您 AWS 帳戶 或[組織的](https://docs.aws.amazon.com/organizations/latest/userguide/)*私有市集*。

所有變更類型只能從組織的管理帳戶或作為私有市集委派管理員的成員帳戶呼叫。如果您是目前不 AWS Organizations 整合私有市集的私有市集客戶，您可以從組織中具有 IAM `AWSPrivateMarketplaceAdminFullAccess` 政策的任何帳戶建立和管理私有市集。

 如需私有市集的詳細資訊，請參閱《 *AWS Marketplace 買方指南*》中的[私有市集](https://docs.aws.amazon.com/marketplace/latest/buyerguide/private-marketplace.html)。

 下表詳細說明一組管理私有市集的任務，以及適用於每個任務的變更類型。


| 任務 | Action | 變更類型 | 
| --- | --- | --- | 
| [建立私有市集](#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` | 
| [封存和重新啟用私有市場體驗](#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` 實體 – 此實體處於體驗的最高層級，並包含兩個子實體。
+ `ProcurementPolicy` 實體 – 此實體代表在您的私有市場中允許和拒絕的產品。
+ `BrandingSettings` 實體 – 您也可以建立`BrandingSettings`實體來定義私有市集對使用者的外觀。
+ `Audience` 實體 – 您還必須關聯一或多個實體，這些`Audience`實體定義適用於體驗的一組 AWS 帳戶、OUs 或組織。

建立採購體驗的步驟如下：

1. 建立`Experience`實體。

1. 建立`ProcurementPolicy`實體以存放針對體驗允許或拒絕的產品清單。

1. （選用） 建立`BrandingSettings`實體以自訂您的市場體驗外觀。

1. 將委託人與您的體驗建立關聯。委託人可以是 AWS 帳戶、OU 或組織。

1. 啟用 體驗。

**注意**  
如果您的帳戶是 中組織的一部分 AWS Organizations，請參閱 [使用 的私有市集 AWS Organizations](#private-marketplace-organizations)。

**建立`Experience`實體**

若要建立`Experience`實體，請使用 `StartChangeSet`動作搭配 `ChangeType` 參數`CreateExperience`的值，以請求由 建立體驗 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`實體，因此您可以在啟用之前建立採購政策。

**注意**  
*沒有*採購政策 (null) 的`Experience`實體允許在您的私有市場中購買所有產品。具有*空白*採購政策的`Experience`實體沒有可供使用者採購的產品。

若要允許和拒絕私有市場中的產品，您必須建立採購政策。若要這樣做，請再次呼叫 `StartChangeSet`，但這次使用 `ChangeType`的 `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`實體。您也可以使用 `DescribeChangeSet` 搭配 `CreateExperience`動作中的變更集識別符來傳回識別符

**注意**  
此範例顯示修訂為 的識別符`1`。如需識別碼修訂的詳細資訊，請參閱 [識別符](catalog-apis.md#identifier)。

您可以在`CreateProcurementPolicy`變更類型`DescribeChangeSet`上再次使用 來遵循請求的處理。

**注意**  
您提供 `Experience`和 `ProcurementPolicy` 物件的名稱不會出現在其中 AWS Marketplace。這些名稱只是為了方便您在 API 中尋找實體。

建立採購政策後，您的私有市集會顯示在 中 AWS 管理主控台。（您可以前往 [Private Marketplace 頁面](https://aws.amazon.com/marketplace/privatemarketplace)來查看。) 完成這些步驟後，您的私有市集將會停用、具有預設品牌、具有空白的採購政策，而且不會與您組織中的任何委託人建立關聯。您可以更新品牌並新增任何您想要的產品、將體驗與一或多個帳戶建立關聯，然後啟用您的私有市集。

下列各節說明使用 管理您的私有市集 AWS Marketplace Catalog API。

## 變更私有市場體驗的品牌
<a name="private-marketplace-branding"></a>

您可以為使用者自訂私有市集的外觀。如果沒有自訂，您的私有市集將具有預設品牌設定，如下所述。您可以在私有市場中變更的品牌層面如下：
+ `Title` – 為您的私有市集顯示的名稱。這與私有市集**設定檔設定**畫面中**的名稱**欄位相同。如果您將 `Title` 設定為 **Example**，則顯示的文字為**範例私有 Marketplace**。預設值為 **Private Marketplace**。
+ `Information` – 顯示在私有市場中名稱下的段落。這與**設定檔設定**中的**描述**欄位相同。預設值是沒有資訊，在這種情況下，會顯示私有市集的一般描述。
+ `ThemeColor` – 顯示在私有市集橫幅中的顏色。這是 RGB 十六進位格式的顏色。此值與**設定檔設定**中的**佈景主題顏色**欄位相同。預設值為 `#232F3E`。
+ `LogoUrl` – 指向影像檔案的 URL，做為私有市集上的標誌。URL 必須可公開使用 （例如，已簽署的 Amazon S3 URL)。檔案必須是 .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"
      }
    }
  ]
}
```

此範例透過新增 `BrandingSettings` 物件來修改`Experience`實體。實體識別符的修訂已遞增至 `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 用於在更新變更期間進行複製。變更完成後，如果您移除或變更該路徑的 URL，除非您再次請求 ，否則不會影響您的私有市集`UpdateBrandingSettings`。

## 啟用或停用私有市場體驗
<a name="enable-private-marketplace"></a>

啟用私有市集時 （且具有採購政策），關聯帳戶中的使用者只能購買您已核准的產品。帳戶未啟用私有市場體驗時，使用者可以跨完整 AWS Marketplace 目錄購買產品。

若要啟用私有市集，請使用 `StartChangeRequest`動作搭配 `UpdateExperience` 變更類型。

```
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`，但將 `Status``DetailsDocument`中的 變更為 `Disabled`以停用私有市集。

**注意**  
停用私有市集會保留允許和拒絕產品的清單，以及自訂項目，例如品牌。當私有市集停用時，使用者不會再看到私有市集 （雖然他們仍可能受組織的預設體驗所管理）。如果帳戶沒有啟用私有市場體驗，則會移除所有限制，而且使用者可以在公有環境中購買任何產品 AWS Marketplace。

## 啟用或停用使用者請求
<a name="private-marketplace-user-requests"></a>

組織中的使用者可以檢視完整的公有 AWS 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"
      }
    }
  ]
}
```

若要為使用者啟用變更請求功能，請在 `Deny`中使用 `Allow`而非 `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`。產品會新增至`Experience`您的`ProcurementPolicy`實體所包含實體的允許 （或拒絕） 清單。

**注意**  
變更`DetailsDocument`中 的產品清單是 的陣列`Ids`，因此您可以透過包含產品識別符清單的單一呼叫來新增 （或移除） 多個產品。單一請求中的限制為 50 個產品。  
不需要 清單`Notes`的欄位`Ids`。不過，您可以使用它來記錄為什麼要允許或拒絕一組產品的決定。

## 尋找產品
<a name="finding-product-ids"></a>

透過取得採購政策的詳細資訊，您可以找到已在私有市場中的產品 IDs。不過， AWS Marketplace Catalog API 不提供尋找其他產品的產品 IDs的方法。有兩種方式可以取得產品 IDs以搭配 Catalog API 服務使用：
+ **公開市場** – 在公開市場找到產品後，選擇**繼續訂閱**以查看產品的詳細資訊頁面 （它不會訂閱產品）。URL 將包含產品 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** – 您可以使用 AWS Marketplace 探索 API，以程式設計方式存取 中產品的完整清單。Discovery API 是私有 API。您必須請求存取權才能使用它。如需詳細資訊，請參閱[AWS Marketplace Discovery 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`具有 之 `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`。委託人是 AWS 帳戶、組織單位，或由其 ID 定義的組織。 `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"
}
```

**注意**  
委託人只能與一次體驗直接關聯。若要將委託人從直接與某個體驗建立關聯移至另一個體驗，您必須將其與初始體驗取消關聯，然後將其與第二個體驗建立關聯。

## 封存和重新啟用私有市場體驗
<a name="archiving-and-reactivating-a-private-marketplace-experience-capi"></a>

您可以透過封存來移除私有市場體驗。封存的體驗無法更新或用於管理組織中的帳戶。如果您有與封存體驗相關聯的對象，您可以將他們與不同的體驗建立關聯。如果您決定稍後使用體驗，您可以隨時重新啟用。來自管理帳戶的管理員或身為私有市集委派管理員的成員帳戶，具有封存和重新啟用體驗的許可。如果您是目前不 AWS Organizations 整合私有市集的私有市集客戶，則來自建立體驗之帳戶的管理員具有封存和重新啟用體驗的許可。

**注意**  
在封存體驗之前，您必須停用它。如需有關停用體驗的資訊，請參閱《 買方指南》中的[設定您的私有市集](https://docs.aws.amazon.com/marketplace/latest/buyerguide/private-catalog-administration.html#configure-your-private-marketplace)。 *AWS Marketplace *

若要封存體驗，請將`RestrictExperience`變更類型與 `StartChangeSet`動作搭配使用，如下列程式碼範例所示。

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

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

若要重新啟用體驗，請將`ReviveExperience`變更類型與 `StartChangeSet`動作搭配使用，如下列程式碼範例所示。

```
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>

下列錯誤專屬於目錄 API AWS Marketplace 中的私有市集動作。


<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>INVALID\_URL</td><td>無法從輸入 URL 擷取影像</td><td>您必須為 中的標誌欄位指定有效且可連線的 URL`BrandingSettings`。</td></tr>
  <tr><td>CreateBrandingSettings、UpdateBrandingSettings</td><td>INVALID\_IMAGE</td><td>類型、內容或檔案大小的影像驗證失敗。僅支援大小小於或等於 500KB 的 .png 和 .svg 檔案類型。</td><td>您的映像檔案必須符合品牌設定的標誌需求。</td></tr>
  <tr><td>AllowProductProcurement、DenyProductProcurement</td><td>ENTITY\_NOT\_FOUND</td><td>體驗中缺少採購政策</td><td>您必須先建立 ，`ProcurementPolicy`才能允許或拒絕產品。</td></tr>
  <tr><td>CreateProcurementPolicy</td><td>ENTITY\_ALREADY\_EXISTS</td><td>Experience 存在採購政策</td><td>您只能為私有市集擁有單一採購政策。</td></tr>
  <tr><td>UpdateProcurementPolicy</td><td>ENTITY\_NOT\_FOUND</td><td>體驗中缺少採購政策</td><td>您必須先建立 ，`ProcurementPolicy`才能更新採購政策。</td></tr>
  <tr><td>CreateBrandingSettings</td><td>ENTITY\_ALREADY\_EXISTS</td><td>體驗存在品牌設定</td><td>您只能為私有市集建立單一品牌設定。</td></tr>
  <tr><td>UpdateBrandingSettings</td><td>ENTITY\_NOT\_FOUND</td><td>體驗中缺少品牌設定</td><td>您必須先建立`BrandingSettings`實體，才能更新品牌設定。</td></tr>
  <tr><td>AssociateAudience</td><td>CALLER\_NOT\_AUTHORIZED</td><td>呼叫者無權執行動作</td><td>您必須具有呼叫 動作的許可。要新增的帳戶必須位於相同的組織中。</td></tr>
  <tr><td>CreateExperience</td><td>CALLER\_NOT\_AUTHORIZED</td><td>來電者無權建立體驗。</td><td>您必須具有建立 體驗的許可。</td></tr>
  <tr><td>AssociateAudience</td><td>ENTITY\_ALREADY\_EXISTS</td><td>體驗已與帳戶 {accountId} 建立關聯。在更新之前取消先前體驗的關聯</td><td>您只能將單一體驗與 帳戶建立關聯。在關聯新的體驗之前，取消與目前體驗的關聯。</td></tr>
  <tr><td>AssociateAudience、DisassociateAudience</td><td>ENTITY\_IN\_USE</td><td>所選帳戶已有正在進行中的衝突變更。稍後再試一次</td><td>當另一個變更請求變更關聯已在進行中時，您無法變更與帳戶的關聯。</td></tr>
</tbody>
</table>


## 私有市集定義的實體類型
<a name="entity-types-defined-by-private-marketplace"></a>

下表列出可指定每個 的私有市集實體類型、用途和動作。每個實體類型都可用來指定可在 (IAM) 政策中使用的資源 Amazon Resource Name AWS Identity and Access Management (ARN)。如需 ARN 格式的詳細資訊，請參閱 [目錄 API 實體](catalog-apis.md#catalog-api-entities)。


| 實體 | 用途 | 動作 | 
| --- | --- | --- | 
| `Experience` | 儲存私有市集的最上層設定 | `StartChangeSet`<br />`DescribeEntity` | 
| `BrandingSettings` | 儲存私有市集的品牌設定 | `DescribeEntity` | 
| `ProcurementPolicy` | 將採購設定和產品清單存放在私有市場中 | `DescribeEntity` | 
| `Audience` | 儲存與私有市集相關聯的委託人詳細資訊 | `DescribeEntity` | 