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

# List Report Rows

> Returns published Replenishment Report rows for one warehouse specified by its `id` path parameter.
Each row snapshots the effective Replenishment Policy and Location Profile, the exact profile
revision used for aggregation, quantity/DOI/shortfall results, and the calculation time.

The response `meta` identifies the published generation and whether it satisfies the latest rebuild
request. Clients paging through a report should restart if `published_generation` changes between pages.
Each row's `computed_at` is the per-product quantity-freshness contract.

A report screen can additionally request `fields=policy,location_profile`
with selected direct fields such as `fields:policy=name,is_active` and
`fields:location_profile=name,status,member_count`. The referenced objects
are then returned once through `included`; their own relationships remain
available from the owning Policy and Location Profile endpoints.

Paging with `cursor_start` or `cursor_end` requires the default `id` or `-id` sort: the cursor
is a range over the identifier, which the other sort orders do not follow. A listing under any
other sort therefore reports `has_more` without continuation links; to enumerate more than one
page, use the default `id` or `-id` sort.



## OpenAPI

````yaml GET /v1/inventory/warehouses/{id}/replenishment-report
openapi: 3.0.3
info:
  title: ShipStream
  version: '1.0'
  license:
    name: Commercial (Copyright 2025 - All Rights Reserved)
    url: https://shipstream.io
  contact:
    name: ShipStream Support
    email: help@shipstream.io
  termsOfService: https://shipstream.io/legal/api-terms/
servers:
  - url: https://{base_url_domain}/api/global
    description: Direct API Url
    variables:
      base_url_domain:
        default: example.shipstream.app
        description: >-
          The fully qualified domain name for your ShipStream WMS instance. This
          is either a custom domain, or a subdomain of shipstream.app,

          and will be the same as the domain name for the page which you use to
          login to ShipStream WMS.
security:
  - ShipStream_bearerAuth: []
tags:
  - name: Warehouses
    x-displayName: Warehouses
  - name: Products
    x-displayName: Products
  - name: ProductProfiles
    x-displayName: ProductProfiles
  - name: HandlingClasses
    x-displayName: HandlingClasses
  - name: Locations
    x-displayName: Locations
  - name: LocationTags
    x-displayName: LocationTags
  - name: SlotTypes
    x-displayName: SlotTypes
  - name: Levels
    x-displayName: Levels
  - name: HoldReasons
    x-displayName: HoldReasons
  - name: Holds
    x-displayName: Holds
  - name: Replenishment
    x-displayName: Replenishment
  - name: LocationProfiles
    x-displayName: LocationProfiles
  - name: SlottingRules
    x-displayName: SlottingRules
  - name: Deliveries
    description: Every thing about a Delivery Receiving
    x-displayName: Deliveries
  - name: Shipments
    x-displayName: Shipments
  - name: Orders
    x-displayName: Orders
  - name: Retailers
    x-displayName: Retailers
  - name: Users
    x-displayName: Users
  - name: User Roles
    x-displayName: User Roles
  - name: Merchants
    x-displayName: Merchants
  - name: Healthcheck
    x-displayName: Healthcheck
