SDK for PHP V3

Client: Aws\MarketplaceDiscovery\MarketplaceDiscoveryClient
Service ID: marketplace-discovery
Version: 2026-02-05

This page describes the parameters and results for the operations of the AWS Marketplace Discovery (2026-02-05), and shows how to use the Aws\MarketplaceDiscovery\MarketplaceDiscoveryClient object to call the described operations. This documentation is specific to the 2026-02-05 API version of the service.

Operation Summary

Each of the following operations can be created from a client using $client->getCommand('CommandName'), where "CommandName" is the name of one of the following operations. Note: a command is a value that encapsulates an operation and the parameters used to create an HTTP request.

You can also create and send a command immediately using the magic methods available on a client object: $client->commandName(/* parameters */). You can send the command asynchronously (returning a promise) by appending the word "Async" to the operation name: $client->commandNameAsync(/* parameters */).

GetListing ( array $params = [] )
Provides details about a listing, such as descriptions, badges, categories, pricing model summaries, reviews, and associated products and offers.
GetOffer ( array $params = [] )
Provides details about an offer, such as the pricing model, seller of record, availability dates, badges, and associated products.
GetOfferSet ( array $params = [] )
Provides details about an offer set, which is a bundle of offers across multiple products.
GetOfferTerms ( array $params = [] )
Returns the terms attached to an offer, such as pricing terms (usage-based, contract, BYOL, free trial), legal terms, payment schedules, validity terms, support terms, and renewal terms.
GetProduct ( array $params = [] )
Provides details about a product, such as descriptions, highlights, categories, fulfillment option summaries, promotional media, and seller engagement options.
ListFulfillmentOptions ( array $params = [] )
Returns the fulfillment options available for a product, including deployment details such as version information, operating systems, usage instructions, and release notes.
ListPurchaseOptions ( array $params = [] )
Returns the purchase options (offers and offer sets) available to the buyer.
SearchFacets ( array $params = [] )
Returns available facet values for filtering listings, such as categories, pricing models, fulfillment option types, publishers, and customer ratings.
SearchListings ( array $params = [] )
Returns a list of product listings based on search criteria and filters.

Paginators

Paginators handle automatically iterating over paginated API results. Paginators are associated with specific API operations, and they accept the parameters that the corresponding API operation accepts. You can get a paginator from a client class using getPaginator($paginatorName, $operationParameters). This client supports the following paginators:

GetOfferTerms
ListFulfillmentOptions
ListPurchaseOptions
SearchFacets
SearchListings

Operations

GetListing

$result = $client->getListing([/* ... */]);
$promise = $client->getListingAsync([/* ... */]);

Provides details about a listing, such as descriptions, badges, categories, pricing model summaries, reviews, and associated products and offers.

Parameter Syntax

$result = $client->getListing([
    'listingId' => '<string>', // REQUIRED
]);

Parameter Details

Members
listingId
Required: Yes
Type: string

The unique identifier of the listing to retrieve.

Result Syntax

[
    'associatedEntities' => [
        [
            'offer' => [
                'offerId' => '<string>',
                'offerName' => '<string>',
                'sellerOfRecord' => [
                    'displayName' => '<string>',
                    'sellerProfileId' => '<string>',
                ],
            ],
            'product' => [
                'manufacturer' => [
                    'displayName' => '<string>',
                    'sellerProfileId' => '<string>',
                ],
                'productId' => '<string>',
                'productName' => '<string>',
            ],
        ],
        // ...
    ],
    'badges' => [
        [
            'badgeType' => 'AWS_FREE_TIER|FREE_TRIAL|DEPLOYED_ON_AWS|QUICK_LAUNCH|MULTI_PRODUCT',
            'displayName' => '<string>',
        ],
        // ...
    ],
    'catalog' => '<string>',
    'categories' => [
        [
            'categoryId' => '<string>',
            'displayName' => '<string>',
        ],
        // ...
    ],
    'fulfillmentOptionSummaries' => [
        [
            'displayName' => '<string>',
            'fulfillmentOptionType' => 'AMAZON_MACHINE_IMAGE|API|CLOUDFORMATION_TEMPLATE|CONTAINER|HELM|EKS_ADD_ON|EC2_IMAGE_BUILDER_COMPONENT|DATA_EXCHANGE|PROFESSIONAL_SERVICES|SAAS|SAGEMAKER_ALGORITHM|SAGEMAKER_MODEL',
        ],
        // ...
    ],
    'highlights' => ['<string>', ...],
    'integrationGuide' => '<string>',
    'listingId' => '<string>',
    'listingName' => '<string>',
    'logoThumbnailUrl' => '<string>',
    'longDescription' => '<string>',
    'pricingModels' => [
        [
            'displayName' => '<string>',
            'pricingModelType' => 'USAGE|CONTRACT|BYOL|FREE',
        ],
        // ...
    ],
    'pricingUnits' => [
        [
            'displayName' => '<string>',
            'pricingUnitType' => 'USERS|HOSTS|BANDWIDTH|DATA|TIERS|REQUESTS|UNITS',
        ],
        // ...
    ],
    'promotionalMedia' => [
        [
            'embeddedImage' => [
                'description' => '<string>',
                'title' => '<string>',
                'url' => '<string>',
            ],
            'embeddedVideo' => [
                'description' => '<string>',
                'preview' => '<string>',
                'thumbnail' => '<string>',
                'title' => '<string>',
                'url' => '<string>',
            ],
        ],
        // ...
    ],
    'publisher' => [
        'displayName' => '<string>',
        'sellerProfileId' => '<string>',
    ],
    'resources' => [
        [
            'contentType' => 'EMAIL|PHONE_NUMBER|LINK|OTHER',
            'displayName' => '<string>',
            'resourceType' => 'MANUFACTURER_SUPPORT|MANUFACTURER_INSTRUCTIONS',
            'value' => '<string>',
        ],
        // ...
    ],
    'reviewSummary' => [
        'reviewSourceSummaries' => [
            [
                'averageRating' => '<string>',
                'sourceId' => 'AWS_MARKETPLACE',
                'sourceName' => '<string>',
                'sourceUrl' => '<string>',
                'totalReviews' => <integer>,
            ],
            // ...
        ],
    ],
    'sellerEngagements' => [
        [
            'contentType' => 'LINK',
            'engagementType' => 'REQUEST_FOR_PRIVATE_OFFER|REQUEST_FOR_DEMO',
            'value' => '<string>',
        ],
        // ...
    ],
    'shortDescription' => '<string>',
    'useCases' => [
        [
            'useCase' => [
                'description' => '<string>',
                'displayName' => '<string>',
                'value' => '<string>',
            ],
        ],
        // ...
    ],
]

Result Details

Members
associatedEntities
Required: Yes
Type: Array of ListingAssociatedEntity structures

The products and offers associated with this listing. Each entity contains product and offer information.

badges
Required: Yes
Type: Array of ListingBadge structures

Badges indicating special attributes of the listing, such as free tier eligibility, free trial availability, or Quick Launch support.

catalog
Required: Yes
Type: string

The name of the catalog that the listing belongs to.

categories
Required: Yes
Type: Array of Category structures

The categories used to classify this listing into logical groups.

fulfillmentOptionSummaries
Required: Yes
Type: Array of FulfillmentOptionSummary structures

A summary of fulfillment options available for deploying or accessing the listing, such as AMI, SaaS, or Container.

highlights
Required: Yes
Type: Array of strings

A list of key features that the listing offers to customers.

integrationGuide
Type: string

Optional guidance explaining how to use data in this listing. Primarily defines how to integrate with a multi-product listing.

listingId
Required: Yes
Type: string

The unique identifier of the listing.

listingName
Required: Yes
Type: string

The human-readable display name of the listing.

logoThumbnailUrl
Required: Yes
Type: string

The URL of the logo thumbnail image for the listing.

longDescription
Required: Yes
Type: string

A detailed description of what the listing offers, in paragraph format.

pricingModels
Required: Yes
Type: Array of PricingModel structures

The pricing models for offers associated with this listing, such as usage-based, contract, BYOL, or free.

pricingUnits
Required: Yes
Type: Array of PricingUnit structures

The pricing units that define the billing dimensions for offers associated with this listing, such as users, hosts, or data.

promotionalMedia
Required: Yes
Type: Array of PromotionalMedia structures

Embedded promotional media provided by the creator of the product, such as images and videos.

publisher
Required: Yes
Type: SellerInformation structure

The entity who created and published the listing.

resources
Required: Yes
Type: Array of Resource structures

Resources that provide further information about using the product or requesting support, such as documentation links, support contacts, and usage instructions.

reviewSummary
Type: ReviewSummary structure

A summary of customer reviews available for the listing, including average rating and total review count by source.

sellerEngagements
Required: Yes
Type: Array of SellerEngagement structures

Engagement options available to potential buyers, such as requesting a private offer or requesting a demo.

shortDescription
Required: Yes
Type: string

A 1–3 sentence summary describing the key aspects of the listing.

useCases
Required: Yes
Type: Array of UseCaseEntry structures

Use cases associated with the listing, describing scenarios where the product can be applied.

Errors

ThrottlingException:

The request was denied due to request throttling.

AccessDeniedException:

You don't have sufficient access to perform this action.

ValidationException:

The input fails to satisfy the constraints specified by the service.

ResourceNotFoundException:

The specified resource doesn't exist.

InternalServerException:

Unexpected error during processing of the request.

Examples

Example 1: GetListing for SaaS listing
$result = $client->getListing([
    'listingId' => 'prodview-sampleSaasId',
]);

Result syntax:

[
    'associatedEntities' => [
        [
            'product' => [
                'manufacturer' => [
                    'displayName' => 'sample SaaS seller',
                    'sellerProfileId' => 'seller-sampleSaasId',
                ],
                'productId' => 'prod-sampleSaasId',
                'productName' => 'sample SaaS product',
            ],
        ],
    ],
    'badges' => [
    ],
    'catalog' => 'AWSMarketplace',
    'categories' => [
        [
            'categoryId' => 'developer-tools',
            'displayName' => 'Developer Tools',
        ],
        [
            'categoryId' => 'ide',
            'displayName' => 'IDE',
        ],
    ],
    'fulfillmentOptionSummaries' => [
        [
            'displayName' => 'SaaS',
            'fulfillmentOptionType' => 'SAAS',
        ],
    ],
    'highlights' => [
        'Automated dev environments',
        'Works with any Git repository',
        'Secure and compliant',
    ],
    'listingId' => 'prodview-sampleSaasId',
    'listingName' => 'sample SaaS listing',
    'logoThumbnailUrl' => 'https://example.com/logos/sample-saas-logo.png',
    'longDescription' => 'A sample SaaS product that provides automated, ready-to-code development environments in the cloud.',
    'pricingModels' => [
        [
            'displayName' => 'Contract',
            'pricingModelType' => 'CONTRACT',
        ],
    ],
    'pricingUnits' => [
        [
            'displayName' => 'Users',
            'pricingUnitType' => 'USERS',
        ],
    ],
    'promotionalMedia' => [
        [
            'embeddedImage' => [
                'description' => 'The sample product workspace dashboard',
                'title' => 'Sample Dashboard',
                'url' => 'https://example.com/screenshots/sample-dashboard.png',
            ],
        ],
    ],
    'publisher' => [
        'displayName' => 'sample SaaS seller',
        'sellerProfileId' => 'seller-sampleSaasId',
    ],
    'resources' => [
        [
            'value' => 'https://example.com/demo',
            'contentType' => 'LINK',
            'displayName' => 'Request a Demo',
            'resourceType' => 'MANUFACTURER_INSTRUCTIONS',
        ],
    ],
    'reviewSummary' => [
        'reviewSourceSummaries' => [
            [
                'averageRating' => '4.5',
                'sourceId' => 'AWS_MARKETPLACE',
                'sourceName' => 'AWS Marketplace',
                'sourceUrl' => 'https://aws.amazon.com/marketplace/reviews/prodview-sampleSaasId',
                'totalReviews' => 128,
            ],
        ],
    ],
    'sellerEngagements' => [
        [
            'value' => 'https://aws.amazon.com/marketplace/customer-connect/demo/prodview-sampleSaasId',
            'contentType' => 'LINK',
            'engagementType' => 'REQUEST_FOR_DEMO',
        ],
        [
            'value' => 'https://aws.amazon.com/marketplace/customer-connect/private-offer/prodview-sampleSaasId',
            'contentType' => 'LINK',
            'engagementType' => 'REQUEST_FOR_PRIVATE_OFFER',
        ],
    ],
    'shortDescription' => 'A sample SaaS product for cloud development environments.',
    'useCases' => [
        [
            'useCase' => [
                'value' => 'CONTEXTUAL_ANALYSIS',
                'description' => 'Advanced contextual analysis for targeted advertising campaigns',
                'displayName' => 'Contextual Analysis',
            ],
        ],
    ],
]
Example 2: GetListing for AMI listing with video
$result = $client->getListing([
    'listingId' => 'prodview-sampleAmiId',
]);

Result syntax:

[
    'associatedEntities' => [
        [
            'offer' => [
                'offerId' => 'offer-sampleAmiId',
                'offerName' => 'sample AMI offer',
                'sellerOfRecord' => [
                    'displayName' => 'sample AMI seller',
                    'sellerProfileId' => 'seller-sampleAmiId',
                ],
            ],
            'product' => [
                'manufacturer' => [
                    'displayName' => 'sample AMI seller',
                    'sellerProfileId' => 'seller-sampleAmiId',
                ],
                'productId' => 'prod-sampleAmiId',
                'productName' => 'sample AMI product',
            ],
        ],
    ],
    'badges' => [
        [
            'badgeType' => 'DEPLOYED_ON_AWS',
            'displayName' => 'Deployed on AWS',
        ],
        [
            'badgeType' => 'QUICK_LAUNCH',
            'displayName' => 'Quick Launch',
        ],
    ],
    'catalog' => 'AWSMarketplace',
    'categories' => [
        [
            'categoryId' => 'infrastructure',
            'displayName' => 'Infrastructure Software',
        ],
        [
            'categoryId' => 'load-balancing',
            'displayName' => 'Load Balancing',
        ],
    ],
    'fulfillmentOptionSummaries' => [
        [
            'displayName' => 'SaaS',
            'fulfillmentOptionType' => 'SAAS',
        ],
    ],
    'highlights' => [
        'Advanced load balancing',
        'API gateway capabilities',
        'High availability',
        'Real-time monitoring',
    ],
    'listingId' => 'prodview-sampleAmiId',
    'listingName' => 'sample AMI listing',
    'logoThumbnailUrl' => 'https://example.com/logos/sample-ami-logo.png',
    'longDescription' => 'A sample AMI product that provides load balancing, content caching, and API gateway capabilities optimized for cloud-native architectures.',
    'pricingModels' => [
        [
            'displayName' => 'Usage',
            'pricingModelType' => 'USAGE',
        ],
    ],
    'pricingUnits' => [
        [
            'displayName' => 'Hosts',
            'pricingUnitType' => 'HOSTS',
        ],
    ],
    'promotionalMedia' => [
        [
            'embeddedVideo' => [
                'description' => 'Learn about sample AMI product features',
                'preview' => 'https://example.com/videos/sample-cover.png',
                'thumbnail' => 'https://example.com/videos/sample-thumb.png',
                'title' => 'Sample AMI Product Overview',
                'url' => 'https://example.com/videos/sample-overview.mp4',
            ],
        ],
    ],
    'publisher' => [
        'displayName' => 'sample AMI seller',
        'sellerProfileId' => 'seller-sampleAmiId',
    ],
    'resources' => [
        [
            'value' => 'https://example.com/request-demo',
            'contentType' => 'LINK',
            'displayName' => 'Request Demo',
            'resourceType' => 'MANUFACTURER_INSTRUCTIONS',
        ],
        [
            'value' => 'https://example.com/docs',
            'contentType' => 'LINK',
            'displayName' => 'Documentation',
            'resourceType' => 'MANUFACTURER_SUPPORT',
        ],
    ],
    'reviewSummary' => [
        'reviewSourceSummaries' => [
            [
                'averageRating' => '4.8',
                'sourceId' => 'AWS_MARKETPLACE',
                'sourceName' => 'AWS Marketplace',
                'sourceUrl' => 'https://aws.amazon.com/marketplace/reviews/prodview-sampleAmiId',
                'totalReviews' => 542,
            ],
        ],
    ],
    'sellerEngagements' => [
        [
            'value' => 'https://aws.amazon.com/marketplace/customer-connect/demo/prodview-sampleAmiId',
            'contentType' => 'LINK',
            'engagementType' => 'REQUEST_FOR_DEMO',
        ],
        [
            'value' => 'https://aws.amazon.com/marketplace/customer-connect/private-offer/prodview-sampleAmiId',
            'contentType' => 'LINK',
            'engagementType' => 'REQUEST_FOR_PRIVATE_OFFER',
        ],
    ],
    'shortDescription' => 'A sample high-performance load balancer and web server.',
    'useCases' => [
        [
            'useCase' => [
                'value' => 'CONTEXTUAL_ANALYSIS',
                'description' => 'Advanced contextual analysis for targeted advertising campaigns',
                'displayName' => 'Contextual Analysis',
            ],
        ],
    ],
]
Example 3: GetListing for multi-product listing
$result = $client->getListing([
    'listingId' => 'prodview-sampleMultiProductId',
]);

Result syntax:

