Suger Product API

Access to Product resources

Operations 11

POST /org/{orgId}/draftProduct Create Or Update Draft Product #
GET /org/{orgId}/partner/{partner}/product List Products By Partner #
GET /org/{orgId}/product List Products #
POST /org/{orgId}/product Create Product #
DELETE /org/{orgId}/product/{productId} Delete Product #
GET /org/{orgId}/product/{productId} Get Product #
PATCH /org/{orgId}/product/{productId} Update Product #
GET /org/{orgId}/product/{productId}/dimension List Metering Dimensions Of Product #
PATCH /org/{orgId}/product/{productId}/fulfillmentUrl Update Product Fulfillment Url #
PATCH /org/{orgId}/product/{productId}/metaInfo Update Product Meta Info #
PATCH /org/{orgId}/product/{productId}/publish Publish Product #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/suger-product-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

suger-product-api-openapi.yml Raw ↑
openapi: 3.2.0
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 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:
    AzureMarketplaceSubmission:
      example:
        result: succeeded
        deprecationSchedule:
          date: date
          reason: criticalSecurityIssue
          $schema: $schema
          alternative:
            product: '{}'
            plan: '{}'
          dateOffset: dateOffset
        lifecycleState: null
        product: product
        $schema: $schema
        created: created
        resourceName: resourceName
        id: id
        validations:
        - resourceId: resourceId
          code: businessValidationError
          $schema: $schema
          level: informational
          message: message
        - resourceId: resourceId
          code: businessValidationError
          $schema: $schema
          level: informational
          message: message
        status: notStarted
        target:
          targetId: targetId
          targetType: flight
      properties:
        $schema:
          type: string
        created:
          description: Date-time string
          type: string
        deprecationSchedule:
          $ref: '#/components/schemas/AzureMarketplaceDeprecationSchedule'
        id:
          type: string
        lifecycleState:
          $ref: '#/components/schemas/AzureMarketplaceResourceLifecycleState'
        product:
          type: string
        resourceName:
          type: string
        result:
          enum:
          - succeeded
          - failed
          - pending
          type: string
        status:
          enum:
          - notStarted
          - running
          - completed
          type: string
        target:
          $ref: '#/components/schemas/AzureMarketplaceResourceTarget'
        validations:
          items:
            $ref: '#/components/schemas/AzureMarketplaceValidation'
          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:
            $ref: '#/components/schemas/AzureMarketplaceValidation'
          type: array
      type: object
    AwsRenewalOfferType:
      enum:
      - ''
      - External
      - AwsMarketplace
      type: string
      x-enum-varnames:
      - AwsRenewalOfferType_Unknown
      - AwsRenewalOfferType_External
      - AwsRenewalOfferType_AwsMarketplace
    AzureMarketplacePriceFlexibleSchedule:
      properties:
        billingSchedule:
          items:
            $ref: '#/components/schemas/AzureMarketplacePriceBillingSchedule'
          type: array
        initialCharge:
          $ref: '#/components/schemas/AzureMarketplacePriceInitialCharge'
        price:
          type: number
      type: object
    GcpMarketplaceProductServiceConfigBilling:
      example:
        metrics:
        - metrics
        - metrics
      properties:
        metrics:
          description: 'The list of metrics that are available for billing for the product.

            In format of "product-name.endpoints.gcp-project-id.cloud.goog/plan_name_metric_name"'
          items:
            type: string
          type: array
      type: object
    AzureMarketplacePriceBillingSchedule:
      properties:
        chargeDate:
          description: In format of YYYY-MM-DD.
          type: string
        note:
          type: string
        pricePerPaymentInUsd:
          type: number
      type: object
    AzureMarketState:
      example:
        marketCode: marketCode
        state: Disabled
      properties:
        marketCode:
          description: ISO Country Code
          type: string
        state:
          enum:
          - Disabled
          - Enabled
          - StopSelling
          - Terminated
          type: string
      type: object
    AzureMarketplaceDeprecationSchedule:
      example:
        date: date
        reason: criticalSecurityIssue
        $schema: $schema
        alternative:
          product: '{}'
          plan: '{}'
        dateOffset: dateOffset
      properties:
        $schema:
          type: string
        alternative:
          $ref: '#/components/schemas/AzureMarketplaceDeprecationScheduleAlternative'
        date:
          description: 'format: date-time'
          type: string
        dateOffset:
          description: 'format: duration'
          type: string
        reason:
          enum:
          - criticalSecurityIssue
          - endOfSupport
          - other
          type: string
      type: object
    AzureLocalizedDateTime:
      example:
        dateTimeInUtc: dateTimeInUtc
        localizePerMarket: true
      properties:
        dateTimeInUtc:
          type: string
        localizePerMarket:
          type: boolean
      type: object
    GcpMarketplaceProductMeteringMetric:
      example:
        priceTiers:
        - startingUsageAmount: startingUsageAmount
          price:
            nanos: 1
            units: units
            currencyCode: currencyCode
          fromAmount: 1.0246457001441578
        - startingUsageAmount: startingUsageAmount
          price:
            nanos: 1
            units: units
            currencyCode: currencyCode
          fromAmount: 1.0246457001441578
        displayUnitDescription: displayUnitDescription
        unit: unit
        metricKind: metricKind
        displayName: displayName
        valueType: '{}'
        name: name
        description: description
        displayUnit: displayUnit
        id: id
        reportingUnit: reportingUnit
        skuId: skuId
      properties:
        description:
          description: 'Description: A detailed description of the metric, which can be used in documentation.'
          type: string
        displayName:
          type: string
        displayUnit:
          description: such as "min"
          type: string
        displayUnitDescription:
          description: such as "minute"
          type: string
        id:
          description: 'The usage metering metric/dimension key

            It is in format of "{plan_id}_{usage_dimension_key}". For example, "basic_plan_storage".'
          type: string
        metricKind:
          description: such as "DELTA"
          type: string
        name:
          description: 'Name: The resource name of the metric descriptor,

            in format of "{productServiceName}/{plan_id}_{usage_dimension_key}"'
          type: string
        priceTiers:
          description: 'Price info of this usage metering metric.

            Only applicable for the default offer (plan) and private offer.'
          items:
            $ref: '#/components/schemas/GcpPriceTier'
          type: array
        reportingUnit:
          description: such as "min"
          type: string
        skuId:
          description: The SKU ID of this usage metering metric. Applicable only in Private Offer.
          type: string
        unit:
          description: such as "min"
          type: string
        valueType:
          allOf:
          - $ref: '#/components/schemas/ValueType'
          description: such as "INT64"
          type: object
      type: object
    AzureProductFeatureAvailability:
      example:
        markets:
        - marketCode: marketCode
          friendlyName: friendlyName
        - marketCode: marketCode
          friendlyName: friendlyName
        visibility: Public
        priceSchedules:
        - isBaseSchedule: true
          schedules:
          - pricingModel: Flat
            pricingUnits:
            - unitType: unitType
              name: sharedcore
              lowerUnit: 9
              upperUnit: 6
              isUnlimitedUnit: true
            - unitType: unitType
              name: sharedcore
              lowerUnit: 9
              upperUnit: 6
              isUnlimitedUnit: true
            priceCadence:
              type: Month
              value: 9
            retailPrice:
              openPrice: 8.762042012749001
              priceTierID: priceTierID
              currencyCode: currencyCode
          - pricingModel: Flat
            pricingUnits:
            - unitType: unitType
              name: sharedcore
              lowerUnit: 9
              upperUnit: 6
              isUnlimitedUnit: true
            - unitType: unitType
              name: sharedcore
              lowerUnit: 9
              upperUnit: 6
              isUnlimitedUnit: true
            priceCadence:
              type: Month
              value: 9
            retailPrice:
              openPrice: 8.762042012749001
              priceTierID: priceTierID
              currencyCode: currencyCode
          dateTimeRange:
            endAt:
              dateTimeInUtc: dateTimeInUtc
              localizePerMarket: true
            startAt:
              dateTimeInUtc: dateTimeInUtc
              localizePerMarket: true
          marketCodes:
          - marketCodes
          - marketCodes
          friendlyName: friendlyName
        - isBaseSchedule: true
          schedules:
          - pricingModel: Flat
            pricingUnits:
            - unitType: unitType
              name: sharedcore
              lowerUnit: 9
              upperUnit: 6
              isUnlimitedUnit: true
            - unitType: unitType
              name: sharedcore
              lowerUnit: 9
              upperUnit: 6
              isUnlimitedUnit: true
            priceCadence:
              type: Month
              value: 9
            retailPrice:
              openPrice: 8.762042012749001
              priceTierID: priceTierID
              currencyCode: currencyCode
          - pricingModel: Flat
            pricingUnits:
            - unitType: unitType
              name: sharedcore
              lowerUnit: 9
              upperUnit: 6
              isUnlimitedUnit: true
            - unitType: unitType
              name: sharedcore
              lowerUnit: 9
              upperUnit: 6
              isUnlimitedUnit: true
            priceCadence:
              type: Month
              value: 9
            retailPrice:
              openPrice: 8.762042012749001
              priceTierID: priceTierID
              currencyCode: currencyCode
          dateTimeRange:
            endAt:
              dateTimeInUtc: dateTimeInUtc
              localizePerMarket: true
            startAt:
              dateTimeInUtc: dateTimeInUtc
              localizePerMarket: true
          marketCodes:
          - marketCodes
          - marketCodes
          friendlyName: friendlyName
        customMeters:
        - unitOfMeasure: unitOfMeasure
          displayName: displayName
          includedBaseQuantities:
          - quantity: 1.2315135367772556
            isInfinite: true
            recurringUnit: Monthly
          - quantity: 1.2315135367772556
            isInfinite: true
            recurringUnit: Monthly
          isEnabled: true
          priceInUsd: 5.025004791520295
          id: id
          uniqueID: uniqueID
        - unitOfMeasure: unitOfMeasure
          displayName: displayName
          includedBaseQuantities:
          - quantity: 1.2315135367772556
            isInfinite: true
            recurringUnit: Monthly
          - quantity: 1.2315135367772556
            isInfinite: true
            recurringUnit: Monthly
          isEnabled: true
          priceInUsd: 5.025004791520295
          id: id
          uniqueID: uniqueID
        marketStates:
        - marketCode: marketCode
          state: Disabled
        - marketCode: marketCode
          state: Disabled
        tenantAudiences:
        - description: description
          id: id
        - description: description
          id: id
        subscriptionAudiences:
        - description: description
          id: id
        - description: description
          id: id
        id: id
        properties:
        - type: type
          value: value
        - type: type
          value: value
        trial:
          duration: 9
          dateTimeRange:
            endAt:
              dateTimeInUtc: dateTimeInUtc
              localizePerMarket: true
            startAt:
              dateTimeInUtc: dateTimeInUtc
              localizePerMarket: true
          type: NoTrial
          durationType: Minute
        isHidden: true
        resourceType: resourceType
      properties:
        customMeters:
          items:
            $ref: '#/components/schemas/AzureProductVariantCustomMeter'
          type: array
        id:
          type: string
        isHidden:
          type: boolean
        marketStates:
          items:
            $ref: '#/components/schemas/AzureMarketState'
          type: array
        markets:
          items:
            $ref: '#/components/schemas/AzureMarket'
          type: array
        priceSchedules:
          items:
            $ref: '#/components/schemas/AzureProductVariantPriceSchedule'
          type: array
        properties:
          items:
            $ref: '#/components/schemas/AzureTypeValue'
          type: array
        resourceType:
          description: ResourceType = FeatureAvailability
          type: string
        subscriptionAudiences:
          items:
            $ref: '#/components/schemas/AzureAudience'
          type: array
        tenantAudiences:
          items:
            $ref: '#/components/schemas/AzureAudience'
          type: array
        trial:
          $ref: '#/components/schemas/AzureProductVariantTrial'
        visibility:
          enum:
          - Public
          - Private
          type: string
      type: object
    GcpMarketplaceProductExternalAccountSpec:
      example:
        signupUri: signupUri
        loginUri: loginUri
        singleSignOnUri: singleSignOnUri
      properties:
        loginUri:
          type: string
        signupUri:
          type: string
        singleSignOnUri:
          type: string
      type: object
    AzureMarketplacePlanListing:
      example:
        summary: summary
        lifecycleState: null
        product: product
        $schema: $schema
        kind: azureVM-plan
        languageId: languageId
        name: name
        description: description
        resourceName: resourceName
        id: id
        validations:
        - resourceId: resourceId
          code: businessValidationError
          $schema: $schema
          level: informational
          message: message
        - resourceId: resourceId
          code: businessValidationError
          $schema: $schema
          level: informational
          message: message
        plan: plan
      properties:
        $schema:
          type: string
        description:
          type: string
        id:
          type: string
        kind:
          enum:
          - azureVM-plan
          - azureSaaS-plan
          - azureCoreVM-plan
          - azureContainer-plan
          type: string
        languageId:
          type: string
        lifecycleState:
          $ref: '#/components/schemas/AzureMarketplaceResourceLifecycleState'
        name:
          type: string
        plan:
          type: string
        product:
          type: string
        resourceName:
          type: string
        summary:
          type: string
        validations:
          items:
            $ref: '#/components/schemas/AzureMarketplaceValidation'
          type: array
      type: object
    AlibabaMarketplaceProduct:
      example:
        FrontCategoryId: 6
        Status: Status
        Description: Description
        RequestId: RequestId
        ShopInfo:
          WangWangs:
            WangWang:
            - UserName: UserName
              Remark: Remark
            - UserName: UserName
              Remark: Remark
          Telephones:
            Telephone:
            - Telephone
            - Telephone
          Emails: Emails
          Id: 7
          Name: Name
        ProductSkus:
          ProductSku:
          - Constraints: Constraints
            ChargeType: ChargeType
            Modules:
              Mo

# --- 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