paths:
  /v1/inventory/warehouses/{id}/replenishment-report:
    get:
      tags:
        - Replenishment
      summary: List Report Rows
      description: >-
        Returns published Replenishment Report rows for one warehouse specified
        by its `id` path parameter.

        Each row snapshots the effective Replenishment Policy and Location
        Profile, the exact profile

        revision used for aggregation, quantity/DOI/shortfall results, and the
        calculation time.


        The response `meta` identifies the published generation and whether it
        satisfies the latest rebuild

        request. Clients paging through a report should restart if
        `published_generation` changes between pages.

        Each row's `computed_at` is the per-product quantity-freshness contract.


        A report screen can additionally request
        `fields=policy,location_profile`

        with selected direct fields such as `fields:policy=name,is_active` and

        `fields:location_profile=name,status,member_count`. The referenced
        objects

        are then returned once through `included`; their own relationships
        remain

        available from the owning Policy and Location Profile endpoints.


        Paging with `cursor_start` or `cursor_end` requires the default `id` or
        `-id` sort: the cursor

        is a range over the identifier, which the other sort orders do not
        follow. A listing under any

        other sort therefore reports `has_more` without continuation links; to
        enumerate more than one

        page, use the default `id` or `-id` sort.
      operationId: getReplenishmentReport
      parameters:
        - name: id
          in: path
          schema:
            type: integer
            format: int32
          required: true
          description: The `id` of the referenced `Warehouse`.
        - $ref: '#/components/parameters/Inventory_API_v1_replenishment-report-fields'
        - $ref: >-
            #/components/parameters/Inventory_API_v1_fields-replenishment-report-product
        - $ref: '#/components/parameters/Inventory_API_v1_fields-product-merchant'
        - $ref: >-
            #/components/parameters/Inventory_API_v1_fields-replenishment-report-policy
        - $ref: >-
            #/components/parameters/Inventory_API_v1_fields-replenishment-report-location-profile
        - $ref: '#/components/parameters/Inventory_API_v1_replenishment-report-filter'
        - name: sort
          in: query
          schema:
            type: string
          required: false
          description: >-
            The default sort order is **ascending** by primary key (`sort=id`).
            Every sort carries an ascending `id` tie-break, because none of the
            other sortable values are unique. `sku` ordering joins the Product
            catalog, so it is intended for filtered or bounded result sets.

            The following fields are available for sorting:
              - `id`
              - `sku`
              - `doi_days`
              - `shortfall_qty`
              - `daily_demand`
              - `computed_at`
        - $ref: '#/components/parameters/Inventory_API_v1_count'
        - $ref: '#/components/parameters/Inventory_API_v1_cursor_end'
        - $ref: '#/components/parameters/Inventory_API_v1_cursor_start'
        - $ref: '#/components/parameters/Inventory_API_v1_limit'
      responses:
        '200':
          description: >-
            A dictionary with a `collection` property that contains a list of up
            to

            `limit` `ReplenishmentReport` objects matching the query.
          content:
            application/json:
              schema:
                type: object
                properties:
                  collection:
                    type: array
                    description: A list of `ReplenishmentReport` objects.
                    items:
                      $ref: >-
                        #/components/schemas/Inventory_API_v1_ReplenishmentReport
                  included:
                    $ref: '#/components/schemas/Inventory_API_v1_replenishment-report'
                  has_more:
                    $ref: '#/components/schemas/Inventory_API_v1_has_more'
                  next:
                    $ref: '#/components/schemas/Inventory_API_v1_next'
                  previous:
                    $ref: '#/components/schemas/Inventory_API_v1_previous'
                  meta:
                    allOf:
                      - $ref: '#/components/schemas/Inventory_API_v1_meta'
                      - type: object
                        properties:
                          rebuild_status:
                            type: string
                            enum:
                              - idle
                              - building
                              - superseded
                              - failed
                              - null
                            nullable: true
                            description: >-
                              The durable rebuild lifecycle state of the
                              warehouse's Replenishment Report.

                              `null` when the warehouse has never requested an
                              index rebuild.
                          published_generation:
                            type: integer
                            format: int64
                            minimum: 1
                            nullable: true
                            description: >-
                              The published generation observed immediately
                              before the report rows were read. A

                              concurrent publication can make returned rows
                              newer than this conservative marker.

                              Clients paging through a report should restart if
                              this value changes between requests.

                              `null` when no generation has been published yet.
                          generation_current:
                            type: boolean
                            nullable: true
                            description: >-
                              Whether the captured published generation
                              satisfies the latest rebuild request. This

                              can be `false` while `rebuild_status` is `idle`
                              when a successor generation is pending.

                              `null` when the warehouse has never requested an
                              index rebuild.
                          generation_published_at:
                            type: string
                            format: date-time
                            nullable: true
                            description: >-
                              The time the captured index generation was
                              published for the warehouse.

                              `null` when no generation has been published yet.
              example:
                collection:
                  - type: ReplenishmentReport
                    id: 18427
                    product:
                      type: Product
                      id: 18427
                    policy:
                      type: ReplenishmentPolicy
                      id: 7
                    policy_id: 7
                    policy_name: Fast Movers - Forward Pick
                    location_profile_id: 3
                    location_profile_name: Pick Face
                    location_profile:
                      type: LocationProfile
                      id: 3
                    profile_revision_id: 15
                    group_qty: 24
                    assigned_count: 2
                    warehouse_qty: 150
                    available_to_move: 126
                    daily_demand: 3.5
                    doi_days: 6.8571
                    trigger_doi_days: 7
                    target_doi_days: 14
                    shortfall_qty: 25
                    is_flagged: true
                    presence: replenish
                    computed_at: '2026-07-31T11:25:10Z'
                included:
                  Product:
                    - type: Product
                      id: 18427
                      sku: AER-12-CASE
                      name: Regulated Aerosol 12 oz Case
                      is_enabled: true
                      merchant:
                        type: Merchant
                        id: 2
                  ReplenishmentPolicy:
                    - type: ReplenishmentPolicy
                      id: 7
                      name: Fast Movers - Forward Pick
                      is_active: true
                  LocationProfile:
                    - type: LocationProfile
                      id: 3
                      name: Pick Face
                      status: ready
                      member_count: 1275
                has_more: false
                next: null
                previous: null
                meta:
                  processing_time: 0.0142
                  cursor_start: null
                  cursor_end: null
                  rebuild_status: idle
                  published_generation: 5
                  generation_current: true
                  generation_published_at: '2026-08-01T10:00:00Z'
        '400':
          $ref: '#/components/responses/Inventory_API_v1_400-bad-request'
        '404':
          $ref: '#/components/responses/Inventory_API_v1_404-not-found'
        '500':
          $ref: '#/components/responses/Inventory_API_v1_500-internal-server-error'
      x-codeSamples:
        - lang: curl
          label: cURL
          source: |-
            curl --request GET \
              --url 'https://example.shipstream.app/api/global/v1/inventory/warehouses/1/replenishment-report?fields=policy,location_profile&fields:product=basic&fields:policy=name,is_active&fields:location_profile=name,status,member_count&limit=100' \
              --header 'Authorization: Bearer <token>'
        - lang: python
          label: Python
          source: >-
            import requests


            url =
            "https://example.shipstream.app/api/global/v1/inventory/warehouses/1/replenishment-report?fields=policy,location_profile&fields:product=basic&fields:policy=name,is_active&fields:location_profile=name,status,member_count&limit=100"

            headers = {"Authorization": "Bearer <token>"}


            response = requests.get(url, headers=headers)

            print(response.text)
        - lang: javascript
          label: JavaScript
          source: >-
            const options = {method: 'GET', headers: {Authorization: 'Bearer
            <token>'}};


            fetch('https://example.shipstream.app/api/global/v1/inventory/warehouses/1/replenishment-report?fields=policy,location_profile&fields:product=basic&fields:policy=name,is_active&fields:location_profile=name,status,member_count&limit=100',
            options)
              .then(response => response.json())
              .then(response => console.log(response));
        - lang: php
          label: PHP
          source: >-
            <?php


            $curl = curl_init();

            curl_setopt($curl, CURLOPT_URL,
            'https://example.shipstream.app/api/global/v1/inventory/warehouses/1/replenishment-report?fields=policy,location_profile&fields:product=basic&fields:policy=name,is_active&fields:location_profile=name,status,member_count&limit=100');

            curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);

            curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer
            <token>']);


            $response = curl_exec($curl);

            curl_close($curl);

            echo $response;
        - lang: go
          label: Go
          source: |-
            package main

            import (
                "fmt"
                "io"
                "net/http"
            )

            func main() {
                req, _ := http.NewRequest("GET", "https://example.shipstream.app/api/global/v1/inventory/warehouses/1/replenishment-report?fields=policy,location_profile&fields:product=basic&fields:policy=name,is_active&fields:location_profile=name,status,member_count&limit=100", nil)
                req.Header.Add("Authorization", "Bearer <token>")
                response, _ := http.DefaultClient.Do(req)
                defer response.Body.Close()
                body, _ := io.ReadAll(response.Body)
                fmt.Println(string(body))
            }
        - lang: java
          label: Java
          source: >-
            HttpResponse<String> response =
            Unirest.get("https://example.shipstream.app/api/global/v1/inventory/warehouses/1/replenishment-report?fields=policy,location_profile&fields:product=basic&fields:policy=name,is_active&fields:location_profile=name,status,member_count&limit=100")
              .header("Authorization", "Bearer <token>")
              .asString();
        - lang: ruby
          label: Ruby
          source: >-
            require 'uri'

            require 'net/http'


            url =
            URI('https://example.shipstream.app/api/global/v1/inventory/warehouses/1/replenishment-report?fields=policy,location_profile&fields:product=basic&fields:policy=name,is_active&fields:location_profile=name,status,member_count&limit=100')

            request = Net::HTTP::Get.new(url)

            request['Authorization'] = 'Bearer <token>'


            response = Net::HTTP.start(url.hostname, url.port, use_ssl: true) do
            |http|
              http.request(request)
            end

            puts response.read_body
components:
  parameters:
    Inventory_API_v1_replenishment-report-fields:
      name: fields
      in: query
      required: false
      description: >-
        Specify additional fields of the `ReplenishmentReport` object to be
        included in the response.

        See the [selecting fields](/global-api/selecting-fields) page for more
        information.
      explode: false
      schema:
        $ref: '#/components/schemas/Inventory_API_v1_replenishment-report-fields-enum'
    Inventory_API_v1_fields-replenishment-report-product:
      name: fields:product
      in: query
      required: false
      description: >-
        Specify additional common fields of the `Product` or stockable
        `Packaging*` object referenced by each Replenishment Report row. See the
        [selecting fields](/global-api/selecting-fields) page for more
        information.
      explode: false
      schema:
        $ref: >-
          #/components/schemas/Inventory_API_v1_replenishment-report-product-fields-enum
    Inventory_API_v1_fields-product-merchant:
      name: fields:product.merchant
      in: query
      required: false
      description: >-
        Specify additional fields of the `Merchant` object to be included in the
        response. See the [selecting fields](/global-api/selecting-fields) page
        for more information.
      explode: false
      schema:
        $ref: '#/components/schemas/Inventory_API_v1_merchant-fields-enum'
    Inventory_API_v1_fields-replenishment-report-policy:
      name: fields:policy
      in: query
      required: false
      description: >-
        Specify direct fields of the `ReplenishmentPolicy` referenced by each
        Report row.

        Subject relationships, counters, and the Policy's own Location Profile
        expansion are

        intentionally unavailable through this endpoint. See the

        [selecting fields](/global-api/selecting-fields) page for more
        information.
      explode: false
      schema:
        $ref: >-
          #/components/schemas/Inventory_API_v1_replenishment-report-policy-fields-enum
    Inventory_API_v1_fields-replenishment-report-location-profile:
      name: fields:location_profile
      in: query
      required: false
      description: >-
        Specify direct summary fields of the `LocationProfile` referenced by
        each Report row.

        Match definitions, usage details, and nested tag/type relationships are
        intentionally

        unavailable through this endpoint. See the

        [selecting fields](/global-api/selecting-fields) page for more
        information.
      explode: false
      schema:
        $ref: >-
          #/components/schemas/Inventory_API_v1_replenishment-report-location-profile-fields-enum
    Inventory_API_v1_replenishment-report-filter:
      name: filter
      in: query
      description: >-
        Using the [filtering syntax](/global-api/filtering-syntax), you may
        filter the results using the following fields:
          - `id`
          - `sku`
          - `merchant_id`
          - `is_flagged`
          - `presence`
          - `policy_id`
          - `location_profile_id`
          - `profile_revision_id`
          - `doi_days`
          - `shortfall_qty`
          - `computed_at`
      required: false
      style: form
      explode: true
      schema:
        type: array
        items:
          type: string
      allowReserved: true
      examples:
        Flagged products:
          summary: Get products whose coverage is below their trigger threshold.
          value:
            - is_flagged:true
        Initial slotting signals:
          summary: >-
            Get products with recorded demand and no persistent assignment in
            the selected profile.
          value:
            - presence:slot
        Low coverage for one merchant:
          summary: >-
            Get one merchant's products holding fewer days of inventory than
            five.
          value:
            - merchant_id:2
            - doi_days{lt:5}
    Inventory_API_v1_count:
      name: count
      in: query
      description: >-
        If specified as `1`, the `meta.count` property of the response will be
        present and populated with the total count of items

        matching the query before any paging is applied. This is not included by
        default to improve performance in some edge

        cases and is not required to perform paging using the `next` property of
        the response.

        See [paging parameters](/global-api/paging-parameters) for more
        information.
      style: form
      schema:
        type: integer
        minimum: 0
        maximum: 1
    Inventory_API_v1_cursor_end:
      name: cursor_end
      in: query
      description: >-
        A cursor for use in pagination which defines the last `id` of the next
        page of results, non-inclusive.

        See [paging parameters](/global-api/paging-parameters) for more
        information on paging.
      schema:
        type: integer
      style: form
    Inventory_API_v1_cursor_start:
      name: cursor_start
      in: query
      description: >-
        A cursor for use in pagination which defines the starting `id` of the
        next page of results.

        See [paging parameters](/global-api/paging-parameters) for more
        information on paging.
      schema:
        type: integer
      style: form
    Inventory_API_v1_limit:
      name: limit
      in: query
      description: A limit on the number of objects to be returned.
      style: form
      schema:
        type: integer
        example: 100
        default: 100
        minimum: 1
        maximum: 1000
  schemas:
    Inventory_API_v1_ReplenishmentReport:
      title: ReplenishmentReport
      type: object
      description: >-
        A published Replenishment Report row for one warehouse and product: the
        effective

        Replenishment Policy and Location Profile identity, the exact Location
        Profile

        revision whose member locations supplied the aggregation,
        quantity/DOI/shortfall

        results, and the calculation time.


        The one-row-per-warehouse-and-product identity is the Phase 1 planning
        contract

        only; future multi-destination planning models may introduce a separate,

        versioned shape.
      properties:
        type:
          type: string
          enum:
            - ReplenishmentReport
          readOnly: true
          description: >-
            This is a read-only property that describes the type of object in
            the response body.
        id:
          type: integer
          example: 42
          readOnly: true
          description: >-
            The `id` of the product represented by this row, unique within the
            warehouse.
        product:
          allOf:
            - $ref: '#/components/schemas/Inventory_API_v1_StockableProductRef'
            - description: A reference to the stockable product represented by this row.
        policy:
          description: >-
            A direct reference to the effective Replenishment Policy. Request
            selected `fields:policy` when a report screen needs the current
            Policy configuration.\
              `Optional Field`
          allOf:
            - $ref: '#/components/schemas/Inventory_API_v1_ReplenishmentPolicyRef'
        policy_id:
          type: integer
          example: 7
          description: >-
            The `id` of the effective Replenishment Policy that produced this
            row.
        policy_name:
          type: string
          example: Fast Movers
          description: >-
            The name of the effective Replenishment Policy at the time of the
            response.
        location_profile_id:
          type: integer
          example: 3
          description: The `id` of the Location Profile selected by the effective Policy.
        location_profile_name:
          type: string
          example: Pick Face
          description: >-
            The name of the selected Location Profile at the time of the
            response.
        location_profile:
          description: >-
            A direct reference to the selected Location Profile. Request
            selected `fields:location_profile` when a report screen needs its
            current state.\
              `Optional Field`
          allOf:
            - $ref: '#/components/schemas/Inventory_API_v1_LocationProfileRef'
        profile_revision_id:
          type: integer
          example: 15
          description: >-
            The exact Location Profile revision whose member locations supplied
            the

            quantity aggregation for this row.
        group_qty:
          type: number
          example: 24
          description: >-
            The physical on-hand quantity across the member locations of the
            Location Profile revision.
        assigned_count:
          type: integer
          example: 2
          description: >-
            The number of non-temporary member locations assigned to the
            product,

            including assignments that are currently empty.
        warehouse_qty:
          type: number
          example: 150
          description: >-
            The physical on-hand quantity across the whole warehouse on the same
            basis as `group_qty`.
        available_to_move:
          type: number
          example: 126
          description: >-
            The warehouse stock outside the target location group
            (`warehouse_qty` minus

            `group_qty`) that a movement could draw from. A diagnostic value,
            not a status.
        daily_demand:
          type: number
          example: 3.5
          description: >-
            Pickable units per day derived from the effective Policy's velocity
            window.
        doi_days:
          type: number
          example: 6.8571
          description: >-
            Days of inventory at calculation time (`group_qty` divided by
            `daily_demand`).
        trigger_doi_days:
          type: number
          example: 7
          description: >-
            The effective Policy's coverage threshold below which the product is
            flagged, copied at calculation time.
        target_doi_days:
          type: number
          example: 14
          description: >-
            The effective Policy's coverage target used to calculate the
            shortfall, copied at calculation time.
        shortfall_qty:
          type: number
          example: 25
          description: >-
            The quantity required to restore coverage to `target_doi_days`. Zero
            when the product is not flagged.
        is_flagged:
          type: boolean
          description: Whether the calculated coverage is below `trigger_doi_days`.
        presence:
          type: string
          enum:
            - slot
            - replenish
            - ok
          description: >-
            The presence state of the product in the selected Location Profile:
            `slot` means

            recorded pickable demand with no persistent assignment in the
            profile, `replenish`

            means an assignment exists but coverage is below `trigger_doi_days`,
            and `ok`

            means an assignment exists and coverage is at or above the trigger.
        computed_at:
          type: string
          format: date-time
          example: '2026-07-31T11:25:10Z'
          description: >-
            The time this row was calculated. This is the per-product
            quantity-freshness

            contract, distinct from the Location Profile membership freshness.
      required:
        - type
        - id
      additionalProperties: false
      example:
        type: ReplenishmentReport
        id: 18427
        product:
          type: Product
          id: 18427
        policy_id: 7
        policy_name: Fast Movers - Forward Pick
        location_profile_id: 3
        location_profile_name: Pick Face
        profile_revision_id: 15
        group_qty: 24
        assigned_count: 2
        warehouse_qty: 150
        available_to_move: 126
        daily_demand: 3.5
        doi_days: 6.8571
        trigger_doi_days: 7
        target_doi_days: 14
        shortfall_qty: 25
        is_flagged: true
        presence: replenish
        computed_at: '2026-07-31T11:25:10Z'
    Inventory_API_v1_replenishment-report:
      type: object
      description: >-
        Lists of referenced objects included by specifying optional fields.

        See the [selecting fields](/global-api/selecting-fields) page for more
        information.
      example: {}
      properties:
        Merchant:
          type: array
          items:
            $ref: '#/components/schemas/Inventory_API_v1_Merchant'
        PackagingContainer:
          type: array
          items:
            $ref: '#/components/schemas/Inventory_API_v1_PackagingContainer'
        PackagingInfill:
          type: array
          items:
            $ref: '#/components/schemas/Inventory_API_v1_PackagingInfill'
        PackagingSupplies:
          type: array
          items:
            $ref: '#/components/schemas/Inventory_API_v1_PackagingSupplies'
        Product:
          type: array
          items:
            $ref: '#/components/schemas/Inventory_API_v1_CompositeStockableProduct'
        ReplenishmentPolicy:
          type: array
          items:
            $ref: '#/components/schemas/Inventory_API_v1_ReplenishmentPolicy'
        LocationProfile:
          type: array
          items:
            $ref: '#/components/schemas/Inventory_API_v1_LocationProfile'
    Inventory_API_v1_has_more:
      type: boolean
      description: |-
        True if the collection has more items on the next page.
        Use the "next" link to retrieve the next page of results.
    Inventory_API_v1_next:
      type: string
      nullable: true
      description: The resource path for the next page of results if any are expected.
    Inventory_API_v1_previous:
      type: string
      nullable: true
      description: The resource path for the previous page of results if any are expected.
    Inventory_API_v1_meta:
      type: object
      properties:
        processing_time:
          type: number
          description: Total time in which request is processed and response is sent back.
          example: 0.2525252525
        cursor_start:
          type: integer
          description: >-
            A cursor for use in pagination which defines the starting `id` of
            the next page of results.

            See [paging parameters](/global-api/paging-parameters) for more
            information on paging.
          nullable: true
        cursor_end:
          type: integer
          description: >-
            A cursor for use in pagination which defines the last `id` of the
            next page of results, non-inclusive.

            See [paging parameters](/global-api/paging-parameters) for more
            information on paging.
          nullable: true
        count:
          type: integer
          description: >-
            The total number of items matching the query before applying paging
            parameters.

            This field is only present if the query parameter `count=1` is
            present in the request.
      description: Additional metadata pertaining to the response.
    Inventory_API_v1_replenishment-report-fields-enum:
      title: ReplenishmentReport
      description: >-
        Specify additional fields of the `ReplenishmentReport` object to be
        included in the response.
      type: array
      items:
        type: string
        enum:
          - basic
          - all
          - product
          - policy
          - policy_id
          - policy_name
          - location_profile
          - location_profile_id
          - location_profile_name
          - profile_revision_id
          - group_qty
          - assigned_count
          - warehouse_qty
          - available_to_move
          - daily_demand
          - doi_days
          - trigger_doi_days
          - target_doi_days
          - shortfall_qty
          - is_flagged
          - presence
          - computed_at
    Inventory_API_v1_replenishment-report-product-fields-enum:
      title: Replenishment Report Product
      description: >-
        Specify additional common fields of the `Product` or stockable
        `Packaging*`

        object referenced by a Replenishment Report row.
      type: array
      items:
        type: string
        enum:
          - basic
          - all
          - vendor_sku
          - manufacturer_part_number
          - external_id
          - barcodes
          - goods_type
          - is_available
          - is_visible
          - created_at
          - updated_at
          - weight
          - dimensions
          - volume
          - inventory
          - export
          - regulated_goods
          - packaging
          - custom_fields
    Inventory_API_v1_merchant-fields-enum:
      title: Merchant
      type: array
      items:
        type: string
        enum:
          - basic
          - all
          - code
          - name
          - status
          - created_at
          - updated_at
          - brands
          - default_brand
          - custom_fields
    Inventory_API_v1_replenishment-report-policy-fields-enum:
      title: ReplenishmentReportPolicySelection
      description: Specify direct fields of the included `ReplenishmentPolicy` object.
      type: array
      items:
        type: string
        enum:
          - name
          - is_active
          - sort_order
          - demand_period_days
          - trigger_doi_days
          - target_doi_days
          - qualification_reason
          - created_at
          - updated_at
    Inventory_API_v1_replenishment-report-location-profile-fields-enum:
      title: ReplenishmentReportLocationProfileSelection
      description: Specify direct summary fields of the included `LocationProfile` object.
      type: array
      items:
        type: string
        enum:
          - name
          - description
          - status
          - member_count
          - created_at
          - updated_at
    Inventory_API_v1_StockableProductRef:
      title: StockableProductRef
      type: object
      description: A reference to a `Product` or stockable packaging type object by `id`.
      properties:
        type:
          type: string
          description: >-
            This is a read-only property that describes the type of object in
            the response body.
          enum:
            - Product
            - PackagingContainer
            - PackagingInfill
            - PackagingSupplies
        id:
          type: integer
          description: >-
            The internal, read-only, `id` property used as a path parameter in a
            resource lookup.
          format: int32
      required:
        - type
        - id
      nullable: true
      additionalProperties: false
    Inventory_API_v1_ReplenishmentPolicyRef:
      title: ReplenishmentPolicyRef
      type: object
      description: A reference to a Replenishment Policy by ID.
      properties:
        type:
          type: string
          enum:
            - ReplenishmentPolicy
        id:
          type: integer
          format: int32
          minimum: 1
          description: Replenishment Policy ID.
      required:
        - type
        - id
      additionalProperties: false
    Inventory_API_v1_LocationProfileRef:
      title: LocationProfileRef
      type: object
      description: A reference to a Location Profile by ID.
      properties:
        type:
          type: string
          enum:
            - LocationProfile
        id:
          type: integer
          format: int32
          minimum: 1
          description: Location Profile ID.
      required:
        - type
        - id
      nullable: true
      additionalProperties: false
    Inventory_API_v1_Merchant:
      title: Merchant
      type: object
      description: >-
        A `Merchant` represents an entity that owns a distinct pool of inventory
        and line of business.
      properties:
        type:
          type: string
          enum:
            - Merchant
          readOnly: true
        id:
          type: integer
          format: int32
          description: >-
            The internal `id` property used as a path parameter in a resource
            lookup.
          readOnly: true
          example: 4
        code:
          type: string
          description: >-
            Merchant code may only contain letters (a-z), numbers (0-9) or
            underscore(_), the first character must be a letter.
          minLength: 1
          maxLength: 32
          example: acme_inc
        name:
          type: string
          description: Any string which uniquely identifies a Merchant.
          minLength: 1
          maxLength: 64
          example: ACME Inc.
        status:
          type: string
          enum:
            - active
            - inactive
            - suspended
            - archived
          default: active
          description: >-
            Lifecycle status of the Merchant:

            - `active`: Merchant is operational and available for use

            - `suspended`: Temporarily on hold, can be easily reactivated

            - `inactive`: Long-term offline status, reactivation is possible but
            may require additional steps

            - `archived`: Soft delete status, manual recovery required
          example: active
          nullable: true
          readOnly: true
        created_at:
          $ref: '#/components/schemas/Inventory_API_v1_created_at-optional'
        updated_at:
          $ref: '#/components/schemas/Inventory_API_v1_updated_at'
        brands:
          type: array
          items:
            allOf:
              - $ref: '#/components/schemas/Inventory_API_v1_BrandRef'
          description: >-
            A merchant must have one or more brands which may share the same
            pool of inventory. Brands can be used for

            customizing presentation and behaviors and often correspond to
            distinct lines of business or market presences.\
              `Optional Field`
          readOnly: true
        default_brand:
          allOf:
            - $ref: '#/components/schemas/Inventory_API_v1_BrandRef'
          description: >-
            This is the primary brand used when defining only the merchant for
            operations such as creating a new product.\
              `Optional Field`
        custom_fields:
          type: object
          allOf:
            - $ref: '#/components/schemas/Inventory_API_v1_sales_custom_fields'
          nullable: true
          description: >-
            Custom fields associated with the merchant in script format. Each
            field contains

            a code and value, with additional properties depending on the field
            type.\
              `Optional Field`
    Inventory_API_v1_PackagingContainer:
      title: PackagingContainer
      description: >-
        A reference to the `PackagingContainer` object linked with Warehouse
        Inventory Location.
      allOf:
        - type: object
          properties:
            type:
              type: string
              enum:
                - PackagingContainer
              description: This property describes the type of object in the response body.
            id:
              type: integer
              description: >-
                The internal, read-only, `id` property used as a path parameter
                in a resource lookup.
              readOnly: true
            container_options:
              type: object
              properties:
                barcodes:
                  allOf:
                    - $ref: '#/components/schemas/Inventory_API_v1_barcodes'
                    - description: >-
                        A comma separated list of unique packaging feature
                        barcodes.\
                          `Optional Field`
                weight:
                  allOf:
                    - $ref: '#/components/schemas/Inventory_API_v1_Weight'
                    - description: >-
                        The weight of the container when packed with the
                        shipment items.
                dimensions:
                  allOf:
                    - $ref: '#/components/schemas/Inventory_API_v1_Dimensions'
                    - description: >-
                        The dimensions of the container in imperial or metric
                        units.
                volume:
                  allOf:
                    - $ref: '#/components/schemas/Inventory_API_v1_Volume'
                    - description: >-
                        The total volume of the container in imperial or metric
                        units.
                      readOnly: true
                manage_stock:
                  type: boolean
                  description: >-
                    This flag indicates whether or not to adjust the inventory
                    quantity of the packaging feature with each use. If `true`
                    then the inventory levels will decrease with each use. If
                    `no` then the inventory will not adjust with each use.
                  enum:
                    - true
                    - false
                associated_products:
                  type: array
                  description: >-
                    A list of products with this packaging feature selected in
                    its "Other Special Features" option in the product's
                    "Packaging" tab.
                  items:
                    $ref: '#/components/schemas/Inventory_API_v1_ProductRef'
                allow_for_brands:
                  type: array
                  description: >-
                    If specified, this packaging feature will only be applicable
                    to the selected merchants/brands.
                  items:
                    anyOf:
                      - $ref: '#/components/schemas/Inventory_API_v1_MerchantRef'
                      - $ref: '#/components/schemas/Inventory_API_v1_BrandRef'
                disallow_for_brands:
                  type: array
                  description: >-
                    If specified, this packaging feature will not be applicable
                    to the selected merchants/brands.
                  items:
                    anyOf:
                      - $ref: '#/components/schemas/Inventory_API_v1_MerchantRef'
                      - $ref: '#/components/schemas/Inventory_API_v1_BrandRef'
                billing_amount:
                  allOf:
                    - $ref: '#/components/schemas/Inventory_API_v1_Monetary'
                    - description: >-
                        The amount that will be billable for consumption of one
                        unit of this packaging feature.\
                          `Optional Field`
                allow_for_warehouses:
                  type: array
                  description: >-
                    If specified, this packaging feature will only be applicable
                    to the selected warehouses.
                  items:
                    $ref: '#/components/schemas/Inventory_API_v1_WarehouseRef'
                allow_for_shipping_methods:
                  type: array
                  description: >-
                    If specified, this packaging feature will only be applicable
                    to the selected carriers/shipping methods.
                  items:
                    type: string
                satisfies_overbox:
                  type: boolean
                  description: >-
                    Will be a valid container for products which have `Requires
                    Overbox: Yes`.
                  enum:
                    - true
                    - false
                use_for_bin_packing:
                  type: string
                  description: >-
                    Containers with "Use for Bin Packing: No" will not be used
                    by packing solution providers.
                  enum:
                    - 'yes'
                    - 'no'
                    - fallback
                weight_capacity:
                  allOf:
                    - $ref: '#/components/schemas/Inventory_API_v1_Weight'
                    - description: >-
                        Maximum allowed weight of the container, including tare
                        weight.

                        `Optional Field`
                container_style:
                  type: string
                  description: >-
                    Specify the container type. Currently, only "Rigid Box" is
                    supported.
                  enum:
                    - rigid_box
                packaging_handling_surcharge:
                  type: boolean
                  description: >-
                    The Packaging Surcharge is applicable for this packaging
                    feature (e.g. cylindrical, non-fiberboard material,
                    protrusions, non-conveyable, etc.)
                  enum:
                    - true
                    - false
        - $ref: '#/components/schemas/Inventory_API_v1_AbstractProduct'
    Inventory_API_v1_PackagingInfill:
      title: PackagingInfill
      description: >-
        A reference to the `PackagingInfill` object linked with Warehouse
        Inventory Location.
      allOf:
        - type: object
          properties:
            type:
              type: string
              enum:
                - PackagingInfill
              description: This property describes the type of object in the response body.
            id:
              type: integer
              description: >-
                The internal, read-only, `id` property used as a path parameter
                in a resource lookup.
              readOnly: true
            infill_options:
              type: object
              properties:
                barcodes:
                  allOf:
                    - $ref: '#/components/schemas/Inventory_API_v1_barcodes'
                    - description: >-
                        A comma separated list of unique packaging feature
                        barcodes.\
                          `Optional Field`
                weight:
                  allOf:
                    - $ref: '#/components/schemas/Inventory_API_v1_Weight'
                    - description: |-
                        The weight of the infill.
                        `Optional Field`
                manage_stock:
                  type: boolean
                  description: >-
                    This flag indicates whether or not to adjust the inventory
                    quantity of the packaging feature with each use. If `true`
                    then the inventory levels will decrease with each use. If
                    `no` then the inventory will not adjust with each use.
                  enum:
                    - true
                    - false
                associated_products:
                  type: array
                  description: >-
                    A list of products with this packaging feature selected in
                    its "Other Special Features" option in the product's
                    "Packaging" tab.
                  items:
                    $ref: '#/components/schemas/Inventory_API_v1_ProductRef'
                allow_for_brands:
                  type: array
                  description: >-
                    If specified, this packaging feature will only be applicable
                    to the selected merchants/brands.
                  items:
                    anyOf:
                      - $ref: '#/components/schemas/Inventory_API_v1_MerchantRef'
                      - $ref: '#/components/schemas/Inventory_API_v1_BrandRef'
                disallow_for_brands:
                  type: array
                  description: >-
                    If specified, this packaging feature will not be applicable
                    to the selected merchants/brands.
                  items:
                    anyOf:
                      - $ref: '#/components/schemas/Inventory_API_v1_MerchantRef'
                      - $ref: '#/components/schemas/Inventory_API_v1_BrandRef'
                billing_amount:
                  allOf:
                    - $ref: '#/components/schemas/Inventory_API_v1_Monetary'
                    - description: >-
                        The amount that will be billable for consumption of one
                        unit of this packaging feature.\
                          `Optional Field`
                disable_confirm_button:
                  type: boolean
                  description: >-
                    If "No", the user will be able to tap "Confirm" rather than
                    scanning a barcode.
                  enum:
                    - true
                    - false
                apply_unless_container_meets_hazmat:
                  type: boolean
                  description: >-
                    If "Yes", this packaging product will be applicable unless a
                    package contains a DG item with "Container Meets Hazmat
                    Specs: Yes" when "Always/Never Apply to Goods Type" is
                    specified.
                  enum:
                    - true
                    - false
                is_confirmation_required:
                  type: boolean
                  description: >-
                    If "Yes", this packer will be prompted and required to
                    confirm the use of infill.
                  enum:
                    - true
                    - false
                infill_horizontal:
                  allOf:
                    - $ref: '#/components/schemas/Inventory_API_v1_Length'
                    - description: >-
                        The amount of space to reserve on each horizontal side
                        of the package for infill. \

                        `Optional Field`
                infill_vertical:
                  allOf:
                    - $ref: '#/components/schemas/Inventory_API_v1_Length'
                    - description: >-
                        The amount of space to reserve on each vertical side of
                        the package for infill.

                        `Optional Field`
                infill_priority:
                  type: integer
                  description: >-
                    If multiple infill types are prescribed for a mix of items,
                    the infill with the lowest Infill Priority number will
                    prevail.
        - $ref: '#/components/schemas/Inventory_API_v1_AbstractProduct'
    Inventory_API_v1_PackagingSupplies:
      title: PackagingSupplies
      description: >-
        A reference to the `PackagingSupplies` object linked with Warehouse
        Inventory Location.
      allOf:
        - type: object
          properties:
            type:
              type: string
              enum:
                - PackagingSupplies
              description: This property describes the type of object in the response body.
            id:
              type: integer
              description: >-
                The internal, read-only, `id` property used as a path parameter
                in a resource lookup.
              readOnly: true
            supplies_options:
              type: object
              properties:
                barcodes:
                  allOf:
                    - $ref: '#/components/schemas/Inventory_API_v1_barcodes'
                    - description: >-
                        A comma separated list of unique packaging feature
                        barcodes.\
                          `Optional Field`
                weight:
                  allOf:
                    - $ref: '#/components/schemas/Inventory_API_v1_Weight'
                    - description: |-
                        The weight of the infill.
                        `Optional Field`
                manage_stock:
                  type: boolean
                  description: >-
                    This flag indicates whether or not to adjust the inventory
                    quantity of the packaging feature with each use. If `true`
                    then the inventory levels will decrease with each use. If
                    `no` then the inventory will not adjust with each use.
                  enum:
                    - true
                    - false
                associated_products:
                  type: array
                  description: >-
                    A list of products with this packaging feature selected in
                    its "Other Special Features" option in the product's
                    "Packaging" tab.
                  items:
                    $ref: '#/components/schemas/Inventory_API_v1_ProductRef'
                allow_for_brands:
                  type: array
                  description: >-
                    If specified, this packaging feature will only be applicable
                    to the selected merchants/brands.
                  items:
                    anyOf:
                      - $ref: '#/components/schemas/Inventory_API_v1_MerchantRef'
                      - $ref: '#/components/schemas/Inventory_API_v1_BrandRef'
                disallow_for_brands:
                  type: array
                  description: >-
                    If specified, this packaging feature will not be applicable
                    to the selected merchants/brands.
                  items:
                    anyOf:
                      - $ref: '#/components/schemas/Inventory_API_v1_MerchantRef'
                      - $ref: '#/components/schemas/Inventory_API_v1_BrandRef'
                billing_amount:
                  allOf:
                    - $ref: '#/components/schemas/Inventory_API_v1_Monetary'
                    - description: >-
                        The amount that will be billable for consumption of one
                        unit of this packaging feature.\
                          `Optional Field`
                allow_for_warehouses:
                  type: array
                  description: >-
                    If specified, this packaging feature will only be applicable
                    to the selected warehouses.
                  items:
                    $ref: '#/components/schemas/Inventory_API_v1_WarehouseRef'
                allow_for_shipping_methods:
                  type: array
                  description: >-
                    If specified, this packaging feature will only be applicable
                    to the selected carriers/shipping methods.
                  items:
                    type: string
                packaging_handling_surcharge:
                  type: boolean
                  description: >-
                    The Packaging Surcharge is applicable for this packaging
                    feature (e.g. cylindrical, non-fiberboard material,
                    protrusions, non-conveyable, etc.)
                  enum:
                    - true
                    - false
                apply_to_goods_type:
                  type: string
                  enum:
                    - any
                    - NORMAL
                    - ORM_D
                  description: >-
                    This packaging feature will be applied to all shipments
                    which do not contain an item with this Goods Type.

                    - `NORMAL` Not Regulated

                    - `ORM_D`  ORM-D

                    `Optional Field`
                never_apply_to_goods_type:
                  type: string
                  enum:
                    - NORMAL
                    - LIMITED_QUANTITIES_COMMODITIES
                    - HAZMAT
                  description: >-
                    This packaging feature will be applied to all shipments
                    which do not contain an item with this Goods Type.

                    - `NORMAL` Not Regulated

                    - `LIMITED_QUANTITIES_COMMODITIES`  Limited Quantities:
                    Consumer Commodity

                    - `HAZMAT` Regulated

                    `Optional Field`
                apply_only_above_weight:
                  allOf:
                    - $ref: '#/components/schemas/Inventory_API_v1_Weight'
                    - description: >-
                        If specified, this packaging supply is not a requirement
                        for packages under the given weight when "Always/Never
                        Apply to Goods Type" is specified.

                        `Optional Field`
                one_per:
                  type: string
                  description: >-
                    The expected number of scans per shipment. The product "Unit
                    Quantity" is used as a multiplier for "One Scan Per: Each".
                  enum:
                    - order
                    - package
                    - item
                    - each
                require_scan_timing:
                  type: string
                  description: >-
                    Choose how the scan timer should begin recording time data
                    on this product or packaging feature.
                  enum:
                    - after_product_scan|on_full
                    - on_start
                disable_confirm_button:
                  type: boolean
                  description: >-
                    If "No", the user will be able to tap "Confirm" rather than
                    scanning a barcode.
                  enum:
                    - true
                    - false
                require_packaging_type:
                  type: string
                  description: >-
                    If specified, this packaging feature will only be applicable
                    when the container meets the chosen criteria based on the
                    container's "Satisfies Overbox" attribute when "Always/Never
                    Apply to Goods Type" is specified.
                  enum:
                    - overbox
                    - non_overbox
                apply_to_region:
                  type: string
                  description: >-
                    Unless specified, this packaging feature will apply to all
                    regions when "Always/Never Apply to Goods Type" is
                    specified.
                apply_unless_container_meets_hazmat:
                  type: boolean
                  description: >-
                    If "Yes", this packaging product will be applicable unless a
                    package contains a DG item with "Container Meets Hazmat
                    Specs: Yes" when "Always/Never Apply to Goods Type" is
                    specified.
                  enum:
                    - true
                    - false
                apply_to_multi_sku_package:
                  type: boolean
                  description: >-
                    If "Yes", this packaging product will only be applied to
                    packages containing more than one SKU when "Always/Never
                    Apply to Goods Type" is specified.
                  enum:
                    - true
                    - false
        - $ref: '#/components/schemas/Inventory_API_v1_AbstractProduct'
    Inventory_API_v1_CompositeStockableProduct:
      anyOf:
        - $ref: '#/components/schemas/Inventory_API_v1_Product'
        - $ref: '#/components/schemas/Inventory_API_v1_PackagingContainer'
        - $ref: '#/components/schemas/Inventory_API_v1_PackagingSupplies'
        - $ref: '#/components/schemas/Inventory_API_v1_PackagingInfill'
      discriminator:
        propertyName: type
    Inventory_API_v1_ReplenishmentPolicy:
      title: ReplenishmentPolicy
      type: object
      description: >-
        A Replenishment Policy configuration for one warehouse. The Policy
        selects

        Products by Merchant, Product Profile, and Handling Class, then applies
        Trigger

        and Target days-of-inventory thresholds to one Location Profile.
      properties:
        type:
          type: string
          enum:
            - ReplenishmentPolicy
          readOnly: true
          description: >-
            This is a read-only property that describes the type of object in
            the response body.
        id:
          type: integer
          example: 7
          readOnly: true
          description: >-
            The internal `id` property used to identify the Replenishment
            Policy.
        name:
          type: string
          minLength: 1
          maxLength: 255
          example: Fast Movers - Forward Pick
          description: The user-visible Policy name, unique within the warehouse.
        is_active:
          type: boolean
          description: Whether this Policy participates in Product evaluation.
        sort_order:
          type: integer
          minimum: 0
          maximum: 65535
          example: 10
          description: >-
            Policy precedence; lower values are evaluated first, with `id` as
            the

            tie-break. The first qualified Policy wins for a given Product.
        merchant_ids:
          type: array
          nullable: true
          items:
            type: integer
            minimum: 1
          example:
            - 2
            - 7
          description: Merchant IDs selected by the Policy; `null` means every Merchant.
        merchants:
          type: array
          nullable: true
          readOnly: true
          description: >-
            Direct references to the selected Merchants. Request this optional
            relationship when an editor needs names. `null` means the Policy
            applies to every Merchant.\
              `Optional Field`
          items:
            $ref: '#/components/schemas/Inventory_API_v1_MerchantRef'
        product_profile_ids:
          type: array
          items:
            type: integer
            minimum: 1
          example:
            - 12
            - 15
          description: >-
            Product Profile IDs selected by the Policy; an empty list means
            Product Profiles do not restrict the subject.
        product_profiles:
          type: array
          readOnly: true
          description: |-
            Direct references to selected Product Profiles for editor display.\
              `Optional Field`
          items:
            $ref: '#/components/schemas/Inventory_API_v1_ProductProfileRef'
        product_profile_match_mode:
          type: string
          enum:
            - any
            - all
            - none
          description: How the selected Product Profiles are matched against a Product.
        handling_class_ids:
          type: array
          items:
            type: integer
            minimum: 1
          example:
            - 4
          description: >-
            Handling Class IDs selected by the Policy; an empty list means
            Handling Classes do not restrict the subject.
        handling_classes:
          type: array
          readOnly: true
          description: |-
            Direct references to selected Handling Classes for editor display.\
              `Optional Field`
          items:
            $ref: '#/components/schemas/Inventory_API_v1_HandlingClassRef'
        subject_readable:
          type: string
          example: >-
            Merchants: Acme Supply; Product Profiles (Any of): Fast Movers;
            Handling Classes: Hazmat
          readOnly: true
          description: >-
            A rendered summary of the Merchant, Product Profile, and Handling
            Class selectors, resolved to names rather than identifiers.\
              `Optional Field`
        location_profile:
          description: >-
            The Location Profile whose resolved membership supplies the target
            group.
          allOf:
            - $ref: '#/components/schemas/Inventory_API_v1_LocationProfileRef'
        demand_period_days:
          type: integer
          minimum: 1
          maximum: 65535
          example: 30
          description: The Product Velocity window used to derive daily demand.
        trigger_doi_days:
          type: number
          minimum: 0
          maximum: 999999.9999
          example: 7
          description: >-
            The coverage threshold below which an assigned Product is flagged
            for Replenishment.
        target_doi_days:
          type: number
          minimum: 0
          maximum: 999999.9999
          example: 14
          description: >-
            The target coverage used to calculate the required replenishment
            quantity.
        qualification_reason:
          type: string
          nullable: true
          enum:
            - inactive
            - profile_building
            - profile_failed
            - profile_not_ready
            - profile_empty
            - demand_period_unconfigured
            - null
          example: profile_empty
          description: >-
            Why this Policy currently falls through during evaluation, or `null`
            when it is qualified.
        flagged_sku_count:
          type: integer
          nullable: true
          example: 42
          readOnly: true
          description: >-
            How many Products this Policy flagged for Replenishment in the
            published generation. `null` means the warehouse has not published a
            Replenishment generation yet, so no count has been calculated.\
              `Optional Field`
        skipped_sku_count:
          type: integer
          nullable: true
          example: 3
          readOnly: true
          description: >-
            How many Products the published generation skipped for this Policy.
            `null` means the warehouse has not published a Replenishment
            generation yet.\
              `Optional Field`
        slotting_forbidden_count:
          type: integer
          nullable: true
          example: 1
          readOnly: true
          description: >-
            How many Products the published generation could not replenish
            because Slotting forbids the target group. `null` means the
            warehouse has not published a Replenishment generation yet.\
              `Optional Field`
        results_refresh_pending:
          type: boolean
          readOnly: true
          description: >-
            Whether the published counts are already superseded by a requested
            generation that has not finished building.\
              `Optional Field`
        created_at:
          type: string
          format: date-time
          nullable: true
          description: The time the Policy was created.
        updated_at:
          type: string
          format: date-time
          nullable: true
          description: The time the Policy was last updated.
      required:
        - type
        - id
      additionalProperties: false
      example:
        type: ReplenishmentPolicy
        id: 7
        name: Fast Movers - Forward Pick
        is_active: true
        sort_order: 10
        merchant_ids:
          - 2
          - 7
        product_profile_ids:
          - 12
          - 15
        product_profile_match_mode: any
        handling_class_ids:
          - 4
        location_profile:
          type: LocationProfile
          id: 3
        demand_period_days: 30
        trigger_doi_days: 7
        target_doi_days: 21
        qualification_reason: null
        created_at: '2026-08-01T09:30:00Z'
        updated_at: '2026-08-12T10:15:00Z'
    Inventory_API_v1_LocationProfile:
      title: LocationProfile
      type: object
      description: >-
        A `LocationProfile` is a warehouse-scoped, named set of locations
        defined by match clauses

        rather than by enumeration. Slotting Rules and Replenishment Policies
        target a profile

        instead of listing locations, so the same policy keeps working as the
        warehouse grows.


        Membership is materialized asynchronously. Saving a definition creates
        an immutable revision

        and starts a build; the previously published revision keeps serving
        consumers until the

        replacement is ready. A profile without a ready active revision has no
        resolved member set

        and is never represented as an empty one — `member_count` is `null`
        rather than `0`.
      properties:
        type:
          type: string
          enum:
            - LocationProfile
          readOnly: true
          description: >-
            This is a read-only property that describes the type of object in
            the response body.
        id:
          type: integer
          format: int32
          example: 42
          readOnly: true
          description: >-
            The internal `id` property used as a path parameter in a resource
            lookup.
        name:
          type: string
          minLength: 1
          maxLength: 255
          example: Rack Pick Face
          description: The user-visible profile name, unique within the warehouse.
        description:
          type: string
          nullable: true
          example: >-
            Pickable shelf locations on rack aisles, excluding ground-level
            overflow.
          description: >-
            An optional explanation of the locations represented by this
            profile.
        status:
          type: string
          enum:
            - ready
            - building
            - failed
            - none
          description: >-
            The availability of the revision currently published for this
            profile:
              - `ready` — a published revision is serving consumers, and stays serving while any
                replacement builds. Check `pending_revision` to see a rebuild in flight.
              - `building` — no revision has been published yet and the first one is materializing.
              - `failed` — no revision has been published and the latest attempt failed.
              - `none` — no published or actionable pending revision is available.

            A Slotting Rule may reference only a `ready` profile. A
            Replenishment Policy may

            reference a profile before it is ready, but remains disqualified
            until a revision

            publishes. For a new profile, poll until `status` is `ready`. For an
            update or rebuild,

            inspect `pending_revision`: successful publication is complete when
            it becomes `null`,

            while a failed replacement remains present with a `failed` status.
        member_count:
          type: integer
          format: int32
          nullable: true
          example: 486
          description: >-
            The resolved member location count of the published revision. A
            ready profile with zero

            members is a genuine empty set; `null` means the profile has no
            published revision and

            therefore no resolved member set at all.
        match:
          type: array
          nullable: true
          description: >-
            The ordered clauses defining membership, all of which must match.
            This is the latest

            *intended* definition: the pending revision's clauses while a
            rebuild is in flight,

            otherwise the published revision's.


            An empty array is the saved all-locations definition, which matches
            every non-temporary

            location in the warehouse. `null` means no definition has ever been
            saved, which only a

            legacy profile head can be.
          items:
            $ref: '#/components/schemas/Inventory_API_v1_LocationProfileMatchClause'
          example:
            - field: location_label
              operator: starts_with
              values:
                - RK
            - field: slot_type
              operator: is_one_of
              values:
                - type: SlotType
                  id: 4
            - field: location_tag
              operator: is_not_one_of
              values:
                - type: LocationTag
                  id: 1
            - field: script
              operator: returns_true
              cel: is_pickable
        match_readable:
          type: string
          nullable: true
          example: >-
            startsWith(label.toLower(), 'rk') && (present(slot_type_id) &&
            (slot_type_id in [4])) && !(1 in tag_ids) && (is_pickable)
          description: >-
            The same definition compiled to a single CEL expression, for display
            and for comparing

            two profiles at a glance. This is the read-only counterpart of a
            `ProductProfile`'s

            `conditions_readable`.


            `true` is the all-locations definition. `null` whenever `match` is
            `null`.
        location_tags:
          type: array
          readOnly: true
          description: >-
            Unique Location Tags referenced by the ordered match definition, in
            first-appearance order. Request this field when an editor needs to
            resolve the shallow Tag references.
          items:
            $ref: '#/components/schemas/Inventory_API_v1_LocationTagRef'
        slot_types:
          type: array
          readOnly: true
          description: >-
            Unique Slot Types referenced by the ordered match definition, in
            first-appearance order. Request this field when an editor needs to
            resolve the shallow Slot Type references.
          items:
            $ref: '#/components/schemas/Inventory_API_v1_SlotTypeRef'
        active_revision:
          type: object
          nullable: true
          description: >-
            The published revision currently serving consumers, or `null` when
            none has published yet.
          allOf:
            - $ref: >-
                #/components/schemas/Inventory_API_v1_LocationProfileActiveRevision
        pending_revision:
          type: object
          nullable: true
          description: >-
            The replacement revision being materialized, or whose latest attempt
            failed. `null` once

            a revision publishes and no rebuild is in flight.
          allOf:
            - $ref: >-
                #/components/schemas/Inventory_API_v1_LocationProfilePendingRevision
        used_by:
          $ref: '#/components/schemas/Inventory_API_v1_LocationProfileUsedBy'
        created_at:
          type: string
          format: date-time
          nullable: true
          example: '2026-07-14T09:12:05Z'
          description: The UTC date and time the profile was created.
        updated_at:
          type: string
          format: date-time
          nullable: true
          example: '2026-08-02T06:41:18Z'
          description: >-
            The UTC date and time the profile metadata or revision pointers last
            changed.
      required:
        - type
        - id
      additionalProperties: false
      example:
        type: LocationProfile
        id: 26
        name: Cold Storage Pick Faces
        description: Pickable shelf locations approved for refrigerated inventory.
        status: ready
        member_count: 486
        match:
          - field: slot_type
            operator: is_one_of
            values:
              - type: SlotType
                id: 5
          - field: location_tag
            operator: is_one_of
            values:
              - type: LocationTag
                id: 12
        match_readable: (present(slot_type_id) && (slot_type_id in [5])) && (12 in tag_ids)
        active_revision:
          id: 1184
          status: ready
          member_count: 486
          ready_at: '2026-08-12T06:41:22Z'
        used_by:
          slotting_rules: 3
          replenishment_policies: 1
        created_at: '2026-07-14T09:12:05Z'
        updated_at: '2026-08-12T06:41:18Z'
    Inventory_API_v1_created_at-optional:
      type: string
      format: date-time
      description: >-
        The date and time the object was created in RFC 3339 section 5.6
        notation.\
          `Optional Field`
      example: '2017-07-21T17:32:28Z'
      nullable: true
      readOnly: true
    Inventory_API_v1_updated_at:
      type: string
      format: date-time
      description: >-
        The date and time the object was last updated in RFC 3339 section 5.6
        notation.\
          `Optional Field`
      example: '2017-07-21T17:39:43Z'
      nullable: true
      readOnly: true
    Inventory_API_v1_BrandRef:
      title: BrandRef
      type: object
      description: Reference a `Brand` by `id`.
      properties:
        type:
          type: string
          enum:
            - Brand
        id:
          type: integer
          format: int32
          description: The numeric `id` of a particular resource being updated.
          example: 4
      required:
        - type
        - id
      additionalProperties: false
    Inventory_API_v1_sales_custom_fields:
      type: object
      description: >-
        Custom field values for the order, keyed by field code.


        The format of each value depends on the field's input type:

        - **select**: `{"id": <integer>, "label": "<string>"}`

        - **multiselect**: `[{"id": <integer>, "label": "<string>"}, ...]`

        - **currency**: Uses the Monetary type `{"amount": <number>, "currency":
        "<string>"}`

        - **boolean**: `{"value": <boolean>}`

        - **text/multiline-text/email/url/date**: `{"value": "<string>"}`

        - **number**: `{"value": <number>}`

        - **admin-user/client-user**: `{"value": <integer>}` (user ID)
      additionalProperties:
        $ref: '#/components/schemas/Inventory_API_v1_custom_field_value'
      example:
        is_gift:
          value: true
        order_details:
          value: test details
        department:
          id: 3
          label: Shipping
        priority_levels:
          - id: 1
            label: Urgent
          - id: 2
            label: High
        cost_of_goods:
          amount: 156.99
          currency: USD
        assigned_user:
          value: 42
    Inventory_API_v1_barcodes:
      anyOf:
        - type: string
          nullable: true
          example: 956623520-4
        - type: array
          items:
            type: string
          nullable: true
          example:
            - 956623520-4
            - O-VS-Oregano-p3
    Inventory_API_v1_Weight:
      title: Weight
      type: object
      nullable: true
      properties:
        value:
          type: number
          description: >-
            The weight quantity defined as a floating point value of up to 4
            decimal places.
          format: float
          example: 20
        unit:
          $ref: '#/components/schemas/Inventory_API_v1_WeightUnit'
    Inventory_API_v1_Dimensions:
      title: Dimensions
      type: object
      nullable: true
      properties:
        length:
          type: number
          description: >-
            This distance value is usually assigned to the longest side of the
            object and is defined as a floating-point number up to 4 decimal
            places.
          format: float
          example: 8
        width:
          type: number
          description: >-
            This value describes the horizontal distance of the subject defined
            as a floating-point number up to 4 decimal places.
          format: float
          example: 6
        height:
          type: number
          description: >-
            This value describes the vertical distance of the subject defined as
            a floating-point number up to 4 decimal places.
          format: float
          example: 4
        unit:
          $ref: '#/components/schemas/Inventory_API_v1_LengthUnit'
    Inventory_API_v1_Volume:
      title: Volume
      type: object
      nullable: true
      properties:
        value:
          type: number
          description: >-
            This value describes the cubic size of the subject as a
            floating-point number up to 4 decimal places.
          format: float
          example: 300
        unit:
          $ref: '#/components/schemas/Inventory_API_v1_VolumeUnit'
    Inventory_API_v1_ProductRef:
      title: ProductRef
      type: object
      description: A reference to a `Product` object by `id`.
      properties:
        type:
          type: string
          enum:
            - Product
          description: This property describes the type of object in the response body.
        id:
          type: integer
          format: int32
          example: 3
          description: >-
            The internal `id` property used as a path parameter in a resource
            lookup.
      required:
        - type
        - id
      additionalProperties: false
    Inventory_API_v1_MerchantRef:
      title: MerchantRef
      type: object
      description: Reference a `Merchant` by `id`.
      properties:
        type:
          type: string
          enum:
            - Merchant
        id:
          type: integer
          format: int32
          example: 4
          description: >-
            The internal `id` property used as a path parameter in a resource
            lookup.
      required:
        - type
        - id
      additionalProperties: false
    Inventory_API_v1_Monetary:
      title: Monetary
      type: object
      nullable: true
      properties:
        amount:
          type: number
          description: This is the monetary value..
          format: float
          example: 99
        currency:
          type: string
          description: An ISO 3166-1 alpha-3 currency code.
          example: USD
    Inventory_API_v1_WarehouseRef:
      title: WarehouseRef
      type: object
      description: A reference to a `Warehouse` by `id`.
      properties:
        type:
          type: string
          enum:
            - Warehouse
          description: This property describes the type of object in the response body.
        id:
          type: integer
          format: int32
          description: >-
            The internal `id` property used as a path parameter in a resource
            lookup.
      required:
        - type
        - id
      nullable: true
      additionalProperties: false
    Inventory_API_v1_AbstractProduct:
      type: object
      properties:
        sku:
          type: string
          description: >-
            The Stock Keeping Unit (SKU) is a unique identifier for the
            `Product`.
          example: SKU-1AD
        name:
          type: string
          description: This is displayed as a short, descriptive title for the `Product`.
          example: Test Product
        is_enabled:
          type: boolean
          description: Disabled products are effectively deleted.
          enum:
            - true
            - false
          default: true
        merchant:
          allOf:
            - $ref: '#/components/schemas/Inventory_API_v1_MerchantRef'
            - description: The `Merchant` to which the product belongs.
        created_at:
          $ref: '#/components/schemas/Inventory_API_v1_created_at-optional'
        updated_at:
          $ref: '#/components/schemas/Inventory_API_v1_updated_at-optional'
    Inventory_API_v1_Length:
      title: Length
      type: object
      nullable: true
      properties:
        value:
          type: number
          description: >-
            This value describes the length of the object as a floating-point
            number up to 4 decimal places.
          format: float
          example: 12
        unit:
          $ref: '#/components/schemas/Inventory_API_v1_LengthUnit'
    Inventory_API_v1_Product:
      title: Product
      description: A Product contains information about a sellable item.
      allOf:
        - type: object
          properties:
            type:
              type: string
              enum:
                - Product
              description: This property describes the type of object in the response body.
            id:
              type: integer
              description: >-
                The internal, read-only, `id` property used as a path parameter
                in a resource lookup.
              readOnly: true
            vendor_sku:
              type: string
              description: >-
                For informational use only. Displayed during delivery processing
                to help match products.\
                  `Optional Field`
              nullable: true
              example: Vendor-SKU-1AD2
            manufacturer_part_number:
              type: string
              description: >-
                The manufacturer's part number for the item. May be required for
                customs on shipments to EU countries.\
                  `Optional Field`
              nullable: true
              example: MPN-1AD2
            external_id:
              type: string
              nullable: true
              example: 11-993-9048
              description: May be used for external product sync.
            barcodes:
              anyOf:
                - type: array
                  items:
                    type: string
                  nullable: true
                  example:
                    - 956623520-4
                    - O-VS-Oregano-p3
                - type: string
                  nullable: true
                  example: 956623520-4
              description: A comma separated list of unique packaging feature barcodes.
            goods_type:
              type: string
              nullable: true
              enum:
                - NORMAL
                - ORM_D
                - LIMITED_QUANTITIES_COMMODITIES
                - HAZMAT
                - null
              description: >-
                This defines the regulations, if any, assigned to a `Product`.

                - `NORMAL` Not Regulated

                - `ORM_D`  ORM-D

                - `LIMITED_QUANTITIES_COMMODITIES`  Limited Quantities: Consumer
                Commodity

                - `HAZMAT` Regulated
            is_available:
              type: boolean
              enum:
                - true
                - false
              default: true
              description: This flag must be `true` to allow the `Product` to be ordered.
            is_visible:
              type: boolean
              enum:
                - true
                - false
              default: true
              description: >-
                This flag must be `true` to show the `Product` in the inventory
                feed.
            lot_type:
              type: object
              allOf:
                - $ref: '#/components/schemas/Inventory_API_v1_LotTypeRef'
              nullable: true
              description: >-
                This `LotType` determines how a `Product` should be "burned" and
                whether lots with dissimilar data

                can be "mixed".\
                  `Optional Field`
            weight:
              allOf:
                - $ref: '#/components/schemas/Inventory_API_v1_Weight'
                - description: >-
                    This object defines the weight of the `Product` in imperial
                    or metric units.\
                      `Optional Field`
            dimensions:
              allOf:
                - $ref: '#/components/schemas/Inventory_API_v1_Dimensions'
                - description: >-
                    This object defines the length, width, and height of the
                    `Product` in imperial or metric units.\
                      `Optional Field`
            volume:
              allOf:
                - $ref: '#/components/schemas/Inventory_API_v1_Volume'
                - description: >-
                    This object defines the cubic size of the `Product` in
                    imperial or metric units.\
                      `Optional Field`
            inventory:
              allOf:
                - $ref: '#/components/schemas/Inventory_API_v1_Inventory'
                - description: >-
                    This object describes how the `Product` Stock is defined,
                    such as real config values, or Virtual Inventory, and how to
                    handle Backorders.\
                      `Optional Field`
            export:
              allOf:
                - $ref: '#/components/schemas/Inventory_API_v1_Export'
                - description: >-
                    This object contains fields for describing and codifying an
                    internationally exportable `Product`.\
                      `Optional Field`
            regulated_goods:
              allOf:
                - $ref: '#/components/schemas/Inventory_API_v1_RegulatedGoods'
                - description: >-
                    This object only applies a `Product` using the "Regulated"
                    Goods Type, and describes the `Regulation` and container
                    specifications for the `Product`.\
                      `Optional Field`
            packaging:
              allOf:
                - $ref: '#/components/schemas/Inventory_API_v1_Packaging'
                - description: >-
                    This object defines how the shipping container/box for the
                    `Product` is to be processed and whether there are any
                    special instructions during packing.\
                      `Optional Field`
            custom_fields:
              allOf:
                - $ref: '#/components/schemas/Inventory_API_v1_custom_fields'
                - description: >-
                    This will set any Product Attributes, pre-defined by the
                    user, for the `Product`.\
                      `Optional Field`
        - $ref: '#/components/schemas/Inventory_API_v1_AbstractProduct'
    Inventory_API_v1_ProductProfileRef:
      title: ProductProfileRef
      type: object
      description: A reference to a `ProductProfile` by `id`.
      properties:
        type:
          type: string
          enum:
            - ProductProfile
        id:
          type: integer
          format: int32
          minimum: 1
          description: Product Profile ID.
      required:
        - type
        - id
      additionalProperties: false
    Inventory_API_v1_HandlingClassRef:
      title: HandlingClassRef
      type: object
      description: A reference to a Handling Class by ID.
      properties:
        type:
          type: string
          enum:
            - HandlingClass
        id:
          type: integer
          format: int32
          minimum: 1
          description: Handling Class ID.
      required:
        - type
        - id
      additionalProperties: false
    Inventory_API_v1_LocationProfileMatchClause:
      title: LocationProfileMatchClause
      type: object
      description: >-
        One clause of a Location Profile definition. Clauses are ANDed and
        evaluated in the order

        they appear, so a location joins the profile only when every clause
        matches it.


        A clause carries its operands in exactly one channel: `values` for the
        typed operators and

        `cel` for `script`. Only the channel in use is present — the other is
        omitted rather than

        returned as `null`.
      properties:
        field:
          type: string
          enum:
            - zone
            - rack
            - rack_type
            - location_label
            - slot_type
            - location_tag
            - script
          example: location_label
          description: |-
            The location property the clause tests:
              - `zone`, `rack`, `rack_type`, `slot_type`, `location_tag` — entity references.
              - `location_label` — the location's label text.
              - `script` — a CEL expression evaluated against the location, for cases the typed
                fields cannot express.
        operator:
          type: string
          enum:
            - is_one_of
            - is_not_one_of
            - starts_with
            - not_starts_with
            - contains
            - not_contains
            - ends_with
            - not_ends_with
            - matches
            - not_matches
            - returns_true
          example: starts_with
          description: >-
            The comparison applied to the field. Which operators are available
            depends on the field:
              - entity fields (`zone`, `rack`, `rack_type`, `slot_type`, `location_tag`) take
                `is_one_of` and `is_not_one_of`.
              - `location_label` takes `starts_with`, `contains`, `ends_with`, `matches` and their
                `not_` counterparts. `matches` takes a regular expression.
              - `script` takes `returns_true`.
        values:
          type: array
          description: >-
            The operands. Absent on a `script` clause, which carries `cel`
            instead. Entity fields whose target is exposed as

            its own Global API resource carry `{type, id}` references; `zone`
            carries bare integer

            ids because zones have no resource of their own. `location_label`
            carries a single

            string needle.
          items:
            oneOf:
              - $ref: '#/components/schemas/Inventory_API_v1_RackRef'
              - $ref: '#/components/schemas/Inventory_API_v1_RackTypeRef'
              - $ref: '#/components/schemas/Inventory_API_v1_SlotTypeRef'
              - $ref: '#/components/schemas/Inventory_API_v1_LocationTagRef'
              - type: integer
                description: A warehouse zone `id`.
              - type: string
                description: >-
                  A `location_label` needle, or a regular expression for the
                  `matches` operators.
        cel:
          type: string
          example: is_pickable
          description: >-
            The CEL expression evaluated for a `script` clause. Absent on every
            other clause, which

            carries `values` instead. The expression returns a boolean.
      required:
        - field
        - operator
      additionalProperties: false
    Inventory_API_v1_LocationTagRef:
      title: LocationTagRef
      type: object
      description: A reference to a `LocationTag` object.
      properties:
        type:
          type: string
          enum:
            - LocationTag
          description: This property describes the type of object in the response body.
        id:
          type: integer
          description: >-
            The internal `id` property used as a path parameter in a resource
            lookup.
          example: 4
      required:
        - type
        - id
      additionalProperties: false
    Inventory_API_v1_SlotTypeRef:
      title: SlotTypeRef
      type: object
      description: A reference to a `SlotType` object.
      properties:
        type:
          type: string
          enum:
            - SlotType
          description: This property describes the type of object in the response body.
        id:
          type: integer
          example: 54
          description: >-
            The internal `id` property used as a path parameter in a resource
            lookup.
      required:
        - type
        - id
      nullable: true
      additionalProperties: false
    Inventory_API_v1_LocationProfileActiveRevision:
      title: LocationProfileActiveRevision
      type: object
      description: >-
        The published Location Profile revision whose materialized membership is
        serving consumers.

        A published revision is always `ready`; it keeps serving until a
        replacement finishes

        building and atomically takes over.
      properties:
        id:
          type: integer
          format: int32
          example: 1184
          description: The internal `id` of the published revision.
        status:
          type: string
          enum:
            - ready
          description: Always `ready` — an unpublished revision is never the active one.
        member_count:
          type: integer
          format: int32
          example: 486
          description: >-
            The number of locations this revision resolved to. Zero is a genuine
            empty set.
        ready_at:
          type: string
          format: date-time
          nullable: true
          example: '2026-08-02T06:41:22Z'
          description: >-
            The UTC date and time this revision finished materializing and was
            published.
      required:
        - id
        - status
        - member_count
        - ready_at
      additionalProperties: false
    Inventory_API_v1_LocationProfilePendingRevision:
      title: LocationProfilePendingRevision
      type: object
      description: >-
        The Location Profile revision being materialized, or whose latest
        attempt failed. It is not

        serving anyone yet: while it builds, the profile keeps answering with
        its published revision

        if it has one. A `failed` pending revision is retried by a rebuild.
      properties:
        id:
          type: integer
          format: int32
          example: 1185
          description: The internal `id` of the pending revision.
        status:
          type: string
          enum:
            - building
            - failed
          description: >-
            `building` while membership is being materialized, `failed` when the
            latest attempt

            stopped with an error. See `last_error` for the diagnostic.
        started_at:
          type: string
          format: date-time
          nullable: true
          example: '2026-08-02T06:41:19Z'
          description: The UTC date and time the latest materialization attempt started.
        failed_at:
          type: string
          format: date-time
          nullable: true
          example: '2026-08-02T06:41:21Z'
          description: >-
            The UTC date and time the revision was marked failed, or `null` when
            it has not failed.
        last_error:
          type: string
          nullable: true
          example: >-
            A location rule in this Profile could not be evaluated. Review the
            Profile rules.
          description: >-
            The diagnostic from the latest failed attempt, or `null` when it has
            not failed.
      required:
        - id
        - status
        - started_at
        - failed_at
        - last_error
      additionalProperties: false
    Inventory_API_v1_LocationProfileUsedBy:
      title: LocationProfileUsedBy
      type: object
      description: >-
        Live counts of the authoring objects referencing this Location Profile.
        A profile with any

        reference cannot be deleted. These fields do not include published
        Replenishment result rows,

        which may temporarily continue to reference the profile until the
        Warehouse index is rebuilt.
      properties:
        slotting_rules:
          type: integer
          format: int32
          example: 3
          description: The number of Slotting Rules currently referencing this profile.
        replenishment_policies:
          type: integer
          format: int32
          example: 1
          description: >-
            The number of Replenishment Policies currently referencing this
            profile.
      required:
        - slotting_rules
        - replenishment_policies
      additionalProperties: false
    Inventory_API_v1_custom_field_value:
      description: Union type for all possible custom field value formats.
      anyOf:
        - $ref: '#/components/schemas/Inventory_API_v1_custom_field_scalar_value'
        - $ref: '#/components/schemas/Inventory_API_v1_Monetary'
        - $ref: '#/components/schemas/Inventory_API_v1_custom_field_select_option'
        - $ref: '#/components/schemas/Inventory_API_v1_custom_field_multiselect_value'
    Inventory_API_v1_WeightUnit:
      type: string
      description: This can be an imperial or metric unit for weight.
      enum:
        - lb
        - oz
        - kg
        - g
    Inventory_API_v1_LengthUnit:
      type: string
      description: The imperical or metric unit of measurement.
      enum:
        - in
        - mm
        - cm
        - m
    Inventory_API_v1_VolumeUnit:
      type: string
      description: The imperical or metric unit of measurement as a cubic value.
      enum:
        - in^3
        - mm^3
        - cm^3
        - m^3
    Inventory_API_v1_updated_at-optional:
      type: string
      format: date-time
      description: >-
        The date and time the object was last updated in RFC 3339 section 5.6
        notation.
      example: '2017-07-21T17:39:43Z'
      nullable: true
      readOnly: true
    Inventory_API_v1_LotTypeRef:
      title: LotTypeRef
      description: LotType
      type: object
      properties:
        type:
          type: string
          enum:
            - LotType
          description: This property describes the type of object in the response body.
        id:
          type: integer
          format: int64
          description: >-
            The internal `id` property used as a path parameter in a resource
            lookup.
          example: 4
      required:
        - type
        - id
      nullable: true
      additionalProperties: false
    Inventory_API_v1_Inventory:
      title: Inventory
      type: object
      description: Product Inventory information
      properties:
        backorders:
          description: >-
            This determines if `Product` that is no longer in stock may be
            backordered or whether or not to use ShipStream's scoped
            configurations.
          anyOf:
            - type: boolean
              example: true
            - type: string
              enum:
                - use_config
        dynamic_allocation:
          description: >-
            This will allow the `Product` to source from inventory in other
            warehouses in real-time if enabled, and can be set to use
            ShipStream's scoped configurations.
          anyOf:
            - type: boolean
              example: true
            - type: string
              enum:
                - use_config
        virtual_inventory:
          type: string
          description: >-
            This is the method used to predict an esitmate of inventory
            available when kitting from the `Product`.
          enum:
            - none
            - optimistic
            - realistic
            - pessimistic
          example: optimistic
    Inventory_API_v1_Export:
      title: Export
      type: object
      description: Product Export and Custom information
      properties:
        description:
          type: string
          description: >-
            This is used to describe in detail the `Product` for international
            shipping and customs regulations.
          nullable: true
          example: Plastic children's toy with steel weights and ball bearings
        customs_value:
          allOf:
            - $ref: '#/components/schemas/Inventory_API_v1_Monetary'
            - description: >-
                The value of the products the purpose of calculating duties and
                taxes in the destination country.
        country_of_manufacture:
          type: string
          nullable: true
          description: 2 letters Country ISO Code
          example: TW
        hs_base_code:
          type: string
          description: >-
            This is the Harmonized System Code (HS Code); a standardized
            numerical method of classifying traded products. These are 6 digit
            codes in the format \#\#\#\#.\#\# (e.g. 8471.30) which are
            associated with a standard HS Code Description, not including
            country-specific extensions.
          nullable: true
          example: '8518.30'
        hs_country_extension:
          $ref: '#/components/schemas/Inventory_API_v1_country_extension'
    Inventory_API_v1_RegulatedGoods:
      title: RegulatedGoods
      type: object
      description: Product Regulation Information
      properties:
        regulation:
          $ref: '#/components/schemas/Inventory_API_v1_RegulationRef'
        technical_name:
          type: string
          nullable: true
          description: Must match against Regulation's Technical Name Pattern if specified.
          example: Hydro Polymer Acetylene Coating
        additional_information:
          type: string
          nullable: true
          description: >-
            Must match against Regulation's Additional Regulatory Information
            Pattern if specified.
          example: Flamable Liquid
        net_weight:
          $ref: '#/components/schemas/Inventory_API_v1_Weight'
        container_type:
          $ref: '#/components/schemas/Inventory_API_v1_container_type'
        container_meets_hazmat_specs:
          type: boolean
          description: >-
            This flag indicates that the `RegulatedGoods` container is
            sufficient for a regulated (HAZMAT) product.
          example: true
        regulation_units:
          type: number
          description: >-
            These units are arbitrary and should be relative to the Regulation's
            Pickup Weight Limit. E.g. it could be in pounds, kilowatt/hours,
            etc.
          format: float
          example: 5
    Inventory_API_v1_Packaging:
      title: Packaging
      type: object
      description: Product Packaging information
      properties:
        require_packaging:
          allOf:
            - $ref: '#/components/schemas/Inventory_API_v1_boolean'
            - description: >-
                If Yes, packaging will require a Box with "Satisfies Overbox:
                Yes".
        require_weight_check:
          allOf:
            - $ref: '#/components/schemas/Inventory_API_v1_boolean'
            - description: >-
                If Yes, the associated product will require the use of a scale
                to verify that the package's weight falls within the expected
                amount. If this is set to No, this step will be skipped by the
                packer.
        require_confirmation_per_item:
          allOf:
            - $ref: '#/components/schemas/Inventory_API_v1_boolean'
            - description: >-
                If Yes, Packaging Products with "One Scan Per: Item" will
                require a scan for each item packed rather than just one for the
                first item in a package.
        unit_quantity:
          type: integer
          example: 1
          nullable: true
          description: >-
            Number of individually packaged items contained therein for purposes
            of special packaging features.
        bulk_quantity:
          type: integer
          nullable: true
          example: 10
          description: >-
            Prefer to split into packages when necessary using multiples of this
            amount.
        max_per_package:
          type: integer
          nullable: true
          example: 15
          description: >-
            The maximum quantity of this product to ever include in the same
            package. 

            Multiply by "Unit Quantity" to achieve common units between other
            products with the same "Ship Separate Tag" value.
        is_ship_separately:
          allOf:
            - $ref: '#/components/schemas/Inventory_API_v1_boolean'
            - description: >-
                This item cannot ship in the same package as other items (unless
                they have the same "Ship Separate Tag").
        ship_separately_tag:
          type: string
          nullable: true
          description: >-
            Applies only if "Ship Separate" is "Yes". Assign the same tag to
            treat similar products as interchangeable 

            with respect to the "Ship Separate" and "Max Per Package" attribute.
          example: PVC
        can_tip:
          allOf:
            - $ref: '#/components/schemas/Inventory_API_v1_boolean'
            - description: >-
                If Yes, the item is allowed to be rotated vertically when
                packed.
        can_contain_other_items:
          allOf:
            - $ref: '#/components/schemas/Inventory_API_v1_boolean'
            - description: >-
                If Yes then other smaller items are allowed to be placed within
                this larger item. This is useful when the item is hollow or is a
                bin/bucket.
        is_handling_surcharge:
          allOf:
            - $ref: '#/components/schemas/Inventory_API_v1_boolean'
            - description: >-
                The Packaging Surcharge is applicable when shipped without an
                Overbox.
    Inventory_API_v1_custom_fields:
      type: array
      description: Custom field values as an array of code/value pairs.
      items:
        type: object
        properties:
          code:
            type: string
            description: The custom field code/identifier.
          value:
            description: The field value (type depends on field configuration).
          label:
            type: string
            description: For select fields, the display label of the selected option.
          options:
            type: object
            description: For multiselect fields, a map of option IDs to labels.
            additionalProperties:
              type: string
        required:
          - code
      example:
        - code: color
          value: 13
          label: Red and Black
        - code: cost_of_goods
          value: 41.32
        - code: allow_mailer
          value: true
    Inventory_API_v1_RackRef:
      title: RackRef
      type: object
      description: >-
        A `Rack` is a grouping of locations in a warehouse implying a very close
        proximity.
      properties:
        type:
          type: string
          enum:
            - Rack
          description: This property describes the type of object in the response body.
        id:
          type: integer
          description: >-
            The internal `id` property used as a path parameter in a resource
            lookup.
      required:
        - type
        - id
      nullable: true
      additionalProperties: false
    Inventory_API_v1_RackTypeRef:
      title: RackTypeRef
      type: object
      description: >-
        A `RackType` classifies racks by their physical characteristics (e.g.
        "Wide Aisle", "Narrow Aisle").
      properties:
        type:
          type: string
          enum:
            - RackType
          description: This property describes the type of object in the response body.
        id:
          type: integer
          description: >-
            The internal `id` property used as a path parameter in a resource
            lookup.
      required:
        - type
        - id
      nullable: true
      additionalProperties: false
    Inventory_API_v1_custom_field_scalar_value:
      type: object
      description: |-
        A wrapper for scalar custom field values.
        The value type depends on the field's input type:
        - **boolean**: boolean value
        - **text/multiline-text/email/url/date**: string value
        - **number**: number value
        - **admin-user/client-user**: integer value (user ID)
      required:
        - value
      properties:
        value:
          description: The field value. Type varies based on field configuration.
          oneOf:
            - type: boolean
            - type: string
            - type: number
            - type: integer
      additionalProperties: false
    Inventory_API_v1_custom_field_select_option:
      type: object
      description: A selected option for select type fields.
      required:
        - id
        - label
      properties:
        id:
          type: integer
          description: The option ID.
        label:
          type: string
          description: The display label for the selected option.
      additionalProperties: false
    Inventory_API_v1_custom_field_multiselect_value:
      type: array
      description: Array of selected options for multiselect type fields.
      items:
        $ref: '#/components/schemas/Inventory_API_v1_custom_field_select_option'
    Inventory_API_v1_country_extension:
      type: array
      nullable: true
      items:
        type: object
        properties:
          country_id:
            type: string
            description: This is the two-digit ISO (Alpha-2) country code.
          extension:
            type: string
            description: >-
              Country-specific extension to the 6-digit Harmonized System code.
              For imports into the United States this is the last 4 digits of
              the 10-digit HTS (Harmonized Tariff Schedule) code.
      example:
        - country_id: TW
          extension: '002'
        - country_id: US
          extension: '011'
    Inventory_API_v1_RegulationRef:
      title: Regulation
      type: object
      description: A reference to a `Regulation` by `id`.
      properties:
        type:
          type: string
          enum:
            - Regulation
          description: This property describes the type of object in the response body.
        id:
          type: integer
          description: >-
            The internal `id` property used as a path parameter in a resource
            lookup.
      required:
        - type
        - id
      nullable: true
      additionalProperties: false
    Inventory_API_v1_container_type:
      type: string
      nullable: true
      description: >-
        The Overpack Container Type can be a combination of material and
        container type such as Aluminum Box, Steel Drum, or a combination of a
        material and container type from these two lists:
          - `Material:` Aluminum, Fiberboard, Glass, Plywood, Plastic, Steel, Wood
          - `Container:` Bag, Bottle, Box, Bucket, Cylinder, Drum, Jerrican, Pail
      example: Plastic Box
    Inventory_API_v1_boolean:
      type: boolean
      enum:
        - true
        - false
      example: true
  responses:
    Inventory_API_v1_400-bad-request:
      description: >-
        The request was invalid. The client must change the request. See the
        response body for more details.
      content:
        application/json:
          schema:
            type: object
            properties:
              errors:
                type: array
                items:
                  type: object
                  properties:
                    type:
                      type: string
                      description: The error type code.
                      enum:
                        - parser
                        - parameters
                        - openapi
                    message:
                      type: string
                      description: An English sentence describing the error type.
                    details:
                      type: array
                      description: >-
                        An array of objects describing which keys are
                        responsible for the error and detailed messages
                        describing why they are not valid.
                      items:
                        type: object
                        properties:
                          key:
                            type: string
                            description: The path to the key which relates to the error.
                          message:
                            type: string
                            description: >-
                              An English sentence describing the details of the
                              error.
                        additionalProperties: false
                  additionalProperties: false
                minItems: 1
            additionalProperties: false
          example:
            errors:
              - type: parameters
                message: The supplied parameters are invalid.
    Inventory_API_v1_404-not-found:
      description: >-
        The requested resource was not found. It may have been deleted, it may
        have never existed, or you may not have permission to view it.
      content:
        application/json:
          schema:
            type: object
            properties:
              errors:
                type: array
                items:
                  type: object
                  properties:
                    type:
                      type: string
                      description: The error type code.
                      enum:
                        - not_found
                    message:
                      type: string
                      description: An English sentence describing the error type.
                    details:
                      type: array
                      description: >-
                        An array of objects describing which keys are
                        responsible for the error and detailed messages
                        describing why they are not valid.
                      items:
                        type: object
                        properties:
                          key:
                            type: string
                            description: The path to the key which relates to the error.
                          message:
                            type: string
                            description: >-
                              An English sentence describing the details of the
                              error.
                        additionalProperties: false
                  additionalProperties: false
                minItems: 1
            additionalProperties: false
          example:
            errors:
              - type: not_found
                message: The server could not find the requested resource.
    Inventory_API_v1_500-internal-server-error:
      description: >-
        Internal Server Error - Something wrong happened at server side. Contact
        server administrator for more details.
  securitySchemes:
    ShipStream_bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Generate a JWT access token through a Custom Global Integration and
        provide it with each request in the `Authorization` header prefixed with
        "Bearer" and then a single space.

````