Suger Product API

Access to Product resources

OpenAPI Specification

suger-product-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  contact:
    email: support@suger.io
    name: Suger Support
    url: https://www.suger.io/support
  description: CRUD operations on a set of resources, including organizations, products, offers, entitlements, usage record groups for meterting, etc.
  title: Suger API Product API
  version: '1.0'
servers:
- url: https://api.suger.cloud
tags:
- description: Access to Product resources
  name: Product
paths:
  /org/{orgId}/draftProduct:
    post:
      description: Create a new draft product or update the existing draft product. When updating draft product, the product.ID is required.
      operationId: CreateOrUpdateDraftProduct
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: orgId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkloadProduct'
        description: the draft product to create
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkloadProduct'
          description: OK
        '400':
          content:
            application/json:
              schema:
                type: string
          description: Bad request error
        '500':
          content:
            application/json:
              schema:
                type: string
          description: Internal server error
      security:
      - APIKeyAuth: []
      summary: Create Or Update Draft Product
      tags:
      - Product
      x-codegen-request-body-name: data
  /org/{orgId}/partner/{partner}/product:
    get:
      description: list all products under the given organization and cloud partner
      operationId: ListProductsByPartner
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: orgId
        required: true
        schema:
          type: string
        style: simple
      - description: Cloud Partner
        explode: false
        in: path
        name: partner
        required: true
        schema:
          enum:
          - AWS
          - AZURE
          - GCP
          type: string
        style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/WorkloadProduct'
                type: array
          description: OK
        '400':
          content:
            application/json:
              schema:
                type: string
          description: Bad request error
        '500':
          content:
            application/json:
              schema:
                type: string
          description: Internal server error
      security:
      - APIKeyAuth: []
      summary: List Products By Partner
      tags:
      - Product
  /org/{orgId}/product:
    get:
      description: list all products under the given organization
      operationId: ListProducts
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: orgId
        required: true
        schema:
          type: string
        style: simple
      - description: filter by partner
        explode: true
        in: query
        name: partner
        required: false
        schema:
          enum:
          - AWS
          - AZURE
          - GCP
          - STRIPE
          type: string
        style: form
      - description: List pagination size, default 100, max value is 1000
        explode: true
        in: query
        name: limit
        required: false
        schema:
          type: integer
        style: form
      - description: List pagination offset, default 0
        explode: true
        in: query
        name: offset
        required: false
        schema:
          type: integer
        style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/WorkloadProduct'
                type: array
          description: OK
        '400':
          content:
            application/json:
              schema:
                type: string
          description: Bad request error
        '500':
          content:
            application/json:
              schema:
                type: string
          description: Internal server error
      security:
      - APIKeyAuth: []
      summary: List Products
      tags:
      - Product
    post:
      description: create a new product in the marketplace
      operationId: CreateProduct
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: orgId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkloadProduct'
        description: the product to create
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkloadProduct'
          description: OK
        '400':
          content:
            application/json:
              schema:
                type: string
          description: Bad request error
        '500':
          content:
            application/json:
              schema:
                type: string
          description: Internal server error
      security:
      - APIKeyAuth: []
      summary: Create Product
      tags:
      - Product
      x-codegen-request-body-name: data
  /org/{orgId}/product/{productId}:
    delete:
      description: The product is soft deleted (marked as DELETED status) in Suger service. only the products with non PUBLIC status are allowed to be deleted.
      operationId: DeleteProduct
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: orgId
        required: true
        schema:
          type: string
        style: simple
      - description: Product ID
        explode: false
        in: path
        name: productId
        required: true
        schema:
          type: string
        style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                type: string
          description: Empty string if deletion is successful
        '400':
          content:
            application/json:
              schema:
                type: string
          description: Bad request error
        '404':
          content:
            application/json:
              schema:
                type: string
          description: Not found error
        '500':
          content:
            application/json:
              schema:
                type: string
          description: Internal server error
      security:
      - APIKeyAuth: []
      summary: Delete Product
      tags:
      - Product
    get:
      description: get product by product id
      operationId: GetProduct
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: orgId
        required: true
        schema:
          type: string
        style: simple
      - description: Product ID
        explode: false
        in: path
        name: productId
        required: true
        schema:
          type: string
        style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkloadProduct'
          description: OK
        '400':
          content:
            application/json:
              schema:
                type: string
          description: Bad request error
        '404':
          content:
            application/json:
              schema:
                type: string
          description: Not found error
        '500':
          content:
            application/json:
              schema:
                type: string
          description: Internal server error
      security:
      - APIKeyAuth: []
      summary: Get Product
      tags:
      - Product
    patch:
      description: update product info, no price update is allowed via this API.
      operationId: UpdateProduct
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: orgId
        required: true
        schema:
          type: string
        style: simple
      - description: Product ID
        explode: false
        in: path
        name: productId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkloadProduct'
        description: the product to update
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkloadProduct'
          description: OK
        '400':
          content:
            application/json:
              schema:
                type: string
          description: Bad request error
        '500':
          content:
            application/json:
              schema:
                type: string
          description: Internal server error
      security:
      - APIKeyAuth: []
      summary: Update Product
      tags:
      - Product
      x-codegen-request-body-name: data
  /org/{orgId}/product/{productId}/dimension:
    get:
      description: list all metering dimensions of the given product
      operationId: ListProductMeteringDimensions
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: orgId
        required: true
        schema:
          type: string
        style: simple
      - description: Product ID
        explode: false
        in: path
        name: productId
        required: true
        schema:
          type: string
        style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/MeteringDimension'
                type: array
          description: OK
        '400':
          content:
            application/json:
              schema:
                type: string
          description: Bad request error
        '404':
          content:
            application/json:
              schema:
                type: string
          description: Not found error
        '500':
          content:
            application/json:
              schema:
                type: string
          description: Internal server error
      security:
      - APIKeyAuth: []
      summary: List Metering Dimensions Of Product
      tags:
      - Product
  /org/{orgId}/product/{productId}/fulfillmentUrl:
    patch:
      description: update the fulfillment url of the given product
      operationId: UpdateProductFulfillmentUrl
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: orgId
        required: true
        schema:
          type: string
        style: simple
      - description: Product ID
        explode: false
        in: path
        name: productId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateProductParams'
        description: Update Product Params
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkloadProduct'
          description: OK
        '500':
          content: {}
          description: Internal Server Error
      security:
      - APIKeyAuth: []
      summary: Update Product Fulfillment Url
      tags:
      - Product
      x-codegen-request-body-name: data
  /org/{orgId}/product/{productId}/metaInfo:
    patch:
      description: Update the meta info of the given product.
      operationId: UpdateProductMetaInfo
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: orgId
        required: true
        schema:
          type: string
        style: simple
      - description: Product ID
        explode: false
        in: path
        name: productId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkloadMetaInfo'
        description: Product meta info to update
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkloadMetaInfo'
          description: OK
        '400':
          content:
            application/json:
              schema:
                type: string
          description: Bad request error
        '500':
          content:
            application/json:
              schema:
                type: string
          description: internal server error
      security:
      - APIKeyAuth: []
      summary: Update Product Meta Info
      tags:
      - Product
      x-codegen-request-body-name: data
  /org/{orgId}/product/{productId}/publish:
    patch:
      description: publish the given product to the public status in the marketplace
      operationId: PublishProduct
      parameters:
      - description: Organization ID
        explode: false
        in: path
        name: orgId
        required: true
        schema:
          type: string
        style: simple
      - description: Product ID
        explode: false
        in: path
        name: productId
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkloadProduct'
        description: the product to publish
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkloadProduct'
          description: OK
        '400':
          content:
            application/json:
              schema:
                type: string
          description: Bad request error
        '404':
          content:
            application/json:
              schema:
                type: string
          description: Not found error
        '500':
          content:
            application/json:
              schema:
                type: string
          description: Internal server error
      security:
      - APIKeyAuth: []
      summary: Publish Product
      tags:
      - Product
      x-codegen-request-body-name: data