[
    'associatedEntities' => [
        [
            'product' => [
                'manufacturer' => [
                    'displayName' => 'sample multi-product seller',
                    'sellerProfileId' => 'seller-sampleMultiProductId',
                ],
                'productId' => 'prod-sampleMultiProduct1Id',
                'productName' => 'sample multi-product 1',
            ],
        ],
        [
            'product' => [
                'manufacturer' => [
                    'displayName' => 'sample multi-product seller 2',
                    'sellerProfileId' => 'seller-sampleMultiProduct2Id',
                ],
                'productId' => 'prod-sampleMultiProduct2Id',
                'productName' => 'sample multi-product 2',
            ],
        ],
    ],
    'badges' => [
        [
            'badgeType' => 'DEPLOYED_ON_AWS',
            'displayName' => 'Deployed on AWS',
        ],
        [
            'badgeType' => 'MULTI_PRODUCT',
            'displayName' => 'Multi-product',
        ],
    ],
    'catalog' => 'AWSMarketplace',
    'categories' => [
    ],
    'fulfillmentOptionSummaries' => [
        [
            'displayName' => 'SaaS',
            'fulfillmentOptionType' => 'SAAS',
        ],
    ],
    'highlights' => [
    ],
    'integrationGuide' => 'To add the remote Box MCP server in Amazon Quick Suite, follow these steps: In the Amazon Quick Suite console, choose Integrations and create new integration by choosing Model Content Protocol.',
    'listingId' => 'prodview-sampleMultiProductId',
    'listingName' => 'sample multi-product listing',
    'logoThumbnailUrl' => 'https://example.com/logos/sample-multi-product-logo.png',
    'longDescription' => 'A sample multi-product listing that connects content management with a unified AI platform. Users can securely search, analyze, and extract valuable insights from their files.',
    'pricingModels' => [
        [
            'displayName' => 'Free',
            'pricingModelType' => 'FREE',
        ],
    ],
    'pricingUnits' => [
    ],
    'promotionalMedia' => [
    ],
    'publisher' => [
        'displayName' => 'sample multi-product seller',
        'sellerProfileId' => 'seller-sampleMultiProductId',
    ],
    'resources' => [
        [
            'value' => 'https://developer.box.com/guides/box-mcp/remote/#amazon-quick-suite',
            'contentType' => 'LINK',
            'displayName' => 'Developer Documentation',
            'resourceType' => 'MANUFACTURER_INSTRUCTIONS',
        ],
    ],
    'reviewSummary' => [
        'reviewSourceSummaries' => [
        ],
    ],
    'sellerEngagements' => [
        [
            'value' => 'https://aws.amazon.com/marketplace/customer-connect/demo/prodview-sampleMultiProductId',
            'contentType' => 'LINK',
            'engagementType' => 'REQUEST_FOR_DEMO',
        ],
        [
            'value' => 'https://aws.amazon.com/marketplace/customer-connect/private-offer/prodview-sampleMultiProductId',
            'contentType' => 'LINK',
            'engagementType' => 'REQUEST_FOR_PRIVATE_OFFER',
        ],
    ],
    'shortDescription' => 'A sample multi-product listing that delivers a unified experience with AI.',
    'useCases' => [
        [
            'useCase' => [
                'value' => 'content_management_system',
                'description' => 'This integration allows enterprises to securely access and interact with content in Box directly from the Amazon Quick Suite chat experience.',
                'displayName' => 'Content Management System',
            ],
        ],
        [
            'useCase' => [
                'value' => 'intelligent_document_processing',
                'description' => 'Build automated workflows and design custom AI agents for context-aware document processing.',
                'displayName' => 'Intelligent Document Processing',
            ],
        ],
    ],
]

GetOffer

$result = $client->getOffer([/* ... */]);
$promise = $client->getOfferAsync([/* ... */]);

Provides details about an offer, such as the pricing model, seller of record, availability dates, badges, and associated products.

Parameter Syntax

$result = $client->getOffer([
    'offerId' => '<string>', // REQUIRED
]);

Parameter Details

Members
offerId
Required: Yes
Type: string

The unique identifier of the offer to retrieve.

Result Syntax

[
    'agreementProposalId' => '<string>',
    'associatedEntities' => [
        [
            'offerSet' => [
                'offerSetId' => '<string>',
                'sellerOfRecord' => [
                    'displayName' => '<string>',
                    'sellerProfileId' => '<string>',
                ],
            ],
            'product' => [
                'manufacturer' => [
                    'displayName' => '<string>',
                    'sellerProfileId' => '<string>',
                ],
                'productId' => '<string>',
                'productName' => '<string>',
            ],
        ],
        // ...
    ],
    'availableFromTime' => <DateTime>,
    'badges' => [
        [
            'badgeType' => 'PRIVATE_PRICING|FUTURE_DATED|REPLACEMENT_OFFER',
            'displayName' => '<string>',
        ],
        // ...
    ],
    'catalog' => '<string>',
    'expirationTime' => <DateTime>,
    'offerId' => '<string>',
    'offerName' => '<string>',
    'pricingModel' => [
        'displayName' => '<string>',
        'pricingModelType' => 'USAGE|CONTRACT|BYOL|FREE',
    ],
    'replacementAgreementId' => '<string>',
    'sellerOfRecord' => [
        'displayName' => '<string>',
        'sellerProfileId' => '<string>',
    ],
]

Result Details

Members
agreementProposalId
Required: Yes
Type: string

An encoded string to be passed by the acceptor of the terms when creating an agreement.

associatedEntities
Required: Yes
Type: Array of OfferAssociatedEntity structures

The products and offer sets associated with this offer.

availableFromTime
Type: timestamp (string|DateTime or anything parsable by strtotime)

The date and time when the offer became available to the buyer.

badges
Required: Yes
Type: Array of PurchaseOptionBadge structures

Badges indicating special attributes of the offer, such as private pricing, future dated, or replacement offer.

catalog
Required: Yes
Type: string

The name of the catalog that the offer belongs to.

expirationTime
Type: timestamp (string|DateTime or anything parsable by strtotime)

The date and time until when the offer can be procured. This value is null for offers that never expire.

offerId
Required: Yes
Type: string

The unique identifier of the offer.

offerName
Type: string

The display name of the offer. This is free-form text provided by the seller.

pricingModel
Required: Yes
Type: PricingModel structure

The pricing model that determines how buyers are charged, such as usage-based, contract, BYOL, or free.

replacementAgreementId
Type: string

The identifier of the existing agreement that this offer would replace. Enables agreement-based offer functionality.

sellerOfRecord
Required: Yes
Type: SellerInformation structure

The entity responsible for selling the product under this offer.

Errors

ThrottlingException:

The request was denied due to request throttling.

AccessDeniedException:

You don't have sufficient access to perform this action.

ValidationException:

The input fails to satisfy the constraints specified by the service.

ResourceNotFoundException:

The specified resource doesn't exist.

InternalServerException:

Unexpected error during processing of the request.

Examples

Example 1: Invoke GetOffer for Contract Pricing offer
$result = $client->getOffer([
    'offerId' => 'offer-sampleContractId',
]);

Result syntax:

[
    'agreementProposalId' => 'at-sampleToken',
    'associatedEntities' => [
        [
            'offerSet' => [
                'offerSetId' => 'offerset-sampleId',
                'sellerOfRecord' => [
                    'displayName' => 'sample contract seller',
                    'sellerProfileId' => 'seller-sampleContractId',
                ],
            ],
            'product' => [
                'manufacturer' => [
                    'displayName' => 'sample contract seller',
                    'sellerProfileId' => 'seller-sampleContractId',
                ],
                'productId' => 'prod-sampleContractId',
                'productName' => 'sample contract product',
            ],
        ],
    ],
    'availableFromTime' => ,
    'badges' => [
        [
            'badgeType' => 'PRIVATE_PRICING',
            'displayName' => 'Private Pricing',
        ],
        [
            'badgeType' => 'REPLACEMENT_OFFER',
            'displayName' => 'Replacement Offer',
        ],
    ],
    'catalog' => 'AWSMarketplace',
    'expirationTime' => ,
    'offerId' => 'offer-sampleContractId',
    'offerName' => 'sample contract offer',
    'pricingModel' => [
        'displayName' => 'Contract',
        'pricingModelType' => 'CONTRACT',
    ],
    'replacementAgreementId' => 'agmt-sampleId',
    'sellerOfRecord' => [
        'displayName' => 'sample contract seller',
        'sellerProfileId' => 'seller-sampleContractId',
    ],
]
Example 2: Invoke GetOffer for Usage Pricing offer
$result = $client->getOffer([
    'offerId' => 'offer-sampleUsageId',
]);

Result syntax:

[
    'agreementProposalId' => 'at-sampleToken',
    'associatedEntities' => [
        [
            'product' => [
                'manufacturer' => [
                    'displayName' => 'sample usage seller',
                    'sellerProfileId' => 'seller-sampleUsageId',
                ],
                'productId' => 'prod-sampleUsageId',
                'productName' => 'sample usage product',
            ],
        ],
    ],
    'badges' => [
        [
            'badgeType' => 'FUTURE_DATED',
            'displayName' => 'Future Dated',
        ],
    ],
    'catalog' => 'AWSMarketplace',
    'expirationTime' => ,
    'offerId' => 'offer-sampleUsageId',
    'offerName' => 'sample usage offer',
    'pricingModel' => [
        'displayName' => 'Usage',
        'pricingModelType' => 'USAGE',
    ],
    'replacementAgreementId' => 'agmt-sampleId',
    'sellerOfRecord' => [
        'displayName' => 'sample usage seller',
        'sellerProfileId' => 'seller-sampleUsageId',
    ],
]
Example 3: Invoke GetOffer for BYOL Pricing offer
$result = $client->getOffer([
    'offerId' => 'offer-sampleByolId',
]);

Result syntax:

[
    'agreementProposalId' => 'at-sampleToken',
    'associatedEntities' => [
        [
            'product' => [
                'manufacturer' => [
                    'displayName' => 'sample BYOL seller',
                    'sellerProfileId' => 'seller-sampleByolId',
                ],
                'productId' => 'prod-sampleByolId',
                'productName' => 'sample BYOL product',
            ],
        ],
    ],
    'badges' => [
    ],
    'catalog' => 'AWSMarketplace',
    'expirationTime' => ,
    'offerId' => 'offer-sampleByolId',
    'offerName' => 'sample BYOL offer',
    'pricingModel' => [
        'displayName' => 'Bring Your Own License',
        'pricingModelType' => 'BYOL',
    ],
    'replacementAgreementId' => 'agmt-sampleId',
    'sellerOfRecord' => [
        'displayName' => 'sample BYOL seller',
        'sellerProfileId' => 'seller-sampleByolId',
    ],
]
Example 4: Invoke GetOffer for FREE Pricing offer
$result = $client->getOffer([
    'offerId' => 'offer-sampleFreeId',
]);

Result syntax:

[
    'agreementProposalId' => 'at-sampleToken',
    'associatedEntities' => [
        [
            'product' => [
                'manufacturer' => [
                    'displayName' => 'sample free seller',
                    'sellerProfileId' => 'seller-sampleFreeId',
                ],
                'productId' => 'prod-sampleFreeId',
                'productName' => 'sample free product',
            ],
        ],
    ],
    'badges' => [
    ],
    'catalog' => 'AWSMarketplace',
    'expirationTime' => ,
    'offerId' => 'offer-sampleFreeId',
    'offerName' => 'sample free offer',
    'pricingModel' => [
        'displayName' => 'Free',
        'pricingModelType' => 'FREE',
    ],
    'replacementAgreementId' => 'agmt-sampleId',
    'sellerOfRecord' => [
        'displayName' => 'sample free seller',
        'sellerProfileId' => 'seller-sampleFreeId',
    ],
]

GetOfferSet

$result = $client->getOfferSet([/* ... */]);
$promise = $client->getOfferSetAsync([/* ... */]);

Provides details about an offer set, which is a bundle of offers across multiple products. Includes the seller, availability dates, buyer notes, and associated product-offer pairs.

Parameter Syntax

$result = $client->getOfferSet([
    'offerSetId' => '<string>', // REQUIRED
]);

Parameter Details

Members
offerSetId
Required: Yes
Type: string

The unique identifier of the offer set to retrieve.

Result Syntax

[
    'associatedEntities' => [
        [
            'offer' => [
                'offerId' => '<string>',
                'offerName' => '<string>',
                'sellerOfRecord' => [
                    'displayName' => '<string>',
                    'sellerProfileId' => '<string>',
                ],
            ],
            'product' => [
                'manufacturer' => [
                    'displayName' => '<string>',
                    'sellerProfileId' => '<string>',
                ],
                'productId' => '<string>',
                'productName' => '<string>',
            ],
        ],
        // ...
    ],
    'availableFromTime' => <DateTime>,
    'badges' => [
        [
            'badgeType' => 'PRIVATE_PRICING|FUTURE_DATED|REPLACEMENT_OFFER',
            'displayName' => '<string>',
        ],
        // ...
    ],
    'buyerNotes' => '<string>',
    'catalog' => '<string>',
    'expirationTime' => <DateTime>,
    'offerSetId' => '<string>',
    'offerSetName' => '<string>',
    'sellerOfRecord' => [
        'displayName' => '<string>',
        'sellerProfileId' => '<string>',
    ],
]

Result Details

Members
associatedEntities
Required: Yes
Type: Array of OfferSetAssociatedEntity structures

The products and offers included in this offer set.

availableFromTime
Type: timestamp (string|DateTime or anything parsable by strtotime)

The date and time when the offer set became available to the buyer.

badges
Required: Yes
Type: Array of PurchaseOptionBadge structures

Badges indicating special attributes of the offer set, such as private pricing or future dated.

buyerNotes
Type: string

Detailed information about the offer set that helps buyers understand its purpose and contents.

catalog
Required: Yes
Type: string

The name of the catalog that the offer set belongs to.

expirationTime
Type: timestamp (string|DateTime or anything parsable by strtotime)

The date and time when the offer set expires and is no longer available for procurement.

offerSetId
Required: Yes
Type: string

The unique identifier of the offer set.

offerSetName
Type: string

The display name of the offer set.

sellerOfRecord
Required: Yes
Type: SellerInformation structure

The entity responsible for selling the products under this offer set.

Errors

ThrottlingException:

The request was denied due to request throttling.

AccessDeniedException:

You don't have sufficient access to perform this action.

ValidationException:

The input fails to satisfy the constraints specified by the service.

ResourceNotFoundException:

The specified resource doesn't exist.

InternalServerException:

Unexpected error during processing of the request.

Examples

Example 1: Get offer set with multiple products
$result = $client->getOfferSet([
    'offerSetId' => 'offerset-sampleId',
]);

Result syntax:

[
    'associatedEntities' => [
        [
            'offer' => [
                'offerId' => 'offer-sampleId1',
                'offerName' => 'sample offer name 1',
                'sellerOfRecord' => [
                    'displayName' => 'sample reseller',
                    'sellerProfileId' => 'seller-sampleResellerId',
                ],
            ],
            'product' => [
                'manufacturer' => [
                    'displayName' => 'sample seller name 1',
                    'sellerProfileId' => 'seller-sampleId1',
                ],
                'productId' => 'prod-sampleId1',
                'productName' => 'sample product name 1',
            ],
        ],
        [
            'offer' => [
                'offerId' => 'offer-sampleId2',
                'offerName' => 'sample offer name 2',
                'sellerOfRecord' => [
                    'displayName' => 'sample reseller',
                    'sellerProfileId' => 'seller-sampleResellerId',
                ],
            ],
            'product' => [
                'manufacturer' => [
                    'displayName' => 'sample seller name 2',
                    'sellerProfileId' => 'seller-sampleId2',
                ],
                'productId' => 'prod-sampleId2',
                'productName' => 'sample product name 2',
            ],
        ],
    ],
    'availableFromTime' => ,
    'badges' => [
        [
            'badgeType' => 'PRIVATE_PRICING',
            'displayName' => 'Private Pricing',
        ],
    ],
    'buyerNotes' => 'This bundle includes CrowdStrike Falcon and Splunk Enterprise for comprehensive security monitoring.',
    'catalog' => 'AWSMarketplace',
    'expirationTime' => ,
    'offerSetId' => 'offerset-sampleId',
    'offerSetName' => 'sample offer set',
    'sellerOfRecord' => [
        'displayName' => 'sample reseller',
        'sellerProfileId' => 'seller-sampleResellerId',
    ],
]

GetOfferTerms

$result = $client->getOfferTerms([/* ... */]);
$promise = $client->getOfferTermsAsync([/* ... */]);

Returns the terms attached to an offer, such as pricing terms (usage-based, contract, BYOL, free trial), legal terms, payment schedules, validity terms, support terms, and renewal terms.

Parameter Syntax

$result = $client->getOfferTerms([
    'maxResults' => <integer>,
    'nextToken' => '<string>',
    'offerId' => '<string>', // REQUIRED
]);

Parameter Details

Members
maxResults
Type: int

The maximum number of results that are returned per call. You can use nextToken to get more results.

nextToken
Type: string

If nextToken is returned, there are more results available. Make the call again using the returned token to retrieve the next page.

offerId
Required: Yes
Type: string

The unique identifier of the offer whose terms to retrieve.

Result Syntax

