{
  "version":"2.0",
  "metadata":{
    "apiVersion":"2026-02-05",
    "auth":["aws.auth#sigv4"],
    "endpointPrefix":"discovery-marketplace",
    "protocol":"rest-json",
    "protocols":["rest-json"],
    "serviceAbbreviation":"Marketplace Discovery",
    "serviceFullName":"AWS Marketplace Discovery",
    "serviceId":"Marketplace Discovery",
    "signatureVersion":"v4",
    "signingName":"aws-marketplace",
    "uid":"marketplace-discovery-2026-02-05"
  },
  "operations":{
    "GetListing":{
      "name":"GetListing",
      "http":{
        "method":"POST",
        "requestUri":"/2026-02-05/getListing",
        "responseCode":200
      },
      "input":{"shape":"GetListingInput"},
      "output":{"shape":"GetListingOutput"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Provides details about a listing, such as descriptions, badges, categories, pricing model summaries, reviews, and associated products and offers.</p>",
      "readonly":true
    },
    "GetOffer":{
      "name":"GetOffer",
      "http":{
        "method":"POST",
        "requestUri":"/2026-02-05/getOffer",
        "responseCode":200
      },
      "input":{"shape":"GetOfferInput"},
      "output":{"shape":"GetOfferOutput"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Provides details about an offer, such as the pricing model, seller of record, availability dates, badges, and associated products.</p>",
      "readonly":true
    },
    "GetOfferSet":{
      "name":"GetOfferSet",
      "http":{
        "method":"POST",
        "requestUri":"/2026-02-05/getOfferSet",
        "responseCode":200
      },
      "input":{"shape":"GetOfferSetInput"},
      "output":{"shape":"GetOfferSetOutput"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>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.</p>",
      "readonly":true
    },
    "GetOfferTerms":{
      "name":"GetOfferTerms",
      "http":{
        "method":"POST",
        "requestUri":"/2026-02-05/getOfferTerms",
        "responseCode":200
      },
      "input":{"shape":"GetOfferTermsInput"},
      "output":{"shape":"GetOfferTermsOutput"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>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.</p>",
      "readonly":true
    },
    "GetProduct":{
      "name":"GetProduct",
      "http":{
        "method":"POST",
        "requestUri":"/2026-02-05/getProduct",
        "responseCode":200
      },
      "input":{"shape":"GetProductInput"},
      "output":{"shape":"GetProductOutput"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Provides details about a product, such as descriptions, highlights, categories, fulfillment option summaries, promotional media, and seller engagement options.</p>",
      "readonly":true
    },
    "ListFulfillmentOptions":{
      "name":"ListFulfillmentOptions",
      "http":{
        "method":"POST",
        "requestUri":"/2026-02-05/listFulfillmentOptions",
        "responseCode":200
      },
      "input":{"shape":"ListFulfillmentOptionsInput"},
      "output":{"shape":"ListFulfillmentOptionsOutput"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Returns the fulfillment options available for a product, including deployment details such as version information, operating systems, usage instructions, and release notes.</p>",
      "readonly":true
    },
    "ListPurchaseOptions":{
      "name":"ListPurchaseOptions",
      "http":{
        "method":"POST",
        "requestUri":"/2026-02-05/listPurchaseOptions",
        "responseCode":200
      },
      "input":{"shape":"ListPurchaseOptionsInput"},
      "output":{"shape":"ListPurchaseOptionsOutput"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>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.</p> <note> <p>You must include at least one of the following filters in the request: a <code>PRODUCT_ID</code> filter to specify the product for which to retrieve purchase options, or a <code>VISIBILITY_SCOPE</code> filter to retrieve purchase options by visibility.</p> </note>",
      "readonly":true
    },
    "SearchFacets":{
      "name":"SearchFacets",
      "http":{
        "method":"POST",
        "requestUri":"/2026-02-05/searchFacets",
        "responseCode":200
      },
      "input":{"shape":"SearchFacetsInput"},
      "output":{"shape":"SearchFacetsOutput"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>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.</p>",
      "readonly":true
    },
    "SearchListings":{
      "name":"SearchListings",
      "http":{
        "method":"POST",
        "requestUri":"/2026-02-05/searchListings",
        "responseCode":200
      },
      "input":{"shape":"SearchListingsInput"},
      "output":{"shape":"SearchListingsOutput"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>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.</p>",
      "readonly":true
    }
  },
  "shapes":{
    "AccessDeniedException":{
      "type":"structure",
      "members":{
        "message":{"shape":"ExceptionMessage"}
      },
      "documentation":"<p>You don't have sufficient access to perform this action.</p>",
      "error":{
        "httpStatusCode":403,
        "senderFault":true
      },
      "exception":true
    },
    "AgreementResourceId":{
      "type":"string",
      "max":64,
      "min":1,
      "pattern":"[A-Za-z0-9_/-]+"
    },
    "AmazonMachineImageFulfillmentOption":{
      "type":"structure",
      "required":[
        "fulfillmentOptionId",
        "fulfillmentOptionName",
        "fulfillmentOptionType",
        "fulfillmentOptionDisplayName",
        "operatingSystems"
      ],
      "members":{
        "fulfillmentOptionId":{
          "shape":"String",
          "documentation":"<p>The unique identifier of the fulfillment option.</p>"
        },
        "fulfillmentOptionName":{
          "shape":"String",
          "documentation":"<p>The display name of the fulfillment option version.</p>"
        },
        "fulfillmentOptionVersion":{
          "shape":"String",
          "documentation":"<p>The version identifier of the fulfillment option.</p>"
        },
        "fulfillmentOptionType":{
          "shape":"FulfillmentOptionType",
          "documentation":"<p>The category of the fulfillment option.</p>"
        },
        "fulfillmentOptionDisplayName":{
          "shape":"String",
          "documentation":"<p>A human-readable name for the fulfillment option type.</p>"
        },
        "operatingSystems":{
          "shape":"AmazonMachineImageOperatingSystemList",
          "documentation":"<p>The operating systems supported by this AMI.</p>"
        },
        "recommendation":{
          "shape":"AmazonMachineImageRecommendation",
          "documentation":"<p>Recommended instance types for running this AMI.</p>"
        },
        "releaseNotes":{
          "shape":"String",
          "documentation":"<p>Release notes describing changes in this version of the fulfillment option.</p>"
        },
        "usageInstructions":{
          "shape":"String",
          "documentation":"<p>Instructions on how to deploy and use this fulfillment option.</p>"
        }
      },
      "documentation":"<p>Describes an Amazon Machine Image (AMI) fulfillment option, including version details, supported operating systems, and recommended instance types.</p>"
    },
    "AmazonMachineImageOperatingSystem":{
      "type":"structure",
      "required":[
        "operatingSystemFamilyName",
        "operatingSystemName"
      ],
      "members":{
        "operatingSystemFamilyName":{
          "shape":"String",
          "documentation":"<p>The operating system family, such as Linux or Windows.</p>"
        },
        "operatingSystemName":{
          "shape":"String",
          "documentation":"<p>The specific operating system name, such as Amazon Linux 2 or Windows Server 2022.</p>"
        },
        "operatingSystemVersion":{
          "shape":"String",
          "documentation":"<p>The version of the operating system.</p>"
        }
      },
      "documentation":"<p>Describes an operating system supported by an AMI fulfillment option.</p>"
    },
    "AmazonMachineImageOperatingSystemList":{
      "type":"list",
      "member":{"shape":"AmazonMachineImageOperatingSystem"}
    },
    "AmazonMachineImageRecommendation":{
      "type":"structure",
      "required":["instanceType"],
      "members":{
        "instanceType":{
          "shape":"String",
          "documentation":"<p>The recommended EC2 instance type for this AMI.</p>"
        }
      },
      "documentation":"<p>Recommended instance types for running an AMI fulfillment option.</p>"
    },
    "ApiFulfillmentOption":{
      "type":"structure",
      "required":[
        "fulfillmentOptionId",
        "fulfillmentOptionType",
        "fulfillmentOptionDisplayName",
        "awsSupportedServices"
      ],
      "members":{
        "fulfillmentOptionId":{
          "shape":"String",
          "documentation":"<p>The unique identifier of the fulfillment option.</p>"
        },
        "fulfillmentOptionType":{
          "shape":"FulfillmentOptionType",
          "documentation":"<p>The category of the fulfillment option.</p>"
        },
        "fulfillmentOptionDisplayName":{
          "shape":"String",
          "documentation":"<p>A human-readable name for the fulfillment option type.</p>"
        },
        "usageInstructions":{
          "shape":"String",
          "documentation":"<p>Instructions on how to integrate with and use this API.</p>"
        },
        "awsSupportedServices":{
          "shape":"AwsSupportedServiceList",
          "documentation":"<p>The AWS services supported by this API integration.</p>"
        }
      },
      "documentation":"<p>Describes an API-based fulfillment option, where the product is accessed through an API integration.</p>"
    },
    "AwsSupportedService":{
      "type":"structure",
      "required":[
        "supportedServiceType",
        "displayName",
        "description"
      ],
      "members":{
        "supportedServiceType":{
          "shape":"String",
          "documentation":"<p>The machine-readable identifier of the supported service.</p>"
        },
        "displayName":{
          "shape":"String",
          "documentation":"<p>The human-readable name of the supported service.</p>"
        },
        "description":{
          "shape":"String",
          "documentation":"<p>A description of the supported service.</p>"
        }
      },
      "documentation":"<p>Describes an AWS service supported by a fulfillment option.</p>"
    },
    "AwsSupportedServiceList":{
      "type":"list",
      "member":{"shape":"AwsSupportedService"}
    },
    "BillingPeriodType":{
      "type":"string",
      "enum":["Monthly"]
    },
    "BoundedString":{
      "type":"string",
      "max":4096,
      "min":1,
      "pattern":"(.)+"
    },
    "ByolPricingTerm":{
      "type":"structure",
      "required":[
        "id",
        "type"
      ],
      "members":{
        "id":{
          "shape":"TermId",
          "documentation":"<p>The unique identifier of the term.</p>"
        },
        "type":{
          "shape":"TermType",
          "documentation":"<p>The category of the term.</p>"
        }
      },
      "documentation":"<p>Defines a Bring Your Own License (BYOL) pricing term, where buyers use their existing license for the product.</p>"
    },
    "Catalog":{
      "type":"string",
      "max":255,
      "min":1,
      "pattern":"[\\w\\-]+"
    },
    "Category":{
      "type":"structure",
      "required":[
        "categoryId",
        "displayName"
      ],
      "members":{
        "categoryId":{
          "shape":"NonEmptyString",
          "documentation":"<p>The machine-readable identifier of the category.</p>"
        },
        "displayName":{
          "shape":"NonEmptyString",
          "documentation":"<p>The human-readable name of the category.</p>"
        }
      },
      "documentation":"<p>A category used to classify a listing or product into a logical group.</p>"
    },
    "CategoryList":{
      "type":"list",
      "member":{"shape":"Category"},
      "max":30,
      "min":0
    },
    "CloudFormationFulfillmentOption":{
      "type":"structure",
      "required":[
        "fulfillmentOptionId",
        "fulfillmentOptionName",
        "fulfillmentOptionType",
        "fulfillmentOptionDisplayName"
      ],
      "members":{
        "fulfillmentOptionId":{
          "shape":"String",
          "documentation":"<p>The unique identifier of the fulfillment option.</p>"
        },
        "fulfillmentOptionName":{
          "shape":"String",
          "documentation":"<p>The display name of the fulfillment option version.</p>"
        },
        "fulfillmentOptionType":{
          "shape":"FulfillmentOptionType",
          "documentation":"<p>The category of the fulfillment option.</p>"
        },
        "fulfillmentOptionDisplayName":{
          "shape":"String",
          "documentation":"<p>A human-readable name for the fulfillment option type.</p>"
        },
        "fulfillmentOptionVersion":{
          "shape":"String",
          "documentation":"<p>The version identifier of the fulfillment option.</p>"
        },
        "releaseNotes":{
          "shape":"String",
          "documentation":"<p>Release notes describing changes in this version of the fulfillment option.</p>"
        },
        "usageInstructions":{
          "shape":"String",
          "documentation":"<p>Instructions on how to deploy and use this CloudFormation template.</p>"
        }
      },
      "documentation":"<p>Describes an AWS CloudFormation template fulfillment option for infrastructure deployment.</p>"
    },
    "ConfigurableUpfrontPricingTerm":{
      "type":"structure",
      "required":[
        "id",
        "type",
        "currencyCode"
      ],
      "members":{
        "id":{
          "shape":"TermId",
          "documentation":"<p>The unique identifier of the term.</p>"
        },
        "type":{
          "shape":"TermType",
          "documentation":"<p>The category of the term.</p>"
        },
        "currencyCode":{
          "shape":"CurrencyCode",
          "documentation":"<p>Defines the currency for the prices in this term.</p>"
        },
        "rateCards":{
          "shape":"ConfigurableUpfrontRateCardList",
          "documentation":"<p>The rate cards available for selection, each with a selector, constraints, and per-unit rates.</p>"
        }
      },
      "documentation":"<p>Defines a configurable upfront pricing term with selectable rate cards, where buyers choose from predefined pricing configurations.</p>"
    },
    "ConfigurableUpfrontRateCardItem":{
      "type":"structure",
      "required":[
        "selector",
        "constraints",
        "rateCard"
      ],
      "members":{
        "selector":{
          "shape":"Selector",
          "documentation":"<p>The selector criteria for this rate card, such as duration.</p>"
        },
        "constraints":{
          "shape":"Constraints",
          "documentation":"<p>Constraints on how the buyer can configure this rate card, such as whether multiple dimensions can be selected.</p>"
        },
        "rateCard":{
          "shape":"RateCardList",
          "documentation":"<p>The per-unit rates for this configuration.</p>"
        }
      },
      "documentation":"<p>A rate card item within a configurable upfront pricing term, including a selector for choosing the configuration and per-unit rates.</p>"
    },
    "ConfigurableUpfrontRateCardList":{
      "type":"list",
      "member":{"shape":"ConfigurableUpfrontRateCardItem"}
    },
    "Constraints":{
      "type":"structure",
      "required":[
        "multipleDimensionSelection",
        "quantityConfiguration"
      ],
      "members":{
        "multipleDimensionSelection":{
          "shape":"RateCardConstraintType",
          "documentation":"<p>Whether the buyer can select multiple dimensions. Values are <code>Allowed</code> or <code>Disallowed</code>.</p>"
        },
        "quantityConfiguration":{
          "shape":"RateCardConstraintType",
          "documentation":"<p>Whether the buyer can configure quantities. Values are <code>Allowed</code> or <code>Disallowed</code>.</p>"
        }
      },
      "documentation":"<p>Constraints that control how a buyer can configure a rate card.</p>"
    },
    "ContainerFulfillmentOption":{
      "type":"structure",
      "required":[
        "fulfillmentOptionId",
        "fulfillmentOptionName",
        "fulfillmentOptionType",
        "fulfillmentOptionDisplayName"
      ],
      "members":{
        "fulfillmentOptionId":{
          "shape":"String",
          "documentation":"<p>The unique identifier of the fulfillment option.</p>"
        },
        "fulfillmentOptionName":{
          "shape":"String",
          "documentation":"<p>The display name of the fulfillment option version.</p>"
        },
        "fulfillmentOptionType":{
          "shape":"FulfillmentOptionType",
          "documentation":"<p>The category of the fulfillment option.</p>"
        },
        "fulfillmentOptionDisplayName":{
          "shape":"String",
          "documentation":"<p>A human-readable name for the fulfillment option type.</p>"
        },
        "fulfillmentOptionVersion":{
          "shape":"String",
          "documentation":"<p>The version identifier of the fulfillment option.</p>"
        },
        "operatingSystems":{
          "shape":"ContainerOperatingSystemList",
          "documentation":"<p>The operating systems supported by this container image.</p>"
        },
        "awsSupportedServices":{
          "shape":"AwsSupportedServiceList",
          "documentation":"<p>The AWS services supported by this container deployment.</p>"
        },
        "releaseNotes":{
          "shape":"String",
          "documentation":"<p>Release notes describing changes in this version of the fulfillment option.</p>"
        },
        "usageInstructions":{
          "shape":"String",
          "documentation":"<p>Instructions on how to deploy and use this container image.</p>"
        }
      },
      "documentation":"<p>Describes a container image fulfillment option for container-based deployment.</p>"
    },
    "ContainerOperatingSystem":{
      "type":"structure",
      "required":[
        "operatingSystemFamilyName",
        "operatingSystemName"
      ],
      "members":{
        "operatingSystemFamilyName":{
          "shape":"String",
          "documentation":"<p>The operating system family, such as Linux.</p>"
        },
        "operatingSystemName":{
          "shape":"String",
          "documentation":"<p>The specific operating system name.</p>"
        }
      },
      "documentation":"<p>Describes an operating system supported by a container fulfillment option.</p>"
    },
    "ContainerOperatingSystemList":{
      "type":"list",
      "member":{"shape":"ContainerOperatingSystem"}
    },
    "CurrencyCode":{
      "type":"string",
      "max":3,
      "min":3,
      "pattern":"[A-Z]+"
    },
    "DataArtifact":{
      "type":"structure",
      "required":[
        "resourceType",
        "dataClassification"
      ],
      "members":{
        "description":{
          "shape":"String",
          "documentation":"<p>A description of the data artifact.</p>"
        },
        "resourceArn":{
          "shape":"String",
          "documentation":"<p>The Amazon Resource Name (ARN) of the data artifact.</p>"
        },
        "resourceType":{
          "shape":"String",
          "documentation":"<p>The type of the data artifact resource.</p>"
        },
        "dataClassification":{
          "shape":"String",
          "documentation":"<p>The classification of sensitive data contained in the dataset.</p>"
        }
      },
      "documentation":"<p>Describes a data artifact within a Data Exchange fulfillment option.</p>"
    },
    "DataArtifactList":{
      "type":"list",
      "member":{"shape":"DataArtifact"}
    },
    "DataExchangeFulfillmentOption":{
      "type":"structure",
      "required":[
        "fulfillmentOptionId",
        "fulfillmentOptionType",
        "fulfillmentOptionDisplayName"
      ],
      "members":{
        "fulfillmentOptionId":{
          "shape":"String",
          "documentation":"<p>The unique identifier of the fulfillment option.</p>"
        },
        "fulfillmentOptionType":{
          "shape":"FulfillmentOptionType",
          "documentation":"<p>The category of the fulfillment option.</p>"
        },
        "fulfillmentOptionDisplayName":{
          "shape":"String",
          "documentation":"<p>A human-readable name for the fulfillment option type.</p>"
        },
        "dataArtifacts":{
          "shape":"DataArtifactList",
          "documentation":"<p>The data artifacts included in this Data Exchange fulfillment option.</p>"
        }
      },
      "documentation":"<p>Describes an AWS Data Exchange fulfillment option for data set delivery.</p>"
    },
    "DeployedOnAwsStatus":{
      "type":"string",
      "enum":[
        "DEPLOYED",
        "NOT_DEPLOYED",
        "NOT_APPLICABLE"
      ]
    },
    "DimensionLabel":{
      "type":"structure",
      "required":[
        "labelType",
        "labelValue"
      ],
      "members":{
        "labelType":{
          "shape":"DimensionLabelType",
          "documentation":"<p>The type of the dimension label, such as <code>Region</code> or <code>SagemakerOption</code>.</p>"
        },
        "labelValue":{
          "shape":"BoundedString",
          "documentation":"<p>The value used to group dimensions together.</p>"
        },
        "displayName":{
          "shape":"BoundedString",
          "documentation":"<p>The human-readable display name of the label.</p>"
        }
      },
      "documentation":"<p>A label used to group or categorize pricing dimensions, such as by region or SageMaker option.</p>"
    },
    "DimensionLabelList":{
      "type":"list",
      "member":{"shape":"DimensionLabel"}
    },
    "DimensionLabelType":{
      "type":"string",
      "enum":[
        "Region",
        "SagemakerOption"
      ]
    },
    "DocumentItem":{
      "type":"structure",
      "required":[
        "type",
        "url"
      ],
      "members":{
        "type":{
          "shape":"LegalDocumentType",
          "documentation":"<p>The category of the legal document, such as <code>StandardEula</code> or <code>CustomEula</code>.</p>"
        },
        "url":{
          "shape":"URL",
          "documentation":"<p>The URL where the legal document can be accessed.</p>"
        },
        "version":{
          "shape":"String",
          "documentation":"<p>The version of the standard contract, if applicable.</p>"
        }
      },
      "documentation":"<p>A legal document associated with a legal term, such as a EULA or data subscription agreement.</p>"
    },
    "DocumentList":{
      "type":"list",
      "member":{"shape":"DocumentItem"}
    },
    "Ec2ImageBuilderComponentFulfillmentOption":{
      "type":"structure",
      "required":[
        "fulfillmentOptionId",
        "fulfillmentOptionName",
        "fulfillmentOptionType",
        "fulfillmentOptionDisplayName"
      ],
      "members":{
        "fulfillmentOptionId":{
          "shape":"String",
          "documentation":"<p>The unique identifier of the fulfillment option.</p>"
        },
        "fulfillmentOptionName":{
          "shape":"String",
          "documentation":"<p>The display name of the fulfillment option version.</p>"
        },
        "fulfillmentOptionType":{
          "shape":"FulfillmentOptionType",
          "documentation":"<p>The category of the fulfillment option.</p>"
        },
        "fulfillmentOptionDisplayName":{
          "shape":"String",
          "documentation":"<p>A human-readable name for the fulfillment option type.</p>"
        },
        "fulfillmentOptionVersion":{
          "shape":"String",
          "documentation":"<p>The version identifier of the fulfillment option.</p>"
        },
        "operatingSystems":{
          "shape":"ContainerOperatingSystemList",
          "documentation":"<p>The operating systems supported by this EC2 Image Builder component.</p>"
        },
        "awsSupportedServices":{
          "shape":"AwsSupportedServiceList",
          "documentation":"<p>The AWS services supported by this EC2 Image Builder component.</p>"
        },
        "releaseNotes":{
          "shape":"String",
          "documentation":"<p>Release notes describing changes in this version of the fulfillment option.</p>"
        },
        "usageInstructions":{
          "shape":"String",
          "documentation":"<p>Instructions on how to deploy and use this EC2 Image Builder component.</p>"
        }
      },
      "documentation":"<p>Describes an EC2 Image Builder component fulfillment option.</p>"
    },
    "EksAddOnFulfillmentOption":{
      "type":"structure",
      "required":[
        "fulfillmentOptionId",
        "fulfillmentOptionName",
        "fulfillmentOptionType",
        "fulfillmentOptionDisplayName"
      ],
      "members":{
        "fulfillmentOptionId":{
          "shape":"String",
          "documentation":"<p>The unique identifier of the fulfillment option.</p>"
        },
        "fulfillmentOptionName":{
          "shape":"String",
          "documentation":"<p>The display name of the fulfillment option version.</p>"
        },
        "fulfillmentOptionType":{
          "shape":"FulfillmentOptionType",
          "documentation":"<p>The category of the fulfillment option.</p>"
        },
        "fulfillmentOptionDisplayName":{
          "shape":"String",
          "documentation":"<p>A human-readable name for the fulfillment option type.</p>"
        },
        "fulfillmentOptionVersion":{
          "shape":"String",
          "documentation":"<p>The version identifier of the fulfillment option.</p>"
        },
        "operatingSystems":{
          "shape":"EksAddOnOperatingSystemList",
          "documentation":"<p>The operating systems supported by this EKS add-on.</p>"
        },
        "releaseNotes":{
          "shape":"String",
          "documentation":"<p>Release notes describing changes in this version of the fulfillment option.</p>"
        },
        "usageInstructions":{
          "shape":"String",
          "documentation":"<p>Instructions on how to deploy and use this EKS add-on.</p>"
        },
        "awsSupportedServices":{
          "shape":"AwsSupportedServiceList",
          "documentation":"<p>The AWS services supported by this EKS add-on.</p>"
        }
      },
      "documentation":"<p>Describes an Amazon EKS add-on fulfillment option.</p>"
    },
    "EksAddOnOperatingSystem":{
      "type":"structure",
      "required":[
        "operatingSystemFamilyName",
        "operatingSystemName"
      ],
      "members":{
        "operatingSystemFamilyName":{
          "shape":"String",
          "documentation":"<p>The operating system family, such as Linux.</p>"
        },
        "operatingSystemName":{
          "shape":"String",
          "documentation":"<p>The specific operating system name.</p>"
        }
      },
      "documentation":"<p>Describes an operating system supported by an EKS add-on fulfillment option.</p>"
    },
    "EksAddOnOperatingSystemList":{
      "type":"list",
      "member":{"shape":"EksAddOnOperatingSystem"}
    },
    "ExceptionMessage":{"type":"string"},
    "FacetTypeList":{
      "type":"list",
      "member":{"shape":"SearchFacetType"},
      "max":30,
      "min":0
    },
    "FixedUpfrontPricingTerm":{
      "type":"structure",
      "required":[
        "id",
        "type",
        "currencyCode",
        "price",
        "grants"
      ],
      "members":{
        "id":{
          "shape":"TermId",
          "documentation":"<p>The unique identifier of the term.</p>"
        },
        "type":{
          "shape":"TermType",
          "documentation":"<p>The category of the term.</p>"
        },
        "currencyCode":{
          "shape":"CurrencyCode",
          "documentation":"<p>Defines the currency for the prices in this term.</p>"
        },
        "duration":{
          "shape":"BoundedString",
          "documentation":"<p>The duration of the fixed pricing term, in ISO 8601 format.</p>"
        },
        "price":{
          "shape":"BoundedString",
          "documentation":"<p>The price charged upfront for this term.</p>"
        },
        "grants":{
          "shape":"GrantList",
          "documentation":"<p>The entitlements granted to the buyer as part of this term.</p>"
        }
      },
      "documentation":"<p>Defines a fixed upfront pricing term with a pre-paid amount and granted entitlements.</p>"
    },
    "FreeTrialPricingTerm":{
      "type":"structure",
      "required":[
        "id",
        "type",
        "grants"
      ],
      "members":{
        "id":{
          "shape":"TermId",
          "documentation":"<p>The unique identifier of the term.</p>"
        },
        "type":{
          "shape":"TermType",
          "documentation":"<p>The category of the term.</p>"
        },
        "duration":{
          "shape":"BoundedString",
          "documentation":"<p>The duration of the free trial period.</p>"
        },
        "grants":{
          "shape":"GrantList",
          "documentation":"<p>The entitlements granted to the buyer during the free trial.</p>"
        }
      },
      "documentation":"<p>Defines a free trial pricing term that enables customers to try the product before purchasing.</p>"
    },
    "FulfillmentOption":{
      "type":"structure",
      "members":{
        "amazonMachineImageFulfillmentOption":{
          "shape":"AmazonMachineImageFulfillmentOption",
          "documentation":"<p>An Amazon Machine Image (AMI) fulfillment option for EC2 deployment.</p>"
        },
        "apiFulfillmentOption":{
          "shape":"ApiFulfillmentOption",
          "documentation":"<p>An API-based fulfillment option for programmatic integration.</p>"
        },
        "cloudFormationFulfillmentOption":{
          "shape":"CloudFormationFulfillmentOption",
          "documentation":"<p>An AWS CloudFormation template fulfillment option for infrastructure deployment.</p>"
        },
        "containerFulfillmentOption":{
          "shape":"ContainerFulfillmentOption",
          "documentation":"<p>A container image fulfillment option for container-based deployment.</p>"
        },
        "helmFulfillmentOption":{
          "shape":"HelmFulfillmentOption",
          "documentation":"<p>A Helm chart fulfillment option for Kubernetes deployment.</p>"
        },
        "eksAddOnFulfillmentOption":{
          "shape":"EksAddOnFulfillmentOption",
          "documentation":"<p>An Amazon EKS add-on fulfillment option.</p>"
        },
        "ec2ImageBuilderComponentFulfillmentOption":{
          "shape":"Ec2ImageBuilderComponentFulfillmentOption",
          "documentation":"<p>An EC2 Image Builder component fulfillment option.</p>"
        },
        "dataExchangeFulfillmentOption":{
          "shape":"DataExchangeFulfillmentOption",
          "documentation":"<p>An AWS Data Exchange fulfillment option for data set delivery.</p>"
        },
        "professionalServicesFulfillmentOption":{
          "shape":"ProfessionalServicesFulfillmentOption",
          "documentation":"<p>A professional services fulfillment option.</p>"
        },
        "saasFulfillmentOption":{
          "shape":"SaasFulfillmentOption",
          "documentation":"<p>A Software as a Service (SaaS) fulfillment option.</p>"
        },
        "sageMakerAlgorithmFulfillmentOption":{
          "shape":"SageMakerAlgorithmFulfillmentOption",
          "documentation":"<p>An Amazon SageMaker algorithm fulfillment option.</p>"
        },
        "sageMakerModelFulfillmentOption":{
          "shape":"SageMakerModelFulfillmentOption",
          "documentation":"<p>An Amazon SageMaker model fulfillment option.</p>"
        }
      },
      "documentation":"<p>Describes a fulfillment option for a product. Each element contains exactly one fulfillment option type.</p>",
      "union":true
    },
    "FulfillmentOptionSummary":{
      "type":"structure",
      "required":[
        "fulfillmentOptionType",
        "displayName"
      ],
      "members":{
        "fulfillmentOptionType":{
          "shape":"FulfillmentOptionType",
          "documentation":"<p>The machine-readable type of the fulfillment option, such as <code>SAAS</code> or <code>AMAZON_MACHINE_IMAGE</code>.</p>"
        },
        "displayName":{
          "shape":"NonEmptyString",
          "documentation":"<p>The human-readable name of the fulfillment option type.</p>"
        }
      },
      "documentation":"<p>A summary of a fulfillment option available for deploying or accessing a listing or product.</p>"
    },
    "FulfillmentOptionSummaryList":{
      "type":"list",
      "member":{"shape":"FulfillmentOptionSummary"},
      "max":20,
      "min":0
    },
    "FulfillmentOptionType":{
      "type":"string",
      "enum":[
        "AMAZON_MACHINE_IMAGE",
        "API",
        "CLOUDFORMATION_TEMPLATE",
        "CONTAINER",
        "HELM",
        "EKS_ADD_ON",
        "EC2_IMAGE_BUILDER_COMPONENT",
        "DATA_EXCHANGE",
        "PROFESSIONAL_SERVICES",
        "SAAS",
        "SAGEMAKER_ALGORITHM",
        "SAGEMAKER_MODEL"
      ]
    },
    "FulfillmentOptionsList":{
      "type":"list",
      "member":{"shape":"FulfillmentOption"}
    },
    "GetListingInput":{
      "type":"structure",
      "required":["listingId"],
      "members":{
        "listingId":{
          "shape":"ListingId",
          "documentation":"<p>The unique identifier of the listing to retrieve.</p>"
        }
      }
    },
    "GetListingOutput":{
      "type":"structure",
      "required":[
        "associatedEntities",
        "badges",
        "catalog",
        "categories",
        "fulfillmentOptionSummaries",
        "highlights",
        "listingId",
        "listingName",
        "logoThumbnailUrl",
        "longDescription",
        "pricingModels",
        "pricingUnits",
        "promotionalMedia",
        "publisher",
        "resources",
        "sellerEngagements",
        "shortDescription",
        "useCases"
      ],
      "members":{
        "associatedEntities":{
          "shape":"ListingAssociatedEntityList",
          "documentation":"<p>The products and offers associated with this listing. Each entity contains product and offer information.</p>"
        },
        "badges":{
          "shape":"ListingBadgeList",
          "documentation":"<p>Badges indicating special attributes of the listing, such as free tier eligibility, free trial availability, or Quick Launch support.</p>"
        },
        "catalog":{
          "shape":"Catalog",
          "documentation":"<p>The name of the catalog that the listing belongs to.</p>"
        },
        "categories":{
          "shape":"CategoryList",
          "documentation":"<p>The categories used to classify this listing into logical groups.</p>"
        },
        "fulfillmentOptionSummaries":{
          "shape":"FulfillmentOptionSummaryList",
          "documentation":"<p>A summary of fulfillment options available for deploying or accessing the listing, such as AMI, SaaS, or Container.</p>"
        },
        "highlights":{
          "shape":"HighlightList",
          "documentation":"<p>A list of key features that the listing offers to customers.</p>"
        },
        "integrationGuide":{
          "shape":"NullableString",
          "documentation":"<p>Optional guidance explaining how to use data in this listing. Primarily defines how to integrate with a multi-product listing.</p>"
        },
        "listingId":{
          "shape":"ListingId",
          "documentation":"<p>The unique identifier of the listing.</p>"
        },
        "listingName":{
          "shape":"NonEmptyString",
          "documentation":"<p>The human-readable display name of the listing.</p>"
        },
        "logoThumbnailUrl":{
          "shape":"URL",
          "documentation":"<p>The URL of the logo thumbnail image for the listing.</p>"
        },
        "longDescription":{
          "shape":"GetListingOutputLongDescriptionString",
          "documentation":"<p>A detailed description of what the listing offers, in paragraph format.</p>"
        },
        "pricingModels":{
          "shape":"PricingModelList",
          "documentation":"<p>The pricing models for offers associated with this listing, such as usage-based, contract, BYOL, or free.</p>"
        },
        "pricingUnits":{
          "shape":"PricingUnitList",
          "documentation":"<p>The pricing units that define the billing dimensions for offers associated with this listing, such as users, hosts, or data.</p>"
        },
        "promotionalMedia":{
          "shape":"PromotionalMediaList",
          "documentation":"<p>Embedded promotional media provided by the creator of the product, such as images and videos.</p>"
        },
        "publisher":{
          "shape":"SellerInformation",
          "documentation":"<p>The entity who created and published the listing.</p>"
        },
        "resources":{
          "shape":"ResourceList",
          "documentation":"<p>Resources that provide further information about using the product or requesting support, such as documentation links, support contacts, and usage instructions.</p>"
        },
        "reviewSummary":{
          "shape":"ReviewSummary",
          "documentation":"<p>A summary of customer reviews available for the listing, including average rating and total review count by source.</p>"
        },
        "sellerEngagements":{
          "shape":"SellerEngagementList",
          "documentation":"<p>Engagement options available to potential buyers, such as requesting a private offer or requesting a demo.</p>"
        },
        "shortDescription":{
          "shape":"NonEmptyString",
          "documentation":"<p>A 1–3 sentence summary describing the key aspects of the listing.</p>"
        },
        "useCases":{
          "shape":"UseCaseList",
          "documentation":"<p>Use cases associated with the listing, describing scenarios where the product can be applied.</p>"
        }
      }
    },
    "GetListingOutputLongDescriptionString":{
      "type":"string",
      "max":32768,
      "min":0,
      "pattern":".*\\S.*"
    },
    "GetOfferInput":{
      "type":"structure",
      "required":["offerId"],
      "members":{
        "offerId":{
          "shape":"OfferId",
          "documentation":"<p>The unique identifier of the offer to retrieve.</p>"
        }
      }
    },
    "GetOfferOutput":{
      "type":"structure",
      "required":[
        "offerId",
        "catalog",
        "sellerOfRecord",
        "associatedEntities",
        "agreementProposalId",
        "pricingModel",
        "badges"
      ],
      "members":{
        "offerId":{
          "shape":"OfferId",
          "documentation":"<p>The unique identifier of the offer.</p>"
        },
        "catalog":{
          "shape":"Catalog",
          "documentation":"<p>The name of the catalog that the offer belongs to.</p>"
        },
        "offerName":{
          "shape":"NullableString",
          "documentation":"<p>The display name of the offer. This is free-form text provided by the seller.</p>"
        },
        "expirationTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time until when the offer can be procured. This value is null for offers that never expire.</p>"
        },
        "availableFromTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time when the offer became available to the buyer.</p>"
        },
        "sellerOfRecord":{
          "shape":"SellerInformation",
          "documentation":"<p>The entity responsible for selling the product under this offer.</p>"
        },
        "associatedEntities":{
          "shape":"OfferAssociatedEntityList",
          "documentation":"<p>The products and offer sets associated with this offer.</p>"
        },
        "agreementProposalId":{
          "shape":"AgreementResourceId",
          "documentation":"<p>An encoded string to be passed by the acceptor of the terms when creating an agreement.</p>"
        },
        "replacementAgreementId":{
          "shape":"AgreementResourceId",
          "documentation":"<p>The identifier of the existing agreement that this offer would replace. Enables agreement-based offer functionality.</p>"
        },
        "pricingModel":{
          "shape":"PricingModel",
          "documentation":"<p>The pricing model that determines how buyers are charged, such as usage-based, contract, BYOL, or free.</p>"
        },
        "badges":{
          "shape":"PurchaseOptionBadgeList",
          "documentation":"<p>Badges indicating special attributes of the offer, such as private pricing, future dated, or replacement offer.</p>"
        }
      }
    },
    "GetOfferSetInput":{
      "type":"structure",
      "required":["offerSetId"],
      "members":{
        "offerSetId":{
          "shape":"OfferSetId",
          "documentation":"<p>The unique identifier of the offer set to retrieve.</p>"
        }
      }
    },
    "GetOfferSetOutput":{
      "type":"structure",
      "required":[
        "offerSetId",
        "catalog",
        "sellerOfRecord",
        "badges",
        "associatedEntities"
      ],
      "members":{
        "offerSetId":{
          "shape":"OfferSetId",
          "documentation":"<p>The unique identifier of the offer set.</p>"
        },
        "catalog":{
          "shape":"Catalog",
          "documentation":"<p>The name of the catalog that the offer set belongs to.</p>"
        },
        "offerSetName":{
          "shape":"NonEmptyString",
          "documentation":"<p>The display name of the offer set.</p>"
        },
        "availableFromTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time when the offer set became available to the buyer.</p>"
        },
        "expirationTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time when the offer set expires and is no longer available for procurement.</p>"
        },
        "buyerNotes":{
          "shape":"NullableString",
          "documentation":"<p>Detailed information about the offer set that helps buyers understand its purpose and contents.</p>"
        },
        "sellerOfRecord":{
          "shape":"SellerInformation",
          "documentation":"<p>The entity responsible for selling the products under this offer set.</p>"
        },
        "badges":{
          "shape":"PurchaseOptionBadgeList",
          "documentation":"<p>Badges indicating special attributes of the offer set, such as private pricing or future dated.</p>"
        },
        "associatedEntities":{
          "shape":"OfferSetAssociatedEntityList",
          "documentation":"<p>The products and offers included in this offer set.</p>"
        }
      }
    },
    "GetOfferTermsInput":{
      "type":"structure",
      "required":["offerId"],
      "members":{
        "offerId":{
          "shape":"OfferId",
          "documentation":"<p>The unique identifier of the offer whose terms to retrieve.</p>"
        },
        "maxResults":{
          "shape":"GetOfferTermsInputMaxResultsInteger",
          "documentation":"<p>The maximum number of results that are returned per call. You can use <code>nextToken</code> to get more results.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>If <code>nextToken</code> is returned, there are more results available. Make the call again using the returned token to retrieve the next page.</p>"
        }
      }
    },
    "GetOfferTermsInputMaxResultsInteger":{
      "type":"integer",
      "box":true,
      "max":25,
      "min":1
    },
    "GetOfferTermsOutput":{
      "type":"structure",
      "required":["offerTerms"],
      "members":{
        "offerTerms":{
          "shape":"OfferTermsList",
          "documentation":"<p>The terms attached to the offer. Each element contains exactly one term type.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>If <code>nextToken</code> is returned, there are more results available. Make the call again using the returned token to retrieve the next page.</p>"
        }
      }
    },
    "GetProductInput":{
      "type":"structure",
      "required":["productId"],
      "members":{
        "productId":{
          "shape":"ProductId",
          "documentation":"<p>The unique identifier of the product to retrieve.</p>"
        }
      }
    },
    "GetProductOutput":{
      "type":"structure",
      "required":[
        "productId",
        "catalog",
        "productName",
        "manufacturer",
        "deployedOnAws",
        "shortDescription",
        "longDescription",
        "logoThumbnailUrl",
        "fulfillmentOptionSummaries",
        "categories",
        "highlights",
        "promotionalMedia",
        "resources",
        "sellerEngagements"
      ],
      "members":{
        "productId":{
          "shape":"ProductId",
          "documentation":"<p>The unique identifier of the product.</p>"
        },
        "catalog":{
          "shape":"Catalog",
          "documentation":"<p>The name of the catalog that the product belongs to.</p>"
        },
        "productName":{
          "shape":"NonEmptyString",
          "documentation":"<p>The human-readable display name of the product.</p>"
        },
        "manufacturer":{
          "shape":"SellerInformation",
          "documentation":"<p>The entity who manufactured the product.</p>"
        },
        "deployedOnAws":{
          "shape":"DeployedOnAwsStatus",
          "documentation":"<p>Indicates whether the product is deployed on AWS infrastructure.</p>"
        },
        "shortDescription":{
          "shape":"NonEmptyString",
          "documentation":"<p>A 1–3 sentence summary describing the key aspects of the product.</p>"
        },
        "longDescription":{
          "shape":"GetProductOutputLongDescriptionString",
          "documentation":"<p>A detailed description of what the product does, in paragraph format.</p>"
        },
        "logoThumbnailUrl":{
          "shape":"URL",
          "documentation":"<p>The URL of the logo thumbnail image for the product.</p>"
        },
        "fulfillmentOptionSummaries":{
          "shape":"FulfillmentOptionSummaryList",
          "documentation":"<p>A summary of fulfillment options available for deploying or accessing the product, such as AMI, SaaS, or Container.</p>"
        },
        "categories":{
          "shape":"CategoryList",
          "documentation":"<p>The categories used to classify this product into logical groups.</p>"
        },
        "highlights":{
          "shape":"HighlightList",
          "documentation":"<p>A list of key features that the product offers to customers.</p>"
        },
        "promotionalMedia":{
          "shape":"PromotionalMediaList",
          "documentation":"<p>Embedded promotional media provided by the creator of the product, such as images and videos.</p>"
        },
        "resources":{
          "shape":"ResourceList",
          "documentation":"<p>Resources that provide further information about using the product or requesting support, such as documentation links, support contacts, and usage instructions.</p>"
        },
        "sellerEngagements":{
          "shape":"SellerEngagementList",
          "documentation":"<p>Engagement options available to potential buyers, such as requesting a private offer or requesting a demo.</p>"
        }
      }
    },
    "GetProductOutputLongDescriptionString":{
      "type":"string",
      "max":32768,
      "min":0,
      "pattern":".*\\S.*"
    },
    "GrantItem":{
      "type":"structure",
      "required":[
        "dimensionKey",
        "displayName",
        "unit"
      ],
      "members":{
        "dimensionKey":{
          "shape":"BoundedString",
          "documentation":"<p>The machine-readable key identifying the entitlement dimension.</p>"
        },
        "displayName":{
          "shape":"BoundedString",
          "documentation":"<p>The human-readable name of the entitlement dimension.</p>"
        },
        "description":{
          "shape":"BoundedString",
          "documentation":"<p>A description of the entitlement.</p>"
        },
        "dimensionLabels":{
          "shape":"DimensionLabelList",
          "documentation":"<p>Labels used to categorize this entitlement, such as by region.</p>"
        },
        "unit":{
          "shape":"BoundedString",
          "documentation":"<p>The unit of measurement for the entitlement.</p>"
        },
        "maxQuantity":{
          "shape":"Integer",
          "documentation":"<p>The maximum quantity of the entitlement that can be granted.</p>"
        }
      },
      "documentation":"<p>An entitlement granted to the buyer as part of a pricing term.</p>"
    },
    "GrantList":{
      "type":"list",
      "member":{"shape":"GrantItem"}
    },
    "HelmFulfillmentOption":{
      "type":"structure",
      "required":[
        "fulfillmentOptionId",
        "fulfillmentOptionName",
        "fulfillmentOptionType",
        "fulfillmentOptionDisplayName"
      ],
      "members":{
        "fulfillmentOptionId":{
          "shape":"String",
          "documentation":"<p>The unique identifier of the fulfillment option.</p>"
        },
        "fulfillmentOptionName":{
          "shape":"String",
          "documentation":"<p>The display name of the fulfillment option version.</p>"
        },
        "fulfillmentOptionType":{
          "shape":"FulfillmentOptionType",
          "documentation":"<p>The category of the fulfillment option.</p>"
        },
        "fulfillmentOptionDisplayName":{
          "shape":"String",
          "documentation":"<p>A human-readable name for the fulfillment option type.</p>"
        },
        "fulfillmentOptionVersion":{
          "shape":"String",
          "documentation":"<p>The version identifier of the fulfillment option.</p>"
        },
        "operatingSystems":{
          "shape":"HelmOperatingSystemList",
          "documentation":"<p>The operating systems supported by this Helm chart.</p>"
        },
        "releaseNotes":{
          "shape":"String",
          "documentation":"<p>Release notes describing changes in this version of the fulfillment option.</p>"
        },
        "awsSupportedServices":{
          "shape":"AwsSupportedServiceList",
          "documentation":"<p>The AWS services supported by this Helm chart deployment.</p>"
        },
        "usageInstructions":{
          "shape":"String",
          "documentation":"<p>Instructions on how to deploy and use this Helm chart.</p>"
        }
      },
      "documentation":"<p>Describes a Helm chart fulfillment option for Kubernetes deployment.</p>"
    },
    "HelmOperatingSystem":{
      "type":"structure",
      "required":[
        "operatingSystemFamilyName",
        "operatingSystemName"
      ],
      "members":{
        "operatingSystemFamilyName":{
          "shape":"String",
          "documentation":"<p>The operating system family, such as Linux.</p>"
        },
        "operatingSystemName":{
          "shape":"String",
          "documentation":"<p>The specific operating system name.</p>"
        }
      },
      "documentation":"<p>Describes an operating system supported by a Helm chart fulfillment option.</p>"
    },
    "HelmOperatingSystemList":{
      "type":"list",
      "member":{"shape":"HelmOperatingSystem"}
    },
    "HighlightList":{
      "type":"list",
      "member":{"shape":"NonEmptyString"},
      "max":10,
      "min":0
    },
    "Integer":{
      "type":"integer",
      "box":true
    },
    "InternalServerException":{
      "type":"structure",
      "members":{
        "message":{"shape":"ExceptionMessage"}
      },
      "documentation":"<p>Unexpected error during processing of the request.</p>",
      "error":{"httpStatusCode":500},
      "exception":true,
      "fault":true
    },
    "LegalDocumentType":{
      "type":"string",
      "enum":[
        "CustomEula",
        "CustomDsa",
        "EnterpriseEula",
        "StandardEula",
        "StandardDsa"
      ]
    },
    "LegalTerm":{
      "type":"structure",
      "required":[
        "id",
        "type",
        "documents"
      ],
      "members":{
        "id":{
          "shape":"TermId",
          "documentation":"<p>The unique identifier of the term.</p>"
        },
        "type":{
          "shape":"TermType",
          "documentation":"<p>The category of the term.</p>"
        },
        "documents":{
          "shape":"DocumentList",
          "documentation":"<p>The legal documents proposed to the buyer as part of this term.</p>"
        }
      },
      "documentation":"<p>Defines a legal term containing documents proposed to buyers, such as EULAs and data subscription agreements.</p>"
    },
    "ListFulfillmentOptionsInput":{
      "type":"structure",
      "required":["productId"],
      "members":{
        "productId":{
          "shape":"ProductId",
          "documentation":"<p>The unique identifier of the product for which to list fulfillment options.</p>"
        },
        "maxResults":{
          "shape":"ListFulfillmentOptionsInputMaxResultsInteger",
          "documentation":"<p>The maximum number of results that are returned per call. You can use <code>nextToken</code> to get more results.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>If <code>nextToken</code> is returned, there are more results available. Make the call again using the returned token to retrieve the next page.</p>"
        }
      }
    },
    "ListFulfillmentOptionsInputMaxResultsInteger":{
      "type":"integer",
      "box":true,
      "max":50,
      "min":1
    },
    "ListFulfillmentOptionsOutput":{
      "type":"structure",
      "required":["fulfillmentOptions"],
      "members":{
        "fulfillmentOptions":{
          "shape":"FulfillmentOptionsList",
          "documentation":"<p>The fulfillment options available for the product. Each option describes how the buyer can deploy or access the product.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>If <code>nextToken</code> is returned, there are more results available. Make the call again using the returned token to retrieve the next page.</p>"
        }
      }
    },
    "ListPurchaseOptionsInput":{
      "type":"structure",
      "members":{
        "filters":{
          "shape":"PurchaseOptionFilterList",
          "documentation":"<p>Filters to narrow the results. Multiple filters are combined with AND logic. Multiple values within the same filter are combined with OR logic.</p>"
        },
        "maxResults":{
          "shape":"ListPurchaseOptionsInputMaxResultsInteger",
          "documentation":"<p>The maximum number of results that are returned per call. You can use <code>nextToken</code> to get more results.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>If <code>nextToken</code> is returned, there are more results available. Make the call again using the returned token to retrieve the next page.</p>"
        }
      }
    },
    "ListPurchaseOptionsInputMaxResultsInteger":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "ListPurchaseOptionsOutput":{
      "type":"structure",
      "members":{
        "purchaseOptions":{
          "shape":"PurchaseOptionSummaryList",
          "documentation":"<p>The purchase options available to the buyer. Each option is either an offer for a single product or an offer set spanning multiple products.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>If <code>nextToken</code> is returned, there are more results available. Make the call again using the returned token to retrieve the next page.</p>"
        }
      }
    },
    "ListingAssociatedEntity":{
      "type":"structure",
      "members":{
        "product":{
          "shape":"ProductInformation",
          "documentation":"<p>Information about the product associated with the listing.</p>"
        },
        "offer":{
          "shape":"OfferInformation",
          "documentation":"<p>Information about the default offer associated with the listing.</p>"
        }
      },
      "documentation":"<p>A product and offer associated with a listing.</p>"
    },
    "ListingAssociatedEntityList":{
      "type":"list",
      "member":{"shape":"ListingAssociatedEntity"},
      "max":100,
      "min":0
    },
    "ListingBadge":{
      "type":"structure",
      "required":[
        "displayName",
        "badgeType"
      ],
      "members":{
        "displayName":{
          "shape":"NonEmptyString",
          "documentation":"<p>The human-readable name of the badge.</p>"
        },
        "badgeType":{
          "shape":"ListingBadgeType",
          "documentation":"<p>The machine-readable type of the badge.</p>"
        }
      },
      "documentation":"<p>A badge indicating a special attribute of a listing, such as free tier eligibility or Quick Launch support.</p>"
    },
    "ListingBadgeList":{
      "type":"list",
      "member":{"shape":"ListingBadge"},
      "max":20,
      "min":0
    },
    "ListingBadgeType":{
      "type":"string",
      "enum":[
        "AWS_FREE_TIER",
        "FREE_TRIAL",
        "DEPLOYED_ON_AWS",
        "QUICK_LAUNCH",
        "MULTI_PRODUCT"
      ]
    },
    "ListingFacet":{
      "type":"structure",
      "required":[
        "value",
        "displayName",
        "count"
      ],
      "members":{
        "value":{
          "shape":"NonEmptyString",
          "documentation":"<p>The internal value used for filtering when passed back in a search filter.</p>"
        },
        "displayName":{
          "shape":"NonEmptyString",
          "documentation":"<p>The human-readable name of the facet value, suitable for display in a user interface.</p>"
        },
        "parent":{
          "shape":"NullableString",
          "documentation":"<p>The parent facet value for hierarchical facets, such as subcategories.</p>"
        },
        "count":{
          "shape":"NonNegativeCount",
          "documentation":"<p>The number of listings matching this facet value.</p>"
        }
      },
      "documentation":"<p>A facet value with display information and a count of matching listings. Used to build filter and browse experiences.</p>"
    },
    "ListingFacetList":{
      "type":"list",
      "member":{"shape":"ListingFacet"},
      "max":100,
      "min":0
    },
    "ListingId":{
      "type":"string",
      "max":255,
      "min":1,
      "pattern":"[\\w\\-]+"
    },
    "ListingSummary":{
      "type":"structure",
      "required":[
        "listingId",
        "listingName",
        "publisher",
        "fulfillmentOptionSummaries",
        "catalog",
        "shortDescription",
        "logoThumbnailUrl",
        "categories",
        "badges",
        "reviewSummary",
        "pricingModels",
        "pricingUnits",
        "associatedEntities"
      ],
      "members":{
        "listingId":{
          "shape":"ListingId",
          "documentation":"<p>The unique identifier of the listing.</p>"
        },
        "listingName":{
          "shape":"NonEmptyString",
          "documentation":"<p>The human-readable display name of the listing.</p>"
        },
        "publisher":{
          "shape":"SellerInformation",
          "documentation":"<p>The entity who created and published the listing.</p>"
        },
        "fulfillmentOptionSummaries":{
          "shape":"FulfillmentOptionSummaryList",
          "documentation":"<p>A summary of fulfillment options available for the listing.</p>"
        },
        "catalog":{
          "shape":"Catalog",
          "documentation":"<p>The name of the catalog that the listing belongs to.</p>"
        },
        "shortDescription":{
          "shape":"NonEmptyString",
          "documentation":"<p>A 1–3 sentence summary describing the key aspects of the listing.</p>"
        },
        "logoThumbnailUrl":{
          "shape":"URL",
          "documentation":"<p>The URL of the logo thumbnail image for the listing.</p>"
        },
        "categories":{
          "shape":"CategoryList",
          "documentation":"<p>The categories used to classify this listing into logical groups.</p>"
        },
        "badges":{
          "shape":"ListingBadgeList",
          "documentation":"<p>Badges indicating special attributes of the listing.</p>"
        },
        "reviewSummary":{
          "shape":"ReviewSummary",
          "documentation":"<p>A summary of customer reviews for the listing.</p>"
        },
        "pricingModels":{
          "shape":"PricingModelList",
          "documentation":"<p>The pricing models for offers associated with this listing.</p>"
        },
        "pricingUnits":{
          "shape":"PricingUnitList",
          "documentation":"<p>The pricing units that define the billing dimensions for offers associated with this listing.</p>"
        },
        "associatedEntities":{
          "shape":"ListingSummaryAssociatedEntityList",
          "documentation":"<p>The products associated with this listing.</p>"
        }
      },
      "documentation":"<p>Summary information about a listing returned by search operations, including the listing name, description, badges, categories, pricing models, reviews, and associated products.</p>"
    },
    "ListingSummaryAssociatedEntity":{
      "type":"structure",
      "members":{
        "product":{
          "shape":"ProductInformation",
          "documentation":"<p>Information about the associated product.</p>"
        }
      },
      "documentation":"<p>A product associated with a listing summary.</p>"
    },
    "ListingSummaryAssociatedEntityList":{
      "type":"list",
      "member":{"shape":"ListingSummaryAssociatedEntity"},
      "max":50,
      "min":0
    },
    "ListingSummaryList":{
      "type":"list",
      "member":{"shape":"ListingSummary"}
    },
    "MaxResults":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "NetPaymentTerm":{
      "type":"structure",
      "required":[
        "id",
        "type",
        "paymentDuePeriod"
      ],
      "members":{
        "id":{
          "shape":"TermId",
          "documentation":"<p>The unique identifier of the term.</p>"
        },
        "type":{
          "shape":"TermType",
          "documentation":"<p>The category of the term.</p>"
        },
        "paymentDuePeriod":{
          "shape":"BoundedString",
          "documentation":"<p>The duration after invoice date by which payment is due.</p>"
        }
      },
      "documentation":"<p>Defines a net payment term that sets how many days after the invoice date the payment is due.</p>"
    },
    "NextToken":{
      "type":"string",
      "max":8192,
      "min":0,
      "pattern":"[a-zA-Z0-9+/=]+"
    },
    "NonEmptyString":{
      "type":"string",
      "max":1024,
      "min":1,
      "pattern":".*\\S.*"
    },
    "NonNegativeCount":{
      "type":"long",
      "box":true,
      "min":0
    },
    "NullableString":{
      "type":"string",
      "max":255,
      "min":0
    },
    "OfferAssociatedEntity":{
      "type":"structure",
      "required":["product"],
      "members":{
        "product":{
          "shape":"ProductInformation",
          "documentation":"<p>Information about the product associated with the offer.</p>"
        },
        "offerSet":{
          "shape":"OfferSetInformation",
          "documentation":"<p>Information about the offer set, if the offer is part of a bundled offer set.</p>"
        }
      },
      "documentation":"<p>A product and optional offer set associated with an offer.</p>"
    },
    "OfferAssociatedEntityList":{
      "type":"list",
      "member":{"shape":"OfferAssociatedEntity"},
      "max":100,
      "min":0
    },
    "OfferId":{
      "type":"string",
      "max":255,
      "min":1,
      "pattern":"[\\w\\-]+"
    },
    "OfferInformation":{
      "type":"structure",
      "required":[
        "offerId",
        "sellerOfRecord"
      ],
      "members":{
        "offerId":{
          "shape":"OfferId",
          "documentation":"<p>The unique identifier of the offer.</p>"
        },
        "offerName":{
          "shape":"NullableString",
          "documentation":"<p>The display name of the offer.</p>"
        },
        "sellerOfRecord":{
          "shape":"SellerInformation",
          "documentation":"<p>The entity responsible for selling the product under this offer.</p>"
        }
      },
      "documentation":"<p>Summary information about an offer, including the offer identifier, name, and seller of record.</p>"
    },
    "OfferSetAssociatedEntity":{
      "type":"structure",
      "required":[
        "product",
        "offer"
      ],
      "members":{
        "product":{
          "shape":"ProductInformation",
          "documentation":"<p>Information about the product associated with the offer set.</p>"
        },
        "offer":{
          "shape":"OfferInformation",
          "documentation":"<p>Information about the offer associated with the offer set.</p>"
        }
      },
      "documentation":"<p>A product and offer associated with an offer set.</p>"
    },
    "OfferSetAssociatedEntityList":{
      "type":"list",
      "member":{"shape":"OfferSetAssociatedEntity"},
      "max":100,
      "min":0
    },
    "OfferSetId":{
      "type":"string",
      "max":255,
      "min":1,
      "pattern":"[\\w\\-]+"
    },
    "OfferSetInformation":{
      "type":"structure",
      "required":[
        "offerSetId",
        "sellerOfRecord"
      ],
      "members":{
        "offerSetId":{
          "shape":"OfferSetId",
          "documentation":"<p>The unique identifier of the offer set.</p>"
        },
        "sellerOfRecord":{
          "shape":"SellerInformation",
          "documentation":"<p>The entity responsible for selling the products under this offer set.</p>"
        }
      },
      "documentation":"<p>Summary information about an offer set, including the identifier and seller of record.</p>"
    },
    "OfferTerm":{
      "type":"structure",
      "members":{
        "byolPricingTerm":{"shape":"ByolPricingTerm"},
        "configurableUpfrontPricingTerm":{"shape":"ConfigurableUpfrontPricingTerm"},
        "fixedUpfrontPricingTerm":{"shape":"FixedUpfrontPricingTerm"},
        "freeTrialPricingTerm":{"shape":"FreeTrialPricingTerm"},
        "legalTerm":{"shape":"LegalTerm"},
        "paymentScheduleTerm":{"shape":"PaymentScheduleTerm"},
        "recurringPaymentTerm":{"shape":"RecurringPaymentTerm"},
        "renewalTerm":{"shape":"RenewalTerm"},
        "supportTerm":{"shape":"SupportTerm"},
        "usageBasedPricingTerm":{"shape":"UsageBasedPricingTerm"},
        "validityTerm":{"shape":"ValidityTerm"},
        "variablePaymentTerm":{"shape":"VariablePaymentTerm"},
        "netPaymentTerm":{
          "shape":"NetPaymentTerm",
          "documentation":"<p>A net payment term.</p>"
        }
      },
      "documentation":"<p>A term attached to an offer. Each element contains exactly one term type, such as a pricing term, legal term, or payment schedule term.</p>",
      "union":true
    },
    "OfferTermsList":{
      "type":"list",
      "member":{"shape":"OfferTerm"}
    },
    "PaymentScheduleTerm":{
      "type":"structure",
      "required":[
        "id",
        "type",
        "currencyCode",
        "schedule"
      ],
      "members":{
        "id":{
          "shape":"TermId",
          "documentation":"<p>The unique identifier of the term.</p>"
        },
        "type":{
          "shape":"TermType",
          "documentation":"<p>The category of the term.</p>"
        },
        "currencyCode":{
          "shape":"CurrencyCode",
          "documentation":"<p>Defines the currency for the prices in this term.</p>"
        },
        "schedule":{
          "shape":"ScheduleList",
          "documentation":"<p>The payment schedule installments, each with a charge date and amount.</p>"
        }
      },
      "documentation":"<p>Defines a payment schedule term with installment payments at specified dates.</p>"
    },
    "PricingModel":{
      "type":"structure",
      "required":[
        "pricingModelType",
        "displayName"
      ],
      "members":{
        "pricingModelType":{
          "shape":"PricingModelType",
          "documentation":"<p>The machine-readable type of the pricing model.</p>"
        },
        "displayName":{
          "shape":"NonEmptyString",
          "documentation":"<p>The human-readable name of the pricing model.</p>"
        }
      },
      "documentation":"<p>A pricing model that determines how buyers are charged for a listing, such as usage-based, contract, BYOL, or free.</p>"
    },
    "PricingModelList":{
      "type":"list",
      "member":{"shape":"PricingModel"},
      "max":20,
      "min":0
    },
    "PricingModelType":{
      "type":"string",
      "enum":[
        "USAGE",
        "CONTRACT",
        "BYOL",
        "FREE"
      ]
    },
    "PricingUnit":{
      "type":"structure",
      "required":[
        "pricingUnitType",
        "displayName"
      ],
      "members":{
        "pricingUnitType":{
          "shape":"PricingUnitType",
          "documentation":"<p>The machine-readable type of the pricing unit.</p>"
        },
        "displayName":{
          "shape":"NonEmptyString",
          "documentation":"<p>The human-readable name of the pricing unit.</p>"
        }
      },
      "documentation":"<p>A pricing unit that defines the billing dimension for a listing, such as users, hosts, bandwidth, or data.</p>"
    },
    "PricingUnitList":{
      "type":"list",
      "member":{"shape":"PricingUnit"},
      "max":20,
      "min":0
    },
    "PricingUnitType":{
      "type":"string",
      "enum":[
        "USERS",
        "HOSTS",
        "BANDWIDTH",
        "DATA",
        "TIERS",
        "REQUESTS",
        "UNITS"
      ]
    },
    "ProductId":{
      "type":"string",
      "max":255,
      "min":1,
      "pattern":"[\\w\\-]+"
    },
    "ProductInformation":{
      "type":"structure",
      "required":[
        "productId",
        "productName",
        "manufacturer"
      ],
      "members":{
        "productId":{
          "shape":"ProductId",
          "documentation":"<p>The unique identifier of the product.</p>"
        },
        "productName":{
          "shape":"NonEmptyString",
          "documentation":"<p>The human-readable display name of the product.</p>"
        },
        "manufacturer":{
          "shape":"SellerInformation",
          "documentation":"<p>The entity who manufactured the product.</p>"
        }
      },
      "documentation":"<p>Summary information about a product, including the identifier, name, and manufacturer.</p>"
    },
    "ProfessionalServicesFulfillmentOption":{
      "type":"structure",
      "required":[
        "fulfillmentOptionId",
        "fulfillmentOptionType",
        "fulfillmentOptionDisplayName"
      ],
      "members":{
        "fulfillmentOptionId":{
          "shape":"String",
          "documentation":"<p>The unique identifier of the fulfillment option.</p>"
        },
        "fulfillmentOptionType":{
          "shape":"FulfillmentOptionType",
          "documentation":"<p>The category of the fulfillment option.</p>"
        },
        "fulfillmentOptionDisplayName":{
          "shape":"String",
          "documentation":"<p>A human-readable name for the fulfillment option type.</p>"
        }
      },
      "documentation":"<p>Describes a professional services fulfillment option.</p>"
    },
    "PromotionalEmbeddedImage":{
      "type":"structure",
      "required":[
        "title",
        "url"
      ],
      "members":{
        "title":{
          "shape":"NonEmptyString",
          "documentation":"<p>The title displayed when hovering over the image.</p>"
        },
        "url":{
          "shape":"URL",
          "documentation":"<p>The URL of the image file.</p>"
        },
        "description":{
          "shape":"NullableString",
          "documentation":"<p>An optional description of the image.</p>"
        }
      },
      "documentation":"<p>An embedded promotional image for a product.</p>"
    },
    "PromotionalEmbeddedVideo":{
      "type":"structure",
      "required":[
        "title",
        "url",
        "preview",
        "thumbnail"
      ],
      "members":{
        "title":{
          "shape":"NonEmptyString",
          "documentation":"<p>The title displayed when hovering over the video.</p>"
        },
        "url":{
          "shape":"URL",
          "documentation":"<p>The URL of the video file.</p>"
        },
        "preview":{
          "shape":"URL",
          "documentation":"<p>The URL of the high-resolution preview image for the video.</p>"
        },
        "thumbnail":{
          "shape":"URL",
          "documentation":"<p>The URL of the thumbnail image for the video.</p>"
        },
        "description":{
          "shape":"NullableString",
          "documentation":"<p>An optional description of the video.</p>"
        }
      },
      "documentation":"<p>An embedded promotional video for a product.</p>"
    },
    "PromotionalMedia":{
      "type":"structure",
      "members":{
        "embeddedImage":{"shape":"PromotionalEmbeddedImage"},
        "embeddedVideo":{"shape":"PromotionalEmbeddedVideo"}
      },
      "documentation":"<p>Embedded promotional media for a product, such as images or videos. Each element contains exactly one media type.</p>",
      "union":true
    },
    "PromotionalMediaList":{
      "type":"list",
      "member":{"shape":"PromotionalMedia"},
      "max":100,
      "min":0
    },
    "PurchaseOptionAssociatedEntity":{
      "type":"structure",
      "required":[
        "product",
        "offer"
      ],
      "members":{
        "product":{
          "shape":"ProductInformation",
          "documentation":"<p>Information about the product associated with the purchase option.</p>"
        },
        "offer":{
          "shape":"OfferInformation",
          "documentation":"<p>Information about the offer associated with the purchase option.</p>"
        },
        "offerSet":{
          "shape":"OfferSetInformation",
          "documentation":"<p>Information about the offer set, if the purchase option is part of a bundled offer set.</p>"
        }
      },
      "documentation":"<p>A product, offer, and optional offer set associated with a purchase option.</p>"
    },
    "PurchaseOptionAssociatedEntityList":{
      "type":"list",
      "member":{"shape":"PurchaseOptionAssociatedEntity"},
      "max":100,
      "min":0
    },
    "PurchaseOptionBadge":{
      "type":"structure",
      "required":[
        "displayName",
        "badgeType"
      ],
      "members":{
        "displayName":{
          "shape":"NonEmptyString",
          "documentation":"<p>The human-readable name of the badge.</p>"
        },
        "badgeType":{
          "shape":"PurchaseOptionBadgeType",
          "documentation":"<p>The machine-readable type of the badge.</p>"
        }
      },
      "documentation":"<p>A badge indicating a special attribute of a purchase option, such as private pricing or future dated.</p>"
    },
    "PurchaseOptionBadgeList":{
      "type":"list",
      "member":{"shape":"PurchaseOptionBadge"},
      "max":20,
      "min":0
    },
    "PurchaseOptionBadgeType":{
      "type":"string",
      "enum":[
        "PRIVATE_PRICING",
        "FUTURE_DATED",
        "REPLACEMENT_OFFER"
      ]
    },
    "PurchaseOptionFilter":{
      "type":"structure",
      "required":[
        "filterType",
        "filterValues"
      ],
      "members":{
        "filterType":{
          "shape":"PurchaseOptionFilterType",
          "documentation":"<p>The type of filter to apply, such as <code>PRODUCT_ID</code>, <code>VISIBILITY_SCOPE</code>, or <code>PURCHASE_OPTION_TYPE</code>.</p>"
        },
        "filterValues":{
          "shape":"PurchaseOptionFilterValueList",
          "documentation":"<p>The values to filter by. Multiple values within the same filter are combined with OR logic.</p>"
        }
      },
      "documentation":"<p>A filter used to narrow purchase option results by product, seller, type, visibility, or availability.</p>"
    },
    "PurchaseOptionFilterList":{
      "type":"list",
      "member":{"shape":"PurchaseOptionFilter"},
      "max":10,
      "min":1
    },
    "PurchaseOptionFilterType":{
      "type":"string",
      "enum":[
        "PRODUCT_ID",
        "SELLER_OF_RECORD_PROFILE_ID",
        "PURCHASE_OPTION_TYPE",
        "VISIBILITY_SCOPE",
        "AVAILABILITY_STATUS"
      ]
    },
    "PurchaseOptionFilterValue":{
      "type":"string",
      "max":255,
      "min":1,
      "pattern":"[\\w\\-]+"
    },
    "PurchaseOptionFilterValueList":{
      "type":"list",
      "member":{"shape":"PurchaseOptionFilterValue"},
      "max":10,
      "min":1
    },
    "PurchaseOptionSummary":{
      "type":"structure",
      "required":[
        "purchaseOptionId",
        "catalog",
        "purchaseOptionType",
        "sellerOfRecord",
        "associatedEntities"
      ],
      "members":{
        "purchaseOptionId":{
          "shape":"NonEmptyString",
          "documentation":"<p>The unique identifier of the purchase option.</p>"
        },
        "catalog":{
          "shape":"Catalog",
          "documentation":"<p>The name of the catalog that the purchase option belongs to.</p>"
        },
        "purchaseOptionType":{
          "shape":"PurchaseOptionType",
          "documentation":"<p>The type of purchase option. Values are <code>OFFER</code> for a single-product offer or <code>OFFERSET</code> for a bundled offer set.</p>"
        },
        "purchaseOptionName":{
          "shape":"NonEmptyString",
          "documentation":"<p>The display name of the purchase option.</p>"
        },
        "availableFromTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time when the purchase option became available to the buyer.</p>"
        },
        "expirationTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time when the purchase option expires and is no longer available for procurement.</p>"
        },
        "sellerOfRecord":{
          "shape":"SellerInformation",
          "documentation":"<p>The entity responsible for selling the product under this purchase option.</p>"
        },
        "badges":{
          "shape":"PurchaseOptionBadgeList",
          "documentation":"<p>Badges indicating special attributes of the purchase option, such as private pricing or future dated.</p>"
        },
        "associatedEntities":{
          "shape":"PurchaseOptionAssociatedEntityList",
          "documentation":"<p>The products, offers, and offer sets associated with this purchase option.</p>"
        }
      },
      "documentation":"<p>Summary information about a purchase option (offer or offer set) available to the buyer, including the seller, badges, and associated products.</p>"
    },
    "PurchaseOptionSummaryList":{
      "type":"list",
      "member":{"shape":"PurchaseOptionSummary"},
      "max":100,
      "min":0
    },
    "PurchaseOptionType":{
      "type":"string",
      "enum":[
        "OFFER",
        "OFFERSET"
      ]
    },
    "RateCardConstraintType":{
      "type":"string",
      "enum":[
        "Allowed",
        "Disallowed"
      ]
    },
    "RateCardItem":{
      "type":"structure",
      "required":[
        "dimensionKey",
        "displayName",
        "unit",
        "price"
      ],
      "members":{
        "dimensionKey":{
          "shape":"BoundedString",
          "documentation":"<p>The machine-readable key identifying the dimension being priced.</p>"
        },
        "displayName":{
          "shape":"BoundedString",
          "documentation":"<p>The human-readable name of the dimension.</p>"
        },
        "description":{
          "shape":"BoundedString",
          "documentation":"<p>A description of the dimension being priced.</p>"
        },
        "dimensionLabels":{
          "shape":"DimensionLabelList",
          "documentation":"<p>Labels used to categorize this dimension, such as by region.</p>"
        },
        "unit":{
          "shape":"BoundedString",
          "documentation":"<p>The unit of measurement for the dimension.</p>"
        },
        "price":{
          "shape":"BoundedString",
          "documentation":"<p>The price per unit for the dimension.</p>"
        }
      },
      "documentation":"<p>A per-unit rate within a rate card, defining the price for a specific dimension.</p>"
    },
    "RateCardList":{
      "type":"list",
      "member":{"shape":"RateCardItem"}
    },
    "RecurringPaymentTerm":{
      "type":"structure",
      "required":[
        "id",
        "type",
        "currencyCode",
        "billingPeriod",
        "price"
      ],
      "members":{
        "id":{
          "shape":"TermId",
          "documentation":"<p>The unique identifier of the term.</p>"
        },
        "type":{
          "shape":"TermType",
          "documentation":"<p>The category of the term.</p>"
        },
        "currencyCode":{
          "shape":"CurrencyCode",
          "documentation":"<p>Defines the currency for the prices in this term.</p>"
        },
        "billingPeriod":{
          "shape":"BillingPeriodType",
          "documentation":"<p>The billing period frequency, such as <code>Monthly</code>.</p>"
        },
        "price":{
          "shape":"BoundedString",
          "documentation":"<p>The amount charged each billing period.</p>"
        }
      },
      "documentation":"<p>Defines a recurring payment term with fixed charges at regular billing intervals.</p>"
    },
    "RenewalTerm":{
      "type":"structure",
      "required":[
        "id",
        "type"
      ],
      "members":{
        "id":{
          "shape":"TermId",
          "documentation":"<p>The unique identifier of the term.</p>"
        },
        "type":{
          "shape":"TermType",
          "documentation":"<p>The category of the term.</p>"
        }
      },
      "documentation":"<p>Defines a renewal term that enables automatic agreement renewal.</p>"
    },
    "Resource":{
      "type":"structure",
      "required":[
        "resourceType",
        "contentType",
        "value"
      ],
      "members":{
        "resourceType":{
          "shape":"ResourceType",
          "documentation":"<p>The category of the resource, such as manufacturer support or usage instructions.</p>"
        },
        "contentType":{
          "shape":"ResourceContentType",
          "documentation":"<p>The format of the resource content, such as a URL, email address, or text.</p>"
        },
        "value":{
          "shape":"NonEmptyString",
          "documentation":"<p>The resource content. Interpretation depends on the content type.</p>"
        },
        "displayName":{
          "shape":"NullableString",
          "documentation":"<p>An optional human-readable label for the resource.</p>"
        }
      },
      "documentation":"<p>A resource that provides supplementary information about a product, such as documentation links, support contacts, or usage instructions.</p>"
    },
    "ResourceContentType":{
      "type":"string",
      "enum":[
        "EMAIL",
        "PHONE_NUMBER",
        "LINK",
        "OTHER"
      ]
    },
    "ResourceList":{
      "type":"list",
      "member":{"shape":"Resource"},
      "max":100,
      "min":0
    },
    "ResourceNotFoundException":{
      "type":"structure",
      "members":{
        "message":{"shape":"ExceptionMessage"}
      },
      "documentation":"<p>The specified resource doesn't exist.</p>",
      "error":{
        "httpStatusCode":404,
        "senderFault":true
      },
      "exception":true
    },
    "ResourceType":{
      "type":"string",
      "enum":[
        "MANUFACTURER_SUPPORT",
        "MANUFACTURER_INSTRUCTIONS"
      ]
    },
    "ReviewSourceId":{
      "type":"string",
      "enum":["AWS_MARKETPLACE"]
    },
    "ReviewSourceSummary":{
      "type":"structure",
      "required":[
        "sourceName",
        "sourceId",
        "averageRating",
        "totalReviews"
      ],
      "members":{
        "sourceName":{
          "shape":"NonEmptyString",
          "documentation":"<p>The name of the review source, such as AWS Marketplace.</p>"
        },
        "sourceId":{
          "shape":"ReviewSourceId",
          "documentation":"<p>The machine-readable identifier of the review source.</p>"
        },
        "sourceUrl":{
          "shape":"URL",
          "documentation":"<p>The URL where the reviews can be accessed at the source.</p>"
        },
        "averageRating":{
          "shape":"NonEmptyString",
          "documentation":"<p>The average rating across all reviews from this source.</p>"
        },
        "totalReviews":{
          "shape":"NonNegativeCount",
          "documentation":"<p>The total number of reviews available from this source.</p>"
        }
      },
      "documentation":"<p>A review summary from a specific source, including the average rating and total review count.</p>"
    },
    "ReviewSourceSummaryList":{
      "type":"list",
      "member":{"shape":"ReviewSourceSummary"},
      "max":10,
      "min":0
    },
    "ReviewSummary":{
      "type":"structure",
      "required":["reviewSourceSummaries"],
      "members":{
        "reviewSourceSummaries":{
          "shape":"ReviewSourceSummaryList",
          "documentation":"<p>Review summaries from different sources, such as AWS Marketplace.</p>"
        }
      },
      "documentation":"<p>A summary of customer reviews available for a listing, aggregated by review source.</p>"
    },
    "SaasFulfillmentOption":{
      "type":"structure",
      "required":[
        "fulfillmentOptionId",
        "fulfillmentOptionType",
        "fulfillmentOptionDisplayName"
      ],
      "members":{
        "fulfillmentOptionId":{
          "shape":"String",
          "documentation":"<p>The unique identifier of the fulfillment option.</p>"
        },
        "fulfillmentOptionType":{
          "shape":"FulfillmentOptionType",
          "documentation":"<p>The category of the fulfillment option.</p>"
        },
        "fulfillmentOptionDisplayName":{
          "shape":"String",
          "documentation":"<p>A human-readable name for the fulfillment option type.</p>"
        },
        "fulfillmentUrl":{
          "shape":"String",
          "documentation":"<p>The URL of the seller's software registration landing page.</p>"
        },
        "usageInstructions":{
          "shape":"String",
          "documentation":"<p>Instructions on how to access and use this SaaS product.</p>"
        }
      },
      "documentation":"<p>Describes a Software as a Service (SaaS) fulfillment option.</p>"
    },
    "SageMakerAlgorithmFulfillmentOption":{
      "type":"structure",
      "required":[
        "fulfillmentOptionId",
        "fulfillmentOptionType",
        "fulfillmentOptionDisplayName"
      ],
      "members":{
        "fulfillmentOptionId":{
          "shape":"String",
          "documentation":"<p>The unique identifier of the fulfillment option.</p>"
        },
        "fulfillmentOptionType":{
          "shape":"FulfillmentOptionType",
          "documentation":"<p>The category of the fulfillment option.</p>"
        },
        "fulfillmentOptionDisplayName":{
          "shape":"String",
          "documentation":"<p>A human-readable name for the fulfillment option type.</p>"
        },
        "fulfillmentOptionVersion":{
          "shape":"String",
          "documentation":"<p>The version identifier of the fulfillment option.</p>"
        },
        "releaseNotes":{
          "shape":"String",
          "documentation":"<p>Release notes describing changes in this version of the fulfillment option.</p>"
        },
        "usageInstructions":{
          "shape":"String",
          "documentation":"<p>Instructions on how to use this SageMaker algorithm.</p>"
        },
        "recommendation":{
          "shape":"SageMakerAlgorithmRecommendation",
          "documentation":"<p>Recommended instance types for training and inference with this algorithm.</p>"
        }
      },
      "documentation":"<p>Describes an Amazon SageMaker algorithm fulfillment option, including version details and recommended instance types.</p>"
    },
    "SageMakerAlgorithmRecommendation":{
      "type":"structure",
      "required":[
        "recommendedBatchTransformInstanceType",
        "recommendedTrainingInstanceType"
      ],
      "members":{
        "recommendedBatchTransformInstanceType":{
          "shape":"String",
          "documentation":"<p>The recommended instance type for batch inference.</p>"
        },
        "recommendedRealtimeInferenceInstanceType":{
          "shape":"String",
          "documentation":"<p>The recommended instance type for real-time inference.</p>"
        },
        "recommendedTrainingInstanceType":{
          "shape":"String",
          "documentation":"<p>The recommended instance type for training.</p>"
        }
      },
      "documentation":"<p>Recommended instance types for training and inference with a SageMaker algorithm.</p>"
    },
    "SageMakerModelFulfillmentOption":{
      "type":"structure",
      "required":[
        "fulfillmentOptionId",
        "fulfillmentOptionType",
        "fulfillmentOptionDisplayName"
      ],
      "members":{
        "fulfillmentOptionId":{
          "shape":"String",
          "documentation":"<p>The unique identifier of the fulfillment option.</p>"
        },
        "fulfillmentOptionType":{
          "shape":"FulfillmentOptionType",
          "documentation":"<p>The category of the fulfillment option.</p>"
        },
        "fulfillmentOptionDisplayName":{
          "shape":"String",
          "documentation":"<p>A human-readable name for the fulfillment option type.</p>"
        },
        "fulfillmentOptionVersion":{
          "shape":"String",
          "documentation":"<p>The version identifier of the fulfillment option.</p>"
        },
        "releaseNotes":{
          "shape":"String",
          "documentation":"<p>Release notes describing changes in this version of the fulfillment option.</p>"
        },
        "usageInstructions":{
          "shape":"String",
          "documentation":"<p>Instructions on how to use this SageMaker model.</p>"
        },
        "recommendation":{
          "shape":"SageMakerModelRecommendation",
          "documentation":"<p>Recommended instance types for inference with this model.</p>"
        }
      },
      "documentation":"<p>Describes an Amazon SageMaker model fulfillment option, including version details and recommended instance types.</p>"
    },
    "SageMakerModelRecommendation":{
      "type":"structure",
      "required":["recommendedBatchTransformInstanceType"],
      "members":{
        "recommendedBatchTransformInstanceType":{
          "shape":"String",
          "documentation":"<p>The recommended instance type for batch inference.</p>"
        },
        "recommendedRealtimeInferenceInstanceType":{
          "shape":"String",
          "documentation":"<p>The recommended instance type for real-time inference.</p>"
        }
      },
      "documentation":"<p>Recommended instance types for inference with a SageMaker model.</p>"
    },
    "ScheduleItem":{
      "type":"structure",
      "required":[
        "chargeDate",
        "chargeAmount"
      ],
      "members":{
        "chargeDate":{
          "shape":"Timestamp",
          "documentation":"<p>The date when the payment is due.</p>"
        },
        "chargeAmount":{
          "shape":"BoundedString",
          "documentation":"<p>The amount to be charged on the charge date.</p>"
        }
      },
      "documentation":"<p>A payment installment within a payment schedule term.</p>"
    },
    "ScheduleList":{
      "type":"list",
      "member":{"shape":"ScheduleItem"}
    },
    "SearchFacetType":{
      "type":"string",
      "enum":[
        "AVERAGE_CUSTOMER_RATING",
        "CATEGORY",
        "PUBLISHER",
        "FULFILLMENT_OPTION_TYPE",
        "PRICING_MODEL",
        "PRICING_UNIT",
        "DEPLOYED_ON_AWS",
        "NUMBER_OF_PRODUCTS"
      ]
    },
    "SearchFacetsInput":{
      "type":"structure",
      "members":{
        "searchText":{
          "shape":"SearchText",
          "documentation":"<p>The search query text to filter listings before retrieving facets.</p>"
        },
        "filters":{
          "shape":"SearchFilterList",
          "documentation":"<p>Filters to apply before retrieving facets. Multiple filters are combined with AND logic. Multiple values within the same filter are combined with OR logic.</p>"
        },
        "facetTypes":{
          "shape":"FacetTypeList",
          "documentation":"<p>A list of specific facet types to retrieve. If empty or null, all available facets are returned.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>If <code>nextToken</code> is returned, there are more results available. Make the call again using the returned token to retrieve the next page.</p>"
        }
      }
    },
    "SearchFacetsOutput":{
      "type":"structure",
      "required":[
        "totalResults",
        "listingFacets"
      ],
      "members":{
        "totalResults":{
          "shape":"NonNegativeCount",
          "documentation":"<p>The total number of listings matching the search criteria.</p>"
        },
        "listingFacets":{
          "shape":"TypeToFacetMap",
          "documentation":"<p>A map of facet types to their corresponding facet values. Each facet value includes a display name, internal value, and count of matching listings.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>If <code>nextToken</code> is returned, there are more results available. Make the call again using the returned token to retrieve the next page.</p>"
        }
      }
    },
    "SearchFilter":{
      "type":"structure",
      "required":[
        "filterType",
        "filterValues"
      ],
      "members":{
        "filterType":{
          "shape":"SearchFilterType",
          "documentation":"<p>The type of filter to apply.</p>"
        },
        "filterValues":{
          "shape":"SearchFilterFilterValuesList",
          "documentation":"<p>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.</p>"
        }
      },
      "documentation":"<p>A filter used to narrow search results by attribute, such as category, pricing model, or fulfillment type.</p>"
    },
    "SearchFilterFilterValuesList":{
      "type":"list",
      "member":{"shape":"SearchFilterValue"},
      "max":30,
      "min":1
    },
    "SearchFilterList":{
      "type":"list",
      "member":{"shape":"SearchFilter"},
      "max":30,
      "min":1
    },
    "SearchFilterType":{
      "type":"string",
      "enum":[
        "MIN_AVERAGE_CUSTOMER_RATING",
        "MAX_AVERAGE_CUSTOMER_RATING",
        "CATEGORY",
        "PUBLISHER",
        "FULFILLMENT_OPTION_TYPE",
        "PRICING_MODEL",
        "PRICING_UNIT",
        "DEPLOYED_ON_AWS",
        "NUMBER_OF_PRODUCTS"
      ]
    },
    "SearchFilterValue":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"[\\w\\-\\.]+"
    },
    "SearchListingsInput":{
      "type":"structure",
      "members":{
        "searchText":{
          "shape":"SearchText",
          "documentation":"<p>The search query text to find relevant listings.</p>"
        },
        "filters":{
          "shape":"SearchFilterList",
          "documentation":"<p>Filters to narrow search results. Multiple filters are combined with AND logic. Multiple values within the same filter are combined with OR logic.</p>"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results that are returned per call. You can use <code>nextToken</code> to get more results.</p>"
        },
        "sortBy":{
          "shape":"SearchListingsSortBy",
          "documentation":"<p>The field to sort results by. Valid values are <code>RELEVANCE</code> and <code>AVERAGE_CUSTOMER_RATING</code>.</p>"
        },
        "sortOrder":{
          "shape":"SearchListingsSortOrder",
          "documentation":"<p>The sort direction. Valid values are <code>DESCENDING</code> and <code>ASCENDING</code>.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>If <code>nextToken</code> is returned, there are more results available. Make the call again using the returned token to retrieve the next page.</p>"
        }
      }
    },
    "SearchListingsOutput":{
      "type":"structure",
      "required":[
        "totalResults",
        "listingSummaries"
      ],
      "members":{
        "totalResults":{
          "shape":"NonNegativeCount",
          "documentation":"<p>The total number of listings matching the search criteria.</p>"
        },
        "listingSummaries":{
          "shape":"ListingSummaryList",
          "documentation":"<p>The listing summaries matching the search criteria. Each summary includes the listing name, description, badges, categories, pricing models, reviews, and associated products.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>If <code>nextToken</code> is returned, there are more results available. Make the call again using the returned token to retrieve the next page.</p>"
        }
      }
    },
    "SearchListingsSortBy":{
      "type":"string",
      "enum":[
        "RELEVANCE",
        "AVERAGE_CUSTOMER_RATING"
      ]
    },
    "SearchListingsSortOrder":{
      "type":"string",
      "enum":[
        "DESCENDING",
        "ASCENDING"
      ]
    },
    "SearchText":{
      "type":"string",
      "max":512,
      "min":1,
      "pattern":".*[^ ]*.*"
    },
    "Selector":{
      "type":"structure",
      "required":[
        "type",
        "value"
      ],
      "members":{
        "type":{
          "shape":"SelectorType",
          "documentation":"<p>The category of the selector, such as <code>Duration</code>.</p>"
        },
        "value":{
          "shape":"BoundedString",
          "documentation":"<p>The value of the selector.</p>"
        }
      },
      "documentation":"<p>A selector used to choose a specific configuration within a configurable upfront rate card.</p>"
    },
    "SelectorType":{
      "type":"string",
      "enum":["Duration"]
    },
    "SellerEngagement":{
      "type":"structure",
      "required":[
        "engagementType",
        "contentType",
        "value"
      ],
      "members":{
        "engagementType":{
          "shape":"SellerEngagementType",
          "documentation":"<p>The type of engagement, such as <code>REQUEST_FOR_PRIVATE_OFFER</code> or <code>REQUEST_FOR_DEMO</code>.</p>"
        },
        "contentType":{
          "shape":"SellerEngagementContentType",
          "documentation":"<p>The format of the engagement value, such as a URL.</p>"
        },
        "value":{
          "shape":"NonEmptyString",
          "documentation":"<p>The engagement value, such as a URL to the engagement form.</p>"
        }
      },
      "documentation":"<p>An engagement option available to potential buyers of a product, such as requesting a private offer or a demo.</p>"
    },
    "SellerEngagementContentType":{
      "type":"string",
      "enum":["LINK"]
    },
    "SellerEngagementList":{
      "type":"list",
      "member":{"shape":"SellerEngagement"},
      "max":100,
      "min":0
    },
    "SellerEngagementType":{
      "type":"string",
      "enum":[
        "REQUEST_FOR_PRIVATE_OFFER",
        "REQUEST_FOR_DEMO"
      ]
    },
    "SellerInformation":{
      "type":"structure",
      "required":[
        "sellerProfileId",
        "displayName"
      ],
      "members":{
        "sellerProfileId":{
          "shape":"SellerProfileId",
          "documentation":"<p>The unique identifier of the seller profile.</p>"
        },
        "displayName":{
          "shape":"NonEmptyString",
          "documentation":"<p>The human-readable name of the seller.</p>"
        }
      },
      "documentation":"<p>Information about a seller, including the profile identifier and display name.</p>"
    },
    "SellerProfileId":{
      "type":"string",
      "max":255,
      "min":1,
      "pattern":"[\\w\\-]+"
    },
    "String":{"type":"string"},
    "SupportTerm":{
      "type":"structure",
      "required":[
        "id",
        "type",
        "refundPolicy"
      ],
      "members":{
        "id":{
          "shape":"TermId",
          "documentation":"<p>The unique identifier of the term.</p>"
        },
        "type":{
          "shape":"TermType",
          "documentation":"<p>The category of the term.</p>"
        },
        "refundPolicy":{
          "shape":"BoundedString",
          "documentation":"<p>The refund policy description for the offer.</p>"
        }
      },
      "documentation":"<p>Defines a support term that includes the refund policy for the offer.</p>"
    },
    "TermId":{
      "type":"string",
      "max":256,
      "min":1,
      "pattern":"[A-Za-z0-9+=;,.@\\-_]+"
    },
    "TermType":{
      "type":"string",
      "enum":[
        "ByolPricingTerm",
        "ConfigurableUpfrontPricingTerm",
        "FixedUpfrontPricingTerm",
        "UsageBasedPricingTerm",
        "FreeTrialPricingTerm",
        "LegalTerm",
        "PaymentScheduleTerm",
        "RecurringPaymentTerm",
        "RenewalTerm",
        "SupportTerm",
        "ValidityTerm",
        "VariablePaymentTerm",
        "NetPaymentTerm"
      ]
    },
    "ThrottlingException":{
      "type":"structure",
      "members":{
        "message":{"shape":"ExceptionMessage"}
      },
      "documentation":"<p>The request was denied due to request throttling.</p>",
      "error":{
        "httpStatusCode":429,
        "senderFault":true
      },
      "exception":true
    },
    "Timestamp":{"type":"timestamp"},
    "TypeToFacetMap":{
      "type":"map",
      "key":{"shape":"SearchFacetType"},
      "value":{"shape":"ListingFacetList"}
    },
    "URL":{
      "type":"string",
      "max":2048,
      "min":1,
      "pattern":"https?://.*"
    },
    "UsageBasedPricingTerm":{
      "type":"structure",
      "required":[
        "id",
        "type",
        "currencyCode",
        "rateCards"
      ],
      "members":{
        "id":{
          "shape":"TermId",
          "documentation":"<p>The unique identifier of the term.</p>"
        },
        "type":{
          "shape":"TermType",
          "documentation":"<p>The category of the term.</p>"
        },
        "currencyCode":{
          "shape":"CurrencyCode",
          "documentation":"<p>Defines the currency for the prices in this term.</p>"
        },
        "rateCards":{
          "shape":"UsageBasedRateCardList",
          "documentation":"<p>The rate cards containing per-unit rates for usage-based pricing.</p>"
        }
      },
      "documentation":"<p>Defines a usage-based pricing term (typically pay-as-you-go), where buyers are charged based on product usage.</p>"
    },
    "UsageBasedRateCardItem":{
      "type":"structure",
      "required":["rateCard"],
      "members":{
        "rateCard":{
          "shape":"RateCardList",
          "documentation":"<p>The per-unit rates for this usage-based rate card.</p>"
        }
      },
      "documentation":"<p>A rate card within a usage-based pricing term, containing per-unit rates.</p>"
    },
    "UsageBasedRateCardList":{
      "type":"list",
      "member":{"shape":"UsageBasedRateCardItem"}
    },
    "UseCase":{
      "type":"structure",
      "required":[
        "description",
        "displayName",
        "value"
      ],
      "members":{
        "description":{
          "shape":"NonEmptyString",
          "documentation":"<p>A description of the use case.</p>"
        },
        "displayName":{
          "shape":"NonEmptyString",
          "documentation":"<p>The human-readable name of the use case.</p>"
        },
        "value":{
          "shape":"NonEmptyString",
          "documentation":"<p>The machine-readable identifier of the use case.</p>"
        }
      },
      "documentation":"<p>A use case describing a scenario where the product can be applied.</p>"
    },
    "UseCaseEntry":{
      "type":"structure",
      "required":["useCase"],
      "members":{
        "useCase":{
          "shape":"UseCase",
          "documentation":"<p>The use case details.</p>"
        }
      },
      "documentation":"<p>An entry in the list of use cases for a listing.</p>"
    },
    "UseCaseList":{
      "type":"list",
      "member":{"shape":"UseCaseEntry"},
      "max":100,
      "min":0
    },
    "ValidationException":{
      "type":"structure",
      "members":{
        "message":{"shape":"ExceptionMessage"},
        "reason":{
          "shape":"ValidationExceptionReason",
          "documentation":"<p>The reason that the input fails to satisfy the constraints specified by the service.</p>"
        }
      },
      "documentation":"<p>The input fails to satisfy the constraints specified by the service.</p>",
      "error":{
        "httpStatusCode":400,
        "senderFault":true
      },
      "exception":true
    },
    "ValidationExceptionReason":{
      "type":"string",
      "enum":[
        "INVALID_PAGINATION_TOKEN",
        "MALFORMED_REQUEST_PARAMETERS",
        "PAGINATION_LIMIT_EXCEEDED"
      ]
    },
    "ValidityTerm":{
      "type":"structure",
      "required":[
        "id",
        "type"
      ],
      "members":{
        "id":{
          "shape":"TermId",
          "documentation":"<p>The unique identifier of the term.</p>"
        },
        "type":{
          "shape":"TermType",
          "documentation":"<p>The category of the term.</p>"
        },
        "agreementDuration":{
          "shape":"BoundedString",
          "documentation":"<p>The duration of the agreement, in ISO 8601 format.</p>"
        },
        "agreementEndDate":{
          "shape":"Timestamp",
          "documentation":"<p>The date when the agreement ends.</p>"
        },
        "agreementStartDate":{
          "shape":"Timestamp",
          "documentation":"<p>The date when the agreement starts.</p>"
        }
      },
      "documentation":"<p>Defines a validity term that specifies the duration or date range of an agreement.</p>"
    },
    "VariablePaymentTerm":{
      "type":"structure",
      "required":[
        "id",
        "type",
        "currencyCode",
        "maxTotalChargeAmount"
      ],
      "members":{
        "id":{
          "shape":"TermId",
          "documentation":"<p>The unique identifier of the term.</p>"
        },
        "type":{
          "shape":"TermType",
          "documentation":"<p>The category of the term.</p>"
        },
        "currencyCode":{
          "shape":"CurrencyCode",
          "documentation":"<p>Defines the currency for the prices in this term.</p>"
        },
        "maxTotalChargeAmount":{
          "shape":"BoundedString",
          "documentation":"<p>The maximum total amount that can be charged under this term.</p>"
        }
      },
      "documentation":"<p>Defines a variable payment term with a maximum total charge amount.</p>"
    }
  },
  "documentation":"<p>The AWS Marketplace Discovery API provides programmatic access to the AWS Marketplace catalog, including searching and browsing listings, retrieving product details and fulfillment options, and accessing public and private offer pricing and terms.</p>"
}
