> ## Documentation Index
> Fetch the complete documentation index at: https://docs.amber.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Parent Products



## OpenAPI

````yaml https://app.amber.ai/api/public/v1/openapi.json get /brands/{brand}/products/{id}
openapi: 3.1.0
info:
  title: Amber Public API
  version: 1.3.0
  description: >-
    Read-only access to brand business data. Products are Parent Products;
    Product Options and SKUs are distinct resources. Follow reference IDs and
    collection cursors for complete graphs. API keys never impersonate their
    creator. New source monetary values are decimal strings; deployed summary
    numbers remain unchanged. JSON specifications retain all nested fields.
    Archived rows remain visible unless soft-deleted; supplier-private quote
    drafts are excluded.
servers:
  - url: https://app.amber.ai/api/public/v1
security: []
tags:
  - name: Brand
  - name: Parent Products
  - name: Product Options
  - name: SKUs
  - name: Product Versions
  - name: Boms
  - name: Bom Components
  - name: Bom Skus
  - name: Measurement Tables
  - name: Measurement Table Skus
  - name: Product Relations
  - name: Product Option Values
  - name: Product Option Dimension Values
  - name: Product Option Prices
  - name: Product Option Collections
  - name: Sku Dimension Values
  - name: Product Collections
  - name: Product Tags
  - name: Product Launch Windows
  - name: Suppliers
  - name: Quotes
  - name: Quote Revisions
  - name: Quote Items
  - name: Quote Price Bands
  - name: Quote Notes
  - name: Samples
  - name: Sample Rounds
  - name: Sample Checklist Results
  - name: Orders
  - name: Order Items
  - name: Order Amendments
  - name: Production Runs
  - name: Production Run Items
  - name: Production Run Item Revisions
  - name: Shipments
  - name: Shipment Items
  - name: Shipment Cartons
  - name: Shipment Carton Items
  - name: Shipment Charges
  - name: Order Shipments
  - name: Legs
  - name: Leg Items
  - name: Bookings
  - name: Booking Items
  - name: Shipment Bookings
  - name: Shipment Item Lineages
  - name: Packing Lists
  - name: Packing List Lines
  - name: Goods Receipts
  - name: Goods Receipt Lines
  - name: Inventory
  - name: Invoices
  - name: Invoice Lines
  - name: Payment Agreements
  - name: Payment Milestones
  - name: Payments
  - name: Payment Settlements
  - name: Payment Receipts
  - name: Partners
  - name: Contacts
  - name: Locations
  - name: Brand Locations
  - name: Partner Locations
  - name: Documents
  - name: Document Types
  - name: Images
  - name: Notes
  - name: Materials
  - name: Material Variants
  - name: Bom Sections
  - name: Categories
  - name: Collections
  - name: Launch Windows
  - name: Tags
  - name: Colors
  - name: Options
  - name: Option Values
  - name: Dimensions
  - name: Dimension Values
  - name: Dimension Groups
  - name: Dimension Group Dimensions
  - name: Dimension Curves
  - name: Dimension Curve Axes
  - name: Dimension Curve Axis Values
  - name: Dimension Curve Cells
  - name: Checklists
  - name: Packing Templates
  - name: Carton Sizes
  - name: Couriers
  - name: Payment Terms
  - name: Units Of Measure
  - name: Countries
  - name: Custom Field Definitions
paths:
  /brands/{brand}/products/{id}:
    get:
      tags:
        - Parent Products
      summary: Get Parent Products
      operationId: getProducts
      parameters:
        - name: brand
          in: path
          required: true
          description: Brand slug authorized by this API key.
          schema:
            type: string
            example: acme
        - name: id
          in: path
          required: true
          description: Stable resource identifier.
          schema:
            type: string
        - name: include
          in: query
          required: false
          description: >-
            Comma-separated: documents, images, bomSections,
            launchWindowDefinitions, tagDefinitions, collectionDefinitions,
            dimensionValueDefinitions, dimensionDefinitions,
            optionValueDefinitions, optionDefinitions, categories, colors,
            materialVariants, materials, productOptions, skus, versions, boms,
            bomComponents, measurementTables, optionValues, dimensionValues,
            prices, optionCollections, bomSkus, measurementTableSkus,
            skuDimensionValues, collections, tags, launchWindows, relations, or
            all. Each relation includes up to includeLimit rows (default 25,
            maximum 100), a totalItems count, and a URL carrying the filters and
            page size to combine with nextCursor. Reads run in batches of at
            most 3 relationships. Each distinct include costs one expansion
            credit from a per-key budget shared across brands: capacity 62,
            default refill 1,000 credits/hour. Exhaustion returns 429 with
            Retry-After. Continuation URLs do not consume expansion credits.
          schema:
            type: string
            example: boms,bomComponents,measurementTables,productOptions,materials
        - name: includeLimit
          in: query
          required: false
          description: >-
            Rows per included relationship, default 25. Requires include. Each
            relationship has its own continuation cursor.
          schema:
            description: >-
              Rows per included relationship, default 25. Requires include. Each
              relationship has its own continuation cursor.
            default: 25
            type: integer
            minimum: 1
            maximum: 100
      responses:
        '200':
          description: Visible entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProductDetail'
        '400':
          description: >-
            Invalid parameter, unsupported include, or cursor used with
            different filters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Missing, invalid, expired, or out-of-scope API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Entity or related subject is not visible in this brand.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Rate limit exceeded. Retry after the indicated delay.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          headers:
            Retry-After:
              description: Seconds before retrying.
              schema:
                type: integer
                minimum: 0
        '500':
          description: Unexpected server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - ApiKeyAuth: []