[
    'nextToken' => '<string>',
    'offerTerms' => [
        [
            'byolPricingTerm' => [
                'id' => '<string>',
                'type' => 'ByolPricingTerm|ConfigurableUpfrontPricingTerm|FixedUpfrontPricingTerm|UsageBasedPricingTerm|FreeTrialPricingTerm|LegalTerm|PaymentScheduleTerm|RecurringPaymentTerm|RenewalTerm|SupportTerm|ValidityTerm|VariablePaymentTerm',
            ],
            'configurableUpfrontPricingTerm' => [
                'currencyCode' => '<string>',
                'id' => '<string>',
                'rateCards' => [
                    [
                        'constraints' => [
                            'multipleDimensionSelection' => 'Allowed|Disallowed',
                            'quantityConfiguration' => 'Allowed|Disallowed',
                        ],
                        'rateCard' => [
                            [
                                'description' => '<string>',
                                'dimensionKey' => '<string>',
                                'dimensionLabels' => [
                                    [
                                        'displayName' => '<string>',
                                        'labelType' => 'Region|SagemakerOption',
                                        'labelValue' => '<string>',
                                    ],
                                    // ...
                                ],
                                'displayName' => '<string>',
                                'price' => '<string>',
                                'unit' => '<string>',
                            ],
                            // ...
                        ],
                        'selector' => [
                            'type' => 'Duration',
                            'value' => '<string>',
                        ],
                    ],
                    // ...
                ],
                'type' => 'ByolPricingTerm|ConfigurableUpfrontPricingTerm|FixedUpfrontPricingTerm|UsageBasedPricingTerm|FreeTrialPricingTerm|LegalTerm|PaymentScheduleTerm|RecurringPaymentTerm|RenewalTerm|SupportTerm|ValidityTerm|VariablePaymentTerm',
            ],
            'fixedUpfrontPricingTerm' => [
                'currencyCode' => '<string>',
                'duration' => '<string>',
                'grants' => [
                    [
                        'description' => '<string>',
                        'dimensionKey' => '<string>',
                        'dimensionLabels' => [
                            [
                                'displayName' => '<string>',
                                'labelType' => 'Region|SagemakerOption',
                                'labelValue' => '<string>',
                            ],
                            // ...
                        ],
                        'displayName' => '<string>',
                        'maxQuantity' => <integer>,
                        'unit' => '<string>',
                    ],
                    // ...
                ],
                'id' => '<string>',
                'price' => '<string>',
                'type' => 'ByolPricingTerm|ConfigurableUpfrontPricingTerm|FixedUpfrontPricingTerm|UsageBasedPricingTerm|FreeTrialPricingTerm|LegalTerm|PaymentScheduleTerm|RecurringPaymentTerm|RenewalTerm|SupportTerm|ValidityTerm|VariablePaymentTerm',
            ],
            'freeTrialPricingTerm' => [
                'duration' => '<string>',
                'grants' => [
                    [
                        'description' => '<string>',
                        'dimensionKey' => '<string>',
                        'dimensionLabels' => [
                            [
                                'displayName' => '<string>',
                                'labelType' => 'Region|SagemakerOption',
                                'labelValue' => '<string>',
                            ],
                            // ...
                        ],
                        'displayName' => '<string>',
                        'maxQuantity' => <integer>,
                        'unit' => '<string>',
                    ],
                    // ...
                ],
                'id' => '<string>',
                'type' => 'ByolPricingTerm|ConfigurableUpfrontPricingTerm|FixedUpfrontPricingTerm|UsageBasedPricingTerm|FreeTrialPricingTerm|LegalTerm|PaymentScheduleTerm|RecurringPaymentTerm|RenewalTerm|SupportTerm|ValidityTerm|VariablePaymentTerm',
            ],
            'legalTerm' => [
                'documents' => [
                    [
                        'type' => 'CustomEula|CustomDsa|EnterpriseEula|StandardEula|StandardDsa',
                        'url' => '<string>',
                        'version' => '<string>',
                    ],
                    // ...
                ],
                'id' => '<string>',
                'type' => 'ByolPricingTerm|ConfigurableUpfrontPricingTerm|FixedUpfrontPricingTerm|UsageBasedPricingTerm|FreeTrialPricingTerm|LegalTerm|PaymentScheduleTerm|RecurringPaymentTerm|RenewalTerm|SupportTerm|ValidityTerm|VariablePaymentTerm',
            ],
            'paymentScheduleTerm' => [
                'currencyCode' => '<string>',
                'id' => '<string>',
                'schedule' => [
                    [
                        'chargeAmount' => '<string>',
                        'chargeDate' => <DateTime>,
                    ],
                    // ...
                ],
                'type' => 'ByolPricingTerm|ConfigurableUpfrontPricingTerm|FixedUpfrontPricingTerm|UsageBasedPricingTerm|FreeTrialPricingTerm|LegalTerm|PaymentScheduleTerm|RecurringPaymentTerm|RenewalTerm|SupportTerm|ValidityTerm|VariablePaymentTerm',
            ],
            'recurringPaymentTerm' => [
                'billingPeriod' => 'Monthly',
                'currencyCode' => '<string>',
                'id' => '<string>',
                'price' => '<string>',
                'type' => 'ByolPricingTerm|ConfigurableUpfrontPricingTerm|FixedUpfrontPricingTerm|UsageBasedPricingTerm|FreeTrialPricingTerm|LegalTerm|PaymentScheduleTerm|RecurringPaymentTerm|RenewalTerm|SupportTerm|ValidityTerm|VariablePaymentTerm',
            ],
            'renewalTerm' => [
                'id' => '<string>',
                'type' => 'ByolPricingTerm|ConfigurableUpfrontPricingTerm|FixedUpfrontPricingTerm|UsageBasedPricingTerm|FreeTrialPricingTerm|LegalTerm|PaymentScheduleTerm|RecurringPaymentTerm|RenewalTerm|SupportTerm|ValidityTerm|VariablePaymentTerm',
            ],
            'supportTerm' => [
                'id' => '<string>',
                'refundPolicy' => '<string>',
                'type' => 'ByolPricingTerm|ConfigurableUpfrontPricingTerm|FixedUpfrontPricingTerm|UsageBasedPricingTerm|FreeTrialPricingTerm|LegalTerm|PaymentScheduleTerm|RecurringPaymentTerm|RenewalTerm|SupportTerm|ValidityTerm|VariablePaymentTerm',
            ],
            'usageBasedPricingTerm' => [
                'currencyCode' => '<string>',
                'id' => '<string>',
                'rateCards' => [
                    [
                        'rateCard' => [
                            [
                                'description' => '<string>',
                                'dimensionKey' => '<string>',
                                'dimensionLabels' => [
                                    [
                                        'displayName' => '<string>',
                                        'labelType' => 'Region|SagemakerOption',
                                        'labelValue' => '<string>',
                                    ],
                                    // ...
                                ],
                                'displayName' => '<string>',
                                'price' => '<string>',
                                'unit' => '<string>',
                            ],
                            // ...
                        ],
                    ],
                    // ...
                ],
                'type' => 'ByolPricingTerm|ConfigurableUpfrontPricingTerm|FixedUpfrontPricingTerm|UsageBasedPricingTerm|FreeTrialPricingTerm|LegalTerm|PaymentScheduleTerm|RecurringPaymentTerm|RenewalTerm|SupportTerm|ValidityTerm|VariablePaymentTerm',
            ],
            'validityTerm' => [
                'agreementDuration' => '<string>',
                'agreementEndDate' => <DateTime>,
                'agreementStartDate' => <DateTime>,
                'id' => '<string>',
                'type' => 'ByolPricingTerm|ConfigurableUpfrontPricingTerm|FixedUpfrontPricingTerm|UsageBasedPricingTerm|FreeTrialPricingTerm|LegalTerm|PaymentScheduleTerm|RecurringPaymentTerm|RenewalTerm|SupportTerm|ValidityTerm|VariablePaymentTerm',
            ],
            'variablePaymentTerm' => [
                'currencyCode' => '<string>',
                'id' => '<string>',
                'maxTotalChargeAmount' => '<string>',
                'type' => 'ByolPricingTerm|ConfigurableUpfrontPricingTerm|FixedUpfrontPricingTerm|UsageBasedPricingTerm|FreeTrialPricingTerm|LegalTerm|PaymentScheduleTerm|RecurringPaymentTerm|RenewalTerm|SupportTerm|ValidityTerm|VariablePaymentTerm',
            ],
        ],
        // ...
    ],
]

Result Details

Members
nextToken
Type: string

If nextToken is returned, there are more results available. Make the call again using the returned token to retrieve the next page.

offerTerms
Required: Yes
Type: Array of OfferTerm structures

The terms attached to the offer. Each element contains exactly one term type.

Errors

ThrottlingException:

The request was denied due to request throttling.

AccessDeniedException:

You don't have sufficient access to perform this action.

ValidationException:

The input fails to satisfy the constraints specified by the service.

ResourceNotFoundException:

The specified resource doesn't exist.

InternalServerException:

Unexpected error during processing of the request.

Examples

Example 1: GetOfferTerms for Usage-based ML Model offer
$result = $client->getOfferTerms([
    'offerId' => 'offer-sampleUsageBasedId',
]);

Result syntax:

[
    'offerTerms' => [
        [
            'usageBasedPricingTerm' => [
                'type' => 'UsageBasedPricingTerm',
                'currencyCode' => 'USD',
                'id' => 'term-sampleUsageBasedPricingId',
                'rateCards' => [
                    [
                        'rateCard' => [
                            [
                                'description' => 'Model inference on the ml.m5.2xlarge instance type, batch mode',
                                'dimensionKey' => 'ml.m5.2xlarge.m.i.b',
                                'dimensionLabels' => [
                                    [
                                        'displayName' => 'Model Batch Transform',
                                        'labelType' => 'SagemakerOption',
                                        'labelValue' => 'Model Batch Transform',
                                    ],
                                ],
                                'displayName' => 'ml.m5.2xlarge Inference (Batch)',
                                'price' => '2.00000000',
                                'unit' => 'HostHrs',
                            ],
                            [
                                'description' => 'Model inference on the ml.m5.2xlarge instance type, real-time mode',
                                'dimensionKey' => 'ml.m5.2xlarge.m.i.r',
                                'dimensionLabels' => [
                                    [
                                        'displayName' => 'Model Real-Time Inference',
                                        'labelType' => 'SagemakerOption',
                                        'labelValue' => 'Model Real-Time Inference',
                                    ],
                                ],
                                'displayName' => 'ml.m5.2xlarge Inference (Real-Time)',
                                'price' => '2.00000000',
                                'unit' => 'HostHrs',
                            ],
                            [
                                'description' => 'Model inference on the ml.m5.large instance type, batch mode',
                                'dimensionKey' => 'ml.m5.large.m.i.b',
                                'dimensionLabels' => [
                                    [
                                        'displayName' => 'Model Batch Transform',
                                        'labelType' => 'SagemakerOption',
                                        'labelValue' => 'Model Batch Transform',
                                    ],
                                ],
                                'displayName' => 'ml.m5.large Inference (Batch)',
                                'price' => '2.00000000',
                                'unit' => 'HostHrs',
                            ],
                            [
                                'description' => 'Model inference on the ml.m5.large instance type, real-time mode',
                                'dimensionKey' => 'ml.m5.large.m.i.r',
                                'dimensionLabels' => [
                                    [
                                        'displayName' => 'Model Real-Time Inference',
                                        'labelType' => 'SagemakerOption',
                                        'labelValue' => 'Model Real-Time Inference',
                                    ],
                                ],
                                'displayName' => 'ml.m5.large Inference (Real-Time)',
                                'price' => '2.00000000',
                                'unit' => 'HostHrs',
                            ],
                        ],
                    ],
                ],
            ],
        ],
        [
            'fixedUpfrontPricingTerm' => [
                'type' => 'FixedUpfrontPricingTerm',
                'currencyCode' => 'USD',
                'duration' => 'P365D',
                'grants' => [
                    [
                        'description' => 'Model inference on the ml.m5.2xlarge instance type, batch mode',
                        'dimensionKey' => 'ml.m5.2xlarge.m.i.b',
                        'dimensionLabels' => [
                            [
                                'displayName' => 'Model Batch Transform',
                                'labelType' => 'SagemakerOption',
                                'labelValue' => 'Model Batch Transform',
                            ],
                        ],
                        'displayName' => 'ml.m5.2xlarge Inference (Batch)',
                        'maxQuantity' => 2147483647,
                        'unit' => 'HostHrs',
                    ],
                    [
                        'description' => 'Model inference on the ml.m5.2xlarge instance type, real-time mode',
                        'dimensionKey' => 'ml.m5.2xlarge.m.i.r',
                        'dimensionLabels' => [
                            [
                                'displayName' => 'Model Real-Time Inference',
                                'labelType' => 'SagemakerOption',
                                'labelValue' => 'Model Real-Time Inference',
                            ],
                        ],
                        'displayName' => 'ml.m5.2xlarge Inference (Real-Time)',
                        'maxQuantity' => 2147483647,
                        'unit' => 'HostHrs',
                    ],
                    [
                        'description' => 'Model inference on the ml.m5.large instance type, batch mode',
                        'dimensionKey' => 'ml.m5.large.m.i.b',
                        'dimensionLabels' => [
                            [
                                'displayName' => 'Model Batch Transform',
                                'labelType' => 'SagemakerOption',
                                'labelValue' => 'Model Batch Transform',
                            ],
                        ],
                        'displayName' => 'ml.m5.large Inference (Batch)',
                        'maxQuantity' => 2147483647,
                        'unit' => 'HostHrs',
                    ],
                    [
                        'description' => 'Model inference on the ml.m5.large instance type, real-time mode',
                        'dimensionKey' => 'ml.m5.large.m.i.r',
                        'dimensionLabels' => [
                            [
                                'displayName' => 'Model Real-Time Inference',
                                'labelType' => 'SagemakerOption',
                                'labelValue' => 'Model Real-Time Inference',
                            ],
                        ],
                        'displayName' => 'ml.m5.large Inference (Real-Time)',
                        'maxQuantity' => 2147483647,
                        'unit' => 'HostHrs',
                    ],
                ],
                'id' => 'term-sampleFixedUpfrontPricingId',
                'price' => '0.00000000',
            ],
        ],
        [
            'legalTerm' => [
                'type' => 'LegalTerm',
                'documents' => [
                    [
                        'type' => 'StandardEula',
                        'url' => 'https://example.com/legal/standard-eula',
                    ],
                ],
                'id' => 'term-sampleLegalId',
            ],
        ],
        [
            'validityTerm' => [
                'type' => 'ValidityTerm',
                'agreementDuration' => 'P2011D',
                'id' => 'term-sampleValidityId',
            ],
        ],
        [
            'paymentScheduleTerm' => [
                'type' => 'PaymentScheduleTerm',
                'currencyCode' => 'USD',
                'id' => 'term-samplePaymentScheduleId',
                'schedule' => [
                    [
                        'chargeAmount' => '5.00000000',
                        'chargeDate' => ,
                    ],
                ],
            ],
        ],
    ],
]
Example 2: GetOfferTerms for BYOL offer
$result = $client->getOfferTerms([
    'offerId' => 'offer-sampleByolId',
]);

Result syntax:

[
    'offerTerms' => [
        [
            'byolPricingTerm' => [
                'type' => 'ByolPricingTerm',
                'id' => 'term-byol-001',
            ],
        ],
        [
            'legalTerm' => [
                'type' => 'LegalTerm',
                'documents' => [
                    [
                        'type' => 'CustomEula',
                        'url' => 'https://example.com/eula',
                    ],
                ],
                'id' => 'term-legal-003',
            ],
        ],
    ],
]
Example 3: GetOfferTerms for configurable upfront pricing
$result = $client->getOfferTerms([
    'offerId' => 'offer-sampleConfigUpfrontId',
]);

Result syntax:

[
    'offerTerms' => [
        [
            'configurableUpfrontPricingTerm' => [
                'type' => 'ConfigurableUpfrontPricingTerm',
                'currencyCode' => 'USD',
                'id' => 'term-config-001',
                'rateCards' => [
                    [
                        'constraints' => [
                            'multipleDimensionSelection' => 'Allowed',
                            'quantityConfiguration' => 'Allowed',
                        ],
                        'rateCard' => [
                            [
                                'dimensionKey' => 'api_calls_us_east_1',
                                'dimensionLabels' => [
                                    [
                                        'displayName' => 'US East (N. Virginia)',
                                        'labelType' => 'Region',
                                        'labelValue' => 'us-east-1',
                                    ],
                                ],
                                'displayName' => 'API Calls (US East)',
                                'price' => '0.001',
                                'unit' => 'Requests',
                            ],
                            [
                                'dimensionKey' => 'api_calls_us_west_2',
                                'dimensionLabels' => [
                                    [
                                        'displayName' => 'US West (Oregon)',
                                        'labelType' => 'Region',
                                        'labelValue' => 'us-west-2',
                                    ],
                                ],
                                'displayName' => 'API Calls (US West)',
                                'price' => '0.001',
                                'unit' => 'Requests',
                            ],
                        ],
                        'selector' => [
                            'type' => 'Duration',
                            'value' => 'P12M',
                        ],
                    ],
                ],
            ],
        ],
    ],
]
Example 4: GetOfferTerms for free trial offer
$result = $client->getOfferTerms([
    'offerId' => 'offer-sampleFreeTrialId',
]);

Result syntax:

[
    'offerTerms' => [
        [
            'freeTrialPricingTerm' => [
                'type' => 'FreeTrialPricingTerm',
                'duration' => 'P30D',
                'grants' => [
                    [
                        'dimensionKey' => 'ml.m5.large.m.i.r',
                        'dimensionLabels' => [
                            [
                                'displayName' => 'Model Real-Time Inference',
                                'labelType' => 'SagemakerOption',
                                'labelValue' => 'Model Real-Time Inference',
                            ],
                        ],
                        'displayName' => 'ml.m5.large Inference (Real-Time)',
                        'maxQuantity' => 100,
                        'unit' => 'HostHrs',
                    ],
                ],
                'id' => 'term-trial-001',
            ],
        ],
    ],
]
Example 5: GetOfferTerms for recurring payment
$result = $client->getOfferTerms([
    'offerId' => 'offer-sampleRecurringId',
]);

Result syntax:

[
    'offerTerms' => [
        [
            'recurringPaymentTerm' => [
                'type' => 'RecurringPaymentTerm',
                'billingPeriod' => 'Monthly',
                'currencyCode' => 'USD',
                'id' => 'term-recurring-001',
                'price' => '99.00',
            ],
        ],
    ],
]
Example 6: GetOfferTerms for variable payment
$result = $client->getOfferTerms([
    'offerId' => 'offer-sampleVariableId',
]);

Result syntax:

[
    'offerTerms' => [
        [
            'variablePaymentTerm' => [
                'type' => 'VariablePaymentTerm',
                'currencyCode' => 'USD',
                'id' => 'term-variable-001',
                'maxTotalChargeAmount' => '10000.00',
            ],
        ],
    ],
]
Example 7: GetOfferTerms for renewal term
$result = $client->getOfferTerms([
    'offerId' => 'offer-sampleRenewalId',
]);

Result syntax:

[
    'offerTerms' => [
        [
            'renewalTerm' => [
                'type' => 'RenewalTerm',
                'id' => 'term-renewal-001',
            ],
        ],
    ],
]
Example 8: GetOfferTerms for support term
$result = $client->getOfferTerms([
    'offerId' => 'offer-sampleSupportId',
]);

Result syntax:

[
    'offerTerms' => [
        [
            'supportTerm' => [
                'type' => 'SupportTerm',
                'id' => 'term-support-001',
                'refundPolicy' => '30-day money back guarantee',
            ],
        ],
    ],
]
Example 9: GetOfferTerms for validity term with dates
$result = $client->getOfferTerms([
    'offerId' => 'offer-sampleValidityId',
]);