components:
  schemas:
    AzureIncludedBaseQuantity:
      example:
        quantity: 1.2315135367772556
        isInfinite: true
        recurringUnit: Monthly
      properties:
        isInfinite:
          type: boolean
        quantity:
          type: number
        recurringUnit:
          enum:
          - Monthly
          - Annual
          type: string
      type: object
    AwsProductPromotionalResources:
      example:
        AdditionalResources:
        - Type: Type
          Text: Text
          Url: Url
        - Type: Type
          Text: Text
          Url: Url
        LogoUrl: LogoUrl
        Videos:
        - Type: Type
          Title: Title
          Url: Url
        - Type: Type
          Title: Title
          Url: Url
      properties:
        AdditionalResources:
          items:
            $ref: '#/components/schemas/AwsProductAdditionalResource'
          type: array
        LogoUrl:
          type: string
        Videos:
          items:
            $ref: '#/components/schemas/AwsProductVideo'
          type: array
      type: object
    SnowflakeMarketplacePlanInstallment:
      example:
        installment_amount: 4.652396432933246
        installment_number: 8.969578798196912
      properties:
        installment_amount:
          type: number
        installment_number:
          type: number
      type: object
    AzureProductVariantTrial:
      example:
        duration: 9
        dateTimeRange:
          endAt:
            dateTimeInUtc: dateTimeInUtc
            localizePerMarket: true
          startAt:
            dateTimeInUtc: dateTimeInUtc
            localizePerMarket: true
        type: NoTrial
        durationType: Minute
      properties:
        dateTimeRange:
          $ref: '#/components/schemas/AzureLocalizedTimeRange'
        duration:
          type: integer
        durationType:
          enum:
          - Minute
          - Days
          - Months
          type: string
        type:
          enum:
          - NoTrial
          - TimedAccess
          - TimedUsage
          - Unlimited
          type: string
      type: object
    AwsMarketplaceProductVisibility:
      enum:
      - Limited
      - Public
      - Restricted
      - Unavailable
      - Draft
      type: string
      x-enum-varnames:
      - AwsMarketplaceProductVisibility_Limited
      - AwsMarketplaceProductVisibility_Public
      - AwsMarketplaceProductVisibility_Restricted
      - AwsMarketplaceProductVisibility_Unavailable
      - AwsMarketplaceProductVisibility_Draft
    AzureMarketState:
      example:
        marketCode: marketCode
        state: Disabled
      properties:
        marketCode:
          description: ISO Country Code
          type: string
        state:
          enum:
          - Disabled
          - Enabled
          - StopSelling
          - Terminated
          type: string
      type: object
    NotificationEventAction:
      enum:
      - ''
      - ABNORMAL_ALERT
      - ACCEPT
      - ADD
      - APPROVE
      - CANCEL
      - CLOSE
      - CREATE
      - DELETE
      - ARCHIVE
      - DISBURSE
      - END_SOON
      - EXPIRE
      - EXPIRE_SOON
      - MERGE
      - METER
      - NEW_CLIENT_SIGNUP
      - NOTIFY
      - NOTIFY_CONTACTS
      - OPEN_EMAIL
      - PENDING_CANCEL
      - PENDING_ACCEPTANCE
      - REINSTATE
      - REJECT
      - REOPEN
      - CHARGE
      - REFUND
      - ISSUE
      - SIGN
      - ROTATE_SECRET
      - SUSPEND
      - TEST
      - UPDATE
      - ACE_ENGAGEMENT_SCORE_UPDATE
      - ACE_SALES_REP_UPDATE
      - ACE_CUSTOMER_EMAIL_UPDATE
      - AZURE_STATUS_UPDATE
      - SUBMIT_APPROVAL_REQUEST
      - REVIEW_APPROVAL_REQUEST
      - COMPLETE
      - FAIL
      - WEBHOOK
      - MARKETPLACE_CONTACT_EMAIL_UPDATE
      type: string
      x-enum-comments:
        NotificationEventAction_ADD: Add user to organization
      x-enum-varnames:
      - NotificationEventAction_UNKNOWN
      - NotificationEventAction_ABNORMAL_ALERT
      - NotificationEventAction_ACCEPT
      - NotificationEventAction_ADD
      - NotificationEventAction_APPROVE
      - NotificationEventAction_CANCEL
      - NotificationEventAction_CLOSE
      - NotificationEventAction_CREATE
      - NotificationEventAction_DELETE
      - NotificationEventAction_ARCHIVE
      - NotificationEventAction_DISBURSE
      - NotificationEventAction_END_SOON
      - NotificationEventAction_EXPIRE
      - NotificationEventAction_EXPIRE_SOON
      - NotificationEventAction_MERGE
      - NotificationEventAction_METER
      - NotificationEventAction_NEW_CLIENT_SIGNUP
      - NotificationEventAction_NOTIFY
      - NotificationEventAction_NOTIFY_CONTACTS
      - NotificationEventAction_OPEN_EMAIL
      - NotificationEventAction_PENDING_CANCEL
      - NotificationEventAction_PENDING_ACCEPTANCE
      - NotificationEventAction_REINSTATE
      - NotificationEventAction_REJECT
      - NotificationEventAction_REOPEN
      - NotificationEventAction_CHARGE
      - NotificationEventAction_REFUND
      - NotificationEventAction_ISSUE
      - NotificationEventAction_SIGN
      - NotificationEventAction_ROTATE_SECRET
      - NotificationEventAction_SUSPEND
      - NotificationEventAction_TEST
      - NotificationEventAction_UPDATE
      - NotificationEventAction_ACE_ENGAGEMENT_SCORE_UPDATE
      - NotificationEventAction_ACE_SALES_REP_UPDATE
      - NotificationEventAction_ACE_CUSTOMER_EMAIL_UPDATE
      - NotificationEventAction_AZURE_STATUS_UPDATE
      - NotificationEventAction_SUBMIT_APPROVAL_REQUEST
      - NotificationEventAction_REVIEW_APPROVAL_REQUEST
      - NotificationEventAction_COMPLETE
      - NotificationEventAction_FAIL
      - NotificationEventAction_WEBHOOK
      - NotificationEventAction_MARKETPLACE_CONTACT_EMAIL_UPDATE
    AwsProduct:
      example:
        Repositories:
        - Type: Type
          Url: Url
        - Type: Type
          Url: Url
        Description:
          UsW9Submitted: true
          Highlights:
          - Highlights
          - Highlights
          Categories:
          - Categories
          - Categories
          ProductCode: ProductCode
          SearchKeywords:
          - SearchKeywords
          - SearchKeywords
          ProductTitle: ProductTitle
          EuW8Submitted: true
          ShortDescription: ShortDescription
          LongDescription: LongDescription
          Manufacturer: Manufacturer
          Visibility: Limited
          AssociatedProducts: '{}'
          Sku: Sku
          Registered: true
        Versions:
        - CreationDate: 2000-01-23 04:56:07+00:00
          Id: Id
          DeliveryOptions:
          - Recommendations: '{}'
            Type: Type
            AmiAlias: AmiAlias
            SourceId: SourceId
            Title: Title
            Visibility: Visibility
            FulfillmentUrl: FulfillmentUrl
            Id: Id
            ShortDescription: ShortDescription
          - Recommendations: '{}'
            Type: Type
            AmiAlias: AmiAlias
            SourceId: SourceId
            Title: Title
            Visibility: Visibility
            FulfillmentUrl: FulfillmentUrl
            Id: Id
            ShortDescription: ShortDescription
          ReleaseNotes: ReleaseNotes
          VersionTitle: VersionTitle
        - CreationDate: 2000-01-23 04:56:07+00:00
          Id: Id
          DeliveryOptions:
          - Recommendations: '{}'
            Type: Type
            AmiAlias: AmiAlias
            SourceId: SourceId
            Title: Title
            Visibility: Visibility
            FulfillmentUrl: FulfillmentUrl
            Id: Id
            ShortDescription: ShortDescription
          - Recommendations: '{}'
            Type: Type
            AmiAlias: AmiAlias
            SourceId: SourceId
            Title: Title
            Visibility: Visibility
            FulfillmentUrl: FulfillmentUrl
            Id: Id
            ShortDescription: ShortDescription
          ReleaseNotes: ReleaseNotes
          VersionTitle: VersionTitle
        productId: productId
        PromotionalResources:
          AdditionalResources:
          - Type: Type
            Text: Text
            Url: Url
          - Type: Type
            Text: Text
            Url: Url
          LogoUrl: LogoUrl
          Videos:
          - Type: Type
            Title: Title
            Url: Url
          - Type: Type
            Title: Title
            Url: Url
        dataFeedProductId: dataFeedProductId
        Dimensions:
        - Types:
          - Types
          - Types
          Description: Description
          Length: 2
          Rate: 6.778324963048013
          TimeUnit: DAY
          Unit: Unit
          Key: Key
          Name: Name
        - Types:
          - Types
          - Types
          Description: Description
          Length: 2
          Rate: 6.778324963048013
          TimeUnit: DAY
          Unit: Unit
          Key: Key
          Name: Name
        SignatureVerificationKeys:
        - Status: Status
          PublicKey: PublicKey
          PublicKeyVersion: 2
        - Status: Status
          PublicKey: PublicKey
          PublicKeyVersion: 2
        SupportInformation:
          Description: Description
      properties:
        Description:
          $ref: '#/components/schemas/AwsProductDescription'
        Dimensions:
          items:
            $ref: '#/components/schemas/AwsProductDimension'
          type: array
        PromotionalResources:
          $ref: '#/components/schemas/AwsProductPromotionalResources'
        Repositories:
          items:
            $ref: '#/components/schemas/AwsProductRepository'
          type: array
        SignatureVerificationKeys:
          items:
            $ref: '#/components/schemas/AwsProductSignatureVerificationKey'
          type: array
        SupportInformation:
          $ref: '#/components/schemas/AwsProductSupportInformation'
        Versions:
          items:
            $ref: '#/components/schemas/AwsProductVersion'
          type: array
        dataFeedProductId:
          description: The product Id in AWS Marketplace Data Feed Service.
          type: string
        productId:
          description: AWS Product ID
          type: string
      type: object
    AzureMarketplacePriceAndAvailabilityPrivateOfferPrice:
      example:
        customMeters:
          priceInputOption: perMarket
          meters: '{}'
        recurrentPrice:
          recurrentPriceMode: flatRate
          userLimits:
            min: 6.84685269835264
            max: 1.4894159098541704
          priceInputOption: perMarket
          prices:
          - billingFrequency: '{}'
            pricePerPaymentInUsd: 1.2315135367772556
            flexibleSchedule: '{}'
            contractDuration: '{}'
            billingTerm:
              type: day
              value: 7.386281948385884
            paymentOption:
              type: day
              value: 7.386281948385884
            prices:
            - markets:
              - markets
              - markets
              price: 1.0246457001441578
              currency: currency
            - markets:
              - markets
              - markets
              price: 1.0246457001441578
              currency: currency
          - billingFrequency: '{}'
            pricePerPaymentInUsd: 1.2315135367772556
            flexibleSchedule: '{}'
            contractDuration: '{}'
            billingTerm:
              type: day
              value: 7.386281948385884
            paymentOption:
              type: day
              value: 7.386281948385884
            prices:
            - markets:
              - markets
              - markets
              price: 1.0246457001441578
              currency: currency
            - markets:
              - markets
              - markets
              price: 1.0246457001441578
              currency: currency
      properties:
        customMeters:
          $ref: '#/components/schemas/AzureMarketplacePriceAndAvailabilityPrivateOfferCustomMeters'
        recurrentPrice:
          $ref: '#/components/schemas/AzureMarketplacePriceAndAvailabilityRecurrentPrice'
      type: object
    GcpMarketplacePriceModel:
      enum:
      - FREE
      - SUBSCRIPTION
      - USAGE
      - SUBSCRIPTION_PLUS_USAGE
      type: string
      x-enum-varnames:
      - GcpMarketplacePriceModel_FREE
      - GcpMarketplacePriceModel_SUBSCRIPTION
      - GcpMarketplacePriceModel_USAGE
      - GcpMarketplacePriceModel_SUBSCRIPTION_PLUS_USAGE
    AzureProductListing:
      example:
        summary: summary
        accessInformation: accessInformation
        keywords:
        - keywords
        - keywords
        compatibleProducts:
        - compatibleProducts
        - compatibleProducts
        description: description
        shortDescription: shortDescription
        languageCode: languageCode
        title: title
        gettingStartedInstructions: gettingStartedInstructions
        assets:
        - fileName: fileName
          fileSasUri: fileSasUri
          description: description
          id: id
          state: PendingUpload
          type: type
          publisherDefinedSasUri: publisherDefinedSasUri
          friendlyName: friendlyName
          order: 4
          resourceType: ListingAsset
        - fileName: fileName
          fileSasUri: fileSasUri
          description: description
          id: id
          state: PendingUpload
          type: type
          publisherDefinedSasUri: publisherDefinedSasUri
          friendlyName: friendlyName
          order: 4
          resourceType: ListingAsset
        listingUris:
        - displayText: displayText
          subtype: subtype
          type: type
          uri: uri
        - displayText: displayText
          subtype: subtype
          type: type
          uri: uri
        publisherName: publisherName
        productDisplayName: productDisplayName
        listingContacts:
        - phone: phone
          name: name
          type: CustomerSupport
          uri: uri
          email: email
        - phone: phone
          name: name
          type: CustomerSupport
          uri: uri
          email: email
        id: id
        resourceType: AzureListing
      properties:
        accessInformation:
          type: string
        assets:
          description: Not original fields. They are populated by other API calls
          items:
            $ref: '#/components/schemas/AzureProductListingAsset'
          type: array
        compatibleProducts:
          items:
            type: string
          type: array
        description:
          type: string
        gettingStartedInstructions:
          type: string
        id:
          type: string
        keywords:
          items:
            type: string
          type: array
        languageCode:
          type: string
        listingContacts:
          items:
            $ref: '#/components/schemas/AzureListingContact'
          type: array
        listingUris:
          items:
            $ref: '#/components/schemas/AzureListingUri'
          type: array
        productDisplayName:
          type: string
        publisherName:
          type: string
        resourceType:
          enum:
          - AzureListing
          type: string
        shortDescription:
          type: string
        summary:
          type: string
        title:
          type: string
      type: object
    AlibabaMarketplaceProductSkuOrderPeriods:
      example:
        OrderPeriod:
        - PeriodType: PeriodType
          Name: Name
        - PeriodType: PeriodType
          Name: Name
      properties:
        OrderPeriod:
          items:
            $ref: '#/components/schemas/AlibabaMarketplaceProductSkuOrderPeriod'
          type: array
      type: object
    AzureMarketplaceCustomerLeads:
      example:
        salesforceLeadConfiguration: '{}'
        product: product
        $schema: $schema
        tableLeadConfiguration: '{}'
        httpsEndpointLeadConfiguration: '{}'
        resourceName: resourceName
        emailLeadConfiguration: '{}'
        dynamicsLeadConfiguration: '{}'
        marketoLeadConfiguration: '{}'
        leadDestination: none
        id: id
        validations:
        - resourceId: resourceId
          code: businessValidationError
          $schema: $schema
          level: informational
          message: message
        - resourceId: resourceId
          code: businessValidationError
          $schema: $schema
          level: informational
          message: message
        blobLeadConfiguration: '{}'
      properties:
        $schema:
          type: string
        blobLeadConfiguration:
          type: object
        dynamicsLeadConfiguration:
          type: object
        emailLeadConfiguration:
          type: object
        httpsEndpointLeadConfiguration:
          type: object
        id:
          type: string
        leadDestination:
          enum:
          - none
          - blob
          - dynamics
          - email
          - httpsEndpoint
          - marketo
          - salesforce
          - table
          type: string
        marketoLeadConfiguration:
          type: object
        product:
          type: string
        resourceName:
          type: string
        salesforceLeadConfiguration:
          type: object
        tableLeadConfiguration:
          type: object
        validations:
          items:


# --- truncated at 32 KB (571 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/suger/refs/heads/main/openapi/suger-product-api-openapi.yml