AWS marketplace: Marketplace EventBridge: new Manufacturer events, auth fields
Summary
Adds new Manufacturer event types for agreement cancellations and billing adjustments, documents the issuedAuthorization/resaleAuthorization object and its fields, updates example event payloads (product titles, account placeholders, ARNs, amendmentTime), and clarifies that Manufacturer events omit certain identifiers.
Security assessment
This is a documentation-only update to AWS Marketplace EventBridge notification schemas: it adds Manufacturer detail types, documents the issuedAuthorization object (id, arn, name, expirationDate, issuer/recipient account IDs), and rewords account placeholders to "<recipient's account id>". No vulnerability, credential, IAM, or encryption behavior is changed. The statement that Manufacturer events exclude agreement ID, offer ID, buyer account ID, and reason/status messages reflects data minimization in the event payload, but it is descriptive documentation rather than a new security control or fix.
Evidence
+The following is an example event body for **Agreement Cancellation Request Pending Approval - Manufacturer**. ISVs receive this event when the proposer submits a cancellation request for an agreement where the ISV isn't the proposer. The **Approved** , **Rejected** , and **Cancelled** Manufacturer events have the same structure, with the matching `statusCode`. Manufacturer events don't include the agreement ID, offer ID, buyer account ID, `reasonMessage`, or `statusMessage`. `agreement.resaleAuthorizationId` and `issuedAuthorization.resaleAuthorization.id` are the ID of the selling authorization that you issued. For the `issuedAuthorization` fields, see Events for agreements.
Diff
diff --git a/marketplace/latest/userguide/notifications-eventbridge.md b/marketplace/latest/userguide/notifications-eventbridge.md index 32387cc..28723f6 100644 --- a//marketplace/latest/userguide/notifications-eventbridge.md +++ b//marketplace/latest/userguide/notifications-eventbridge.md @@ -62,0 +63 @@ Cancellation request fails validation | `Agreement Cancellation Request Validati +Cancellation request for an agreement where the ISV isn't the proposer is submitted, approved, rejected, or withdrawn | `Agreement Cancellation Request Pending Approval - Manufacturer`, `Agreement Cancellation Request Approved - Manufacturer`, `Agreement Cancellation Request Rejected - Manufacturer`, `Agreement Cancellation Request Cancelled - Manufacturer` | Events for cancellations @@ -63,0 +65 @@ Billing adjustment is processed | `Purchase Agreement Billing Adjustment Complet +Billing adjustment for an agreement where the ISV isn't the proposer is processed | `Purchase Agreement Billing Adjustment Completed - Manufacturer` | Events for billing adjustments @@ -100 +102 @@ The following is an example event body for a new offer created by an ISV. - "title": "Product Title" + "title": "Product-1" @@ -144 +146 @@ The following is an example event body for when an ISV's product is used by a ch - "title": "Product Title" + "title": "Product-1" @@ -186 +188 @@ The following is an example event body for when a channel partner creates an off - "title": "Product Title" + "title": "Product-1" @@ -404 +406 @@ The following is an example event body for **Purchase Agreement Created - Propos -Resale Authorization Id in case of Channel Partner Private Offer (CPPO) will be populated, and in case of Marketplace direct offer (MPPO), this value would be null. +`resaleAuthorization.id` is populated when the offer was created from a selling authorization. @@ -412 +414 @@ Resale Authorization Id in case of Channel Partner Private Offer (CPPO) will be - "account": "<ISV's or CP's account id>", + "account": "<recipient's account id>", @@ -452 +454 @@ The following is an example event body for **Purchase Agreement Created - Propos - "account": "<ISV's or CP's account id>", + "account": "<recipient's account id>", @@ -472 +474 @@ The following is an example event body for **Purchase Agreement Created - Propos - "title": "Product Title" + "title": "Product-1" @@ -495 +497 @@ The following is an example event body for **Purchase Agreement Created - Manufa - "account": "<ISV's account id>", + "account": "<recipient's account id>", @@ -511,0 +514,5 @@ The following is an example event body for **Purchase Agreement Created - Manufa + "product": { + "id": "prod-aw4fgf5tyo5w2ap6fEXAMPLE", + "title": "Product-1" + }, + "issuedAuthorization": { @@ -513 +520,13 @@ The following is an example event body for **Purchase Agreement Created - Manufa - "id": "resaleauthz-yaxjqxiskysxa" + "id": "resaleauthz-1a2b3c4d5e6f7", + "arn": "arn:aws:aws-marketplace:us-east-1:111122223333:AWSMarketplace/ResaleAuthorization/resaleauthz-1a2b3c4d5e6f7", + "name": "Example selling authorization", + "expirationDate": "2027-12-31T23:59:59Z", + "issuer": { + "accountId": "111122223333", + "name": "Example ISV" + }, + "recipient": { + "accountId": "444455556666", + "name": "Example Partner" + } + } @@ -526,0 +546,24 @@ The following is an example event body for **Purchase Agreement Created - Manufa +For agreements where you, the manufacturer, aren't the proposer, the Manufacturer events for agreements include an `issuedAuthorization` object. It describes the selling authorization that you issued for the product in this agreement. If the selling authorization reached the proposer through another partner, `issuedAuthorization` describes the selling authorization that you issued to that partner. + +###### `issuedAuthorization.resaleAuthorization` fields + +`id`, `arn`, `name` + + +The ID, ARN, and name of the selling authorization that you issued. + +`expirationDate` + + +The date the selling authorization expires. Cancellation and billing adjustment events might not include this field. + +`issuer.accountId`, `issuer.name` + + +Your AWS account ID and name. The name can be null if it isn't available. + +`recipient.accountId`, `recipient.name` + + +The AWS account ID and name of the partner that you issued the selling authorization to. The name can be null if it isn't available. + @@ -535 +578 @@ The following is an example event body for **Purchase Agreement Amended - Propos - "account": "<ISV or CP's account id>", + "account": "<recipient's account id>", @@ -559 +602 @@ The following is an example event body for **Purchase Agreement Amended - Propos - "title": "Product Title" + "title": "Product-1" @@ -586 +629 @@ The following is an example event body for **Purchase Agreement Amended - Manufa - "account": "<ISV's account id>", + "account": "<recipient's account id>", @@ -599,0 +643 @@ The following is an example event body for **Purchase Agreement Amended - Manufa + "amendmentTime": "2024-08-30T21:30:00Z", @@ -602,0 +647,5 @@ The following is an example event body for **Purchase Agreement Amended - Manufa + "product": { + "id": "prod-aw4fgf5tyo5w2ap6fEXAMPLE", + "title": "Product-1" + }, + "issuedAuthorization": { @@ -604 +653,13 @@ The following is an example event body for **Purchase Agreement Amended - Manufa - "id": "resaleauthz-yaxjqxiskysxa" + "id": "resaleauthz-1a2b3c4d5e6f7", + "arn": "arn:aws:aws-marketplace:us-east-1:111122223333:AWSMarketplace/ResaleAuthorization/resaleauthz-1a2b3c4d5e6f7", + "name": "Example selling authorization", + "expirationDate": "2027-12-31T23:59:59Z", + "issuer": { + "accountId": "111122223333", + "name": "Example ISV" + }, + "recipient": { + "accountId": "444455556666", + "name": "Example Partner" + } + } @@ -626 +687 @@ The following is an example event body for **Purchase Agreement Ended - Proposer - "account": "<ISV's account id>", + "account": "<recipient's account id>", @@ -662 +723 @@ The following is an example event body for **Purchase Agreement Ended - Manufact - "account": "<ISV's account id>", + "account": "<recipient's account id>", @@ -674,0 +736,5 @@ The following is an example event body for **Purchase Agreement Ended - Manufact + "product": { + "id": "prod-aw4fgf5tyo5w2ap6fEXAMPLE", + "title": "Product-1" + }, + "issuedAuthorization": { @@ -676 +742,13 @@ The following is an example event body for **Purchase Agreement Ended - Manufact - "id": "resaleauthz-yaxjqxiskysxa" + "id": "resaleauthz-1a2b3c4d5e6f7", + "arn": "arn:aws:aws-marketplace:us-east-1:111122223333:AWSMarketplace/ResaleAuthorization/resaleauthz-1a2b3c4d5e6f7", + "name": "Example selling authorization", + "expirationDate": "2027-12-31T23:59:59Z", + "issuer": { + "accountId": "111122223333", + "name": "Example ISV" + }, + "recipient": { + "accountId": "444455556666", + "name": "Example Partner" + } + } @@ -774 +852 @@ The following is an example event body for **Purchase Agreement Ending - Propose - "account": "<ISV's account id>", + "account": "<recipient's account id>", @@ -797 +875 @@ The following is an example event body for **Purchase Agreement Ending - Propose - "title": "Product Title" + "title": "Product-1" @@ -818 +896 @@ The following is an example event body for **Purchase Agreement Renewal Terms Fi - "account": "<ISV's account id>", + "account": "<recipient's account id>", @@ -841 +919 @@ The following is an example event body for **Purchase Agreement Renewal Terms Fi - "title": "Product Title" + "title": "Product-1" @@ -861 +939 @@ The following is an example event body for **Purchase Agreement Renewal Upcoming - "account": "<ISV's account id>", + "account": "<recipient's account id>", @@ -882 +960 @@ The following is an example event body for **Purchase Agreement Renewal Upcoming - "title": "Product Title" + "title": "Product-1" @@ -906 +984 @@ The following is an example event body for **License Updated - Manufacturer**. - "account": "<ISV/CP account id>", + "account": "<recipient's account id>", @@ -945 +1023 @@ The following is an example event body for **License Deprovisioned - Manufacture - "account": "<ISV/CP account id>", + "account": "<recipient's account id>", @@ -978 +1056 @@ The following is an example event body for **License Deprovisioned - Manufacture -When a cancellation request status changes, sellers, buyers, and ISVs (for CPPO) receive events. Each event is sent to the relevant party with a role-specific detail type (Proposer for sellers, Acceptor for buyers, Manufacturer for ISVs). The source for these events is `aws.agreement-marketplace`. +When a cancellation request status changes, sellers, buyers, and ISVs (when the ISV isn't the proposer) receive events. AWS Marketplace sends each event to the relevant party with a role-specific detail type (Proposer for sellers, Acceptor for buyers, Manufacturer for ISVs). The source for these events is `aws.agreement-marketplace`. @@ -1146,0 +1225,44 @@ The following is an example event body for **Agreement Cancellation Request Vali +The following is an example event body for **Agreement Cancellation Request Pending Approval - Manufacturer**. ISVs receive this event when the proposer submits a cancellation request for an agreement where the ISV isn't the proposer. The **Approved** , **Rejected** , and **Cancelled** Manufacturer events have the same structure, with the matching `statusCode`. Manufacturer events don't include the agreement ID, offer ID, buyer account ID, `reasonMessage`, or `statusMessage`. `agreement.resaleAuthorizationId` and `issuedAuthorization.resaleAuthorization.id` are the ID of the selling authorization that you issued. For the `issuedAuthorization` fields, see Events for agreements. + + + { + "version": "0", + "id": "01234567-0123-0123-0123-0123456789ab", + "detail-type": "Agreement Cancellation Request Pending Approval - Manufacturer", + "source": "aws.agreement-marketplace", + "account": "<recipient's account id>", + "time": "2025-01-01T13:12:22Z", + "region": "us-east-1", + "resources": [], + "detail": { + "requestId": "3d4c9f9b-b809-4f5e-9fac-a9ae98b05cbb", + "catalog": "AWSMarketplace", + "agreement": { + "productId": "prod-exampleid", + "resaleAuthorizationId": "resaleauthz-1a2b3c4d5e6f7" + }, + "issuedAuthorization": { + "resaleAuthorization": { + "id": "resaleauthz-1a2b3c4d5e6f7", + "arn": "arn:aws:aws-marketplace:us-east-1:111122223333:AWSMarketplace/ResaleAuthorization/resaleauthz-1a2b3c4d5e6f7", + "name": "Example selling authorization", + "issuer": { + "accountId": "111122223333", + "name": "Example ISV" + }, + "recipient": { + "accountId": "444455556666", + "name": "Example Partner" + } + } + }, + "agreementCancellationRequest": {