Result syntax:

[
    'offerTerms' => [
        [
            'validityTerm' => [
                'type' => 'ValidityTerm',
                'agreementDuration' => 'P365D',
                'agreementEndDate' => ,
                'agreementStartDate' => ,
                'id' => 'term-validity-001',
            ],
        ],
    ],
]

GetProduct

$result = $client->getProduct([/* ... */]);
$promise = $client->getProductAsync([/* ... */]);

Provides details about a product, such as descriptions, highlights, categories, fulfillment option summaries, promotional media, and seller engagement options.

Parameter Syntax

$result = $client->getProduct([
    'productId' => '<string>', // REQUIRED
]);

Parameter Details

Members
productId
Required: Yes
Type: string

The unique identifier of the product to retrieve.

Result Syntax

[
    'catalog' => '<string>',
    'categories' => [
        [
            'categoryId' => '<string>',
            'displayName' => '<string>',
        ],
        // ...
    ],
    'deployedOnAws' => 'DEPLOYED|NOT_DEPLOYED|NOT_APPLICABLE',
    'fulfillmentOptionSummaries' => [
        [
            'displayName' => '<string>',
            'fulfillmentOptionType' => 'AMAZON_MACHINE_IMAGE|API|CLOUDFORMATION_TEMPLATE|CONTAINER|HELM|EKS_ADD_ON|EC2_IMAGE_BUILDER_COMPONENT|DATA_EXCHANGE|PROFESSIONAL_SERVICES|SAAS|SAGEMAKER_ALGORITHM|SAGEMAKER_MODEL',
        ],
        // ...
    ],
    'highlights' => ['<string>', ...],
    'logoThumbnailUrl' => '<string>',
    'longDescription' => '<string>',
    'manufacturer' => [
        'displayName' => '<string>',
        'sellerProfileId' => '<string>',
    ],
    'productId' => '<string>',
    'productName' => '<string>',
    'promotionalMedia' => [
        [
            'embeddedImage' => [
                'description' => '<string>',
                'title' => '<string>',
                'url' => '<string>',
            ],
            'embeddedVideo' => [
                'description' => '<string>',
                'preview' => '<string>',
                'thumbnail' => '<string>',
                'title' => '<string>',
                'url' => '<string>',
            ],
        ],
        // ...
    ],
    'resources' => [
        [
            'contentType' => 'EMAIL|PHONE_NUMBER|LINK|OTHER',
            'displayName' => '<string>',
            'resourceType' => 'MANUFACTURER_SUPPORT|MANUFACTURER_INSTRUCTIONS',
            'value' => '<string>',
        ],
        // ...
    ],
    'sellerEngagements' => [
        [
            'contentType' => 'LINK',
            'engagementType' => 'REQUEST_FOR_PRIVATE_OFFER|REQUEST_FOR_DEMO',
            'value' => '<string>',
        ],
        // ...
    ],
    'shortDescription' => '<string>',
]

Result Details

Members
catalog
Required: Yes
Type: string

The name of the catalog that the product belongs to.

categories
Required: Yes
Type: Array of Category structures

The categories used to classify this product into logical groups.

deployedOnAws
Required: Yes
Type: string

Indicates whether the product is deployed on AWS infrastructure.

fulfillmentOptionSummaries
Required: Yes
Type: Array of FulfillmentOptionSummary structures

A summary of fulfillment options available for deploying or accessing the product, such as AMI, SaaS, or Container.

highlights
Required: Yes
Type: Array of strings

A list of key features that the product offers to customers.

logoThumbnailUrl
Required: Yes
Type: string

The URL of the logo thumbnail image for the product.

longDescription
Required: Yes
Type: string

A detailed description of what the product does, in paragraph format.

manufacturer
Required: Yes
Type: SellerInformation structure

The entity who manufactured the product.

productId
Required: Yes
Type: string

The unique identifier of the product.

productName
Required: Yes
Type: string

The human-readable display name of the product.

promotionalMedia
Required: Yes
Type: Array of PromotionalMedia structures

Embedded promotional media provided by the creator of the product, such as images and videos.

resources
Required: Yes
Type: Array of Resource structures

Resources that provide further information about using the product or requesting support, such as documentation links, support contacts, and usage instructions.

sellerEngagements
Required: Yes
Type: Array of SellerEngagement structures

Engagement options available to potential buyers, such as requesting a private offer or requesting a demo.

shortDescription
Required: Yes
Type: string

A 1–3 sentence summary describing the key aspects of the product.

Errors

ThrottlingException:

The request was denied due to request throttling.

AccessDeniedException:

You don't have sufficient access to perform this action.

ValidationException:

The input fails to satisfy the constraints specified by the service.

ResourceNotFoundException:

The specified resource doesn't exist.

InternalServerException:

Unexpected error during processing of the request.

Examples

Example 1: GetProduct for SaaS product with DEPLOYED status
$result = $client->getProduct([
    'productId' => 'prod-sampleSaasId',
]);

Result syntax:

[
    'catalog' => 'AWSMarketplace',
    'categories' => [
        [
            'categoryId' => '0625e4fd-88dd-4dd9-9e57-4a0461f97fb4',
            'displayName' => 'Security',
        ],
    ],
    'deployedOnAws' => 'DEPLOYED',
    'fulfillmentOptionSummaries' => [
        [
            'displayName' => 'SaaS',
            'fulfillmentOptionType' => 'SAAS',
        ],
        [
            'displayName' => 'API',
            'fulfillmentOptionType' => 'API',
        ],
        [
            'displayName' => 'Data Exchange',
            'fulfillmentOptionType' => 'DATA_EXCHANGE',
        ],
    ],
    'highlights' => [
        'Configured to your specs: Pre-configured environments, out-of-the-box.',
    ],
    'logoThumbnailUrl' => 'https://d7umqicpi7263.cloudfront.net/img/product/07afb7c8-32f1-4851-8289-7e200d817ab1.png',
    'longDescription' => 'Gitpod is a developer platform that provides on-demand, pre-configured cloud development environments (CDEs) that automatically integrate into any tool, library, or dependency required for creating software.',
    'manufacturer' => [
        'displayName' => 'sample SaaS seller',
        'sellerProfileId' => 'seller-sampleSaasId',
    ],
    'productId' => 'prod-sampleSaasId',
    'productName' => 'sample SaaS product',
    'promotionalMedia' => [
        [
            'embeddedImage' => [
                'description' => 'Main security dashboard showing threat analytics',
                'title' => 'Dashboard Overview',
                'url' => 'https://assets.example.com/images/dashboard-main.png',
            ],
        ],
    ],
    'resources' => [
        [
            'value' => 'https://www.gitpod.io/blog',
            'contentType' => 'LINK',
            'displayName' => 'Blog',
            'resourceType' => 'MANUFACTURER_SUPPORT',
        ],
        [
            'value' => 'support@gitpod.io',
            'contentType' => 'EMAIL',
            'displayName' => 'Email Support',
            'resourceType' => 'MANUFACTURER_SUPPORT',
        ],
    ],
    'sellerEngagements' => [
        [
            'value' => 'https://aws.amazon.com/marketplace/customer-connect/demo/prodview-sampleSaasId',
            'contentType' => 'LINK',
            'engagementType' => 'REQUEST_FOR_DEMO',
        ],
    ],
    'shortDescription' => 'Gitpod provides on-demand, secure cloud development environments or CDEs.',
]
Example 2: GetProduct for AMI product with NOT_DEPLOYED status
$result = $client->getProduct([
    'productId' => 'prod-sampleAmiId',
]);

Result syntax:

[
    'catalog' => 'AWSMarketplace',
    'categories' => [
        [
            'categoryId' => 'security-category-001',
            'displayName' => 'Security',
        ],
    ],
    'deployedOnAws' => 'NOT_DEPLOYED',
    'fulfillmentOptionSummaries' => [
        [
            'displayName' => 'Amazon Machine Image',
            'fulfillmentOptionType' => 'AMAZON_MACHINE_IMAGE',
        ],
        [
            'displayName' => 'CloudFormation Template',
            'fulfillmentOptionType' => 'CLOUDFORMATION_TEMPLATE',
        ],
        [
            'displayName' => 'Container',
            'fulfillmentOptionType' => 'CONTAINER',
        ],
        [
            'displayName' => 'Helm',
            'fulfillmentOptionType' => 'HELM',
        ],
    ],
    'highlights' => [
        'AES-256 encryption at rest and in transit',
    ],
    'logoThumbnailUrl' => 'https://d7umqicpi7263.cloudfront.net/img/product/securevault-logo.png',
    'longDescription' => 'SecureVault Enterprise provides comprehensive data encryption, key management, and security compliance tools for organizations.',
    'manufacturer' => [
        'displayName' => 'sample AMI seller',
        'sellerProfileId' => 'seller-sampleAmiId',
    ],
    'productId' => 'prod-sampleAmiId',
    'productName' => 'sample AMI product',
    'promotionalMedia' => [
        [
            'embeddedVideo' => [
                'description' => 'A comprehensive overview of SecureVault features',
                'preview' => 'https://assets.example.com/videos/intro-preview.jpg',
                'thumbnail' => 'https://assets.example.com/videos/intro-thumb.jpg',
                'title' => 'SecureVault Introduction',
                'url' => 'https://assets.example.com/videos/intro.mp4',
            ],
        ],
    ],
    'resources' => [
        [
            'value' => '+1-555-123-4567',
            'contentType' => 'PHONE_NUMBER',
            'displayName' => 'Phone Support',
            'resourceType' => 'MANUFACTURER_SUPPORT',
        ],
        [
            'value' => 'Contact your account manager for installation assistance.',
            'contentType' => 'OTHER',
            'displayName' => 'Installation Help',
            'resourceType' => 'MANUFACTURER_INSTRUCTIONS',
        ],
    ],
    'sellerEngagements' => [
        [
            'value' => 'https://aws.amazon.com/marketplace/customer-connect/private-offer/prodview-sampleAmiId',
            'contentType' => 'LINK',
            'engagementType' => 'REQUEST_FOR_PRIVATE_OFFER',
        ],
    ],
    'shortDescription' => 'Enterprise-grade data encryption and key management solution.',
]
Example 3: GetProduct for professional services with NOT_APPLICABLE status
$result = $client->getProduct([
    'productId' => 'prod-sampleProServId',
]);

Result syntax:

[
    'catalog' => 'AWSMarketplace',
    'categories' => [
        [
            'categoryId' => 'consulting-category-001',
            'displayName' => 'Consulting',
        ],
    ],
    'deployedOnAws' => 'NOT_APPLICABLE',
    'fulfillmentOptionSummaries' => [
        [
            'displayName' => 'Professional Services',
            'fulfillmentOptionType' => 'PROFESSIONAL_SERVICES',
        ],
        [
            'displayName' => 'EKS Add-on',
            'fulfillmentOptionType' => 'EKS_ADD_ON',
        ],
        [
            'displayName' => 'EC2 Image Builder Component',
            'fulfillmentOptionType' => 'EC2_IMAGE_BUILDER_COMPONENT',
        ],
        [
            'displayName' => 'SageMaker Algorithm',
            'fulfillmentOptionType' => 'SAGEMAKER_ALGORITHM',
        ],
        [
            'displayName' => 'SageMaker Model',
            'fulfillmentOptionType' => 'SAGEMAKER_MODEL',
        ],
    ],
    'highlights' => [
        'Certified AWS migration specialists',
    ],
    'logoThumbnailUrl' => 'https://d7umqicpi7263.cloudfront.net/img/product/cloudexperts-logo.png',
    'longDescription' => 'Professional consulting services to help organizations plan and execute their cloud migration strategy.',
    'manufacturer' => [
        'displayName' => 'sample professional services seller',
        'sellerProfileId' => 'seller-sampleProServId',
    ],
    'productId' => 'prod-sampleProServId',
    'productName' => 'sample professional services product',
    'promotionalMedia' => [
    ],
    'resources' => [
        [
            'value' => 'https://www.cloudexperts.example.com/docs',
            'contentType' => 'LINK',
            'displayName' => 'Documentation',
            'resourceType' => 'MANUFACTURER_INSTRUCTIONS',
        ],
    ],
    'sellerEngagements' => [
        [
            'value' => 'https://aws.amazon.com/marketplace/customer-connect/demo/prodview-sampleProServId',
            'contentType' => 'LINK',
            'engagementType' => 'REQUEST_FOR_DEMO',
        ],
    ],
    'shortDescription' => 'Expert cloud migration and modernization consulting services.',
]

ListFulfillmentOptions

$result = $client->listFulfillmentOptions([/* ... */]);
$promise = $client->listFulfillmentOptionsAsync([/* ... */]);

Returns the fulfillment options available for a product, including deployment details such as version information, operating systems, usage instructions, and release notes.

Parameter Syntax

$result = $client->listFulfillmentOptions([
    'maxResults' => <integer>,
    'nextToken' => '<string>',
    'productId' => '<string>', // REQUIRED
]);

Parameter Details

Members
maxResults
Type: int

The maximum number of results that are returned per call. You can use nextToken to get more results.

nextToken
Type: string

If nextToken is returned, there are more results available. Make the call again using the returned token to retrieve the next page.

productId
Required: Yes
Type: string

The unique identifier of the product for which to list fulfillment options.

Result Syntax

