

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

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

# 使用 AWS Marketplace APIs 處理頻道合作夥伴的私有優惠
<a name="work-with-cppos"></a>

您可以使用 AWS Marketplace Catalog API 自動化使用頻道合作夥伴私有優惠 (CPPOs的任務。

當您建立或更新 CPPO 時，提議草稿將包含來自轉售授權的條款和規則，買方將無法看見。在您的組織中涉及多個角色可以建立私有優惠，但並非必要。

例如，一個角色可以負責更新價格，而第二個角色可以負責更新付款排程。然後，第三個角色可以負責更新法律條款。您可以授予角色許可，以更新優惠的特定部分。不過，您可以僅授予重新銷售授權的讀取許可。

作為呼叫變更類型的先決條件，您必須已收到一或多個轉售授權，並熟悉如何使用 AWS Marketplace Catalog API。

如需詳細資訊，請參閱 *AWS Marketplace 賣方指南*中的[頻道合作夥伴私有優惠](https://docs.aws.amazon.com/marketplace/latest/userguide/channel-partner-offers.html)。

下列主題說明如何使用目錄 API 來建立和更新 CPPOs：

**Topics**
+ [CPPO 先決條件](#cppo-prerequisites)
+ [建立 CPPO](#create-offer-using-resale-auth)
+ [建立頻道合作夥伴私有替代優惠](#create-replacement-offer-using-resale-auth)
+ [更新標記](#update-markup)
+ [更新目標組態](#update-targeting-cppo)
+ [更新法律資源](#update-legal-terms-cppo)
+ [更新 CPPO 的可探索性](#update-availability-cppo)
+ [定義協議的過期日期](#update-validity-terms-cppo)
+ [更新定價](#update-pricing-terms-cppo)
+ [更新付款排程詳細資訊](#update-payment-schedule-terms-cppo)
+ [發佈 CPPO](#release-offer-cppo)
+ [定義現有的 CPPO](#describe-entity-cppo)

## CPPO 先決條件
<a name="cppo-prerequisites"></a>

ResaleAuthorization (SLR) 設定的服務連結角色是使用轉售授權建立 CPPO 的必要先決條件。若要使用轉售授權，獨立軟體廠商 (ISVs) 和 AWS Marketplace 頻道合作夥伴都必須建立服務連結角色，為 提供資源共用許可 AWS。如果兩個群組都無法執行此先決條件， AWS 就無法將授權資源從 ISV 分享給 AWS Marketplace 頻道合作夥伴。如需詳細資訊，請參閱《 *AWS Marketplace 賣方指南*》中的[使用 的 角色進行轉售授權 AWS Marketplace](https://docs.aws.amazon.com/marketplace/latest/userguide/using-roles-for-resale-authorization.html)。

## 建立 CPPO
<a name="create-offer-using-resale-auth"></a>

您可以使用以您為目標的轉售授權來建立處於 `Draft` 狀態的頻道合作夥伴私有優惠 (CPPO) AWS Marketplace。

如果您的請求已成功處理， 會使用轉售授權條款為您 AWS Marketplace Catalog API 產生處於 `Draft` 狀態的優惠。您可以使用 `DescribeEntity` 來查看套用至來自轉售授權的提議草案的條款。這是不完整的優惠，無法讓 中的買方看見 AWS Marketplace。然後，您可以使用與 CPPO 相關聯的變更類型來完成優惠。

優惠完成後，您可以使用`ReleaseOffer`變更類型來完成優惠建立程序並釋出優惠。這將驗證整個優惠，並讓買方看到您的優惠 AWS Marketplace。

若要建立頻道合作夥伴私有優惠，請使用`CreateOfferUsingResaleAuthorization`變更類型呼叫 `StartChangeSet` API 操作，如下列範例所示。

**請求語法**

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

{
  "Catalog": "AWSMarketplace",
  "ChangeSet": [
    {
      "ChangeType": "CreateOfferUsingResaleAuthorization",
      "Entity": {
        "Type": "Offer@1.0"
      },
      "DetailsDocument": {
        "ResaleAuthorizationId": "resaleauthz-123456789",
        "Name": "Test Offer",
        "OfferSetId": "offerset-b3f9EXAMPLE27"
      }
    }
  ]
}
```

提供要新增`CreateOfferUsingResaleAuthorization`變更類型的欄位資訊：
+ **實體** （物件） （必要） – 您的 CPPO。
  + **類型** （字串） （必要） – 一律`Type`為 `Offer@1.0`。
+ **DetailsDocument** （物件） （必要） – 請求特定項目的 JSON 值。
  + **ResaleAuthorizationId** （字串） （必要） – 唯一識別符，其中包含提供的產品、術語和規則。管道合作夥伴可以使用更新變更類型新增其他條款和規則。ResaleAuthorization 必須可用，並以您作為合作夥伴為目標。
  + **名稱** （字串） （選用） – 與優惠相關聯的名稱，以提高可讀性。它會顯示為協議資訊的一部分。
  + **OfferSetId** （字串） （選用） – 要與此優惠建立關聯的優惠集 ID。只有在建立將成為優惠集一部分的優惠時，才指定此欄位。如果未提供 OfferSetId，則會建立可獨立購買的個別優惠。請注意，在建立優惠期間指定 OfferSetId 僅表示您希望將優惠與該優惠集建立關聯。若要完成關聯，您必須在建立優惠後[使用 AssociateOffers 變更類型](work-with-offer-sets.md#associate-offers)。

**回應語法**

為您的請求建立變更集。對此請求的回應為您提供變更集`ChangeSetId``ChangeSetArn`的 和 ，如下所示。

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

變更請求會新增至佇列並進行處理。

您可以透過 檢查請求的狀態 AWS Marketplace 管理入口網站，或使用 API 操作直接透過目錄 `[DescribeChangeSet](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/API_DescribeChangeSet.html)` API。

對此請求的回應會為您提供請求的狀態。如果狀態為 `SUCCEEDED`，則`OfferId`會產生新的 。

```
{
  "ChangeSetId": "example123456789012abcdef",
  "ChangeSetArn": "arn:aws:aws-marketplace:us-east-1:123456789012:AWSMarketplace/ChangeSet/example123456789012abcdef",
  "ChangeSetName": "Submitted by 123456789012",
  "StartTime": "2021-05-27T22:21:26Z",
  "EndTime": "2021-05-27T22:32:19Z",
  "Status": "SUCCEEDED",
  "ChangeSet": [
    {
      "ChangeType": "CreateOfferUsingResaleAuthorization",
      "Entity": {
        "Type": "Offer@1.0",
        "Identifier": "offer-123456789"
      },
      "DetailsDocument": {
        "ResaleAuthorizationId": "resaleauthz-123456789",
        "Name": "Test Offer"
      },
      "ErrorDetailList": []
    }
  ]
}
```

您可以使用 `GET``DescribeEntity`請求來描述 AWS Marketplace Catalog API 參考`ResaleAuthorization`中從 建立的優惠規則和術語草稿。如需詳細資訊，請參閱[https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/API_DescribeChangeSet.html](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/API_DescribeChangeSet.html)。

**ResaleAuthorization 的條款和規則**
+ **LegalTerms** – 描述法律條款的佈建，例如ResaleAuthorization 中的 EULA 將新增至提議草案。您可以使用`UpdateLegalTerms`變更類型新增法律術語。如需詳細資訊，請參閱[https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/cppos.html#update-legal-terms-cppo](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/cppos.html#update-legal-terms-cppo)。
+ **PricingTerms** – 製造商在 ResaleAuthorization `FixedUpfrontPricingTerm`中描述的所有定價條款 (`ConfigurableUpfrontPricingTerm`、`UsageBasedPricingTerm`、、`PaymentScheduleTerms`) 都會新增到提議草案中。您可以選擇使用`UpdateMarkup`變更類型來提高目標買方的定價 （針對每個維度）。如需詳細資訊，請參閱本指南中的 [https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/cppos.html#update-markup](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/cppos.html#update-markup)。
+ **PaymentTerms** – 如果製造商已在 ResaleAuthorization 中定義了未來付款排程，則您可以在草稿優惠中查看付款條件。您可以選擇使用`UpdateMarkup`變更類型來增加目標買方的付款排程金額。如果您想要為買方設定付款排程，您可以使用 `UpdatePaymentScheduleTerms`。如需詳細資訊，請參閱[https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/cppos.html#update-payment-schedule-terms-cppo](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/cppos.html#update-payment-schedule-terms-cppo)。
+ **TargetingRule** – 如果 ResaleAuthorization 以特定買方為目標，則頻道合作夥伴可以使用 PositiveTargeting 將私有優惠提供給一部分買方。根據預設，規則將包含來自 ResaleAuthorization 的所有買方。您可以選取特定買方，並使用`UpdateTargeting`變更類型更新提議草稿。如需詳細資訊，請參閱[https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/cppos.html#update-targeting-cppo](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/cppos.html#update-targeting-cppo)。

```
{
  "EntityType": "Offer@1.0",
  "EntityIdentifier": "offer-a5EXAMPLEwzpu@1",
  "EntityArn": "arn:aws:aws-marketplace:us-east-1:444555666777:AWSMarketplace/Offer/offer-a5oEXAMPLEzpu",
  "LastModifiedDate": "2021-03-10T21:57:16Z",
  "DetailsDocument": {
    "Id": "offer-3rb23tu92rn",
    "Name": "Test Offer",
    "Description": "Worldwide private offer for Test Product",
    "ProductId": "prod-0bc848d78b51",
    "ResaleAuthorizationId": "resaleauthz-123456789",
    "Terms": [
      {
        "Type": "LegalTerm",
        "Documents": [
          {
            "Type": "CustomEula",
            "Url": "https://s3.amazonaws.com/EULA/custom-eula-1234.txt"
          }
        ]
      },
      {
        "Type": "ConfigurableUpfrontPricingTerm",
        "CurrencyCode": "USD",
        "RateCards": [
          {
            "Selector": {
              "Type": "Duration",
              "Value": "P12M"
            },
            "RateCard": [
              {
                "DimensionKey": "m3.large",
                "Price": "300.00"
              },
              {
                "DimensionKey": "m4.xlarge",
                "Price": "400.00"
              }
            ],
            "Constraints": {
              "MultipleDimensionSelection": "Allowed",
              "QuantityConfiguration": "Allowed"
            }
          }
        ]
      },
      {
        "Type": "UsageBasedPricingTerm",
        "CurrencyCode": "USD",
        "RateCards": [
          {
            "RateCard": [
              {
                "DimensionKey": "m3.large",
                "Price": "0.10"
              },
              {
                "DimensionKey": "m4.xlarge",
                "Price": "0.20"
              }
            ]
          }
        ]
      },
      {
        "Type": "PaymentScheduleTerm",
        "CurrencyCode": "USD",
        "Schedule": [
          {
            "ChargeDate": "2020-12-01T00:00:00.000Z",
            "ChargeAmount": "1000.00"
          },
          {
            "ChargeDate": "2021-06-15T00:00:00.000Z",
            "ChargeAmount": "1250.00"
          }
        ]
      }
    ],
    "Rules": [
      {
        "Type": "TargetingRule",
        "PositiveTargeting": {
          "BuyerAccounts": [
            "111222333444"
          ]
        }
      }
    ]
  }
}
```

**同步驗證**

下列結構描述驗證專屬於 中的`CreateOfferUsingResaleAuthorization`動作 AWS Marketplace Catalog API。這些驗證會在您呼叫 時執行`StartChangeSet`。如果請求不符合下列要求，它會失敗並顯示 HTTP 回應。


| 輸入欄位 | 驗證規則 | HTTP 代碼 | 
| --- | --- | --- | 
| 名稱 | 必要<br />長度必須介於 1 到 150 個字元之間 | 422 | 
| 說明 | 必要<br />長度必須介於 1 到 255 個字元之間 | 422 | 
| ResaleAuthorizationId | 必要<br />長度必須介於 1 到 50 個字元之間 | 422 | 
| ResaleAuthorizationId | ResaleAuthorization 必須鎖定頻道合作夥伴。 | 422 | 
| ResaleAuthorizationId | ResaleAuthorization 必須處於作用中狀態 | 422 | 
| 頻道合作夥伴 | 通路合作夥伴必須是 中的付費賣方 AWS Marketplace | 422 | 

**非同步錯誤**

下列錯誤專屬於 中的`CreateOfferUsingResaleAuthorization`動作 AWS Marketplace Catalog API。當您在處理變更集`DescribeChangeSet`之後呼叫 時，會傳回這些錯誤。如需使用 `DescribeChangeSet` 取得變更請求狀態的詳細資訊，請參閱 [使用變更集](catalog-apis.md#working-with-change-sets)。


| 錯誤碼  | 錯誤訊息 | 
| --- | --- | 
| INCOMPATIBLE\_RESALE\_AUTHORIZATION | 在作用中狀態下使用 ResaleAuthorization。 | 
| INCOMPATIBLE\_PRODUCT | 產品優惠不支援 OfferSetId。 | 

## 建立頻道合作夥伴私有替代優惠
<a name="create-replacement-offer-using-resale-auth"></a>

您可以使用目錄 API 在其中建立頻道合作夥伴私有替代優惠 AWS Marketplace。

您可以使用`ResaleAuthorization`針對您的 和 協議，作為提案者，透過`StartChangeSet`使用`CreateReplacementOfferUsingResaleAuthorization`變更類型呼叫 ，在目錄 API 中建立處於 `Draft` 狀態的頻道合作夥伴私有替代優惠，如下列範例所示。替代優惠可在終止之前用來取代先前優惠的協議。

`CreateReplacementOfferUsingResaleAuthorization` 將與以目標為目標的協議接受者建立提議草案。之後無法變更此目標。提議草稿也會包含協議的來源提議 ID。

若要建立頻道合作夥伴私有替代優惠，請使用`CreateReplacementOfferUsingResaleAuthorization`變更類型呼叫 `StartChangeSet` API 操作，如下列範例所示。

**請求語法**

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

{
  "Catalog": "AWSMarketplace",
  "ChangeSet": [
    {
      "ChangeType": "CreateReplacementOfferUsingResaleAuthorization",
      "Entity": {
        "Type": "Offer@1.0"
      },
      "DetailsDocument": {
        "ResaleAuthorizationId": "2bd2c761-3b7f-3771-a9a7-e8ad36517698",
        "Name": "CAPI-saas-abo-contract-fps",
        "AgreementId": "agmt-f2ooEXAMLEamtm7mjj0j59gu"
      }
    }
  ]
}
```

提供要新增`CreateReplacementOfferUsingResaleAuthorization`變更類型的欄位資訊：
+ **實體** （物件） （必要） – 您的 CPPO。
  + **類型** （字串） （必要） – 一律`Type`為 `Offer@1.0`。
+ **DetailsDocument** （物件） （必要） – 請求特定項目的 JSON 值。
  + **ResaleAuthorizationId** （字串） （必要） – `ResaleAuthorizationId`是唯一識別符，其中包含提供的產品、條款和規則。管道合作夥伴可以使用更新變更類型新增其他條款和規則。

    `ResaleAuthorization` 必須可用，並以您做為合作夥伴為目標。
  + **名稱** （字串） （選用） – 與優惠`Name`相關聯，讓您和客戶更清楚閱讀。它也會顯示為協議資訊的一部分。
  + **AgreementId** （字串） （必要） – `AgreementId` 是當目標買方接受您嘗試取代的先前優惠時所建立協議的唯一識別符

**回應語法**

為您的請求建立變更集。對此請求的回應為您提供變更集`ChangeSetId``ChangeSetArn`的 和 ，如下所示。

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

變更請求會新增至佇列並進行處理。

您可以透過 檢查請求的狀態 AWS Marketplace 管理入口網站，或使用 API 操作直接透過目錄 `[DescribeChangeSet](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/API_DescribeChangeSet.html)` API。

**同步驗證**

下列結構描述驗證專屬於 中的`CreateReplacementOfferUsingResaleAuthorization`動作 AWS Marketplace Catalog API。這些驗證會在您呼叫 時執行`StartChangeSet`。如果請求不符合下列要求，它會失敗並顯示 HTTP 回應。


| 輸入欄位 | 驗證規則 | 
| --- | --- | 
| 名稱 | 長度必須介於 1 到 150 個字元之間 | 
| AgreementId | 提供的協議必須是作用中的 提供的協議必須存在<br />提供的協議必須由頻道合作夥伴擁有 | 
| ResaleAuthorizationId | 必要<br />長度必須介於 1 到 50 個字元之間 | 
| ResaleAuthorizationId | ResaleAuthorization 必須鎖定頻道合作夥伴。 | 
| ResaleAuthorizationId | ResaleAuthorization 必須處於作用中狀態 | 
| 頻道合作夥伴 | 通路合作夥伴必須是 中的付費賣方 AWS Marketplace | 

**非同步錯誤**

下列錯誤專屬於 中的`CreateReplacementOfferUsingResaleAuthorization`動作 AWS Marketplace Catalog API。當您在處理變更集`DescribeChangeSet`之後呼叫 時，會傳回這些錯誤。如需使用 `DescribeChangeSet` 取得變更請求狀態的詳細資訊，請參閱 [使用變更集](catalog-apis.md#working-with-change-sets)。


| 錯誤碼  | 錯誤訊息 | 
| --- | --- | 
| INCOMPATIBLE\_RESALE\_AUTHORIZATION | 使用作用中狀態的 ResaleAuthorization。 | 
| INCOMPATIBLE\_RESALE\_AUTHORIZATION | ResaleAuthorization 必須適用於與協議相關聯的相同產品。 | 
| INCOMPATIBLE\_RESALE\_AUTHORIZATION | 使用以協議接受者為目標的 ResaleAuthorization。 | 

## 更新標記
<a name="update-markup"></a>

您可以使用目錄 API，依優惠中的百分比值更新定價條件 AWS Marketplace。

這將在 ResaleAuthorization 中製造商定義的所有定價條件和付款條件 （用於未來的付款排程） 上套用指定的百分比標記。任何現有的標記都會遭到覆寫。您可以使用 檢視更新的定價和付款條件`DescribeEntity`。

若要更新標記，請使用`UpdateMarkup`變更類型呼叫 `StartChangeSet` API 操作，如下列範例所示。

**請求語法**

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

{
  "Catalog": "AWSMarketplace",
  "ChangeSet": [
    {
      "ChangeType": "UpdateMarkup",
      "Entity": {
        "Type": "Offer@1.0",
        "Identifier": "offer-123456789"
      },
      "DetailsDocument": {
        "Percentage": "5.0"
      }
    }
  ]
}
```

提供要新增`UpdateMarkup`變更類型的欄位資訊：
+ **實體** （物件） （必要） – 您的 CPPO。
  + **類型** （字串） （必要） – 一律`Type`為 `Offer@1.0`。
  + **識別符** （字串） （必要） – 您的優惠 ID。如需詳細資訊，請參閱[識別符](catalog-apis.md#identifier)。
+ **DetailsDocument** （物件） （必要） – 請求特定項目的 JSON 值。
  + **百分比** （字串） （必要） – 百分比值會新增至製造商定價或付款條件。

**回應語法**

為您的請求建立變更集。對此請求的回應為您提供變更集`ChangeSetId``ChangeSetArn`的 和 ，如下所示。

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

變更請求會新增至佇列並進行處理。這包括與 AWS Marketplace 賣方營運團隊驗證資訊，以確保其符合 AWS Marketplace 準則。驗證程序可能需要幾分鐘到幾小時。

您可以透過 檢查請求的狀態 AWS Marketplace 管理入口網站，或使用 API 操作直接透過目錄 `[DescribeChangeSet](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/API_DescribeChangeSet.html)` API。

**同步驗證**

下列結構描述驗證專屬於 中的`UpdateMarkup`動作 AWS Marketplace Catalog API。這些驗證會在您呼叫 時執行`StartChangeSet`。如果請求不符合下列要求，它會失敗並顯示 HTTP 回應。


| 輸入欄位 | 驗證規則 | 
| --- | --- | 
| 百分比 | 必要<br />資料類型為「字串」 <br />必須為非負數 <br />允許最多 9 個小數 | 

**非同步錯誤**

下列錯誤專屬於 中的`UpdateMarkup`動作 AWS Marketplace Catalog API。當您在處理變更集`DescribeChangeSet`之後呼叫 時，會傳回這些錯誤。如需使用 `DescribeChangeSet` 取得變更請求狀態的詳細資訊，請參閱 [使用變更集](catalog-apis.md#working-with-change-sets)。


| 錯誤碼  | 錯誤訊息 | 
| --- | --- | 
| INCOMPATIBLE\_MARKUP | 無法在優惠發佈後執行請求的變更。 | 
| INCOMPATIBLE\_RESALE\_AUTHORIZATION | MarkupPercentage 當 PaymentScheduleTerm或 FixedUpfrontPricingTerm 存在於優惠中且不存在於 時，無法更新ResaleAuthorization。 | 
| INCOMPATIBLE\_TERMS | 使用 UpdatePaymentScheduleTerms 搭配特定付款金額或 UpdateMarkup 搭配排程日期的單一標記百分比。 | 
| INVALID\_MARKUP\_PERCENTAGE | 只能針對使用 ResaleAuthorization 建立的優惠叫用 UpdateMarkup。 | 

## 更新目標組態
<a name="update-targeting-cppo"></a>

您可以使用 Catalog API 完全取代現有的目標組態 AWS Marketplace。

任何未包含在最新請求中的現有目標選項都會從優惠中移除。製造商可以在 中提及特定目標買方`ResaleAuthorization`。管道合作夥伴可以在`UpdateTargeting`變更類型`PositiveTargeting`中使用 為一部分買方提供私有優惠。

若要更新優惠的目標組態，請使用`UpdateTargeting`變更類型呼叫 `StartChangeSet` API 操作，如下列範例所示。

**請求語法**

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

{
  "Catalog": "AWSMarketplace",
  "ChangeSet": [
    {
      "ChangeType": "UpdateTargeting",
      "Entity": {
        "Type": "Offer@1.0",
        "Identifier": "offer-123456789"
      },
      "DetailsDocument": {
        "PositiveTargeting": {
          "CountryCodes": [
            "US",
            "CA"
          ],
          "BuyerAccounts": [
            "111222333444"
          ]
        },
        "NegativeTargeting": {
          "CountryCodes": [
            "XX"
          ]
        }
      }
    }
  ]
}
```

提供要新增`UpdateTargeting`變更類型的欄位資訊：
+ **實體** （物件） （必要） – 您的 CPPO。
  + **類型** （字串） （必要） – 一律`Type`為 `Offer@1.0`。
  + **識別符** （字串） （必要） – 您的優惠 ID。如需詳細資訊，請參閱[識別符](catalog-apis.md#identifier)。
+ **DetailsDocument** （物件） （必要） – 請求特定項目的 JSON 值。
  + **PositiveTargeting** （物件） （選用） – 正面鎖定定義任何買方設定檔應滿足的條件，以允許存取優惠。此欄位是選用的，但當此欄位存在時，應至少提供一個目標選項。
    + **CountryCodes** （字串陣列） （選用） – 列出為允許根據國家/地區設定目標的選項。如果不是以國家/地區的優惠為目標，則應該省略此欄位。如果有的話，清單必須至少包含一個國家/地區代碼。此清單中的每個元素都應該是有效的 2 個字母國家/地區代碼，使用此格式：ISO 3166-1 alpha-2。
    + **BuyerAccounts** （字串陣列） （選用） – 列出為允許根據 AWS 帳戶 （也稱為 Private Offer) 進行目標鎖定的選項。如果意圖不是以 的提議為目標 AWS 帳戶，則應省略此欄位。
  + **NegativeTargeting** （物件） （選用） – 負面目標定義了任何客戶設定檔應滿足才能存取優惠的條件。雖然此欄位是選用的，但當此欄位存在時，至少應提供一個目標選項。
    + **CountryCodes** （字串陣列） （必要） – 列出為允許根據國家/地區設定目標的選項。如果不是以特定國家/地區的優惠為目標，則應該省略此欄位。如果有的話，清單必須至少包含一個國家/地區代碼。此清單中的每個元素都應該是有效的 2 個字母國家/地區代碼，使用此格式：ISO 3166-1 alpha-2。

**回應語法**

為您的請求建立變更集。對此請求的回應為您提供變更集`ChangeSetId``ChangeSetArn`的 和 ，如下所示。

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

變更請求會新增至佇列並進行處理。這包括驗證資訊，以確保其符合 AWS Marketplace 準則。驗證程序可能需要幾分鐘到幾個小時。

您可以透過 檢查請求的狀態 AWS Marketplace 管理入口網站，或使用 API 操作直接透過目錄 `[DescribeChangeSet](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/API_DescribeChangeSet.html)` API。

**同步驗證**

下列結構描述驗證專屬於 中的`UpdateTargeting`動作 AWS Marketplace Catalog API。這些驗證會在您呼叫 時執行`StartChangeSet`。如果請求不符合下列要求，它會失敗並顯示 HTTP 回應。


| 輸入欄位 | 驗證規則 | HTTP 代碼 | 
| --- | --- | --- | 
|  詳細資訊  | 必要 | 422 | 
|  PositiveTargeting | 選用 | 422 | 
| NegativeTargeting | 選用 | 422 | 
| PositiveTargeting.CountryCodes | 選用<br />國家代碼必須是有效的 (ISO 3166-1 alpha-2) | 422 | 
| PositiveTargeting.BuyerAccounts | 選用<br />AWS 帳戶 IDs必須為有效格式 (12 位數字）<br />不得包含超過 25 個帳戶 | 422 | 
| NegativeTargeting.CountryCodes | 選用<br />國家代碼必須是有效的 (ISO 3166-1 alpha-2) | 422 | 
| NegativeTargeting.BuyerAccounts | 不得提供 （不支援對 BuyerAccounts 進行負目標） | 422 | 

**非同步錯誤**

下列錯誤專屬於 中的`UpdateTargeting`動作 AWS Marketplace Catalog API。當您在處理變更集`DescribeChangeSet`之後呼叫 時，會傳回這些錯誤。如需使用 `DescribeChangeSet`取得變更請求狀態的詳細資訊，請參閱 [使用變更集](catalog-apis.md#working-with-change-sets)。


| 錯誤碼 | 錯誤訊息 | 
| --- | --- | 
| INVALID\_BUYER\_ACCOUNTS | 提供有效的買方帳戶。無效的帳戶：【x】。 | 
| INVALID\_COUNTRY\_CODES | 提供支援的國家/地區代碼。 | 
| INVALID\_TARGETING | 對相同的屬性使用負或正目標。 | 
| INCOMPATIBLE\_PRODUCT | 產品不支援以國家/地區為基礎的目標鎖定。 | 
| INCOMPATIBLE\_RESALE\_AUTHORIZATION | 提供與 ResaleAuthorization 相容的 BuyerAccounts。 | 
| INCOMPATIBLE\_TARGETING | 無法在優惠發佈後執行請求的變更。 | 
| INCOMPATIBLE\_TARGETING | 請求的變更無法在優惠過期後執行。 | 
| INCOMPATIBLE\_TARGETING | 無法更新替代優惠的目標。如果買方未與提供的 AgreementId 相關聯，則提供與買方相關聯的 AgreementId，以建立新的私有優惠。 | 
| TOO\_MANY\_BUYER\_ACCOUNTS | 在允許的限制內提供 BuyerAccounts。 | 

## 更新法律資源
<a name="update-legal-terms-cppo"></a>

您可以使用目錄 API 合併轉售授權法律條款，並完全取代現有的法律條款 AWS Marketplace。

此變更不會影響現有的協議。未包含在最新請求中的法律條款將從優惠中移除。您可以呼叫 來檢視合併的法律術語`DescribeEntity`。

若要更新優惠的法律條款，請使用`UpdateLegalTerms`變更類型呼叫 `StartChangeSet` API 操作，如下列範例所示。

**請求語法**

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

{
  "Catalog": "AWSMarketplace",
  "ChangeSet": [
    {
      "ChangeType": "UpdateLegalTerms",
      "Entity": {
        "Type": "Offer@1.0",
        "Identifier": "offer-123456789"
      },
      "DetailsDocument": {
        "Terms": [
          {
            "Type": "LegalTerm",
            "Documents": [
              {
                "Type": "CustomEula",
                "Url": "https://s3.amazonaws.com/EULA/custom-eula-1234.txt"
              }
            ]
          }
        ]
      }
    }
  ]
}
```

提供要新增`UpdateLegalTerms`變更類型的欄位資訊：
+ **實體** （物件） （必要） – 您的 CPPO。
  + **類型** （字串） （必要） – 一律`Type`為 `Offer@1.0`。
  + **識別符** （字串） （必要） – 您的優惠 ID。如需詳細資訊，請參閱[識別符](catalog-apis.md#identifier)。
+ **DetailsDocument** （物件） （必要） – 請求特定項目的 JSON 值。
  + **術語** （結構陣列） （必要） – 您要更新的法律術語清單。支援的法律術語為：
  + **LegalTerm** （物件） （必要） – 定義要提議給接受者的文字協議清單。這種協議的一個範例是最終使用者授權合約 (EULA)。
    + **類型** （字串） （必要） – 正在更新的詞彙類別。
    + **文件** （結構陣列） （必要） – 要提議給買方之法律資源的參考清單。這類資源的一個範例是最終使用者授權合約 (EULA)。每個參考都由類型和 URL 組成：
      + **類型** （字串） （必要） – 文件類型。可用的文件類型為：
        + **CustomEula** – 您以賣方身分提供的自訂 EULA。此文件類型需要存放在可存取 S3 儲存貯體中的 EULA URL。
        + **StandardEula** – 適用於 AWS Marketplace (SCMP) 的標準合約。如需 SCMP 的詳細資訊，請參閱 AWS Marketplace 賣方指南。您不提供此類型的 URL，因為它由 管理 AWS Marketplace。
      + **Url** （字串） （有條件必要） – 供買方讀取之法律文件的 URL。當 `Type`為下列其中一個 【`CustomEula`】 時為必要。
      + **版本** （字串） （有條件需要） – 由 提供的標準合約版本 AWS Marketplace。當 `Type`為 時，這是必要的`StandardEula`。可用的版本為：
        + **2022-07-14** – 此版本的 標準合約可從此 Amazon S3 儲存貯 AWS Marketplace 體取得：https：//[https://s3.amazonaws.com/aws-mp-standard-contracts/Standard-Contact-for-AWS-Marketplace-2022-07-14.pdf](https://s3.amazonaws.com/aws-mp-standard-contracts/Standard-Contact-for-AWS-Marketplace-2022-07-14.pdf)

為您的請求建立變更集。對此請求的回應會為您提供變更集的 ID。

**回應語法**

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

變更請求會新增至佇列並進行處理。這包括與 AWS Marketplace 賣方營運團隊驗證資訊，以確保其符合 AWS Marketplace 準則。驗證程序可能需要幾分鐘到幾個小時。您可以透過 AWS Marketplace 管理入口網站或在目錄 API 中使用 `DescribeChangeSet`動作來檢查請求的狀態。

**同步驗證**

下列結構描述驗證專屬於 中的`UpdateLegalTerms`動作 AWS Marketplace Catalog API。這些驗證會在您呼叫 時執行`StartChangeSet`。如果請求不符合下列要求，它會失敗並顯示 HTTP 回應。


| 輸入欄位 | 驗證規則 | HTTP 代碼 | 
| --- | --- | --- | 
| 條款 | 必要<br />清單中只允許 LegalTerm <br />清單大小必須為 1 | 422 | 
| Terms【】。LegalTerm.Documents | 必要 | 422 | 
| Terms【】。LegalTerm.Documents[].類型 | 必要<br />允許的值：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/marketplace/latest/developerguide/work-with-cppos.html) | 422 | 
| Terms【】。LegalTerm.Documents[].Url | 當「類型」為其中一個 時，必要且必須是有效的 URL[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/marketplace/latest/developerguide/work-with-cppos.html) | 422 | 

**非同步錯誤**

下列錯誤專屬於 中的`UpdateLegalTerms`動作 AWS Marketplace Catalog API。當您在處理變更集`DescribeChangeSet`之後呼叫 時，會傳回這些錯誤。如需使用 `DescribeChangeSet` 取得變更請求狀態的詳細資訊，請參閱 [使用變更集](catalog-apis.md#working-with-change-sets)。


| 錯誤碼  | 錯誤訊息 | 
| --- | --- | 
| INCOMPATIBLE\_TERMS | 無法在優惠發佈後執行請求的變更。 | 
| INCOMPATIBLE\_TERMS | 請求的變更無法在優惠過期後執行。 | 
| INVALID\_LEGAL\_DOCUMENTS | 為存放在可存取 S3 儲存貯體中的法律文件提供 URLs。 | 
| INVALID\_LEGAL\_DOCUMENTS | 新優惠僅支援最新版本的 StandardEula。 | 
| INVALID\_LEGAL\_DOCUMENTS | 以支援的檔案格式提供法律文件。 | 
| INVALID\_LEGAL\_DOCUMENTS | 使用支援的文件類型提供法律文件。 | 
| LIMIT\_EXCEEDED\_LEGAL\_DOCUMENT\_SIZE | 在允許的大小限制內提供法律文件。 | 

## 更新 CPPO 的可探索性
<a name="update-availability-cppo"></a>

您可以使用 Catalog API 來管理 優惠的可探索性 AWS Marketplace。此變更類型不會影響現有的協議。

您可以選擇在未來設定特定日期，以限制優惠的可探索性，或過去會使優惠過期。

若要管理優惠的可探索性，請使用`UpdateAvailability`變更類型呼叫 `StartChangeSet` API 操作，如下列範例所示。

**請求語法**

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

{
  "Catalog": "AWSMarketplace",
  "ChangeSet": [
    {
      "ChangeType": "UpdateAvailability",
      "Entity": {
        "Type": "Offer@1.0",
        "Identifier": "offer-123456789"
      },
      "DetailsDocument": {
        "AvailabilityEndDate": "2024-05-31"
      }
    }
  ]
}
```

提供要新增`UpdateAvailability`變更類型的欄位資訊：
+ **實體** （物件） （必要） – 您的 CPPO。
  + **類型** （字串） （必要） – 一律`Type`為 `Offer@1.0`。
  + **識別符** （字串） （必要） – 您的優惠 ID。如需詳細資訊，請參閱[識別符](catalog-apis.md#identifier)。
+ **DetailsDocument** （物件） （必要） – 請求特定項目的 JSON 值。
  + **AvailabilityEndDate** （字串） – 直到優惠可探索且可購買為止 AWS Marketplace。您可以選擇在未來設定特定日期，以限制可用性或過去會使優惠過期。日期會以 `YYYY-MM-DD` 格式表示。優惠將於 UTC 提供的日期 23：59：59.999 到期。

**回應語法**

為您的請求建立變更集。對此請求的回應為您提供變更集`ChangeSetId``ChangeSetArn`的 和 ，如下所示。

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

變更請求會新增至佇列並進行處理。這包括驗證資訊，以確保其符合 AWS Marketplace 準則。驗證程序可能需要幾分鐘到幾個小時。

您可以透過 檢查請求的狀態 AWS Marketplace 管理入口網站，或使用 API 操作直接透過目錄 `[DescribeChangeSet](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/API_DescribeChangeSet.html)` API。

**同步驗證**

下列結構描述驗證專屬於 中的`UpdateAvailability`動作 AWS Marketplace Catalog API。當您呼叫 時，會執行這些驗證`StartChangeSet`。如果請求不符合下列要求，它會失敗並顯示 HTTP 回應。


| 輸入欄位 | 驗證規則 | HTTP 代碼 | 
| --- | --- | --- | 
| AvailabilityEndDate | 必要<br />格式："YYYY-MM-DD" | 422 | 

**非同步錯誤**

下列錯誤專屬於 中的`UpdateAvailability`動作 AWS Marketplace Catalog API。當您在處理變更集`DescribeChangeSet`之後呼叫 時，會傳回這些錯誤。如需使用 `DescribeChangeSet` 取得變更請求狀態的詳細資訊，請參閱 [使用變更集](catalog-apis.md#working-with-change-sets)。


| 錯誤碼 | 錯誤訊息 | 
| --- | --- | 
| INVALID\_AVAILABILITY\_END\_DATE | 公有優惠不支援 AvailabilityEndDate。 | 
| INVALID\_AVAILABILITY\_END\_DATE | 提供未來的 AvailabilityEndDate。 | 
| INVALID\_AVAILABILITY\_END\_DATE | 提供在 AgreementEndDate 之前的 AvailabilityEndDate。 AgreementEndDate | 
| MISSING\_AVAILABILITY\_END\_DATE | 提供在協議結束日期之前的 AvailabilityEndDate。 | 

## 定義協議的過期日期
<a name="update-validity-terms-cppo"></a>

您可以使用目錄 API 來定義使用此優惠建立之協議的過期日期 AWS Marketplace。

此變更不會影響現有的協議。製造商可以在轉售授權中提及協議開始日期上限。不過，頻道合作夥伴無法提供晚於該日期的協議開始日期。

若要定義協議的過期日期，請使用`UpdateValidityTerms`變更類型呼叫 `StartChangeSet` API 操作，如下列範例所示。

**請求語法**

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

{
  "Catalog": "AWSMarketplace",
  "ChangeSet": [
    {
      "ChangeType": "UpdateValidityTerms",
      "Entity": {
        "Type": "Offer@1.0",
        "Identifier": "offer-123456789"
      },
      "DetailsDocument": {
        "Terms": [
          {
            "Type": "ValidityTerm",
            "AgreementDuration": "P12M",
            "AgreementStartDate": "2021-08-01",
            "AgreementEndDate": "2022-08-01"
          }
        ]
      }
    }
  ]
}
```

提供要新增`UpdateValidityTerms`變更類型的欄位資訊：
+ **實體** （物件） （必要） – 您的 CPPO。
  + **類型** （字串） （必要） – 一律`Type`為 `Offer@1.0`。
  + **識別符** （字串） （必要） – 您的優惠 ID。如需詳細資訊，請參閱[識別符](catalog-apis.md#identifier)。
+ **DetailsDocument** （物件） （必要） – 請求特定項目的 JSON 值。
  + **術語** （結構陣列） **–** 您要更新的有效術語清單。支援的有效性術語為：
    + **ValidityTerm** （物件） **–** 定義將保留從本優惠建立的協議、有效的條件。
      + **類型** （字串） **–** 要更新的詞彙類別。
      + **AgreementDuration** （字串） **–** 定義協議保持作用中的持續時間。如果`AgreementStartDate`未提供 ，則協議持續時間與協議簽署時間相關。持續時間會以 ISO\_8601 格式表示。
      + **AgreementStartDate** （字串） **–** 定義協議開始的日期。 `AgreementStartDate` 以 YYYY-MM-DD 格式表示。協議於 UTC 提供日期的 00：00：00.000 開始。如果`AgreementStartDate`未提供 ，則根據協議簽署時間來決定協議開始日期。
      + **AgreementEndDate** （字串） **–** 定義協議終止的日期。以 YYYY-MM-DD 格式`AgreementEndDate`表示。協議的結束日期為 UTC 23：59：59.999。如果`AgreementEndDate`未提供 ，則協議結束日期取決於個別條款的有效性。

**回應語法**

為您的請求建立變更集。對此請求的回應為您提供變更集`ChangeSetId``ChangeSetArn`的 和 ，如下所示。

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

變更請求會新增至佇列並進行處理。這包括驗證資訊，以確保其符合 AWS Marketplace 準則。驗證程序可能需要幾分鐘到幾個小時。

您可以透過 檢查請求的狀態 AWS Marketplace 管理入口網站，或使用 API 操作直接透過目錄 `[DescribeChangeSet](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/API_DescribeChangeSet.html)` API。

**同步驗證**

下列結構描述驗證專屬於 中的`UpdateValidityTerms`動作 AWS Marketplace Catalog API。當您呼叫 時，會執行這些驗證`StartChangeSet`。如果請求不符合下列要求，它會失敗並顯示 HTTP 回應。


| 輸入欄位 | 驗證規則 | HTTP 代碼 | 
| --- | --- | --- | 
| 條款 | 必要<br />清單中只允許「ValidityTerm」 <br />必須為空白或僅包含 1 個詞彙 | 422 | 
|  Terms【】。ValidityTerm  | 支援的使用案例：<br />1. ValidityTerm 僅包含 AgreementDuration<br />2. 僅具有 AgreementStartDate 的 ValidityTerm <br />3. 僅具有 AgreementEndDate 的 ValidityTerm <br />4. 同時具有 AgreementStartDate 和 AgreementEndDate 的 ValidityTerm  | 422 | 
| Terms【】。ValidityTerm.AgreementDuration | 選用<br />以 ISO\_8601 格式表示。 | 422 | 
| Terms【】。ValidityTerm.AgreementStartDate | 選用<br />格式："YYYY-MM-DD" | 422 | 
| Terms【】。ValidityTerm.AgreementEndDate | 選用<br />格式："YYYY-MM-DD" | 422 | 

**非同步錯誤**

下列錯誤專屬於 中的`UpdateValidityTerms`動作 AWS Marketplace Catalog API。當您在處理變更集`DescribeChangeSet`之後呼叫 時，會傳回這些錯誤。如需使用 `DescribeChangeSet` 取得變更請求狀態的詳細資訊，請參閱 [使用變更集](catalog-apis.md#working-with-change-sets)。


| 錯誤碼 | 錯誤訊息 | 
| --- | --- | 
| INCOMPATIBLE\_AGREEMENT | 如果目前要取代的協議不是未來的日期，則 AgreementStartDate 不能在未來。 | 
| INCOMPATIBLE\_AGREEMENT\_END\_DATE | 優惠發行後，就無法更新 AgreementEndDate。 | 
| INCOMPATIBLE\_AGREEMENT\_START\_DATE | 優惠發行後，就無法更新 AgreementStartDate。 | 
| INCOMPATIBLE\_PRODUCT | 未來不支援 AgreementStartDate。 | 
| INCOMPATIBLE\_RESALE\_AUTHORIZATION | 確保 AgreementStartDate 和 AgreementEndDate 之間的持續時間與 ResaleAuthorization 相容。 | 
| INCOMPATIBLE\_RESALE\_AUTHORIZATION | 確保 AgreementStartDate 與 ResaleAuthorization 相容。 | 
| INCOMPATIBLE\_RESALE\_AUTHORIZATION | 確保 AgreementEndDate 與 ResaleAuthorization 相容。 | 
| INCOMPATIBLE\_RESALE\_AUTHORIZATION | 確保 AgreementStartDate 和 AgreementEndDate 之間的持續時間與 ResaleAuthorization 相容。 | 
| INCOMPATIBLE\_RESALE\_AUTHORIZATION | 確保 AgreementDuration 符合 ResaleAuthorization 中指定的持續時間。 | 
| INCOMPATIBLE\_TERMS  | 公開優惠不支援 ValidityTerm。 | 
| INCOMPATIBLE\_TERMS  | 請求的變更無法在優惠過期後執行。 | 
| INVALID\_AGREEMENT\_DURATION | 提供大於或等於 【x】 天的 AgreementDuration。 | 
| INVALID\_AGREEMENT\_END\_DATE | 提供未來的 AgreementEndDate。 | 
| INVALID\_AGREEMENT\_END\_DATE | 提供晚於或等於 【x】 的 AgreementEndDate。 | 
| INVALID\_AGREEMENT\_START\_DATE | 提供在 AvailabilityEndDate 之後的 AgreementStartDate。 AvailabilityEndDate | 
| INVALID\_AGREEMENT\_START\_DATE | 提供 AgreementStartDate 之前的 AgreementEndDate。 | 
| INVALID\_AGREEMENT\_START\_DATE | 提供距今天 【x】 年的 AgreementStartDate。 | 
| INVALID\_AGREEMENT\_TIME\_INTERVAL | 不支援同時具有 AgreementDuration 和 AgreementEndDate 的 ValidityTerm。 | 
| INVALID\_AGREEMENT\_TIME\_INTERVAL | 產品優惠不支援同時具有 AgreementStartDate 和 AgreementDuration 的 ValidityTerm。 | 
| INVALID\_AGREEMENT\_TIME\_INTERVAL | 產品優惠不支援 ValidityTerm with AgreementStartDate。 | 
| INVALID\_AGREEMENT\_TIME\_INTERVAL | 不支援僅含 AgreementStartDate 的 ValidityTerm。 | 
| INVALID\_AGREEMENT\_TIME\_INTERVAL | 除非與未來的 AgreementEndDate不支援 AgreementStartDate。 | 
| INVALID\_AGREEMENT\_TIME\_INTERVAL | 提供 AgreementStartDate 和 AgreementEndDate，其中差異小於或等於 【x】 年。 | 
| MISSING\_AGREEMENT\_START\_DATE | 當與 ConfigurableUpfrontPricingTerm 搭配使用時，確保 AgreementStartDate 存在於 ValidityTerm 中。 ConfigurableUpfrontPricingTerm | 

## 更新定價
<a name="update-pricing-terms-cppo"></a>

您可以使用目錄 API 完整取代現有的定價條款。

未包含在最新請求中的定價條款將從優惠中移除。頻道合作夥伴只能使用此變更類型來傳遞 `FixedUpFrontPricingTerm`。

若要更新優惠的定價條件，請使用`UpdatePricingTerms`變更類型呼叫 `StartChangeSet` API 操作，如下列範例所示。

**請求語法**

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

{
  "Catalog": "AWSMarketplace",
  "ChangeSet": [
    {
      "ChangeType": "UpdatePricingTerms",
      "Entity": {
        "Type": "Offer@1.0",
        "Identifier": "offer-123456789"
      },
      "Details": {
        "PricingModel": "Contract",
        "Terms": [
          {
            "Type": "FixedUpfrontPricingTerm",
            "CurrencyCode": "USD",
            "Price": "200.00",
            "Duration": "P465D",
            "Grants": [
              {
                "DimensionKey": "Users",
                "MaxQuantity": 10
              }
            ]
          }
        ]
      }
    }
  ]
}
```

提供要新增`UpdatePricingTerms`變更類型的欄位資訊：
+ **實體** （物件） （必要） – 您的 CPPO。
  + **類型** （字串） （必要） – 一律`Type`為 `Offer@1.0`。
  + **識別符** （字串） （必要） – 您的優惠 ID。如需詳細資訊，請參閱[識別符](catalog-apis.md#identifier)。
+ **詳細資訊** （字串） （必要） – 請求的詳細資訊。此欄位是 JSON 字串欄位。它必須為單行字串欄位正確格式化，包括不能在字串中的逸出字元 （例如引號）。
  + **PricingModel** （字串） （必要） – 您優惠的定價模型。定價模型的可能值為：
    + **合約** – 以合約為基礎的定價模式，其中買方會預先針對您的產品使用付費，或提供彈性的付款排程。買方也可以支付超出合約的額外用量。
    + **術語** （結構陣列） （必要） – 您要更新的定價術語清單。支援的定價條款如下：
      + **FixedUpfrontPricingTerm** （物件） – 定義預付定價模式，向客戶收取固定預付金額的費用。
        + **類型** （字串） （必要） – 要更新的詞彙類型。
        + **CurrencyCode** （字串） （必要） – 定義此術語中所提及價格的貨幣。對於公開優惠，僅支援 USD。對於私有優惠，支援 USD、UD、EUR、GBP 和 ¥C。
        + **價格** （字串） （必要） – 接受此期限時向客戶收取的固定金額。
        + **授予** （結構陣列） （必要） – 作為協議執行的一部分，將授予固定預付接受者的權利。
          + **DimensionKey** （字串） （必要） – 產品文件中定義的唯一維度索引鍵。維度代表產品中的容量類別，並在產品列出時指定 AWS Marketplace。
          + **MaxQuantity** （整數） （選用） – 買方有權取得產品指定維度的最大容量。如果`MaxQuantity`未提供 ，買方將能夠使用指定維度的無限數量。
        + **持續時間** （字串） （選用） – 定義字詞保持作用中的持續時間。此欄位支援 ISO 8601 格式。

**回應語法**

為您的請求建立變更集。對此請求的回應為您提供變更集`ChangeSetId``ChangeSetArn`的 和 ，如下所示。

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

變更請求會新增至佇列並進行處理。這包括驗證資訊，以確保其符合 AWS Marketplace 準則。驗證程序可能需要幾分鐘到幾個小時。

您可以透過 檢查請求的狀態 AWS Marketplace 管理入口網站，或使用 API 操作直接透過目錄 `[DescribeChangeSet](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/API_DescribeChangeSet.html)` API。

**同步驗證**

下列結構描述驗證專屬於 中的`UpdatePricingTerms`動作 AWS Marketplace Catalog API。當您呼叫 時，會執行這些驗證`StartChangeSet`。如果請求不符合下列要求，它會失敗並顯示 HTTP 回應。


| 輸入欄位 | 驗證規則 | 
| --- | --- | 
| PricingModel | 必要<br />允許的定價模型：<br />合約 | 
| 條款 | 必要<br />允許的術語：<br />FixedUpfrontPricingTerm | 
| Terms【】。FixedUpfrontPricingTerm.CurrencyCode | 必要<br />允許的值：【"USD"、"AUD"、"EUR"、"GBP"、"JPN"】<br />允許的定價模型：<br />合約 | 
| Terms【】。FixedUpfrontPricingTerm.Price | 必要<br />資料類型為「字串」必須是非負數 <br />支援最多 6 個小數位數<br />不支援特殊字元 | 
| Terms【】。FixedUpfrontPricingTerm.Duration | 必要<br />預期的格式：ISO 8601 持續時間 | 
| Terms【】。FixedUpfrontPricingTerm.Grants[].DimensionKey | 必要<br />長度必須介於 1 到 60 之間 | 
| Terms【】。FixedUpfrontPricingTerm.Grants[].MaxQuantity | 必要 | 

**非同步錯誤**

下列錯誤專屬於 中的`UpdatePricingTerms`動作 AWS Marketplace Catalog API。當您在處理變更集`DescribeChangeSet`之後呼叫 時，會傳回這些錯誤。如需使用 `DescribeChangeSet` 取得變更請求狀態的詳細資訊，請參閱 [使用變更集](catalog-apis.md#working-with-change-sets)。


| 錯誤碼 | 錯誤訊息 | 
| --- | --- | 
| DUPLICATE\_DIMENSION\_KEYS | 在 【x】 中提供授予唯一的維度索引鍵清單。 | 
| DUPLICATE\_DIMENSION\_KEYS | 在 【x】 中提供 RateCard 唯一的維度索引鍵清單。 | 
| DUPLICATE\_SELECTORS  | 在 ConfigurableUpfrontPricingTerm 中提供唯一的選取器清單。 | 
| DUPLICATE\_TERM\_TYPES | 提供唯一的詞彙類型清單。 | 
| INCOMPATIBLE\_AGREEMENT | 下列術語無法從替代優惠中移除：【x， y， z】。 | 
| INCOMPATIBLE\_AGREEMENT | 下列術語無法新增至替代優惠：【x， y， z】。 | 
| INCOMPATIBLE\_CURRENCY\_CODE | 優惠發行後，無法變更 CurrencyCode。 | 
| INCOMPATIBLE\_PAYMENT\_SETTINGS | 更新您的付款設定，使其與 CurrencyCode 相容。 | 
| INCOMPATIBLE\_PRODUCT | 產品不支援用量定價模型。 | 
| INCOMPATIBLE\_PRODUCT | 產品不支援合約定價模式。 | 
| INCOMPATIBLE\_PRODUCT | 產品不支援 Byol 定價模型。 | 
| INCOMPATIBLE\_PRODUCT | 產品不支援免費定價模式。 | 
| INCOMPATIBLE\_PRODUCT | 產品的 優惠不支援 【x】。 | 
| INCOMPATIBLE\_PRODUCT | 提供的付款和定價條款不相容。 | 
| INCOMPATIBLE\_PRODUCT | 在 【x】 的產品中使用現有的可用維度。 | 
| INCOMPATIBLE\_PRODUCT | 產品不支援 FreeTrialPricingTerm 作為優惠的唯一定價期限。 | 
| INCOMPATIBLE\_PRODUCT | 產品不支援下列術語：【x，y，z】。 | 
| INCOMPATIBLE\_PRODUCT | 取代優惠僅支援合約定價模式。 | 
| INCOMPATIBLE\_PRODUCT | 提供與產品維度相容的定價期限 (s)。不相容的定價條款：【x，y，z】。 | 
| INCOMPATIBLE\_RATE\_CARD\_CONSTRAINTS | 針對用量定價模型，將 MultipleDimensionSelection 和 QuantityConfiguration 設定為 ConfigurableUpfrontPricingTerm 允許。 | 
| INCOMPATIBLE\_RATE\_CARD\_CONSTRAINTS | 在用量定價模型的 ConfigurableUpfrontPricingTerm 中將 MultipleDimensionSelection 和 QuantityConfiguration 設定為不允許。 | 
| INCOMPATIBLE\_RATE\_CARD\_CONSTRAINTS | 優惠發行後，無法變更 ConfigurableUpfrontPricingTerm 中的 QuantityConfiguration。 | 
| INCOMPATIBLE\_RATE\_CARD\_CONSTRAINTS | 優惠發行後，無法變更 ConfigurableUpfrontPricingTerm 中的 MultipleDimensionSelection。 | 
| INCOMPATIBLE\_RATES | 使用免費定價模型時，將所有費用金額和價格設定為零 (0)。 | 
| INCOMPATIBLE\_RATES | UsageBasedPricingTerm 只允許零 (0) 價格，以取得產品的免費試用優惠。 | 
| INCOMPATIBLE\_RESALE\_AUTHORIZATION | 提供與 ResaleAuthorization 中指定的相同 CurrencyCode。 | 
| INCOMPATIBLE\_RESALE\_AUTHORIZATION | 確保 FixedUpfrontPricingTerm 中的持續時間與 ResaleAuthorization 中指定的持續時間相符。 | 
| INCOMPATIBLE\_RESALE\_AUTHORIZATION | 提供與 ResaleAuthorization 相容的 term(s)。不相容的術語：【x、y、z】。 | 
| INCOMPATIBLE\_SELECTOR\_DURATION | 優惠發行後，不允許從 ConfigurableUpfrontPricingTerm 中的費率卡中移除持續時間。 | 
| INCOMPATIBLE\_SELLER\_VERIFICATION | 完成所有必要的賣方驗證程序。 | 
| INCOMPATIBLE\_TERMS  | 【x】 與下列術語不支援：【y，z】。 | 
| INCOMPATIBLE\_TERMS  | 優惠發行後，無法新增下列術語：【x，y，z】。 | 
| INCOMPATIBLE\_TERMS  | 優惠發行後，無法移除下列術語：【x，y，z】。 | 
| INCOMPATIBLE\_TERMS  | 私有優惠不支援 【x】。 | 
| INCOMPATIBLE\_TERMS  | 授予無限用量的 FreeTrialPricingTerm 不支援下列術語：【x，y，z】。 | 
| INCOMPATIBLE\_TERMS  | FreeTrialPricingTerm 不支援產品的下列術語：【x，y，z】。 | 
| INCOMPATIBLE\_TERMS  | 當優惠包含 PaymentScheduleTerm 時，為 FixedUpfrontPricingTerm 提供零 (0) 價格。 | 
| INCOMPATIBLE\_TERMS  | 下列術語與 PricingModel 不相容：【x，y，z】。 | 
| INCOMPATIBLE\_TERMS  | 當 MarkupPercentage 大於零 (0) 時，不支援 FixedUpfrontPricingTerm。 | 
| INCOMPATIBLE\_TERMS  | 無法在優惠發佈後執行請求的變更。 | 
| INCOMPATIBLE\_TERMS  | 請求的變更無法在優惠過期後執行。 | 
| INVALID\_AGREEMENT\_DURATION | 提供介於 【x】 和 【y】 個月的持續時間。 | 
| INVALID\_AGREEMENT\_DURATION | 確保測量維度的持續時間精細程度處於天層級。 | 
| INVALID\_CURRENCY\_CODE | 提供支援的 CurrencyCode。 | 
| INVALID\_CURRENCY\_CODE | 在所有定價和付款條件中提供相同的 CurrencyCode。 | 
| INVALID\_DURATION | 確保 FreeTrialPricingTerm 中的持續時間在允許的範圍內。 | 
| INVALID\_DURATION | 在 FixedUpfrontPricingTerm 中提供符合 AgreementStartDate 和 AgreementEndDate 之間持續時間的持續時間。 | 
| INVALID\_DURATION | 提供介於 【x】 和 【y】 個月的持續時間。 | 
| INVALID\_DURATION | 確保測量維度的持續時間精細程度處於天層級。 | 
| INVALID\_GRANTS | 為 FreeTrialPricingTerm 中的所有授權提供相同的 MaxQuantity。 | 
| INVALID\_GRANTS | 在 FreeTrialPricingTerm 中提供所有可用計量維度的授予。 | 
| INVALID\_PRICE\_CHANGE | 【x】 無法在 【y】 之前更新，因為您在過去 120 天內請求提高價格。若要取消先前的提高價格請求或取得詳細資訊，請聯絡 AWS Marketplace Managed Catalog Operations 團隊。 | 
| INVALID\_PRICE\_CHANGE | 相同的請求不支援在 【x】 中增加價格和增加維度。先新增維度。 | 
| INVALID\_PRICE\_CHANGE | 同一請求不支援 UsageBasedPricingTerm 的價格提高和降低。首先降低價格。 | 
| INVALID\_PRICE\_CHANGE | 相同請求不支援 RecurringPaymentTerm 的價格增加和 UsageBasedPricingTerm 的價格降低。首先降低價格。 | 
| INVALID\_PRICE\_CHANGE | 相同請求不支援 RecurringPaymentTerm 的價格降低和 UsageBasedPricingTerm 的價格提高。首先降低價格。 | 
| INVALID\_RATE\_CARD | ConfigurableUpfrontPricingTerm 在持續時間 【x】 內缺少一或多個維度索引鍵。提供所有持續時間內同一組維度索引鍵的價格。 | 
| INVALID\_RATE\_CARD | 在 UsageBasedPricingTerm 中提供僅計量維度的費率卡。 | 
| INVALID\_RATE\_CARD | 無法從 【x】 移除費率。提供現有費率卡中所有維度的價格。 | 
| INVALID\_RATE\_CARD | 在 【x】 中提供單位相同的維度。 | 
| INVALID\_RATE\_CARD | 以 【x】 提供所有計量維度或所有授權維度。 | 
| INVALID\_RATE\_CARD | 僅提供 【x】 中具備權限的維度。 | 
| INVALID\_RATE\_CARD | 提供 UsageBasedPricingTerm 中所有可用計量維度的用量型費率。 | 
| INVALID\_RATE\_CARD | 提供所有免費試用維度的用量型費率。 | 
| INVALID\_RATE\_CARD | 在 UsageBasedPricingTerm 中提供最多 8 個小數位的價格。 | 
| INVALID\_SELECTOR\_DURATION\_VALUE | 提供介於 【x】 和 【y】 個月的持續時間。 | 
| INVALID\_SELECTOR\_DURATION\_VALUE | 確保測量維度的持續時間精細程度處於天層級。 | 
| INVALID\_SELECTOR\_DURATION\_VALUE | 確保 ConfigurableUpfrontPricingTerm 中的持續時間在允許的範圍內。 | 
| INVALID\_SELECTOR\_DURATION\_VALUE | 提供一或多個支援的合約持續時間。 | 
| INVALID\_SELECTOR\_DURATION\_VALUE | 提供一或多個支援的合約持續時間或單一自訂持續時間。 | 
| INVALID\_SELECTOR\_DURATION\_VALUE | 在符合 AgreementStartDate 和 AgreementEndDate 之間持續時間的 ConfigurableUpfrontPricingTerm 中提供持續時間。 | 
| MISSING\_DURATION | 在 FixedUpfrontPricingTerm 中提供持續時間。 | 
| MISSING\_MANDATORY\_TERMS | 只有在與 ByolPricingTerm 或 PaymentScheduleTerm 配對時，才支援 FixedUpfrontPricingTerm PaymentScheduleTerm 。 ByolPricingTerm  | 
| MISSING\_MANDATORY\_TERMS | 提供 【x，y，z】 中的至少一個。 | 
| MISSING\_MANDATORY\_TERMS | 使用 Byol 定價模型時提供 ByolPricingTerm。 | 
| TOO\_MANY\_GRANTS | 在 【y】 中提供最多 【x】 個授權。 | 
| TOO\_MANY\_RATE\_CARDS | 產品只允許使用 ConfigurableUpfrontPricingTerm 中的一張費率卡。 | 
| TOO\_MANY\_RATE\_CARDS | 產品在 ConfigurableUpfrontPricingTerm 中最多允許 【x】 張費率卡。 | 
| TOO\_MANY\_RATES | 在 ConfigurableUpfrontPricingTerm 中允許的限制內提供 RateCards。 | 
| TOO\_MANY\_RATES | 在 UsageBasedPricingTerm 中允許的限制內提供 RateCards。 | 

## 更新付款排程詳細資訊
<a name="update-payment-schedule-terms-cppo"></a>

您可以使用目錄 API 變更付款排程詳細資訊，例如彈性付款排程 AWS Marketplace。

如果製造商已在轉售授權中提供付款排程，則通路合作夥伴可以：
+ 使用`UpdateMarkup`變更類型，將統一百分比標記套用至所有付款排程。
+ 使用`UpdatePaymentScheduleTerms`變更類型，將自訂付款金額設定為大於或等於重新銷售授權中提供的值。付款日期無法變更。這兩個選項無法同時套用。如果先套用標記，而且您需要進行變更才能套用付款排程，請透過`UpdateMarkup`變更類型`0`將標記設定為 。如果先套用付款排程，則無法還原變更以套用標記。

若要更新優惠的付款相關詳細資訊，請使用`UpdatePaymentScheduleTerms`變更類型呼叫 `StartChangeSet` API 操作，如下列範例所示。

**請求語法**

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

{
  "Catalog": "AWSMarketplace",
  "ChangeSet": [
    {
      "ChangeType": "UpdatePaymentScheduleTerms",
      "Entity": {
        "Type": "Offer@1.0",
        "Identifier": "offer-123456789"
      },
      "DetailsDocument": {
        "Terms": [
          {
            "Type": "PaymentScheduleTerm",
            "Schedule": [
              {
                "ChargeDate": "2021-12-01",
                "ChargeAmount": "200.00"
              },
              {
                "ChargeDate": "2022-03-01",
                "ChargeAmount": "250.00"
              }
            ]
          }
        ]
      }
    }
  ]
}
```

提供要新增`UpdatePaymentScheduleTerms`變更類型的欄位資訊：
+ **實體** （物件） （必要） – 您的 CPPO。
  + **類型** （字串） （必要） – 一律`Type`為 `Offer@1.0`。
  + **識別符** （字串） （必要） – 您的優惠 ID。如需詳細資訊，請參閱[識別符](catalog-apis.md#identifier)。
+ **DetailsDocument** （物件） （必要） – 請求特定項目的 JSON 值。
  + **條件** （結構陣列） – 您要更新的付款條件清單。支援的付款條件為：
    + **PaymentScheduleTerm** (object) – 定義以分期付款為基礎的定價模式，其中客戶會在協議有效期間的不同日期支付固定價格的費用。
      + **類型** （字串） – 要更新的詞彙類型。這是物件值：`"PaymentScheduleTerm"`。
      + **排程** （結構陣列） – 付款排程清單，其中每個元素定義一個付款分期。它包含計算要支付的價格所需的資訊，以及向客戶收費的日期。
        + **ChargeDate** （字串） – 客戶將支付此付款排程期間所定義價格的日期。 `ChargeDate` 以 YYYY-MM-DD 格式表示。發票會在提供的日期產生。
        + **ChargeAmount ** （字串） – 客戶在排程日期 () 支付的價格`ChargeDate`。

**回應語法**

為您的請求建立變更集。對此請求的回應為您提供變更集`ChangeSetId``ChangeSetArn`的 和 ，如下所示。

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

變更請求會新增至佇列並進行處理。這包括驗證資訊，以確保其符合 AWS Marketplace 準則。驗證程序可能需要幾分鐘到幾個小時。

您可以透過 檢查請求的狀態 AWS Marketplace 管理入口網站，或使用 API 操作直接透過目錄 `[DescribeChangeSet](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/API_DescribeChangeSet.html)` API。

**同步驗證**

下列結構描述驗證專屬於 中的`UpdatePaymentScheduleTerms`動作 AWS Marketplace Catalog API。當您呼叫 時，會執行這些驗證`StartChangeSet`。如果請求不符合下列要求，它會失敗並顯示 HTTP 回應。


| 輸入欄位 | 驗證規則 | HTTP | 
| --- | --- | --- | 
| 條款 | 必要<br />僅允許「PaymentScheduleTerm」<br />清單大小必須小於 2 | 422 | 
| Terms【】。PaymentScheduleTerm.CurrencyCode | 必要<br />支援的貨幣：【"USD"、"AUD"、"EUR"、"GBP"、"JPN"】 | 422 | 
| Terms【】。PaymentScheduleTerm.Schedule[] | 必要<br />清單大小必須介於 1 到 60 之間，包含 | 422 | 
| Terms【】。PaymentScheduleTerm.Schedule[].ChargeDate | 必要<br />格式："YYYY-MM-DD" | 422 | 
| Terms【】。PaymentScheduleTerm.Schedule[].ChargeAmount | 必要資料類型為「字串」<br />支援最多 2 個小數位數的非負數小數位數<br />不允許其他屬性 | 422 | 

**非同步錯誤**

下列錯誤專屬於 中的`UpdatePaymentScheduleTerms`動作 AWS Marketplace Catalog API。當您在處理變更集`DescribeChangeSet`之後呼叫 時，會傳回這些錯誤。如需使用 `DescribeChangeSet` 取得變更請求狀態的詳細資訊，請參閱 [使用變更集](catalog-apis.md#working-with-change-sets)。


| 錯誤碼 | 錯誤訊息 | 
| --- | --- | 
| DUPLICATE\_charge\_DATES | 在 PaymentScheduleTerm 中提供唯一的收費日期。 | 
| INCOMPATIBLE\_MARKUP\_PERCENTAGE | 當 MarkupPercentage 大於零 (0) 時，不支援 PaymentScheduleTerm。 | 
| INCOMPATIBLE\_RESALE\_AUTHORIZATION | 提供與 ResaleAuthorization 相容的 term(s)。不相容的術語：【PaymentScheduleTerm】。 | 
| INCOMPATIBLE\_RESALE\_AUTHORIZATION | 確保 PaymentScheduleTerm 中的 ChargeAmounts 總數與 ResaleAuthorization 相容。 | 
| INCOMPATIBLE\_RESALE\_AUTHORIZATION | 確保 PaymentScheduleTerm 中的收費日期與 ResaleAuthorization 中的收費日期相同。 | 
| INCOMPATIBLE\_RESALE\_AUTHORIZATION | 確保 PaymentScheduleTerm 中的費用金額大於或等於該日期的 ResaleAuthorization 中的費用金額。 | 
| INCOMPATIBLE\_TERMS | 無法在優惠發佈後執行請求的變更。 | 
| INCOMPATIBLE\_TERMS | 請求的變更無法在優惠過期後執行。 | 
| INCOMPATIBLE\_TERMS | 使用 UpdatePaymentScheduleTerms 搭配特定付款金額或 UpdateMarkup 搭配排程日期的單一標記百分比。 | 
| INVALID\_charge\_DATES | 提供 AgreementEndDate 之前的收費日期。 | 
| TOO\_MANY\_BACKDATED\_CHARGES | 在 AvailabilityEndDate 之前提供最多 1 個排程付款。 | 


| 錯誤碼 | 錯誤訊息 | 
| --- | --- | 
| DUPLICATE\_charge\_DATES | 在 PaymentScheduleTerm 中提供唯一的收費日期。 | 
| INCOMPATIBLE\_CURRENCY\_CODE | 優惠發行後，無法變更 CurrencyCode。 | 
| INCOMPATIBLE\_MARKUP\_PERCENTAGE | 當 MarkupPercentage 大於零 (0) 時，不支援 PaymentScheduleTerm。 | 
| INCOMPATIBLE\_PAYMENT\_SETTINGS | 更新您的付款設定，使其與 CurrencyCode 相容。 | 
| INCOMPATIBLE\_RESALE\_AUTHORIZATION | 提供與 ResaleAuthorization 相容的 term(s)。不相容的術語：【PaymentScheduleTerm】。 | 
| INCOMPATIBLE\_RESALE\_AUTHORIZATION | 確保 PaymentScheduleTerm 中的 ChargeAmounts 總數與 ResaleAuthorization 相容。 | 
| INCOMPATIBLE\_SELLER\_VERIFICATION | 完成所有必要的賣方驗證程序。 | 
| INCOMPATIBLE\_TERMS | 無法在優惠發佈後執行請求的變更。 | 
| INCOMPATIBLE\_TERMS | 請求的變更無法在優惠過期後執行。 | 
| INVALID\_charge\_DATES | 提供 AgreementEndDate 之前的收費日期。 | 
| INVALID\_CURRENCY\_CODE | 提供支援的 CurrencyCode。 | 
| INVALID\_CURRENCY\_CODE | 在所有定價和付款條件中提供相同的 CurrencyCode。 | 
| TOO\_MANY\_BACKDATED\_CHARGES | 在 AvailabilityEndDate 之前提供最多 1 個排程付款。 | 

## 發佈 CPPO
<a name="release-offer-cppo"></a>

您可以使用目錄 API 合併從所有更新變更類型收集的資訊，然後在其中發佈優惠 AWS Marketplace。

在`ReleaseOffer`呼叫 之前，優惠會保持 `Draft` 狀態。優惠發佈後，即可探索 AWS Marketplace。

若要發佈優惠，請使用`ReleaseOffer`變更類型呼叫 `StartChangeSet` API 操作，如下列範例所示。

**請求語法**

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

{
  "Catalog": "AWSMarketplace",
  "ChangeSet": [
    {
      "ChangeType": "ReleaseOffer",
      "Entity": {
        "Type": "Offer@1.0",
        "Identifier": "offer-123456789"
      },
      "DetailsDocument": {}
    }
  ]
}
```

提供要新增`ReleaseOffer`變更類型的欄位資訊：
+ **實體** （物件） （必要） – 您的 CPPO。
  + **類型** （字串） （必要） – 一律`Type`為 `Offer@1.0`。
  + **識別符** （字串） （必要） – 您的優惠 ID。如需詳細資訊，請參閱[識別符](catalog-apis.md#identifier)。
+ **DetailsDocument** （物件） （必要） – 請求特定項目的 JSON 值。其對於 必須是空的`ReleaseOffer`。

**回應語法**

為您的請求建立變更集。對此請求的回應為您提供變更集`ChangeSetId``ChangeSetArn`的 和 ，如下所示。

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

變更請求會新增至佇列並進行處理。這包括驗證資訊，以確保其符合 AWS Marketplace 準則。驗證程序可能需要幾分鐘到幾個小時。

您可以透過 檢查請求的狀態 AWS Marketplace 管理入口網站，或使用 API 操作直接透過目錄 `[DescribeChangeSet](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/API_DescribeChangeSet.html)` API。

**同步驗證**

下列結構描述驗證專屬於 中的`ReleaseOffer`動作 AWS Marketplace Catalog API。當您呼叫 時，會執行這些驗證`StartChangeSet`。如果請求不符合下列要求，它會失敗並顯示 HTTP 回應。


| 輸入欄位 | 驗證規則 | 
| --- | --- | 
| 詳細資訊  | 必須為空白 ({}) | 

**非同步錯誤**

下列錯誤專屬於 中的`ReleaseOffer`動作 AWS Marketplace Catalog API。當您在處理變更集`DescribeChangeSet`之後呼叫 時，會傳回這些錯誤。如需使用 `DescribeChangeSet` 取得變更請求狀態的詳細資訊，請參閱 [使用變更集](catalog-apis.md#working-with-change-sets)。


| 錯誤碼 | 錯誤訊息 | 
| --- | --- | 
| INCOMPATIBLE\_PAYMENT\_SETTINGS | 更新您的付款設定，使其與 CurrencyCode 相容。 | 
| INCOMPATIBLE\_PRODUCT | 首先建立產品的公開優惠。 | 
| INCOMPATIBLE\_SELLER\_VERIFICATION | 完成所有必要的賣方驗證程序。 | 
| INVALID\_UPDATE\_REQUEST | 無法在優惠發佈後執行請求的變更。 | 
| MISSING\_AGREEMENT\_END\_DATE | 提供替換優惠的 AgreementEndDate。 | 
| MISSING\_AVAILABILITY\_END\_DATE | 為私有優惠提供 AvailabilityEndDate。 | 
| MISSING\_MANDATORY\_TERMS | 當優惠包含 PaymentScheduleTerm 時，提供 FixedUpfrontPricingTerm。 PaymentScheduleTerm | 
| MISSING\_BUYER\_ACCOUNTS | 針對使用 ResaleAuthorization 建立的優惠，使用 BuyersAccounts 提供 PositiveTargeting。 | 
| MISSING\_BUYER\_ACCOUNTS | 產品的所有優惠都必須是私有的。使用BuyersAccounts提供 PositiveTargeting。 | 
| MISSING\_DESCRIPTION | 在發佈優惠之前設定描述。 | 
| MISSING\_MANDATORY\_TERMS | 將 【x】 新增至優惠。 | 
| MISSING\_MANDATORY\_TERMS | 當優惠包含 PaymentScheduleTerm 時，提供 FixedUpfrontPricingTerm。 PaymentScheduleTerm | 
| MISSING\_NAME | 在釋出優惠之前設定名稱。 | 
| TOO\_MANY\_OFFERS | 每個產品只能建立一個公開優惠。 | 
| TOO\_MANY\_OFFERS | 每個產品只能建立一個公開免費試用優惠。 | 

## 定義現有的 CPPO
<a name="describe-entity-cppo"></a>

您可以使用目錄 API 在其中定義 CPPO 詳細資訊 AWS Marketplace。

若要定義現有的 CPPO，請使用 `Offer@1.0`實體類型呼叫 `DescribeEntity` API 操作，如下列範例所示。

**請求語法**

```
GET /DescribeEntity?catalog=<Catalog>&entityId=<EntityId> HTTP/1.1
```

提供要新增`DescribeEntity`變更類型的欄位資訊：
+ **目錄** （字串） – 與請求相關的目錄。固定值：`AWSMarketplace`。
+ **entityId** （字串） – 要描述的提議的唯一 ID。

**回應語法**

對此請求的回應會為您提供優惠詳細資訊，如下所示。

```
{
  "EntityType": "Offer@1.0",
  "EntityIdentifier": "offer-a5oEXAMPLEzpu@1",
  "EntityArn": "arn:aws:aws-marketplace:us-east-1:446235747164:AWSMarketplace/Offer/offer-a5oEXAMPLEzpu",
  "LastModifiedDate": "2021-03-10T21:57:16Z",
  "Details": {
    "Id": "offer-3rEXAMPLErn",
    "State": "Released",
    "Name": "Test Offer",
    "Description": "Worldwide private offer for Test Product",
    "PreExistingAgreement": {
      "AcquisitionChannel": "External",
      "PricingModel": "Contract"
    },
    "ProductId": "prod-0bEXAMPLEb51",
    "ResaleAuthorizationId": "resaleauthz-123456789",
    "MarkupPercentage": "5.0",
    "Terms": [
      {
        "Type": "LegalTerm",
        "Documents": [
          {
            "Type": "CustomEula",
            "Url": "https://s3.amazonaws.com/EULA/custom-eula-1234.txt"
          }
        ]
      },
      {
        "Type": "ConfigurableUpfrontPricingTerm",
        "CurrencyCode": "USD",
        "RateCards": [
          {
            "Selector": {
              "Type": "Duration",
              "Value": "P12M"
            },
            "RateCard": [
              {
                "DimensionKey": "m3.large",
                "Price": "300.00"
              },
              {
                "DimensionKey": "m4.xlarge",
                "Price": "400.00"
              }
            ],
            "Constraints": {
              "MultipleDimensionSelection": "Allowed",
              "QuantityConfiguration": "Allowed"
            }
          }
        ]
      },
      {
        "Type": "UsageBasedPricingTerm",
        "CurrencyCode": "USD",
        "RateCards": [
          {
            "RateCard": [
              {
                "DimensionKey": "m3.large",
                "Price": "0.10"
              },
              {
                "DimensionKey": "m4.xlarge",
                "Price": "0.20"
              }
            ]
          }
        ]
      },
      {
        "Type": "PaymentScheduleTerm",
        "CurrencyCode": "USD",
        "Schedule": [
          {
            "ChargeDate": "2020-12-01T00:00:00Z",
            "ChargeAmount": "1000.00"
          },
          {
            "ChargeDate": "2021-06-15T00:00:00Z",
            "ChargeAmount": "1250.00"
          }
        ]
      }
    ],
    "Rules": [
      {
        "Type": "TargetingRule",
        "PositiveTargeting": {
          "CountryCodes": [
            "US",
            "CA"
          ],
          "BuyerAccounts": [
            "118033953248"
          ]
        },
        "NegativeTargeting": {
          "CountryCodes": [
            "XX"
          ]
        }
      },
      {
        "Type": "AvailabilityRule",
        "AvailabilityEndDate": "2050-08-30T01:56:03Z"
      }
    ]
  }
}
```

提供`DescribeEntity`回應的輸入欄位資訊：
+ **EntityType** （字串） – 實體的命名類型，即 `Offer@1.0`。
+ **EntityIdentifier** （字串） – 實體的識別符，格式為 `EntityId@RevisionId`。
+ **EntityArn** （字串） – 與此請求中參考之變更集的唯一識別符相關聯的 ARN。
+ **LastModifiedDate** （字串） – 實體的上次修改日期，格式為 ISO 8601 (`2018-02-27T13:45:22Z`)。
+ **DetailsDocument** （物件） – JSON 物件包含實體的詳細資訊。
  + ID ****（字串） – 中優惠實體的唯一識別符， AWS Marketplace 會在建立優惠期間產生。
  + **狀態** （字串） – 優惠的狀態。
  + **名稱** （字串） – 與優惠相關聯的名稱，可讓您和客戶更清楚閱讀。它也會顯示為協議資訊的一部分。
  + **描述** （字串） – 描述是一種自由格式的文字，僅供您使用，絕不會向買方公開。
  + **PreExistingAgreement** （字串） – 判斷此優惠是否為與現有客戶續約相同基礎產品的現有協議。現有協議可以在內部或外部 AWS Marketplace。 AWS 您可以稽核並確認您的優惠是否續約。如果 AWS 無法驗證您的優惠，則 AWS 可能會撤銷您客戶的優惠和權利。
    + **AcquisitionChannel** （字串） – 指出現有協議是在外部 AWS Marketplace 還是內部簽署 AWS Marketplace。可能的值：`External`、`AwsMarketplace`。

       
    + **PricingModel** （字串） – 指出現有協議使用的定價模式。可能的值：`Contract`、`Usage`、`Byol`、`Free`。
  + **ProductId** （字串） – 描述是一種自由格式的文字，僅供您使用，絕不會向買方公開。
  + **ResaleAuthorizationId** （字串） – ResaleAuthorization 用於建立私有優惠。
  + **MarkupPercentage** （字串） – 頻道合作夥伴在`UpdateMarkup`變更類型中傳遞的百分比值。此標記已套用至詞彙。
  + **術語** （結構陣列） – 術語清單。
  + **規則** （結構陣列） – 規則清單。