components:
  schemas:
    ProductDetail:
      type: object
      properties:
        launchWindow:
          type:
            - string
            - 'null'
        estimatedVolume:
          type:
            - number
            - 'null'
        globalMoq:
          type:
            - number
            - 'null'
        htsCodeOverride:
          type:
            - string
            - 'null'
        customFields:
          anyOf:
            - f8cdd6dc-8b55-467b-ba01-36236286f523
            - type: 'null'
        productOwnerUserId:
          type:
            - string
            - 'null'
        currentProductVersionId:
          type:
            - string
            - 'null'
        optionGroupCurveId:
          type:
            - string
            - 'null'
        lastActivityAt:
          type:
            - string
            - 'null'
        included:
          type: object
          properties:
            documents:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      subjects:
                        type: array
                        items:
                          type: object
                          properties:
                            subjectKind:
                              type: string
                            subjectKey:
                              type: string
                            establishedAs:
                              type: string
                            subjectLabel:
                              type: string
                          required:
                            - subjectKind
                            - subjectKey
                            - establishedAs
                            - subjectLabel
                          additionalProperties: false
                      id:
                        type: string
                      ownerType:
                        type: string
                      ownerId:
                        type: string
                      visibility:
                        type: string
                      documentTypeId:
                        type:
                          - string
                          - 'null'
                      dataValue:
                        type:
                          - string
                          - 'null'
                      fileName:
                        type:
                          - string
                          - 'null'
                      mimeType:
                        type:
                          - string
                          - 'null'
                      fileSizeBytes:
                        type:
                          - number
                          - 'null'
                      channel:
                        type: string
                      source:
                        type:
                          - string
                          - 'null'
                      supersededByDocumentId:
                        type:
                          - string
                          - 'null'
                      supersededAt:
                        type:
                          - string
                          - 'null'
                      supersededReason:
                        type:
                          - string
                          - 'null'
                      senderRole:
                        type:
                          - string
                          - 'null'
                      issuerName:
                        type:
                          - string
                          - 'null'
                      extent:
                        anyOf:
                          - 637c01a5-3724-41d9-83db-383cde32d8f6
                          - type: 'null'
                      createdAt:
                        type: string
                      updatedAt:
                        type: string
                      deletedAt:
                        type:
                          - string
                          - 'null'
                      subjectKind:
                        type:
                          - string
                          - 'null'
                      subjectKey:
                        type:
                          - string
                          - 'null'
                    required:
                      - subjects
                      - id
                      - ownerType
                      - ownerId
                      - visibility
                      - documentTypeId
                      - dataValue
                      - fileName
                      - mimeType
                      - fileSizeBytes
                      - channel
                      - source
                      - supersededByDocumentId
                      - supersededAt
                      - supersededReason
                      - senderRole
                      - issuerName
                      - extent
                      - createdAt
                      - updatedAt
                      - deletedAt
                      - subjectKind
                      - subjectKey
                    additionalProperties: false
                nextCursor:
                  type:
                    - string
                    - 'null'
                totalItems:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                url:
                  type: string
              required:
                - items
                - nextCursor
                - totalItems
                - url
              additionalProperties: false
            images:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                      filename:
                        type: string
                      fileSize:
                        type: number
                      mimeType:
                        type: string
                      category:
                        type: string
                      entityId:
                        anyOf:
                          - type: string
                            pattern: >-
                              ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                          - type: 'null'
                      entityType:
                        type:
                          - string
                          - 'null'
                      description:
                        type:
                          - string
                          - 'null'
                      title:
                        type:
                          - string
                          - 'null'
                      idx:
                        type: number
                      isThumbnail:
                        type: boolean
                      isInternal:
                        type: boolean
                      uploadedAt:
                        type:
                          - string
                          - 'null'
                      createdAt:
                        type: string
                      updatedAt:
                        type: string
                    required:
                      - id
                      - filename
                      - fileSize
                      - mimeType
                      - category
                      - entityId
                      - entityType
                      - description
                      - title
                      - idx
                      - isThumbnail
                      - isInternal
                      - uploadedAt
                      - createdAt
                      - updatedAt
                    additionalProperties: false
                nextCursor:
                  type:
                    - string
                    - 'null'
                totalItems:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                url:
                  type: string
              required:
                - items
                - nextCursor
                - totalItems
                - url
              additionalProperties: false
            bomSections:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                      code:
                        type: string
                      name:
                        type: string
                      sequence:
                        type: number
                      relevantFieldKeys:
                        anyOf:
                          - 9c862584-e161-4a4f-999c-7bb2a0c41ed2
                          - type: 'null'
                      deletedAt:
                        type:
                          - string
                          - 'null'
                      createdAt:
                        type: string
                      updatedAt:
                        type: string
                    required:
                      - id
                      - code
                      - name
                      - sequence
                      - relevantFieldKeys
                      - deletedAt
                      - createdAt
                      - updatedAt
                    additionalProperties: false
                nextCursor:
                  type:
                    - string
                    - 'null'
                totalItems:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                url:
                  type: string
              required:
                - items
                - nextCursor
                - totalItems
                - url
              additionalProperties: false
            launchWindowDefinitions:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                      collectionId:
                        anyOf:
                          - type: string
                            pattern: >-
                              ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                          - type: 'null'
                      name:
                        type: string
                      code:
                        type: string
                      uiColor:
                        type: string
                      launchStartDate:
                        type:
                          - string
                          - 'null'
                      launchEndDate:
                        type:
                          - string
                          - 'null'
                      deletedAt:
                        type:
                          - string
                          - 'null'
                      createdAt:
                        type: string
                      updatedAt:
                        type: string
                    required:
                      - id
                      - collectionId
                      - name
                      - code
                      - uiColor
                      - launchStartDate
                      - launchEndDate
                      - deletedAt
                      - createdAt
                      - updatedAt
                    additionalProperties: false
                nextCursor:
                  type:
                    - string
                    - 'null'
                totalItems:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                url:
                  type: string
              required:
                - items
                - nextCursor
                - totalItems
                - url
              additionalProperties: false
            tagDefinitions:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                      name:
                        type: string
                      code:
                        type: string
                      uiColor:
                        type: string
                      createdAt:
                        type: string
                      updatedAt:
                        type: string
                    required:
                      - id
                      - name
                      - code
                      - uiColor
                      - createdAt
                      - updatedAt
                    additionalProperties: false
                nextCursor:
                  type:
                    - string
                    - 'null'
                totalItems:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                url:
                  type: string
              required:
                - items
                - nextCursor
                - totalItems
                - url
              additionalProperties: false
            collectionDefinitions:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                      name:
                        type: string
                      code:
                        type: string
                      uiColor:
                        type: string
                      customFields:
                        anyOf:
                          - 8be683c1-0333-4d01-8420-fc68717d5ae7
                          - type: 'null'
                      createdAt:
                        type: string
                      updatedAt:
                        type: string
                    required:
                      - id
                      - name
                      - code
                      - uiColor
                      - customFields
                      - createdAt
                      - updatedAt
                    additionalProperties: false
                nextCursor:
                  type:
                    - string
                    - 'null'
                totalItems:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                url:
                  type: string
              required:
                - items
                - nextCursor
                - totalItems
                - url
              additionalProperties: false
            dimensionValueDefinitions:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                      dimensionId:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                      value:
                        type: string
                      customerFacingLabel:
                        type:
                          - string
                          - 'null'
                      sequence:
                        type: number
                      skuCode:
                        type:
                          - string
                          - 'null'
                      createdAt:
                        type: string
                      updatedAt:
                        type: string
                    required:
                      - id
                      - dimensionId
                      - value
                      - customerFacingLabel
                      - sequence
                      - skuCode
                      - createdAt
                      - updatedAt
                    additionalProperties: false
                nextCursor:
                  type:
                    - string
                    - 'null'
                totalItems:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                url:
                  type: string
              required:
                - items
                - nextCursor
                - totalItems
                - url
              additionalProperties: false
            dimensionDefinitions:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                      name:
                        type: string
                      code:
                        type: string
                      skuSequence:
                        type: number
                      listSequence:
                        type: number
                      createdAt:
                        type: string
                      updatedAt:
                        type: string
                    required:
                      - id
                      - name
                      - code
                      - skuSequence
                      - listSequence
                      - createdAt
                      - updatedAt
                    additionalProperties: false
                nextCursor:
                  type:
                    - string
                    - 'null'
                totalItems:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                url:
                  type: string
              required:
                - items
                - nextCursor
                - totalItems
                - url
              additionalProperties: false
            optionValueDefinitions:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                      optionId:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                      name:
                        type: string
                      code:
                        type:
                          - string
                          - 'null'
                      status:
                        type: string
                      sequence:
                        type: number
                      hexCode:
                        type:
                          - string
                          - 'null'
                      swatchVersion:
                        type: number
                      createdAt:
                        type: string
                      updatedAt:
                        type: string
                    required:
                      - id
                      - optionId
                      - name
                      - code
                      - status
                      - sequence
                      - hexCode
                      - swatchVersion
                      - createdAt
                      - updatedAt
                    additionalProperties: false
                nextCursor:
                  type:
                    - string
                    - 'null'
                totalItems:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                url:
                  type: string
              required:
                - items
                - nextCursor
                - totalItems
                - url
              additionalProperties: false
            optionDefinitions:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                      name:
                        type: string
                      key:
                        type: string
                      sequence:
                        type: number
                      createdAt:
                        type: string
                      updatedAt:
                        type: string
                    required:
                      - id
                      - name
                      - key
                      - sequence
                      - createdAt
                      - updatedAt
                    additionalProperties: false
                nextCursor:
                  type:
                    - string
                    - 'null'
                totalItems:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                url:
                  type: string
              required:
                - items
                - nextCursor
                - totalItems
                - url
              additionalProperties: false
            categories:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                      parentId:
                        anyOf:
                          - type: string
                            pattern: >-
                              ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                          - type: 'null'
                      name:
                        type: string
                      code:
                        type:
                          - string
                          - 'null'
                      defaultHtsCode:
                        type:
                          - string
                          - 'null'
                      defaultSizeSystemId:
                        anyOf:
                          - type: string
                            pattern: >-
                              ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                          - type: 'null'
                      defaultTargetSize:
                        type:
                          - string
                          - 'null'
                      nextValue:
                        type:
                          - number
                          - 'null'
                      createdAt:
                        type:
                          - string
                          - 'null'
                      updatedAt:
                        type:
                          - string
                          - 'null'
                    required:
                      - id
                      - parentId
                      - name
                      - code
                      - defaultHtsCode
                      - defaultSizeSystemId
                      - defaultTargetSize
                      - nextValue
                      - createdAt
                      - updatedAt
                    additionalProperties: false
                nextCursor:
                  type:
                    - string
                    - 'null'
                totalItems:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                url:
                  type: string
              required:
                - items
                - nextCursor
                - totalItems
                - url
              additionalProperties: false
            colors:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                      status:
                        type: string
                      code:
                        type: string
                      name:
                        type: string
                      hexCode:
                        type:
                          - string
                          - 'null'
                      swatchVersion:
                        type: number
                      customFields:
                        anyOf:
                          - f5c0b6b1-8dd7-4553-be4b-a29f152510a6
                          - type: 'null'
                      createdAt:
                        type:
                          - string
                          - 'null'
                      updatedAt:
                        type:
                          - string
                          - 'null'
                    required:
                      - id
                      - status
                      - code
                      - name
                      - hexCode
                      - swatchVersion
                      - customFields
                      - createdAt
                      - updatedAt
                    additionalProperties: false
                nextCursor:
                  type:
                    - string
                    - 'null'
                totalItems:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                url:
                  type: string
              required:
                - items
                - nextCursor
                - totalItems
                - url
              additionalProperties: false
            materialVariants:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                      componentId:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                      supplierMaterialVariantName:
                        type:
                          - string
                          - 'null'
                      supplierMaterialVariantCode:
                        type:
                          - string
                          - 'null'
                      negotiatedPrice:
                        type:
                          - string
                          - 'null'
                      negotiatedPriceCurrency:
                        type:
                          - string
                          - 'null'
                      imageVersion:
                        type: number
                      hexCode:
                        type:
                          - string
                          - 'null'
                      colorId:
                        anyOf:
                          - type: string
                            pattern: >-
                              ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                          - type: 'null'
                      customFields:
                        anyOf:
                          - 3d594761-84f2-4551-87d3-d83f6558b643
                          - type: 'null'
                      status:
                        type: string
                      deletedAt:
                        type:
                          - string
                          - 'null'
                      createdAt:
                        type: string
                      updatedAt:
                        type: string
                    required:
                      - id
                      - componentId
                      - supplierMaterialVariantName
                      - supplierMaterialVariantCode
                      - negotiatedPrice
                      - negotiatedPriceCurrency
                      - imageVersion
                      - hexCode
                      - colorId
                      - customFields
                      - status
                      - deletedAt
                      - createdAt
                      - updatedAt
                    additionalProperties: false
                nextCursor:
                  type:
                    - string
                    - 'null'
                totalItems:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                url:
                  type: string
              required:
                - items
                - nextCursor
                - totalItems
                - url
              additionalProperties: false
            materials:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                      bomSectionId:
                        anyOf:
                          - type: string
                            pattern: >-
                              ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                          - type: 'null'
                      name:
                        type: string
                      code:
                        type:
                          - string
                          - 'null'
                      composition:
                        type:
                          - string
                          - 'null'
                      description:
                        type:
                          - string
                          - 'null'
                      gsm:
                        type:
                          - number
                          - 'null'
                      supplier:
                        type:
                          - string
                          - 'null'
                      supplierProductCode:
                        type:
                          - string
                          - 'null'
                      status:
                        type: string
                      negotiatedPrice:
                        type:
                          - string
                          - 'null'
                      negotiatedPriceCurrency:
                        type:
                          - string
                          - 'null'
                      properties:
                        anyOf:
                          - 1295c180-56ea-4662-8242-0e9070720f98
                          - type: 'null'
                      customFields:
                        anyOf:
                          - 9372d9c5-3d4f-431d-9447-d80a3732e10a
                          - type: 'null'
                      imageVersion:
                        type: number
                      deletedAt:
                        type:
                          - string
                          - 'null'
                      createdAt:
                        type: string
                      updatedAt:
                        type: string
                    required:
                      - id
                      - bomSectionId
                      - name
                      - code
                      - composition
                      - description
                      - gsm
                      - supplier
                      - supplierProductCode
                      - status
                      - negotiatedPrice
                      - negotiatedPriceCurrency
                      - properties
                      - customFields
                      - imageVersion
                      - deletedAt
                      - createdAt
                      - updatedAt
                    additionalProperties: false
                nextCursor:
                  type:
                    - string
                    - 'null'
                totalItems:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                url:
                  type: string
              required:
                - items
                - nextCursor
                - totalItems
                - url
              additionalProperties: false
            productOptions:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                      productId:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                        description: Parent Product ID from /products.
                      name:
                        type: string
                      vendorFacingProductName:
                        type:
                          - string
                          - 'null'
                      sequence:
                        type: number
                      status:
                        type: string
                      supplierId:
                        anyOf:
                          - type: string
                            pattern: >-
                              ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                          - type: 'null'
                      collectionId:
                        anyOf:
                          - type: string
                            pattern: >-
                              ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                          - type: 'null'
                      launchWindow:
                        type:
                          - string
                          - 'null'
                      channel:
                        type:
                          - string
                          - 'null'
                      measurementTableId:
                        anyOf:
                          - type: string
                            pattern: >-
                              ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                          - type: 'null'
                      construction:
                        type:
                          - string
                          - 'null'
                      hsCode:
                        type:
                          - string
                          - 'null'
                      hsConfirmed:
                        type: boolean
                      hsWhy:
                        type:
                          - string
                          - 'null'
                      customFields:
                        anyOf:
                          - 33c17349-8eb2-4c59-8ac0-b5fac86b80b0
                          - type: 'null'
                      createdAt:
                        type: string
                      updatedAt:
                        type: string
                      deletedAt:
                        type:
                          - string
                          - 'null'
                    required:
                      - id
                      - productId
                      - name
                      - vendorFacingProductName
                      - sequence
                      - status
                      - supplierId
                      - collectionId
                      - launchWindow
                      - channel
                      - measurementTableId
                      - construction
                      - hsCode
                      - hsConfirmed
                      - hsWhy
                      - customFields
                      - createdAt
                      - updatedAt
                      - deletedAt
                    additionalProperties: false
                nextCursor:
                  type:
                    - string
                    - 'null'
                totalItems:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                url:
                  type: string
              required:
                - items
                - nextCursor
                - totalItems
                - url
              additionalProperties: false
            skus:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                      productId:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                        description: Parent Product ID from /products.
                      code:
                        type: string
                      status:
                        type: string
                      upc:
                        type:
                          - string
                          - 'null'
                      retailPrice:
                        type:
                          - string
                          - 'null'
                      wholesalePrice:
                        type:
                          - string
                          - 'null'
                      colorId:
                        anyOf:
                          - type: string
                            pattern: >-
                              ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                          - type: 'null'
                      htsCodeOverride:
                        type:
                          - string
                          - 'null'
                      productOptionId:
                        anyOf:
                          - type: string
                            pattern: >-
                              ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                          - type: 'null'
                        description: Product Option ID from /product-options.
                      targetFobOverride:
                        type:
                          - string
                          - 'null'
                      launchWindowOverride:
                        type:
                          - string
                          - 'null'
                      collectionIdsOverride:
                        anyOf:
                          - 42228197-132b-463e-b7ff-10d5ef2668c8
                          - type: 'null'
                      weightValue:
                        type:
                          - string
                          - 'null'
                      weightUomId:
                        anyOf:
                          - type: string
                            pattern: >-
                              ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                          - type: 'null'
                      createdAt:
                        type: string
                      updatedAt:
                        type: string
                    required:
                      - id
                      - productId
                      - code
                      - status
                      - upc
                      - retailPrice
                      - wholesalePrice
                      - colorId
                      - htsCodeOverride
                      - productOptionId
                      - targetFobOverride
                      - launchWindowOverride
                      - collectionIdsOverride
                      - weightValue
                      - weightUomId
                      - createdAt
                      - updatedAt
                    additionalProperties: false
                nextCursor:
                  type:
                    - string
                    - 'null'
                totalItems:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                url:
                  type: string
              required:
                - items
                - nextCursor
                - totalItems
                - url
              additionalProperties: false
            versions:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                      productId:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                      versionNumber:
                        type: number
                      versionName:
                        type:
                          - string
                          - 'null'
                      status:
                        type: string
                      isActive:
                        type: boolean
                      weightValue:
                        type:
                          - string
                          - 'null'
                      weightUomId:
                        anyOf:
                          - type: string
                            pattern: >-
                              ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                          - type: 'null'
                      targetFob:
                        type:
                          - string
                          - 'null'
                      targetFobCurrency:
                        type:
                          - string
                          - 'null'
                      priceCurrency:
                        type:
                          - string
                          - 'null'
                      moq:
                        type:
                          - number
                          - 'null'
                      moqByColor:
                        type:
                          - number
                          - 'null'
                      moqLastConfirmedAt:
                        type:
                          - string
                          - 'null'
                      technicalSpecs:
                        anyOf:
                          - 63ae722d-057d-4244-961f-c4e895ed3dde
                          - type: 'null'
                      packagingSpecs:
                        anyOf:
                          - 4d8d5205-6e74-44cc-a16d-3fc34621f75f
                          - type: 'null'
                      labelingSpecs:
                        anyOf:
                          - c047d9c0-554e-41b3-a100-7ee93eddec79
                          - type: 'null'
                      sizeSpecs:
                        anyOf:
                          - 3e9d9259-d226-4f36-9fd6-db054e8a0bcc
                          - type: 'null'
                      baseVersionId:
                        anyOf:
                          - type: string
                            pattern: >-
                              ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                          - type: 'null'
                      protoId:
                        anyOf:
                          - type: string
                            pattern: >-
                              ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                          - type: 'null'
                      partnerId:
                        anyOf:
                          - type: string
                            pattern: >-
                              ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                          - type: 'null'
                      notes:
                        type:
                          - string
                          - 'null'
                      changesSummary:
                        type:
                          - string
                          - 'null'
                      approvedAt:
                        type:
                          - string
                          - 'null'
                      approvedBy:
                        anyOf:
                          - type: string
                            pattern: >-
                              ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                          - type: 'null'
                      createdAt:
                        type: string
                      updatedAt:
                        type: string
                    required:
                      - id
                      - productId
                      - versionNumber
                      - versionName
                      - status
                      - isActive
                      - weightValue
                      - weightUomId
                      - targetFob
                      - targetFobCurrency
                      - priceCurrency
                      - moq
                      - moqByColor
                      - moqLastConfirmedAt
                      - technicalSpecs
                      - packagingSpecs
                      - labelingSpecs
                      - sizeSpecs
                      - baseVersionId
                      - protoId
                      - partnerId
                      - notes
                      - changesSummary
                      - approvedAt
                      - approvedBy
                      - createdAt
                      - updatedAt
                    additionalProperties: false
                nextCursor:
                  type:
                    - string
                    - 'null'
                totalItems:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                url:
                  type: string
              required:
                - items
                - nextCursor
                - totalItems
                - url
              additionalProperties: false
            boms:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                      productVersionId:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                      name:
                        type: string
                      isDefault:
                        type: boolean
                      constructionAnnotations:
                        anyOf:
                          - 13d31d02-7dc6-46c9-a4f3-b49355e8fdb1
                          - type: 'null'
                      createdAt:
                        type: string
                      updatedAt:
                        type: string
                    required:
                      - id
                      - productVersionId
                      - name
                      - isDefault
                      - constructionAnnotations
                      - createdAt
                      - updatedAt
                    additionalProperties: false
                nextCursor:
                  type:
                    - string
                    - 'null'
                totalItems:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                url:
                  type: string
              required:
                - items
                - nextCursor
                - totalItems
                - url
              additionalProperties: false
            bomComponents:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                      bomId:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                      componentId:
                        anyOf:
                          - type: string
                            pattern: >-
                              ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                          - type: 'null'
                      componentVariantId:
                        anyOf:
                          - type: string
                            pattern: >-
                              ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                          - type: 'null'
                      bomSectionId:
                        anyOf:
                          - type: string
                            pattern: >-
                              ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                          - type: 'null'
                      name:
                        type:
                          - string
                          - 'null'
                      composition:
                        type:
                          - string
                          - 'null'
                      quantity:
                        type:
                          - string
                          - 'null'
                      unitPrice:
                        type:
                          - string
                          - 'null'
                      gsm:
                        type:
                          - number
                          - 'null'
                      supplier:
                        type:
                          - string
                          - 'null'
                      notes:
                        type:
                          - string
                          - 'null'
                      properties:
                        anyOf:
                          - 373de7a4-b51c-410f-aedc-3b3d7fbd6b0a
                          - type: 'null'
                      showOnPo:
                        type: boolean
                      createdAt:
                        type:
                          - string
                          - 'null'
                      updatedAt:
                        type:
                          - string
                          - 'null'
                    required:
                      - id
                      - bomId
                      - componentId
                      - componentVariantId
                      - bomSectionId
                      - name
                      - composition
                      - quantity
                      - unitPrice
                      - gsm
                      - supplier
                      - notes
                      - properties
                      - showOnPo
                      - createdAt
                      - updatedAt
                    additionalProperties: false
                nextCursor:
                  type:
                    - string
                    - 'null'
                totalItems:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                url:
                  type: string
              required:
                - items
                - nextCursor
                - totalItems
                - url
              additionalProperties: false
            measurementTables:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                      productVersionId:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                      name:
                        type: string
                      sizeSpecs:
                        anyOf:
                          - f65c68b1-8021-43e5-98a0-e6ba4d51ca0c
                          - type: 'null'
                      createdAt:
                        type: string
                      updatedAt:
                        type: string
                    required:
                      - id
                      - productVersionId
                      - name
                      - sizeSpecs
                      - createdAt
                      - updatedAt
                    additionalProperties: false
                nextCursor:
                  type:
                    - string
                    - 'null'
                totalItems:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                url:
                  type: string
              required:
                - items
                - nextCursor
                - totalItems
                - url
              additionalProperties: false
            optionValues:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      productOptionId:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                      optionValueId:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                    required:
                      - productOptionId
                      - optionValueId
                    additionalProperties: false
                nextCursor:
                  type:
                    - string
                    - 'null'
                totalItems:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                url:
                  type: string
              required:
                - items
                - nextCursor
                - totalItems
                - url
              additionalProperties: false
            dimensionValues:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      productOptionId:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                      dimensionValueId:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                    required:
                      - productOptionId
                      - dimensionValueId
                    additionalProperties: false
                nextCursor:
                  type:
                    - string
                    - 'null'
                totalItems:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                url:
                  type: string
              required:
                - items
                - nextCursor
                - totalItems
                - url
              additionalProperties: false
            prices:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      productOptionId:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                      kind:
                        type: string
                      currency:
                        type: string
                      amount:
                        type: string
                    required:
                      - productOptionId
                      - kind
                      - currency
                      - amount
                    additionalProperties: false
                nextCursor:
                  type:
                    - string
                    - 'null'
                totalItems:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                url:
                  type: string
              required:
                - items
                - nextCursor
                - totalItems
                - url
              additionalProperties: false
            optionCollections:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      productOptionId:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                      collectionId:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                    required:
                      - productOptionId
                      - collectionId
                    additionalProperties: false
                nextCursor:
                  type:
                    - string
                    - 'null'
                totalItems:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                url:
                  type: string
              required:
                - items
                - nextCursor
                - totalItems
                - url
              additionalProperties: false
            bomSkus:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      bomId:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                      skuId:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                    required:
                      - bomId
                      - skuId
                    additionalProperties: false
                nextCursor:
                  type:
                    - string
                    - 'null'
                totalItems:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                url:
                  type: string
              required:
                - items
                - nextCursor
                - totalItems
                - url
              additionalProperties: false
            measurementTableSkus:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      measurementTableId:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                      skuId:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                    required:
                      - measurementTableId
                      - skuId
                    additionalProperties: false
                nextCursor:
                  type:
                    - string
                    - 'null'
                totalItems:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                url:
                  type: string
              required:
                - items
                - nextCursor
                - totalItems
                - url
              additionalProperties: false
            skuDimensionValues:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      skuId:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                      dimensionValueId:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                    required:
                      - skuId
                      - dimensionValueId
                    additionalProperties: false
                nextCursor:
                  type:
                    - string
                    - 'null'
                totalItems:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                url:
                  type: string
              required:
                - items
                - nextCursor
                - totalItems
                - url
              additionalProperties: false
            collections:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                      productId:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                      collectionId:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                      quantity:
                        type:
                          - number
                          - 'null'
                      unitPrice:
                        type:
                          - string
                          - 'null'
                      notes:
                        type:
                          - string
                          - 'null'
                      createdAt:
                        type: string
                      updatedAt:
                        type: string
                    required:
                      - id
                      - productId
                      - collectionId
                      - quantity
                      - unitPrice
                      - notes
                      - createdAt
                      - updatedAt
                    additionalProperties: false
                nextCursor:
                  type:
                    - string
                    - 'null'
                totalItems:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                url:
                  type: string
              required:
                - items
                - nextCursor
                - totalItems
                - url
              additionalProperties: false
            tags:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      productId:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                      tagId:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                      createdAt:
                        type: string
                    required:
                      - productId
                      - tagId
                      - createdAt
                    additionalProperties: false
                nextCursor:
                  type:
                    - string
                    - 'null'
                totalItems:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                url:
                  type: string
              required:
                - items
                - nextCursor
                - totalItems
                - url
              additionalProperties: false
            launchWindows:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      productId:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                      launchWindowId:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                      createdAt:
                        type: string
                    required:
                      - productId
                      - launchWindowId
                      - createdAt
                    additionalProperties: false
                nextCursor:
                  type:
                    - string
                    - 'null'
                totalItems:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                url:
                  type: string
              required:
                - items
                - nextCursor
                - totalItems
                - url
              additionalProperties: false
            relations:
              type: object
              properties:
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                      productId:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                      relatedProductId:
                        type: string
                        pattern: >-
                          ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                      relationType:
                        type: string
                      createdByUserId:
                        anyOf:
                          - type: string
                            pattern: >-
                              ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
                          - type: 'null'
                      createdAt:
                        type: string
                    required:
                      - id
                      - productId
                      - relatedProductId
                      - relationType
                      - createdByUserId
                      - createdAt
                    additionalProperties: false
                nextCursor:
                  type:
                    - string
                    - 'null'
                totalItems:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                url:
                  type: string
              required:
                - items
                - nextCursor
                - totalItems
                - url
              additionalProperties: false
          additionalProperties: false
        id:
          type: string
        code:
          type: string
        name:
          type: string
        status:
          type:
            - string
            - 'null'
        description:
          type:
            - string
            - 'null'
        category:
          type:
            - string
            - 'null'
        categoryId:
          type:
            - string
            - 'null'
        variants:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              sku:
                type: string
              color:
                type:
                  - string
                  - 'null'
              size:
                type:
                  - string
                  - 'null'
            required:
              - id
              - sku
              - color
              - size
            additionalProperties: false
        suppliers:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              name:
                type: string
              shortName:
                type:
                  - string
                  - 'null'
            required:
              - id
              - name
              - shortName
            additionalProperties: false
        createdAt:
          type: string
        updatedAt:
          type: string
      required:
        - id
        - code
        - name
        - status
        - description
        - category
        - categoryId
        - variants
        - suppliers
        - createdAt
        - updatedAt
      additionalProperties: false
      $defs:
        __schema0:
          anyOf:
            - type: string
            - type: number
            - type: boolean
            - type: 'null'
            - type: array
              items:
                $ref: '#/components/schemas/ProductDetail/$defs/__schema0'
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                $ref: '#/components/schemas/ProductDetail/$defs/__schema0'
        __schema1:
          anyOf:
            - type: string
            - type: number
            - type: boolean
            - type: 'null'
            - type: array
              items:
                $ref: '#/components/schemas/ProductDetail/$defs/__schema1'
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                $ref: '#/components/schemas/ProductDetail/$defs/__schema1'
        __schema2:
          anyOf:
            - type: string
            - type: number
            - type: boolean
            - type: 'null'
            - type: array
              items:
                $ref: '#/components/schemas/ProductDetail/$defs/__schema2'
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                $ref: '#/components/schemas/ProductDetail/$defs/__schema2'
        __schema3:
          anyOf:
            - type: string
            - type: number
            - type: boolean
            - type: 'null'
            - type: array
              items:
                $ref: '#/components/schemas/ProductDetail/$defs/__schema3'
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                $ref: '#/components/schemas/ProductDetail/$defs/__schema3'
        __schema4:
          anyOf:
            - type: string
            - type: number
            - type: boolean
            - type: 'null'
            - type: array
              items:
                $ref: '#/components/schemas/ProductDetail/$defs/__schema4'
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                $ref: '#/components/schemas/ProductDetail/$defs/__schema4'
        __schema5:
          anyOf:
            - type: string
            - type: number
            - type: boolean
            - type: 'null'
            - type: array
              items:
                $ref: '#/components/schemas/ProductDetail/$defs/__schema5'
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                $ref: '#/components/schemas/ProductDetail/$defs/__schema5'
        __schema6:
          anyOf:
            - type: string
            - type: number
            - type: boolean
            - type: 'null'
            - type: array
              items:
                $ref: '#/components/schemas/ProductDetail/$defs/__schema6'
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                $ref: '#/components/schemas/ProductDetail/$defs/__schema6'
        __schema7:
          anyOf:
            - type: string
            - type: number
            - type: boolean
            - type: 'null'
            - type: array
              items:
                $ref: '#/components/schemas/ProductDetail/$defs/__schema7'
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                $ref: '#/components/schemas/ProductDetail/$defs/__schema7'
        __schema8:
          anyOf:
            - type: string
            - type: number
            - type: boolean
            - type: 'null'
            - type: array
              items:
                $ref: '#/components/schemas/ProductDetail/$defs/__schema8'
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                $ref: '#/components/schemas/ProductDetail/$defs/__schema8'
        __schema9:
          anyOf:
            - type: string
            - type: number
            - type: boolean
            - type: 'null'
            - type: array
              items:
                $ref: '#/components/schemas/ProductDetail/$defs/__schema9'
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                $ref: '#/components/schemas/ProductDetail/$defs/__schema9'
        __schema10:
          anyOf:
            - type: string
            - type: number
            - type: boolean
            - type: 'null'
            - type: array
              items:
                $ref: '#/components/schemas/ProductDetail/$defs/__schema10'
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                $ref: '#/components/schemas/ProductDetail/$defs/__schema10'
        __schema11:
          anyOf:
            - type: string
            - type: number
            - type: boolean
            - type: 'null'
            - type: array
              items:
                $ref: '#/components/schemas/ProductDetail/$defs/__schema11'
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                $ref: '#/components/schemas/ProductDetail/$defs/__schema11'
        __schema12:
          anyOf:
            - type: string
            - type: number
            - type: boolean
            - type: 'null'
            - type: array
              items:
                $ref: '#/components/schemas/ProductDetail/$defs/__schema12'
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                $ref: '#/components/schemas/ProductDetail/$defs/__schema12'
        __schema13:
          anyOf:
            - type: string
            - type: number
            - type: boolean
            - type: 'null'
            - type: array
              items:
                $ref: '#/components/schemas/ProductDetail/$defs/__schema13'
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                $ref: '#/components/schemas/ProductDetail/$defs/__schema13'
        __schema14:
          anyOf:
            - type: string
            - type: number
            - type: boolean
            - type: 'null'
            - type: array
              items:
                $ref: '#/components/schemas/ProductDetail/$defs/__schema14'
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                $ref: '#/components/schemas/ProductDetail/$defs/__schema14'
        __schema15:
          anyOf:
            - type: string
            - type: number
            - type: boolean
            - type: 'null'
            - type: array
              items:
                $ref: '#/components/schemas/ProductDetail/$defs/__schema15'
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                $ref: '#/components/schemas/ProductDetail/$defs/__schema15'
        __schema16:
          anyOf:
            - type: string
            - type: number
            - type: boolean
            - type: 'null'
            - type: array
              items:
                $ref: '#/components/schemas/ProductDetail/$defs/__schema16'
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                $ref: '#/components/schemas/ProductDetail/$defs/__schema16'
    Error:
      type: object
      properties:
        error:
          type: string
        errorCode:
          type: string
        details:
          $ref: e288252a-1a5c-4f61-a45d-43bb0ec01ab5
          description: Parameter validation issues, when available.
      required:
        - error
        - errorCode
      additionalProperties: false
      $defs:
        __schema0:
          anyOf:
            - type: string
            - type: number
            - type: boolean
            - type: 'null'
            - type: array
              items:
                $ref: '#/components/schemas/Error/$defs/__schema0'
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                $ref: '#/components/schemas/Error/$defs/__schema0'
  securitySchemes:
    ApiKeyAuth:
      type: http
      scheme: bearer
      description: A brand-scoped or global amb_sk_... API key.

````