[
    'fulfillmentOptions' => [
        [
            'amazonMachineImageFulfillmentOption' => [
                'fulfillmentOptionDisplayName' => '<string>',
                'fulfillmentOptionId' => '<string>',
                'fulfillmentOptionName' => '<string>',
                'fulfillmentOptionType' => 'AMAZON_MACHINE_IMAGE|API|CLOUDFORMATION_TEMPLATE|CONTAINER|HELM|EKS_ADD_ON|EC2_IMAGE_BUILDER_COMPONENT|DATA_EXCHANGE|PROFESSIONAL_SERVICES|SAAS|SAGEMAKER_ALGORITHM|SAGEMAKER_MODEL',
                'fulfillmentOptionVersion' => '<string>',
                'operatingSystems' => [
                    [
                        'operatingSystemFamilyName' => '<string>',
                        'operatingSystemName' => '<string>',
                        'operatingSystemVersion' => '<string>',
                    ],
                    // ...
                ],
                'recommendation' => [
                    'instanceType' => '<string>',
                ],
                'releaseNotes' => '<string>',
                'usageInstructions' => '<string>',
            ],
            'apiFulfillmentOption' => [
                'awsSupportedServices' => [
                    [
                        'description' => '<string>',
                        'displayName' => '<string>',
                        'supportedServiceType' => '<string>',
                    ],
                    // ...
                ],
                'fulfillmentOptionDisplayName' => '<string>',
                'fulfillmentOptionId' => '<string>',
                'fulfillmentOptionType' => 'AMAZON_MACHINE_IMAGE|API|CLOUDFORMATION_TEMPLATE|CONTAINER|HELM|EKS_ADD_ON|EC2_IMAGE_BUILDER_COMPONENT|DATA_EXCHANGE|PROFESSIONAL_SERVICES|SAAS|SAGEMAKER_ALGORITHM|SAGEMAKER_MODEL',
                'usageInstructions' => '<string>',
            ],
            'cloudFormationFulfillmentOption' => [
                'fulfillmentOptionDisplayName' => '<string>',
                'fulfillmentOptionId' => '<string>',
                'fulfillmentOptionName' => '<string>',
                'fulfillmentOptionType' => 'AMAZON_MACHINE_IMAGE|API|CLOUDFORMATION_TEMPLATE|CONTAINER|HELM|EKS_ADD_ON|EC2_IMAGE_BUILDER_COMPONENT|DATA_EXCHANGE|PROFESSIONAL_SERVICES|SAAS|SAGEMAKER_ALGORITHM|SAGEMAKER_MODEL',
                'fulfillmentOptionVersion' => '<string>',
                'releaseNotes' => '<string>',
                'usageInstructions' => '<string>',
            ],
            'containerFulfillmentOption' => [
                'awsSupportedServices' => [
                    [
                        'description' => '<string>',
                        'displayName' => '<string>',
                        'supportedServiceType' => '<string>',
                    ],
                    // ...
                ],
                'fulfillmentOptionDisplayName' => '<string>',
                'fulfillmentOptionId' => '<string>',
                'fulfillmentOptionName' => '<string>',
                'fulfillmentOptionType' => 'AMAZON_MACHINE_IMAGE|API|CLOUDFORMATION_TEMPLATE|CONTAINER|HELM|EKS_ADD_ON|EC2_IMAGE_BUILDER_COMPONENT|DATA_EXCHANGE|PROFESSIONAL_SERVICES|SAAS|SAGEMAKER_ALGORITHM|SAGEMAKER_MODEL',
                'fulfillmentOptionVersion' => '<string>',
                'operatingSystems' => [
                    [
                        'operatingSystemFamilyName' => '<string>',
                        'operatingSystemName' => '<string>',
                    ],
                    // ...
                ],
                'releaseNotes' => '<string>',
                'usageInstructions' => '<string>',
            ],
            'dataExchangeFulfillmentOption' => [
                'dataArtifacts' => [
                    [
                        'dataClassification' => '<string>',
                        'description' => '<string>',
                        'resourceArn' => '<string>',
                        'resourceType' => '<string>',
                    ],
                    // ...
                ],
                'fulfillmentOptionDisplayName' => '<string>',
                'fulfillmentOptionId' => '<string>',
                'fulfillmentOptionType' => 'AMAZON_MACHINE_IMAGE|API|CLOUDFORMATION_TEMPLATE|CONTAINER|HELM|EKS_ADD_ON|EC2_IMAGE_BUILDER_COMPONENT|DATA_EXCHANGE|PROFESSIONAL_SERVICES|SAAS|SAGEMAKER_ALGORITHM|SAGEMAKER_MODEL',
            ],
            'ec2ImageBuilderComponentFulfillmentOption' => [
                'awsSupportedServices' => [
                    [
                        'description' => '<string>',
                        'displayName' => '<string>',
                        'supportedServiceType' => '<string>',
                    ],
                    // ...
                ],
                'fulfillmentOptionDisplayName' => '<string>',
                'fulfillmentOptionId' => '<string>',
                'fulfillmentOptionName' => '<string>',
                'fulfillmentOptionType' => 'AMAZON_MACHINE_IMAGE|API|CLOUDFORMATION_TEMPLATE|CONTAINER|HELM|EKS_ADD_ON|EC2_IMAGE_BUILDER_COMPONENT|DATA_EXCHANGE|PROFESSIONAL_SERVICES|SAAS|SAGEMAKER_ALGORITHM|SAGEMAKER_MODEL',
                'fulfillmentOptionVersion' => '<string>',
                'operatingSystems' => [
                    [
                        'operatingSystemFamilyName' => '<string>',
                        'operatingSystemName' => '<string>',
                    ],
                    // ...
                ],
                'releaseNotes' => '<string>',
                'usageInstructions' => '<string>',
            ],
            'eksAddOnFulfillmentOption' => [
                'awsSupportedServices' => [
                    [
                        'description' => '<string>',
                        'displayName' => '<string>',
                        'supportedServiceType' => '<string>',
                    ],
                    // ...
                ],
                'fulfillmentOptionDisplayName' => '<string>',
                'fulfillmentOptionId' => '<string>',
                'fulfillmentOptionName' => '<string>',
                'fulfillmentOptionType' => 'AMAZON_MACHINE_IMAGE|API|CLOUDFORMATION_TEMPLATE|CONTAINER|HELM|EKS_ADD_ON|EC2_IMAGE_BUILDER_COMPONENT|DATA_EXCHANGE|PROFESSIONAL_SERVICES|SAAS|SAGEMAKER_ALGORITHM|SAGEMAKER_MODEL',
                'fulfillmentOptionVersion' => '<string>',
                'operatingSystems' => [
                    [
                        'operatingSystemFamilyName' => '<string>',
                        'operatingSystemName' => '<string>',
                    ],
                    // ...
                ],
                'releaseNotes' => '<string>',
                'usageInstructions' => '<string>',
            ],
            'helmFulfillmentOption' => [
                'awsSupportedServices' => [
                    [
                        'description' => '<string>',
                        'displayName' => '<string>',
                        'supportedServiceType' => '<string>',
                    ],
                    // ...
                ],
                'fulfillmentOptionDisplayName' => '<string>',
                'fulfillmentOptionId' => '<string>',
                'fulfillmentOptionName' => '<string>',
                'fulfillmentOptionType' => 'AMAZON_MACHINE_IMAGE|API|CLOUDFORMATION_TEMPLATE|CONTAINER|HELM|EKS_ADD_ON|EC2_IMAGE_BUILDER_COMPONENT|DATA_EXCHANGE|PROFESSIONAL_SERVICES|SAAS|SAGEMAKER_ALGORITHM|SAGEMAKER_MODEL',
                'fulfillmentOptionVersion' => '<string>',
                'operatingSystems' => [
                    [
                        'operatingSystemFamilyName' => '<string>',
                        'operatingSystemName' => '<string>',
                    ],
                    // ...
                ],
                'releaseNotes' => '<string>',
                'usageInstructions' => '<string>',
            ],
            'professionalServicesFulfillmentOption' => [
                'fulfillmentOptionDisplayName' => '<string>',
                'fulfillmentOptionId' => '<string>',
                'fulfillmentOptionType' => 'AMAZON_MACHINE_IMAGE|API|CLOUDFORMATION_TEMPLATE|CONTAINER|HELM|EKS_ADD_ON|EC2_IMAGE_BUILDER_COMPONENT|DATA_EXCHANGE|PROFESSIONAL_SERVICES|SAAS|SAGEMAKER_ALGORITHM|SAGEMAKER_MODEL',
            ],
            'saasFulfillmentOption' => [
                'fulfillmentOptionDisplayName' => '<string>',
                'fulfillmentOptionId' => '<string>',
                'fulfillmentOptionType' => 'AMAZON_MACHINE_IMAGE|API|CLOUDFORMATION_TEMPLATE|CONTAINER|HELM|EKS_ADD_ON|EC2_IMAGE_BUILDER_COMPONENT|DATA_EXCHANGE|PROFESSIONAL_SERVICES|SAAS|SAGEMAKER_ALGORITHM|SAGEMAKER_MODEL',
                'fulfillmentUrl' => '<string>',
                'usageInstructions' => '<string>',
            ],
            'sageMakerAlgorithmFulfillmentOption' => [
                'fulfillmentOptionDisplayName' => '<string>',
                'fulfillmentOptionId' => '<string>',
                'fulfillmentOptionType' => 'AMAZON_MACHINE_IMAGE|API|CLOUDFORMATION_TEMPLATE|CONTAINER|HELM|EKS_ADD_ON|EC2_IMAGE_BUILDER_COMPONENT|DATA_EXCHANGE|PROFESSIONAL_SERVICES|SAAS|SAGEMAKER_ALGORITHM|SAGEMAKER_MODEL',
                'fulfillmentOptionVersion' => '<string>',
                'recommendation' => [
                    'recommendedBatchTransformInstanceType' => '<string>',
                    'recommendedRealtimeInferenceInstanceType' => '<string>',
                    'recommendedTrainingInstanceType' => '<string>',
                ],
                'releaseNotes' => '<string>',
                'usageInstructions' => '<string>',
            ],
            'sageMakerModelFulfillmentOption' => [
                'fulfillmentOptionDisplayName' => '<string>',
                'fulfillmentOptionId' => '<string>',
                'fulfillmentOptionType' => 'AMAZON_MACHINE_IMAGE|API|CLOUDFORMATION_TEMPLATE|CONTAINER|HELM|EKS_ADD_ON|EC2_IMAGE_BUILDER_COMPONENT|DATA_EXCHANGE|PROFESSIONAL_SERVICES|SAAS|SAGEMAKER_ALGORITHM|SAGEMAKER_MODEL',
                'fulfillmentOptionVersion' => '<string>',
                'recommendation' => [
                    'recommendedBatchTransformInstanceType' => '<string>',
                    'recommendedRealtimeInferenceInstanceType' => '<string>',
                ],
                'releaseNotes' => '<string>',
                'usageInstructions' => '<string>',
            ],
        ],
        // ...
    ],
    'nextToken' => '<string>',
]

Result Details

Members
fulfillmentOptions
Required: Yes
Type: Array of FulfillmentOption structures

The fulfillment options available for the product. Each option describes how the buyer can deploy or access the product.

nextToken
Type: string

If nextToken is returned, there are more results available. Make the call again using the returned token to retrieve the next page.

Errors

ThrottlingException:

The request was denied due to request throttling.

AccessDeniedException:

You don't have sufficient access to perform this action.

ValidationException:

The input fails to satisfy the constraints specified by the service.

ResourceNotFoundException:

The specified resource doesn't exist.

InternalServerException:

Unexpected error during processing of the request.

Examples

Example 1: List AMI Fulfillment Options
$result = $client->listFulfillmentOptions([
    'productId' => 'prod-sampleAmiId',
]);

Result syntax:

[
    'fulfillmentOptions' => [
        [
            'amazonMachineImageFulfillmentOption' => [
                'fulfillmentOptionDisplayName' => 'Amazon Machine Image',
                'fulfillmentOptionId' => 'fo-sampleAmiId',
                'fulfillmentOptionName' => '64-bit (x86) Amazon Machine Image (AMI)',
                'fulfillmentOptionType' => 'AMAZON_MACHINE_IMAGE',
                'fulfillmentOptionVersion' => '2.0.20260120.1',
                'operatingSystems' => [
                    [
                        'operatingSystemFamilyName' => 'AMAZONLINUX',
                        'operatingSystemName' => 'AmazonLinux 2.0.20250623.0',
                        'operatingSystemVersion' => '2.0.20250623.0',
                    ],
                ],
                'recommendation' => [
                    'instanceType' => 't3a.medium',
                ],
                'releaseNotes' => 'https://aws.amazon.com/amazon-linux-2/release-notes/',
                'usageInstructions' => 'The Amazon Linux 2 AMI can be launched through the EC2 console's Quick Launch page.',
            ],
        ],
    ],
]
Example 2: List API Fulfillment Options
$result = $client->listFulfillmentOptions([
    'productId' => 'prod-sampleApiId',
]);

Result syntax:

[
    'fulfillmentOptions' => [
        [
            'apiFulfillmentOption' => [
                'awsSupportedServices' => [
                    [
                        'description' => 'A managed service that enables you to develop, deploy, and maintain AI agents seamlessly.',
                        'displayName' => 'Amazon Bedrock AgentCore',
                        'supportedServiceType' => 'BEDROCK_AGENTCORE',
                    ],
                ],
                'fulfillmentOptionDisplayName' => 'API-Based Agents & Tools',
                'fulfillmentOptionId' => 'fo-sampleApiId',
                'fulfillmentOptionType' => 'API',
                'usageInstructions' => 'Please refer to the MCP usage instructions.',
            ],
        ],
    ],
]
Example 3: List CloudFormation Template Fulfillment Options
$result = $client->listFulfillmentOptions([
    'productId' => 'prod-sampleCftId',
]);

Result syntax:

[
    'fulfillmentOptions' => [
        [
            'cloudFormationFulfillmentOption' => [
                'fulfillmentOptionDisplayName' => 'CloudFormation Template',
                'fulfillmentOptionId' => 'fo-sampleCftId',
                'fulfillmentOptionName' => 'Sophos Standalone Firewall for AWS',
                'fulfillmentOptionType' => 'CLOUDFORMATION_TEMPLATE',
                'fulfillmentOptionVersion' => '21.5 MR1',
                'releaseNotes' => 'https://community.sophos.com/products/xg-firewall/b/blog',
                'usageInstructions' => 'You can manage your Sophos XG Firewall on AWS from the Web Interface using HTTPS (TCP port 4444).',
            ],
        ],
    ],
]
Example 4: List Container Fulfillment Options
$result = $client->listFulfillmentOptions([
    'productId' => 'prod-sampleContainerId',
]);

Result syntax:

[
    'fulfillmentOptions' => [
        [
            'containerFulfillmentOption' => [
                'awsSupportedServices' => [
                    [
                        'description' => 'A managed service that enables you to develop, deploy, and maintain AI agents seamlessly.',
                        'displayName' => 'Amazon Bedrock AgentCore',
                        'supportedServiceType' => 'BEDROCK_AGENTCORE',
                    ],
                ],
                'fulfillmentOptionDisplayName' => 'Container Image',
                'fulfillmentOptionId' => 'fo-sampleContainerId',
                'fulfillmentOptionName' => 'New delivery option 1',
                'fulfillmentOptionType' => 'CONTAINER',
                'fulfillmentOptionVersion' => 'Elastic MCP Version 1',
                'operatingSystems' => [
                    [
                        'operatingSystemFamilyName' => 'Linux',
                        'operatingSystemName' => 'Linux',
                    ],
                ],
                'releaseNotes' => 'Version 1 of Elastic MCP Server',
                'usageInstructions' => 'See Elastic MCP GitHub instructions',
            ],
        ],
    ],
]
Example 5: List Helm Fulfillment Options
$result = $client->listFulfillmentOptions([
    'productId' => 'prod-sampleHelmId',
]);

Result syntax:

[
    'fulfillmentOptions' => [
        [
            'helmFulfillmentOption' => [
                'awsSupportedServices' => [
                    [
                        'description' => 'Amazon Elastic Kubernetes Service',
                        'displayName' => 'Amazon EKS',
                        'supportedServiceType' => 'EKS',
                    ],
                ],
                'fulfillmentOptionDisplayName' => 'Helm Chart',
                'fulfillmentOptionId' => 'fo-sampleHelmId',
                'fulfillmentOptionName' => 'NGINX Ingress Controller',
                'fulfillmentOptionType' => 'HELM',
                'fulfillmentOptionVersion' => '1.14.3-0-r03',
                'operatingSystems' => [
                    [
                        'operatingSystemFamilyName' => 'Linux',
                        'operatingSystemName' => 'Linux',
                    ],
                ],
                'releaseNotes' => '* Maintenance release',
                'usageInstructions' => 'helm install nginx-ingress',
            ],
        ],
    ],
]
Example 6: List EKS Add-On Fulfillment Options
$result = $client->listFulfillmentOptions([
    'productId' => 'prod-sampleEksId',
]);

Result syntax:

[
    'fulfillmentOptions' => [
        [
            'eksAddOnFulfillmentOption' => [
                'awsSupportedServices' => [
                    [
                        'description' => 'Amazon Elastic Kubernetes Service',
                        'displayName' => 'Amazon EKS',
                        'supportedServiceType' => 'EKS',
                    ],
                ],
                'fulfillmentOptionDisplayName' => 'Add-on for Amazon EKS',
                'fulfillmentOptionId' => 'fo-sampleEksId',
                'fulfillmentOptionName' => 'Splunk Distribution of the OpenTelemetry Collector Chart',
                'fulfillmentOptionType' => 'EKS_ADD_ON',
                'fulfillmentOptionVersion' => '0.144.0',
                'operatingSystems' => [
                    [
                        'operatingSystemFamilyName' => 'Linux',
                        'operatingSystemName' => 'Linux',
                    ],
                ],
                'releaseNotes' => 'https://github.com/signalfx/splunk-otel-collector-chart/releases/tag/splunk-otel-collector-0.144.0',
                'usageInstructions' => 'https://help.splunk.com/en/splunk-observability-cloud/manage-data/splunk-distribution-of-the-opentelemetry-collector/get-started-with-the-splunk-distribution-of-the-opentelemetry-collector/collector-for-kubernetes/kubernetes-eks-add-on',
            ],
        ],
    ],
]
Example 7: List EC2 Image Builder Component Fulfillment Options
$result = $client->listFulfillmentOptions([
    'productId' => 'prod-sampleImageBuilderId',
]);

Result syntax:

[
    'fulfillmentOptions' => [
        [
            'ec2ImageBuilderComponentFulfillmentOption' => [
                'awsSupportedServices' => [
                    [
                        'description' => 'EC2 Image Builder is a fully managed AWS service. It automates creation, management, and deployment of custom, secure, and up-to-date server images.',
                        'displayName' => 'Amazon EC2 Image Builder',
                        'supportedServiceType' => 'IMAGEBUILDER',
                    ],
                ],
                'fulfillmentOptionDisplayName' => 'EC2 Image Builder Component',
                'fulfillmentOptionId' => 'fo-sampleImageBuilderId',
                'fulfillmentOptionName' => 'Linux v1.2.3',
                'fulfillmentOptionType' => 'EC2_IMAGE_BUILDER_COMPONENT',
                'fulfillmentOptionVersion' => '1.2.3',
                'operatingSystems' => [
                    [
                        'operatingSystemFamilyName' => 'Linux',
                        'operatingSystemName' => 'Linux',
                    ],
                ],
                'releaseNotes' => 'https://github.com/CrowdStrike/aws-ec2-image-builder/releases',
                'usageInstructions' => 'https://github.com/CrowdStrike/aws-ec2-image-builder',
            ],
        ],
    ],
]
Example 8: List Data Exchange Fulfillment Options
$result = $client->listFulfillmentOptions([
    'productId' => 'prod-sampleDataExchangeId',
]);

Result syntax:

[
    'fulfillmentOptions' => [
        [
            'dataExchangeFulfillmentOption' => [
                'dataArtifacts' => [
                    [
                        'dataClassification' => 'NONE',
                        'description' => 'Sample testing dataset.',
                        'resourceArn' => 'arn:aws:dataexchange:us-east-2::DataSet/sample-dataset-id',
                        'resourceType' => 'API_GATEWAY_APIS',
                    ],
                ],
                'fulfillmentOptionDisplayName' => 'Data Exchange',
                'fulfillmentOptionId' => 'fo-sampleDataExchangeId',
                'fulfillmentOptionType' => 'DATA_EXCHANGE',
            ],
        ],
    ],
]
Example 9: List Professional Services Fulfillment Options
$result = $client->listFulfillmentOptions([
    'productId' => 'prod-sampleProServId',
]);

Result syntax:

[
    'fulfillmentOptions' => [
        [
            'professionalServicesFulfillmentOption' => [
                'fulfillmentOptionDisplayName' => 'Professional Services',
                'fulfillmentOptionId' => 'fo-sampleProServId',
                'fulfillmentOptionType' => 'PROFESSIONAL_SERVICES',
            ],
        ],
    ],
]
Example 10: List SaaS Fulfillment Options
$result = $client->listFulfillmentOptions([
    'productId' => 'prod-sampleSaasId',
]);

Result syntax:

[
    'fulfillmentOptions' => [
        [
            'saasFulfillmentOption' => [
                'fulfillmentOptionDisplayName' => 'SaaS',
                'fulfillmentOptionId' => 'fo-sampleSaasId',
                'fulfillmentOptionType' => 'SAAS',
                'fulfillmentUrl' => 'https://example.com/order/SAMPLE123',
            ],
        ],
    ],
]
Example 11: List SageMaker Algorithm Fulfillment Options
$result = $client->listFulfillmentOptions([
    'productId' => 'prod-sampleSmAlgoId',
]);

Result syntax:

[
    'fulfillmentOptions' => [
        [
            'sageMakerAlgorithmFulfillmentOption' => [
                'fulfillmentOptionDisplayName' => 'SageMaker Algorithm',
                'fulfillmentOptionId' => 'fo-sampleSmAlgoId',
                'fulfillmentOptionType' => 'SAGEMAKER_ALGORITHM',
                'fulfillmentOptionVersion' => 'v1.0.0',
                'recommendation' => [
                    'recommendedBatchTransformInstanceType' => 'ml.m5.large',
                    'recommendedRealtimeInferenceInstanceType' => 'ml.m5.large',
                    'recommendedTrainingInstanceType' => 'ml.g4dn.xlarge',
                ],
                'releaseNotes' => 'Bug fixes',
                'usageInstructions' => 'A zip file called train should be provided.',
            ],
        ],
    ],
]
Example 12: List SageMaker Model Fulfillment Options
$result = $client->listFulfillmentOptions([
    'productId' => 'prod-sampleSmModelId',
]);

Result syntax:

[
    'fulfillmentOptions' => [
        [
            'sageMakerModelFulfillmentOption' => [
                'fulfillmentOptionDisplayName' => 'SageMaker Model',
                'fulfillmentOptionId' => 'fo-sampleSmModelId',
                'fulfillmentOptionType' => 'SAGEMAKER_MODEL',
                'fulfillmentOptionVersion' => '1.2.3',
                'recommendation' => [
                    'recommendedBatchTransformInstanceType' => 'ml.g5.12xlarge',
                    'recommendedRealtimeInferenceInstanceType' => 'ml.g5.12xlarge',
                ],
                'releaseNotes' => 'Initial release',
                'usageInstructions' => 'See Input Summary',
            ],
        ],
    ],
]

ListPurchaseOptions

$result = $client->listPurchaseOptions([/* ... */]);
$promise = $client->listPurchaseOptionsAsync([/* ... */]);

Returns the purchase options (offers and offer sets) available to the buyer. You can filter results by product, seller, purchase option type, visibility scope, and availability status.

You must include at least one of the following filters in the request: a PRODUCT_ID filter to specify the product for which to retrieve purchase options, or a VISIBILITY_SCOPE filter to retrieve purchase options by visibility.

Parameter Syntax

$result = $client->listPurchaseOptions([
    'filters' => [
        [
            'filterType' => 'PRODUCT_ID|SELLER_OF_RECORD_PROFILE_ID|PURCHASE_OPTION_TYPE|VISIBILITY_SCOPE|AVAILABILITY_STATUS', // REQUIRED
            'filterValues' => ['<string>', ...], // REQUIRED
        ],
        // ...
    ],
    'maxResults' => <integer>,
    'nextToken' => '<string>',
]);

Parameter Details

Members
filters
Type: Array of PurchaseOptionFilter structures

Filters to narrow the results. Multiple filters are combined with AND logic. Multiple values within the same filter are combined with OR logic.

maxResults
Type: int

The maximum number of results that are returned per call. You can use nextToken to get more results.

nextToken
Type: string

If nextToken is returned, there are more results available. Make the call again using the returned token to retrieve the next page.

Result Syntax

[
    'nextToken' => '<string>',
    'purchaseOptions' => [
        [
            'associatedEntities' => [
                [
                    'offer' => [
                        'offerId' => '<string>',
                        'offerName' => '<string>',
                        'sellerOfRecord' => [
                            'displayName' => '<string>',
                            'sellerProfileId' => '<string>',
                        ],
                    ],
                    'offerSet' => [
                        'offerSetId' => '<string>',
                        'sellerOfRecord' => [
                            'displayName' => '<string>',
                            'sellerProfileId' => '<string>',
                        ],
                    ],
                    'product' => [
                        'manufacturer' => [
                            'displayName' => '<string>',
                            'sellerProfileId' => '<string>',
                        ],
                        'productId' => '<string>',
                        'productName' => '<string>',
                    ],
                ],
                // ...
            ],
            'availableFromTime' => <DateTime>,
            'badges' => [
                [
                    'badgeType' => 'PRIVATE_PRICING|FUTURE_DATED|REPLACEMENT_OFFER',
                    'displayName' => '<string>',
                ],
                // ...
            ],
            'catalog' => '<string>',
            'expirationTime' => <DateTime>,
            'purchaseOptionId' => '<string>',
            'purchaseOptionName' => '<string>',
            'purchaseOptionType' => 'OFFER|OFFERSET',
            'sellerOfRecord' => [
                'displayName' => '<string>',
                'sellerProfileId' => '<string>',
            ],
        ],
        // ...
    ],
]

Result Details

Members
nextToken
Type: string

If nextToken is returned, there are more results available. Make the call again using the returned token to retrieve the next page.

purchaseOptions
Type: Array of PurchaseOptionSummary structures

The purchase options available to the buyer. Each option is either an offer for a single product or an offer set spanning multiple products.

Errors

ThrottlingException:

The request was denied due to request throttling.

AccessDeniedException:

You don't have sufficient access to perform this action.

ValidationException:

The input fails to satisfy the constraints specified by the service.

InternalServerException:

Unexpected error during processing of the request.

Examples

Example 1: Filter by Product ID
$result = $client->listPurchaseOptions([
    'filters' => [
        [
            'filterType' => 'PRODUCT_ID',
            'filterValues' => [
                'prod-sampleOfferId',
            ],
        ],
    ],
]);

Result syntax:

[
    'purchaseOptions' => [
        [
            'associatedEntities' => [
                [
                    'offer' => [
                        'offerId' => 'offer-sampleOfferId',
                        'sellerOfRecord' => [
                            'displayName' => 'sample offer seller',
                            'sellerProfileId' => 'seller-sampleOfferId',
                        ],
                    ],
                    'product' => [
                        'manufacturer' => [
                            'displayName' => 'sample offer seller',
                            'sellerProfileId' => 'seller-sampleOfferId',
                        ],
                        'productId' => 'prod-sampleOfferId',
                        'productName' => 'sample offer product',
                    ],
                ],
            ],
            'availableFromTime' => ,
            'badges' => [
            ],
            'catalog' => 'AWS_MARKETPLACE',
            'purchaseOptionId' => 'offer-sampleOfferId',
            'purchaseOptionName' => 'sample offer',
            'purchaseOptionType' => 'OFFER',
            'sellerOfRecord' => [
                'displayName' => 'sample offer seller',
                'sellerProfileId' => 'seller-sampleOfferId',
            ],
        ],
    ],
]
Example 2: Filter by Seller with Private Offerset
$result = $client->listPurchaseOptions([
    'filters' => [
        [
            'filterType' => 'SELLER_OF_RECORD_PROFILE_ID',
            'filterValues' => [
                'seller-sampleResellerId',
            ],
        ],
        [
            'filterType' => 'PURCHASE_OPTION_TYPE',
            'filterValues' => [
                'OFFERSET',
            ],
        ],
        [
            'filterType' => 'VISIBILITY_SCOPE',
            'filterValues' => [
                'PRIVATE',
            ],
        ],
    ],
]);

Result syntax:

[
    'purchaseOptions' => [
        [
            'associatedEntities' => [
                [
                    'offer' => [
                        'offerId' => 'offer-sampleId1',
                        'sellerOfRecord' => [
                            'displayName' => 'sample reseller',
                            'sellerProfileId' => 'seller-sampleResellerId',
                        ],
                    ],
                    'product' => [
                        'manufacturer' => [
                            'displayName' => 'sample seller name 1',
                            'sellerProfileId' => 'seller-sampleId1',
                        ],
                        'productId' => 'prod-sampleId1',
                        'productName' => 'sample product name 1',
                    ],
                ],
                [
                    'offer' => [
                        'offerId' => 'offer-sampleId2',
                        'sellerOfRecord' => [
                            'displayName' => 'sample reseller',
                            'sellerProfileId' => 'seller-sampleResellerId',
                        ],
                    ],
                    'product' => [
                        'manufacturer' => [
                            'displayName' => 'sample seller name 2',
                            'sellerProfileId' => 'seller-sampleId2',
                        ],
                        'productId' => 'prod-sampleId2',
                        'productName' => 'sample product name 2',
                    ],
                ],
            ],
            'availableFromTime' => ,
            'badges' => [
                [
                    'badgeType' => 'PRIVATE_PRICING',
                    'displayName' => 'Private Pricing',
                ],
            ],
            'catalog' => 'AWS_MARKETPLACE',
            'expirationTime' => ,
            'purchaseOptionId' => 'offerset-sampleId',
            'purchaseOptionName' => 'sample offerset',
            'purchaseOptionType' => 'OFFERSET',
            'sellerOfRecord' => [
                'displayName' => 'sample reseller',
                'sellerProfileId' => 'seller-sampleResellerId',
            ],
        ],
    ],
]

SearchFacets

$result = $client->searchFacets([/* ... */]);
$promise = $client->searchFacetsAsync([/* ... */]);

Returns available facet values for filtering listings, such as categories, pricing models, fulfillment option types, publishers, and customer ratings. Each facet value includes a count of matching listings.

Parameter Syntax

$result = $client->searchFacets([
    'facetTypes' => ['<string>', ...],
    'filters' => [
        [
            'filterType' => 'MIN_AVERAGE_CUSTOMER_RATING|MAX_AVERAGE_CUSTOMER_RATING|CATEGORY|PUBLISHER|FULFILLMENT_OPTION_TYPE|PRICING_MODEL|PRICING_UNIT|DEPLOYED_ON_AWS|NUMBER_OF_PRODUCTS', // REQUIRED
            'filterValues' => ['<string>', ...], // REQUIRED
        ],
        // ...
    ],
    'nextToken' => '<string>',
    'searchText' => '<string>',
]);

Parameter Details

Members
facetTypes
Type: Array of strings

A list of specific facet types to retrieve. If empty or null, all available facets are returned.

filters
Type: Array of SearchFilter structures

Filters to apply before retrieving facets. Multiple filters are combined with AND logic. Multiple values within the same filter are combined with OR logic.

nextToken
Type: string

If nextToken is returned, there are more results available. Make the call again using the returned token to retrieve the next page.

searchText
Type: string

The search query text to filter listings before retrieving facets.

Result Syntax

[
    'listingFacets' => [
        '<SearchFacetType>' => [
            [
                'count' => <integer>,
                'displayName' => '<string>',
                'parent' => '<string>',
                'value' => '<string>',
            ],
            // ...
        ],
        // ...
    ],
    'nextToken' => '<string>',
    'totalResults' => <integer>,
]

Result Details

Members
listingFacets
Required: Yes
Type: Associative array of custom strings keys (SearchFacetType) to ListingFacet structuress

A map of facet types to their corresponding facet values. Each facet value includes a display name, internal value, and count of matching listings.

nextToken
Type: string

If nextToken is returned, there are more results available. Make the call again using the returned token to retrieve the next page.

totalResults
Required: Yes
Type: long (int|float)

The total number of listings matching the search criteria.

Errors

ThrottlingException:

The request was denied due to request throttling.

AccessDeniedException:

You don't have sufficient access to perform this action.

ValidationException:

The input fails to satisfy the constraints specified by the service.

InternalServerException:

Unexpected error during processing of the request.

Examples

Example 1: Get facets for machine learning category

Retrieve available facet values for listings in the machine learning category

$result = $client->searchFacets([
    'facetTypes' => [
        'FULFILLMENT_OPTION_TYPE',
        'PRICING_MODEL',
    ],
    'filters' => [
        [
            'filterType' => 'CATEGORY',
            'filterValues' => [
                'machine-learning',
            ],
        ],
    ],
    'searchText' => 'analytics',
]);

Result syntax:

[
    'listingFacets' => [
        'FULFILLMENT_OPTION_TYPE' => [
            [
                'value' => 'SAAS',
                'count' => 250,
                'displayName' => 'SaaS',
            ],
            [
                'value' => 'CONTAINER',
                'count' => 120,
                'displayName' => 'Container',
            ],
            [
                'value' => 'SAGEMAKER_ALGORITHM',
                'count' => 80,
                'displayName' => 'SageMaker Algorithm',
            ],
        ],
        'PRICING_MODEL' => [
            [
                'value' => 'USAGE',
                'count' => 300,
                'displayName' => 'Usage-Based',
            ],
            [
                'value' => 'FREE',
                'count' => 100,
                'displayName' => 'Free',
            ],
            [
                'value' => 'CONTRACT',
                'count' => 50,
                'displayName' => 'Upfront Commitment',
            ],
        ],
    ],
    'totalResults' => 450,
]
Example 2: Get facets with term and rating range filters

Retrieve facets for security listings with ratings between 3.0 and 5.0 stars

$result = $client->searchFacets([
    'facetTypes' => [
        'PRICING_MODEL',
        'AVERAGE_CUSTOMER_RATING',
    ],
    'filters' => [
        [
            'filterType' => 'CATEGORY',
            'filterValues' => [
                'security',
            ],
        ],
        [
            'filterType' => 'MIN_AVERAGE_CUSTOMER_RATING',
            'filterValues' => [
                '3.0',
            ],
        ],
        [
            'filterType' => 'MAX_AVERAGE_CUSTOMER_RATING',
            'filterValues' => [
                '5.0',
            ],
        ],
    ],
]);

Result syntax:

[
    'listingFacets' => [
        'AVERAGE_CUSTOMER_RATING' => [
            [
                'value' => '5.0',
                'count' => 30,
                'displayName' => '5.0',
            ],
            [
                'value' => '4.0',
                'count' => 35,
                'displayName' => '4.0',
            ],
            [
                'value' => '3.0',
                'count' => 20,
                'displayName' => '3.0',
            ],
        ],
        'PRICING_MODEL' => [
            [
                'value' => 'USAGE',
                'count' => 50,
                'displayName' => 'Usage-Based',
            ],
            [
                'value' => 'FREE',
                'count' => 35,
                'displayName' => 'Free',
            ],
        ],
    ],
    'totalResults' => 85,
]

SearchListings

$result = $client->searchListings([/* ... */]);
$promise = $client->searchListingsAsync([/* ... */]);

Returns a list of product listings based on search criteria and filters. You can search by keyword, filter by category, pricing model, fulfillment type, and other attributes, and sort results by relevance or customer rating.

Parameter Syntax

$result = $client->searchListings([
    'filters' => [
        [
            'filterType' => 'MIN_AVERAGE_CUSTOMER_RATING|MAX_AVERAGE_CUSTOMER_RATING|CATEGORY|PUBLISHER|FULFILLMENT_OPTION_TYPE|PRICING_MODEL|PRICING_UNIT|DEPLOYED_ON_AWS|NUMBER_OF_PRODUCTS', // REQUIRED
            'filterValues' => ['<string>', ...], // REQUIRED
        ],
        // ...
    ],
    'maxResults' => <integer>,
    'nextToken' => '<string>',
    'searchText' => '<string>',
    'sortBy' => 'RELEVANCE|AVERAGE_CUSTOMER_RATING',
    'sortOrder' => 'DESCENDING|ASCENDING',
]);

Parameter Details

Members
filters
Type: Array of SearchFilter structures

Filters to narrow search results. Multiple filters are combined with AND logic. Multiple values within the same filter are combined with OR logic.

maxResults
Type: int

The maximum number of results that are returned per call. You can use nextToken to get more results.

nextToken
Type: string

If nextToken is returned, there are more results available. Make the call again using the returned token to retrieve the next page.

searchText
Type: string

The search query text to find relevant listings.

sortBy
Type: string

The field to sort results by. Valid values are RELEVANCE and AVERAGE_CUSTOMER_RATING.

sortOrder
Type: string

The sort direction. Valid values are DESCENDING and ASCENDING.

Result Syntax

[
    'listingSummaries' => [
        [
            'associatedEntities' => [
                [
                    'product' => [
                        'manufacturer' => [
                            'displayName' => '<string>',
                            'sellerProfileId' => '<string>',
                        ],
                        'productId' => '<string>',
                        'productName' => '<string>',
                    ],
                ],
                // ...
            ],
            'badges' => [
                [
                    'badgeType' => 'AWS_FREE_TIER|FREE_TRIAL|DEPLOYED_ON_AWS|QUICK_LAUNCH|MULTI_PRODUCT',
                    'displayName' => '<string>',
                ],
                // ...
            ],
            'catalog' => '<string>',
            'categories' => [
                [
                    'categoryId' => '<string>',
                    'displayName' => '<string>',
                ],
                // ...
            ],
            'fulfillmentOptionSummaries' => [
                [
                    'displayName' => '<string>',
                    'fulfillmentOptionType' => 'AMAZON_MACHINE_IMAGE|API|CLOUDFORMATION_TEMPLATE|CONTAINER|HELM|EKS_ADD_ON|EC2_IMAGE_BUILDER_COMPONENT|DATA_EXCHANGE|PROFESSIONAL_SERVICES|SAAS|SAGEMAKER_ALGORITHM|SAGEMAKER_MODEL',
                ],
                // ...
            ],
            'listingId' => '<string>',
            'listingName' => '<string>',
            'logoThumbnailUrl' => '<string>',
            'pricingModels' => [
                [
                    'displayName' => '<string>',
                    'pricingModelType' => 'USAGE|CONTRACT|BYOL|FREE',
                ],
                // ...
            ],
            'pricingUnits' => [
                [
                    'displayName' => '<string>',
                    'pricingUnitType' => 'USERS|HOSTS|BANDWIDTH|DATA|TIERS|REQUESTS|UNITS',
                ],
                // ...
            ],
            'publisher' => [
                'displayName' => '<string>',
                'sellerProfileId' => '<string>',
            ],
            'reviewSummary' => [
                'reviewSourceSummaries' => [
                    [
                        'averageRating' => '<string>',
                        'sourceId' => 'AWS_MARKETPLACE',
                        'sourceName' => '<string>',
                        'sourceUrl' => '<string>',
                        'totalReviews' => <integer>,
                    ],
                    // ...
                ],
            ],
            'shortDescription' => '<string>',
        ],
        // ...
    ],
    'nextToken' => '<string>',
    'totalResults' => <integer>,
]

Result Details

Members
listingSummaries
Required: Yes
Type: Array of ListingSummary structures

The listing summaries matching the search criteria. Each summary includes the listing name, description, badges, categories, pricing models, reviews, and associated products.

nextToken
Type: string

If nextToken is returned, there are more results available. Make the call again using the returned token to retrieve the next page.

totalResults
Required: Yes
Type: long (int|float)

The total number of listings matching the search criteria.

Errors

ThrottlingException:

The request was denied due to request throttling.

AccessDeniedException:

You don't have sufficient access to perform this action.

ValidationException:

The input fails to satisfy the constraints specified by the service.

InternalServerException:

Unexpected error during processing of the request.

Examples

Example 1: Search for machine learning listings

Search for SaaS listings in the machine learning category with sorting by relevance

$result = $client->searchListings([
    'filters' => [
        [
            'filterType' => 'CATEGORY',
            'filterValues' => [
                'machine-learning',
            ],
        ],
        [
            'filterType' => 'FULFILLMENT_OPTION_TYPE',
            'filterValues' => [
                'SAAS',
            ],
        ],
    ],
    'maxResults' => 25,
    'searchText' => 'computer vision',
    'sortBy' => 'RELEVANCE',
    'sortOrder' => 'DESCENDING',
]);

Result syntax:

[
    'listingSummaries' => [
        [
            'associatedEntities' => [
                [
                    'product' => [
                        'manufacturer' => [
                            'displayName' => 'sample search seller',
                            'sellerProfileId' => 'seller-sampleSearchId',
                        ],
                        'productId' => 'prod-sampleSearchId',
                        'productName' => 'sample search product',
                    ],
                ],
            ],
            'badges' => [
                [
                    'badgeType' => 'FREE_TRIAL',
                    'displayName' => 'Free Trial',
                ],
            ],
            'catalog' => 'AWSMarketplace',
            'categories' => [
                [
                    'categoryId' => 'machine-learning',
                    'displayName' => 'Machine Learning',
                ],
            ],
            'fulfillmentOptionSummaries' => [
                [
                    'displayName' => 'SaaS',
                    'fulfillmentOptionType' => 'SAAS',
                ],
            ],
            'listingId' => 'prodview-sampleSearchId',
            'listingName' => 'sample search listing',
            'logoThumbnailUrl' => 'https://awsmp-logos.s3.amazonaws.com/product-logos/ai-vision-pro.png',
            'pricingModels' => [
                [
                    'displayName' => 'Usage',
                    'pricingModelType' => 'USAGE',
                ],
            ],
            'pricingUnits' => [
                [
                    'displayName' => 'Requests',
                    'pricingUnitType' => 'REQUESTS',
                ],
            ],
            'publisher' => [
                'displayName' => 'sample search seller',
                'sellerProfileId' => 'seller-sampleSearchId',
            ],
            'reviewSummary' => [
                'reviewSourceSummaries' => [
                    [
                        'averageRating' => '4.5',
                        'sourceId' => 'AWS_MARKETPLACE',
                        'sourceName' => 'AWS Marketplace',
                        'totalReviews' => 100,
                    ],
                ],
            ],
            'shortDescription' => 'Advanced computer vision solution for object detection and classification.',
        ],
    ],
    'nextToken' => 'eyJsYXN0RXZhbHVhdGVkS2V5Ijp7Imxpc3RpbmdJZCI6InByb2R2aWV3LXNhbXBsZVNlYXJjaElkIn19',
    'totalResults' => 1250,
]

Shapes

AccessDeniedException

Description

You don't have sufficient access to perform this action.

Members
message
Type: string

AmazonMachineImageFulfillmentOption

Description

Describes an Amazon Machine Image (AMI) fulfillment option, including version details, supported operating systems, and recommended instance types.

Members
fulfillmentOptionDisplayName
Required: Yes
Type: string

A human-readable name for the fulfillment option type.

fulfillmentOptionId
Required: Yes
Type: string

The unique identifier of the fulfillment option.

fulfillmentOptionName
Required: Yes
Type: string

The display name of the fulfillment option version.

fulfillmentOptionType
Required: Yes
Type: string

The category of the fulfillment option.

fulfillmentOptionVersion
Type: string

The version identifier of the fulfillment option.

operatingSystems
Required: Yes
Type: Array of AmazonMachineImageOperatingSystem structures

The operating systems supported by this AMI.

recommendation

Recommended instance types for running this AMI.

releaseNotes
Type: string

Release notes describing changes in this version of the fulfillment option.

usageInstructions
Type: string

Instructions on how to deploy and use this fulfillment option.

AmazonMachineImageOperatingSystem

Description

Describes an operating system supported by an AMI fulfillment option.

Members
operatingSystemFamilyName
Required: Yes
Type: string

The operating system family, such as Linux or Windows.

operatingSystemName
Required: Yes
Type: string

The specific operating system name, such as Amazon Linux 2 or Windows Server 2022.

operatingSystemVersion
Type: string

The version of the operating system.

AmazonMachineImageRecommendation

Description

Recommended instance types for running an AMI fulfillment option.

Members
instanceType
Required: Yes
Type: string

The recommended EC2 instance type for this AMI.

ApiFulfillmentOption

Description

Describes an API-based fulfillment option, where the product is accessed through an API integration.

Members
awsSupportedServices
Required: Yes
Type: Array of AwsSupportedService structures

The AWS services supported by this API integration.

fulfillmentOptionDisplayName
Required: Yes
Type: string

A human-readable name for the fulfillment option type.

fulfillmentOptionId
Required: Yes
Type: string

The unique identifier of the fulfillment option.

fulfillmentOptionType
Required: Yes
Type: string

The category of the fulfillment option.

usageInstructions
Type: string

Instructions on how to integrate with and use this API.

AwsSupportedService

Description

Describes an AWS service supported by a fulfillment option.

Members
description
Required: Yes
Type: string

A description of the supported service.

displayName
Required: Yes
Type: string

The human-readable name of the supported service.

supportedServiceType
Required: Yes
Type: string

The machine-readable identifier of the supported service.

ByolPricingTerm

Description

Defines a Bring Your Own License (BYOL) pricing term, where buyers use their existing license for the product.

Members
id
Required: Yes
Type: string

The unique identifier of the term.

type
Required: Yes
Type: string

The category of the term.

Category

Description

A category used to classify a listing or product into a logical group.

Members
categoryId
Required: Yes
Type: string

The machine-readable identifier of the category.

displayName
Required: Yes
Type: string

The human-readable name of the category.

CloudFormationFulfillmentOption

Description

Describes an AWS CloudFormation template fulfillment option for infrastructure deployment.

Members
fulfillmentOptionDisplayName
Required: Yes
Type: string

A human-readable name for the fulfillment option type.

fulfillmentOptionId
Required: Yes
Type: string

The unique identifier of the fulfillment option.

fulfillmentOptionName
Required: Yes
Type: string

The display name of the fulfillment option version.

fulfillmentOptionType
Required: Yes
Type: string

The category of the fulfillment option.

fulfillmentOptionVersion
Type: string

The version identifier of the fulfillment option.

releaseNotes
Type: string

Release notes describing changes in this version of the fulfillment option.

usageInstructions
Type: string

Instructions on how to deploy and use this CloudFormation template.

ConfigurableUpfrontPricingTerm

Description

Defines a configurable upfront pricing term with selectable rate cards, where buyers choose from predefined pricing configurations.

Members
currencyCode
Required: Yes
Type: string

Defines the currency for the prices in this term.

id
Required: Yes
Type: string

The unique identifier of the term.

rateCards
Type: Array of ConfigurableUpfrontRateCardItem structures

The rate cards available for selection, each with a selector, constraints, and per-unit rates.

type
Required: Yes
Type: string

The category of the term.

ConfigurableUpfrontRateCardItem

Description

A rate card item within a configurable upfront pricing term, including a selector for choosing the configuration and per-unit rates.

Members
constraints
Required: Yes
Type: Constraints structure

Constraints on how the buyer can configure this rate card, such as whether multiple dimensions can be selected.

rateCard
Required: Yes
Type: Array of RateCardItem structures

The per-unit rates for this configuration.

selector
Required: Yes
Type: Selector structure

The selector criteria for this rate card, such as duration.

Constraints

Description

Constraints that control how a buyer can configure a rate card.

Members
multipleDimensionSelection
Required: Yes
Type: string

Whether the buyer can select multiple dimensions. Values are Allowed or Disallowed.

quantityConfiguration
Required: Yes
Type: string

Whether the buyer can configure quantities. Values are Allowed or Disallowed.

ContainerFulfillmentOption

Description

Describes a container image fulfillment option for container-based deployment.

Members
awsSupportedServices
Type: Array of AwsSupportedService structures

The AWS services supported by this container deployment.

fulfillmentOptionDisplayName
Required: Yes
Type: string

A human-readable name for the fulfillment option type.

fulfillmentOptionId
Required: Yes
Type: string

The unique identifier of the fulfillment option.

fulfillmentOptionName
Required: Yes
Type: string

The display name of the fulfillment option version.

fulfillmentOptionType
Required: Yes
Type: string

The category of the fulfillment option.

fulfillmentOptionVersion
Type: string

The version identifier of the fulfillment option.

operatingSystems
Type: Array of ContainerOperatingSystem structures

The operating systems supported by this container image.

releaseNotes
Type: string

Release notes describing changes in this version of the fulfillment option.

usageInstructions
Type: string

Instructions on how to deploy and use this container image.

ContainerOperatingSystem

Description

Describes an operating system supported by a container fulfillment option.

Members
operatingSystemFamilyName
Required: Yes
Type: string

The operating system family, such as Linux.

operatingSystemName
Required: Yes
Type: string

The specific operating system name.

DataArtifact

Description

Describes a data artifact within a Data Exchange fulfillment option.

Members
dataClassification
Required: Yes
Type: string

The classification of sensitive data contained in the dataset.

description
Type: string

A description of the data artifact.

resourceArn
Type: string

The Amazon Resource Name (ARN) of the data artifact.

resourceType
Required: Yes
Type: string

The type of the data artifact resource.

DataExchangeFulfillmentOption

Description

Describes an AWS Data Exchange fulfillment option for data set delivery.

Members
dataArtifacts
Type: Array of DataArtifact structures

The data artifacts included in this Data Exchange fulfillment option.

fulfillmentOptionDisplayName
Required: Yes
Type: string

A human-readable name for the fulfillment option type.

fulfillmentOptionId
Required: Yes
Type: string

The unique identifier of the fulfillment option.

fulfillmentOptionType
Required: Yes
Type: string

The category of the fulfillment option.

DimensionLabel

Description

A label used to group or categorize pricing dimensions, such as by region or SageMaker option.

Members
displayName
Type: string

The human-readable display name of the label.

labelType
Required: Yes
Type: string

The type of the dimension label, such as Region or SagemakerOption.

labelValue
Required: Yes
Type: string

The value used to group dimensions together.

DocumentItem

Description

A legal document associated with a legal term, such as a EULA or data subscription agreement.

Members
type
Required: Yes
Type: string

The category of the legal document, such as StandardEula or CustomEula.

url
Required: Yes
Type: string

The URL where the legal document can be accessed.

version
Type: string

The version of the standard contract, if applicable.

Ec2ImageBuilderComponentFulfillmentOption

Description

Describes an EC2 Image Builder component fulfillment option.

Members
awsSupportedServices
Type: Array of AwsSupportedService structures

The AWS services supported by this EC2 Image Builder component.

fulfillmentOptionDisplayName
Required: Yes
Type: string

A human-readable name for the fulfillment option type.

fulfillmentOptionId
Required: Yes
Type: string

The unique identifier of the fulfillment option.

fulfillmentOptionName
Required: Yes
Type: string

The display name of the fulfillment option version.

fulfillmentOptionType
Required: Yes
Type: string

The category of the fulfillment option.

fulfillmentOptionVersion
Type: string

The version identifier of the fulfillment option.

operatingSystems
Type: Array of ContainerOperatingSystem structures

The operating systems supported by this EC2 Image Builder component.

releaseNotes
Type: string

Release notes describing changes in this version of the fulfillment option.

usageInstructions
Type: string

Instructions on how to deploy and use this EC2 Image Builder component.

EksAddOnFulfillmentOption

Description

Describes an Amazon EKS add-on fulfillment option.

Members
awsSupportedServices
Type: Array of AwsSupportedService structures

The AWS services supported by this EKS add-on.

fulfillmentOptionDisplayName
Required: Yes
Type: string

A human-readable name for the fulfillment option type.

fulfillmentOptionId
Required: Yes
Type: string

The unique identifier of the fulfillment option.

fulfillmentOptionName
Required: Yes
Type: string

The display name of the fulfillment option version.

fulfillmentOptionType
Required: Yes
Type: string

The category of the fulfillment option.

fulfillmentOptionVersion
Type: string

The version identifier of the fulfillment option.

operatingSystems
Type: Array of EksAddOnOperatingSystem structures

The operating systems supported by this EKS add-on.

releaseNotes
Type: string

Release notes describing changes in this version of the fulfillment option.

usageInstructions
Type: string

Instructions on how to deploy and use this EKS add-on.

EksAddOnOperatingSystem

Description

Describes an operating system supported by an EKS add-on fulfillment option.

Members
operatingSystemFamilyName
Required: Yes
Type: string

The operating system family, such as Linux.

operatingSystemName
Required: Yes
Type: string

The specific operating system name.

FixedUpfrontPricingTerm

Description

Defines a fixed upfront pricing term with a pre-paid amount and granted entitlements.

Members
currencyCode
Required: Yes
Type: string

Defines the currency for the prices in this term.

duration
Type: string

The duration of the fixed pricing term, in ISO 8601 format.

grants
Required: Yes
Type: Array of GrantItem structures

The entitlements granted to the buyer as part of this term.

id
Required: Yes
Type: string

The unique identifier of the term.

price
Required: Yes
Type: string

The price charged upfront for this term.

type
Required: Yes
Type: string

The category of the term.

FreeTrialPricingTerm

Description

Defines a free trial pricing term that enables customers to try the product before purchasing.

Members
duration
Type: string

The duration of the free trial period.

grants
Required: Yes
Type: Array of GrantItem structures

The entitlements granted to the buyer during the free trial.

id
Required: Yes
Type: string

The unique identifier of the term.

type
Required: Yes
Type: string

The category of the term.

FulfillmentOption

Description

Describes a fulfillment option for a product. Each element contains exactly one fulfillment option type.

Members
amazonMachineImageFulfillmentOption

An Amazon Machine Image (AMI) fulfillment option for EC2 deployment.

apiFulfillmentOption
Type: ApiFulfillmentOption structure

An API-based fulfillment option for programmatic integration.

cloudFormationFulfillmentOption

An AWS CloudFormation template fulfillment option for infrastructure deployment.

containerFulfillmentOption
Type: ContainerFulfillmentOption structure

A container image fulfillment option for container-based deployment.

dataExchangeFulfillmentOption

An AWS Data Exchange fulfillment option for data set delivery.

ec2ImageBuilderComponentFulfillmentOption

An EC2 Image Builder component fulfillment option.

eksAddOnFulfillmentOption
Type: EksAddOnFulfillmentOption structure

An Amazon EKS add-on fulfillment option.

helmFulfillmentOption
Type: HelmFulfillmentOption structure

A Helm chart fulfillment option for Kubernetes deployment.

professionalServicesFulfillmentOption

A professional services fulfillment option.

saasFulfillmentOption
Type: SaasFulfillmentOption structure

A Software as a Service (SaaS) fulfillment option.

sageMakerAlgorithmFulfillmentOption

An Amazon SageMaker algorithm fulfillment option.

sageMakerModelFulfillmentOption

An Amazon SageMaker model fulfillment option.

FulfillmentOptionSummary

Description

A summary of a fulfillment option available for deploying or accessing a listing or product.

Members
displayName
Required: Yes
Type: string

The human-readable name of the fulfillment option type.

fulfillmentOptionType
Required: Yes
Type: string

The machine-readable type of the fulfillment option, such as SAAS or AMAZON_MACHINE_IMAGE.

GrantItem

Description

An entitlement granted to the buyer as part of a pricing term.

Members
description
Type: string

A description of the entitlement.

dimensionKey
Required: Yes
Type: string

The machine-readable key identifying the entitlement dimension.

dimensionLabels
Type: Array of DimensionLabel structures

Labels used to categorize this entitlement, such as by region.

displayName
Required: Yes
Type: string

The human-readable name of the entitlement dimension.

maxQuantity
Type: int

The maximum quantity of the entitlement that can be granted.

unit
Required: Yes
Type: string

The unit of measurement for the entitlement.

HelmFulfillmentOption

Description

Describes a Helm chart fulfillment option for Kubernetes deployment.

Members
awsSupportedServices
Type: Array of AwsSupportedService structures

The AWS services supported by this Helm chart deployment.

fulfillmentOptionDisplayName
Required: Yes
Type: string

A human-readable name for the fulfillment option type.

fulfillmentOptionId
Required: Yes
Type: string

The unique identifier of the fulfillment option.

fulfillmentOptionName
Required: Yes
Type: string

The display name of the fulfillment option version.

fulfillmentOptionType
Required: Yes
Type: string

The category of the fulfillment option.

fulfillmentOptionVersion
Type: string

The version identifier of the fulfillment option.

operatingSystems
Type: Array of HelmOperatingSystem structures

The operating systems supported by this Helm chart.

releaseNotes
Type: string

Release notes describing changes in this version of the fulfillment option.

usageInstructions
Type: string

Instructions on how to deploy and use this Helm chart.

HelmOperatingSystem

Description

Describes an operating system supported by a Helm chart fulfillment option.

Members
operatingSystemFamilyName
Required: Yes
Type: string

The operating system family, such as Linux.

operatingSystemName
Required: Yes
Type: string

The specific operating system name.

InternalServerException

Description

Unexpected error during processing of the request.

Members
message
Type: string

LegalTerm

Description

Defines a legal term containing documents proposed to buyers, such as EULAs and data subscription agreements.

Members
documents
Required: Yes
Type: Array of DocumentItem structures

The legal documents proposed to the buyer as part of this term.

id
Required: Yes
Type: string

The unique identifier of the term.

type
Required: Yes
Type: string

The category of the term.

ListingAssociatedEntity

Description

A product and offer associated with a listing.

Members
offer
Type: OfferInformation structure

Information about the default offer associated with the listing.

product
Type: ProductInformation structure

Information about the product associated with the listing.

ListingBadge

Description

A badge indicating a special attribute of a listing, such as free tier eligibility or Quick Launch support.

Members
badgeType
Required: Yes
Type: string

The machine-readable type of the badge.

displayName
Required: Yes
Type: string

The human-readable name of the badge.

ListingFacet

Description

A facet value with display information and a count of matching listings. Used to build filter and browse experiences.

Members
count
Required: Yes
Type: long (int|float)

The number of listings matching this facet value.

displayName
Required: Yes
Type: string

The human-readable name of the facet value, suitable for display in a user interface.

parent
Type: string

The parent facet value for hierarchical facets, such as subcategories.

value
Required: Yes
Type: string

The internal value used for filtering when passed back in a search filter.

ListingSummary

Description

Summary information about a listing returned by search operations, including the listing name, description, badges, categories, pricing models, reviews, and associated products.

Members
associatedEntities
Required: Yes
Type: Array of ListingSummaryAssociatedEntity structures

The products associated with this listing.

badges
Required: Yes
Type: Array of ListingBadge structures

Badges indicating special attributes of the listing.

catalog
Required: Yes
Type: string

The name of the catalog that the listing belongs to.

categories
Required: Yes
Type: Array of Category structures

The categories used to classify this listing into logical groups.

fulfillmentOptionSummaries
Required: Yes
Type: Array of FulfillmentOptionSummary structures

A summary of fulfillment options available for the listing.

listingId
Required: Yes
Type: string

The unique identifier of the listing.

listingName
Required: Yes
Type: string

The human-readable display name of the listing.

logoThumbnailUrl
Required: Yes
Type: string

The URL of the logo thumbnail image for the listing.

pricingModels
Required: Yes
Type: Array of PricingModel structures

The pricing models for offers associated with this listing.

pricingUnits
Required: Yes
Type: Array of PricingUnit structures

The pricing units that define the billing dimensions for offers associated with this listing.

publisher
Required: Yes
Type: SellerInformation structure

The entity who created and published the listing.

reviewSummary
Required: Yes
Type: ReviewSummary structure

A summary of customer reviews for the listing.

shortDescription
Required: Yes
Type: string

A 1–3 sentence summary describing the key aspects of the listing.

ListingSummaryAssociatedEntity

Description

A product associated with a listing summary.

Members
product
Type: ProductInformation structure

Information about the associated product.

OfferAssociatedEntity

Description

A product and optional offer set associated with an offer.

Members
offerSet
Type: OfferSetInformation structure

Information about the offer set, if the offer is part of a bundled offer set.

product
Required: Yes
Type: ProductInformation structure

Information about the product associated with the offer.

OfferInformation

Description

Summary information about an offer, including the offer identifier, name, and seller of record.

Members
offerId
Required: Yes
Type: string

The unique identifier of the offer.

offerName
Type: string

The display name of the offer.

sellerOfRecord
Required: Yes
Type: SellerInformation structure

The entity responsible for selling the product under this offer.

OfferSetAssociatedEntity

Description

A product and offer associated with an offer set.

Members
offer
Required: Yes
Type: OfferInformation structure

Information about the offer associated with the offer set.

product
Required: Yes
Type: ProductInformation structure

Information about the product associated with the offer set.

OfferSetInformation

Description

Summary information about an offer set, including the identifier and seller of record.

Members
offerSetId
Required: Yes
Type: string

The unique identifier of the offer set.

sellerOfRecord
Required: Yes
Type: SellerInformation structure

The entity responsible for selling the products under this offer set.

OfferTerm

Description

A term attached to an offer. Each element contains exactly one term type, such as a pricing term, legal term, or payment schedule term.

Members
byolPricingTerm
Type: ByolPricingTerm structure

Defines a Bring Your Own License (BYOL) pricing term, where buyers use their existing license for the product.

configurableUpfrontPricingTerm

Defines a configurable upfront pricing term with selectable rate cards, where buyers choose from predefined pricing configurations.

fixedUpfrontPricingTerm
Type: FixedUpfrontPricingTerm structure

Defines a fixed upfront pricing term with a pre-paid amount and granted entitlements.

freeTrialPricingTerm
Type: FreeTrialPricingTerm structure

Defines a free trial pricing term that enables customers to try the product before purchasing.

legalTerm
Type: LegalTerm structure

Defines a legal term containing documents proposed to buyers, such as EULAs and data subscription agreements.

paymentScheduleTerm
Type: PaymentScheduleTerm structure

Defines a payment schedule term with installment payments at specified dates.

recurringPaymentTerm
Type: RecurringPaymentTerm structure

Defines a recurring payment term with fixed charges at regular billing intervals.

renewalTerm
Type: RenewalTerm structure

Defines a renewal term that enables automatic agreement renewal.

supportTerm
Type: SupportTerm structure

Defines a support term that includes the refund policy for the offer.

usageBasedPricingTerm
Type: UsageBasedPricingTerm structure

Defines a usage-based pricing term (typically pay-as-you-go), where buyers are charged based on product usage.

validityTerm
Type: ValidityTerm structure

Defines a validity term that specifies the duration or date range of an agreement.

variablePaymentTerm
Type: VariablePaymentTerm structure

Defines a variable payment term with a maximum total charge amount.

PaymentScheduleTerm

Description

Defines a payment schedule term with installment payments at specified dates.

Members
currencyCode
Required: Yes
Type: string

Defines the currency for the prices in this term.

id
Required: Yes
Type: string

The unique identifier of the term.

schedule
Required: Yes
Type: Array of ScheduleItem structures

The payment schedule installments, each with a charge date and amount.

type
Required: Yes
Type: string

The category of the term.

PricingModel

Description

A pricing model that determines how buyers are charged for a listing, such as usage-based, contract, BYOL, or free.

Members
displayName
Required: Yes
Type: string

The human-readable name of the pricing model.

pricingModelType
Required: Yes
Type: string

The machine-readable type of the pricing model.

PricingUnit

Description

A pricing unit that defines the billing dimension for a listing, such as users, hosts, bandwidth, or data.

Members
displayName
Required: Yes
Type: string

The human-readable name of the pricing unit.

pricingUnitType
Required: Yes
Type: string

The machine-readable type of the pricing unit.

ProductInformation

Description

Summary information about a product, including the identifier, name, and manufacturer.

Members
manufacturer
Required: Yes
Type: SellerInformation structure

The entity who manufactured the product.

productId
Required: Yes
Type: string

The unique identifier of the product.

productName
Required: Yes
Type: string

The human-readable display name of the product.

ProfessionalServicesFulfillmentOption

Description

Describes a professional services fulfillment option.

Members
fulfillmentOptionDisplayName
Required: Yes
Type: string

A human-readable name for the fulfillment option type.

fulfillmentOptionId
Required: Yes
Type: string

The unique identifier of the fulfillment option.

fulfillmentOptionType
Required: Yes
Type: string

The category of the fulfillment option.

PromotionalEmbeddedImage

Description

An embedded promotional image for a product.

Members
description
Type: string

An optional description of the image.

title
Required: Yes
Type: string

The title displayed when hovering over the image.

url
Required: Yes
Type: string

The URL of the image file.

PromotionalEmbeddedVideo

Description

An embedded promotional video for a product.

Members
description
Type: string

An optional description of the video.

preview
Required: Yes
Type: string

The URL of the high-resolution preview image for the video.

thumbnail
Required: Yes
Type: string

The URL of the thumbnail image for the video.

title
Required: Yes
Type: string

The title displayed when hovering over the video.

url
Required: Yes
Type: string

The URL of the video file.

PromotionalMedia

Description

Embedded promotional media for a product, such as images or videos. Each element contains exactly one media type.

Members
embeddedImage
Type: PromotionalEmbeddedImage structure

An embedded promotional image for a product.

embeddedVideo
Type: PromotionalEmbeddedVideo structure

An embedded promotional video for a product.

PurchaseOptionAssociatedEntity

Description

A product, offer, and optional offer set associated with a purchase option.

Members
offer
Required: Yes
Type: OfferInformation structure

Information about the offer associated with the purchase option.

offerSet
Type: OfferSetInformation structure

Information about the offer set, if the purchase option is part of a bundled offer set.

product
Required: Yes
Type: ProductInformation structure

Information about the product associated with the purchase option.

PurchaseOptionBadge

Description

A badge indicating a special attribute of a purchase option, such as private pricing or future dated.

Members
badgeType
Required: Yes
Type: string

The machine-readable type of the badge.

displayName
Required: Yes
Type: string

The human-readable name of the badge.

PurchaseOptionFilter

Description

A filter used to narrow purchase option results by product, seller, type, visibility, or availability.

Members
filterType
Required: Yes
Type: string

The type of filter to apply, such as PRODUCT_ID, VISIBILITY_SCOPE, or PURCHASE_OPTION_TYPE.

filterValues
Required: Yes
Type: Array of strings

The values to filter by. Multiple values within the same filter are combined with OR logic.

PurchaseOptionSummary

Description

Summary information about a purchase option (offer or offer set) available to the buyer, including the seller, badges, and associated products.

Members
associatedEntities
Required: Yes
Type: Array of PurchaseOptionAssociatedEntity structures

The products, offers, and offer sets associated with this purchase option.

availableFromTime
Type: timestamp (string|DateTime or anything parsable by strtotime)

The date and time when the purchase option became available to the buyer.

badges
Type: Array of PurchaseOptionBadge structures

Badges indicating special attributes of the purchase option, such as private pricing or future dated.

catalog
Required: Yes
Type: string

The name of the catalog that the purchase option belongs to.

expirationTime
Type: timestamp (string|DateTime or anything parsable by strtotime)

The date and time when the purchase option expires and is no longer available for procurement.

purchaseOptionId
Required: Yes
Type: string

The unique identifier of the purchase option.

purchaseOptionName
Type: string

The display name of the purchase option.

purchaseOptionType
Required: Yes
Type: string

The type of purchase option. Values are OFFER for a single-product offer or OFFERSET for a bundled offer set.

sellerOfRecord
Required: Yes
Type: SellerInformation structure

The entity responsible for selling the product under this purchase option.

RateCardItem

Description

A per-unit rate within a rate card, defining the price for a specific dimension.

Members
description
Type: string

A description of the dimension being priced.

dimensionKey
Required: Yes
Type: string

The machine-readable key identifying the dimension being priced.

dimensionLabels
Type: Array of DimensionLabel structures

Labels used to categorize this dimension, such as by region.

displayName
Required: Yes
Type: string

The human-readable name of the dimension.

price
Required: Yes
Type: string

The price per unit for the dimension.

unit
Required: Yes
Type: string

The unit of measurement for the dimension.

RecurringPaymentTerm

Description

Defines a recurring payment term with fixed charges at regular billing intervals.

Members
billingPeriod
Required: Yes
Type: string

The billing period frequency, such as Monthly.

currencyCode
Required: Yes
Type: string

Defines the currency for the prices in this term.

id
Required: Yes
Type: string

The unique identifier of the term.

price
Required: Yes
Type: string

The amount charged each billing period.

type
Required: Yes
Type: string

The category of the term.

RenewalTerm

Description

Defines a renewal term that enables automatic agreement renewal.

Members
id
Required: Yes
Type: string

The unique identifier of the term.

type
Required: Yes
Type: string

The category of the term.

Resource

Description

A resource that provides supplementary information about a product, such as documentation links, support contacts, or usage instructions.

Members
contentType
Required: Yes
Type: string

The format of the resource content, such as a URL, email address, or text.

displayName
Type: string

An optional human-readable label for the resource.

resourceType
Required: Yes
Type: string

The category of the resource, such as manufacturer support or usage instructions.

value
Required: Yes
Type: string

The resource content. Interpretation depends on the content type.

ResourceNotFoundException

Description

The specified resource doesn't exist.

Members
message
Type: string

ReviewSourceSummary

Description

A review summary from a specific source, including the average rating and total review count.

Members
averageRating
Required: Yes
Type: string

The average rating across all reviews from this source.

sourceId
Required: Yes
Type: string

The machine-readable identifier of the review source.

sourceName
Required: Yes
Type: string

The name of the review source, such as AWS Marketplace.

sourceUrl
Type: string

The URL where the reviews can be accessed at the source.

totalReviews
Required: Yes
Type: long (int|float)

The total number of reviews available from this source.

ReviewSummary

Description

A summary of customer reviews available for a listing, aggregated by review source.

Members
reviewSourceSummaries
Required: Yes
Type: Array of ReviewSourceSummary structures

Review summaries from different sources, such as AWS Marketplace.

SaasFulfillmentOption

Description

Describes a Software as a Service (SaaS) fulfillment option.

Members
fulfillmentOptionDisplayName
Required: Yes
Type: string

A human-readable name for the fulfillment option type.

fulfillmentOptionId
Required: Yes
Type: string

The unique identifier of the fulfillment option.

fulfillmentOptionType
Required: Yes
Type: string

The category of the fulfillment option.

fulfillmentUrl
Type: string

The URL of the seller's software registration landing page.

usageInstructions
Type: string

Instructions on how to access and use this SaaS product.

SageMakerAlgorithmFulfillmentOption

Description

Describes an Amazon SageMaker algorithm fulfillment option, including version details and recommended instance types.

Members
fulfillmentOptionDisplayName
Required: Yes
Type: string

A human-readable name for the fulfillment option type.

fulfillmentOptionId
Required: Yes
Type: string

The unique identifier of the fulfillment option.

fulfillmentOptionType
Required: Yes
Type: string

The category of the fulfillment option.

fulfillmentOptionVersion
Type: string

The version identifier of the fulfillment option.

recommendation

Recommended instance types for training and inference with this algorithm.

releaseNotes
Type: string

Release notes describing changes in this version of the fulfillment option.

usageInstructions
Type: string

Instructions on how to use this SageMaker algorithm.

SageMakerAlgorithmRecommendation

Description

Recommended instance types for training and inference with a SageMaker algorithm.

Members
recommendedBatchTransformInstanceType
Required: Yes
Type: string

The recommended instance type for batch inference.

recommendedRealtimeInferenceInstanceType
Type: string

The recommended instance type for real-time inference.

recommendedTrainingInstanceType
Required: Yes
Type: string

The recommended instance type for training.

SageMakerModelFulfillmentOption

Description

Describes an Amazon SageMaker model fulfillment option, including version details and recommended instance types.

Members
fulfillmentOptionDisplayName
Required: Yes
Type: string

A human-readable name for the fulfillment option type.

fulfillmentOptionId
Required: Yes
Type: string

The unique identifier of the fulfillment option.

fulfillmentOptionType
Required: Yes
Type: string

The category of the fulfillment option.

fulfillmentOptionVersion
Type: string

The version identifier of the fulfillment option.

recommendation

Recommended instance types for inference with this model.

releaseNotes
Type: string

Release notes describing changes in this version of the fulfillment option.

usageInstructions
Type: string

Instructions on how to use this SageMaker model.

SageMakerModelRecommendation

Description

Recommended instance types for inference with a SageMaker model.

Members
recommendedBatchTransformInstanceType
Required: Yes
Type: string

The recommended instance type for batch inference.

recommendedRealtimeInferenceInstanceType
Type: string

The recommended instance type for real-time inference.

ScheduleItem

Description

A payment installment within a payment schedule term.

Members
chargeAmount
Required: Yes
Type: string

The amount to be charged on the charge date.

chargeDate
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The date when the payment is due.

SearchFilter

Description

A filter used to narrow search results by attribute, such as category, pricing model, or fulfillment type.

Members
filterType
Required: Yes
Type: string

The type of filter to apply.

filterValues
Required: Yes
Type: Array of strings

The values to filter by. Term filters accept multiple values (OR logic). Range filters (MIN/MAX_AVERAGE_CUSTOMER_RATING) accept a single value between 0.0 and 5.0.

Selector

Description

A selector used to choose a specific configuration within a configurable upfront rate card.

Members
type
Required: Yes
Type: string

The category of the selector, such as Duration.

value
Required: Yes
Type: string

The value of the selector.

SellerEngagement

Description

An engagement option available to potential buyers of a product, such as requesting a private offer or a demo.

Members
contentType
Required: Yes
Type: string

The format of the engagement value, such as a URL.

engagementType
Required: Yes
Type: string

The type of engagement, such as REQUEST_FOR_PRIVATE_OFFER or REQUEST_FOR_DEMO.

value
Required: Yes
Type: string

The engagement value, such as a URL to the engagement form.

SellerInformation

Description

Information about a seller, including the profile identifier and display name.

Members
displayName
Required: Yes
Type: string

The human-readable name of the seller.

sellerProfileId
Required: Yes
Type: string

The unique identifier of the seller profile.

SupportTerm

Description

Defines a support term that includes the refund policy for the offer.

Members
id
Required: Yes
Type: string

The unique identifier of the term.

refundPolicy
Required: Yes
Type: string

The refund policy description for the offer.

type
Required: Yes
Type: string

The category of the term.

ThrottlingException

Description

The request was denied due to request throttling.

Members
message
Type: string

UsageBasedPricingTerm

Description

Defines a usage-based pricing term (typically pay-as-you-go), where buyers are charged based on product usage.

Members
currencyCode
Required: Yes
Type: string

Defines the currency for the prices in this term.

id
Required: Yes
Type: string

The unique identifier of the term.

rateCards
Required: Yes
Type: Array of UsageBasedRateCardItem structures

The rate cards containing per-unit rates for usage-based pricing.

type
Required: Yes
Type: string

The category of the term.

UsageBasedRateCardItem

Description

A rate card within a usage-based pricing term, containing per-unit rates.

Members
rateCard
Required: Yes
Type: Array of RateCardItem structures

The per-unit rates for this usage-based rate card.

UseCase

Description

A use case describing a scenario where the product can be applied.

Members
description
Required: Yes
Type: string

A description of the use case.

displayName
Required: Yes
Type: string

The human-readable name of the use case.

value
Required: Yes
Type: string

The machine-readable identifier of the use case.

UseCaseEntry

Description

An entry in the list of use cases for a listing.

Members
useCase
Required: Yes
Type: UseCase structure

The use case details.

ValidationException

Description

The input fails to satisfy the constraints specified by the service.

Members
message
Type: string
reason
Type: string

The reason that the input fails to satisfy the constraints specified by the service.

ValidityTerm

Description

Defines a validity term that specifies the duration or date range of an agreement.

Members
agreementDuration
Type: string

The duration of the agreement, in ISO 8601 format.

agreementEndDate
Type: timestamp (string|DateTime or anything parsable by strtotime)

The date when the agreement ends.

agreementStartDate
Type: timestamp (string|DateTime or anything parsable by strtotime)

The date when the agreement starts.

id
Required: Yes
Type: string

The unique identifier of the term.

type
Required: Yes
Type: string

The category of the term.

VariablePaymentTerm

Description

Defines a variable payment term with a maximum total charge amount.

Members
currencyCode
Required: Yes
Type: string

Defines the currency for the prices in this term.

id
Required: Yes
Type: string

The unique identifier of the term.

maxTotalChargeAmount
Required: Yes
Type: string

The maximum total amount that can be charged under this term.

type
Required: Yes
Type: string

The category of the term.