openapi: 3.0.1
info:
  title: Channel Service
  version: v1
servers:
  - url: /ChannelService
paths:
  /ChannelService/api/v1/exports/product:
    post:
      tags:
        - Exports
      summary: Product Export
      parameters:
        - name: applicationId
          in: header
          description: ''
          required: false
          style: simple
          explode: false
          schema:
            type: integer
            description: ''
            format: int32
            nullable: true
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JobRunRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/JobRunRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/JobRunRequest'
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ExportFeedResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/ExportFeedResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ExportFeedResponse'
        '204':
          description: Success
        '429':
          description: Client Error
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
      security:
        - bearer: []
  /api/v1/exports/product:
    post:
      tags:
        - Exports
      summary: Product Export
      parameters:
        - name: applicationId
          in: header
          description: ''
          required: false
          style: simple
          explode: false
          schema:
            type: integer
            description: ''
            format: int32
            nullable: true
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JobRunRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/JobRunRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/JobRunRequest'
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ExportFeedResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/ExportFeedResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ExportFeedResponse'
        '204':
          description: Success
        '429':
          description: Client Error
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
      security:
        - bearer: []
  /ChannelService/api/v1/exports/productstatus:
    post:
      tags:
        - Exports
      summary: Product Status Export
      parameters:
        - name: applicationId
          in: header
          required: false
          style: simple
          explode: false
          schema:
            type: integer
            format: int32
            nullable: true
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JobRunRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/JobRunRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/JobRunRequest'
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ExportFeedResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/ExportFeedResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ExportFeedResponse'
        '204':
          description: Success
        '429':
          description: Client Error
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
      security:
        - bearer: []
  /api/v1/exports/productstatus:
    post:
      tags:
        - Exports
      summary: Product Status Export
      parameters:
        - name: applicationId
          in: header
          required: false
          style: simple
          explode: false
          schema:
            type: integer
            format: int32
            nullable: true
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JobRunRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/JobRunRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/JobRunRequest'
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ExportFeedResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/ExportFeedResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ExportFeedResponse'
        '204':
          description: Success
        '429':
          description: Client Error
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
      security:
        - bearer: []
  /ChannelService/api/v1/jobs/job:
    get:
      tags:
        - Jobs
      summary: Get Job
      parameters:
        - name: jobKey
          in: query
          description: ''
          required: false
          style: form
          explode: true
          schema:
            type: string
            description: ''
            format: uuid
        - name: applicationId
          in: header
          description: ''
          required: false
          style: simple
          explode: false
          schema:
            type: integer
            description: ''
            format: int32
            nullable: true
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/GetJobResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/GetJobResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/GetJobResponse'
      security:
        - bearer: []
  /api/v1/jobs/job:
    get:
      tags:
        - Jobs
      summary: Get Job
      parameters:
        - name: jobKey
          in: query
          description: ''
          required: false
          style: form
          explode: true
          schema:
            type: string
            description: ''
            format: uuid
        - name: applicationId
          in: header
          description: ''
          required: false
          style: simple
          explode: false
          schema:
            type: integer
            description: ''
            format: int32
            nullable: true
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/GetJobResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/GetJobResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/GetJobResponse'
      security:
        - bearer: []
  /ChannelService/api/v1/jobs/completejob:
    patch:
      tags:
        - Jobs
      summary: Complete Job
      parameters:
        - name: jobKey
          in: query
          description: ''
          required: false
          style: form
          explode: true
          schema:
            type: string
            description: ''
            format: uuid
        - name: itemsProcessed
          in: query
          description: ''
          required: false
          style: form
          explode: true
          schema:
            type: integer
            description: ''
            format: int32
            nullable: true
        - name: applicationId
          in: header
          description: ''
          required: false
          style: simple
          explode: false
          schema:
            type: integer
            description: ''
            format: int32
            nullable: true
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/GetJobResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/GetJobResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/GetJobResponse'
      security:
        - bearer: []
  /api/v1/jobs/completejob:
    patch:
      tags:
        - Jobs
      summary: Complete Job
      parameters:
        - name: jobKey
          in: query
          description: ''
          required: false
          style: form
          explode: true
          schema:
            type: string
            description: ''
            format: uuid
        - name: itemsProcessed
          in: query
          description: ''
          required: false
          style: form
          explode: true
          schema:
            type: integer
            description: ''
            format: int32
            nullable: true
        - name: applicationId
          in: header
          description: ''
          required: false
          style: simple
          explode: false
          schema:
            type: integer
            description: ''
            format: int32
            nullable: true
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/GetJobResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/GetJobResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/GetJobResponse'
      security:
        - bearer: []
  /ChannelService/api/v1/jobs/cancel:
    put:
      tags:
        - Jobs
      summary: Cancel Job
      parameters:
        - name: jobKey
          in: query
          description: ''
          required: false
          style: form
          explode: true
          schema:
            type: string
            description: ''
            format: uuid
        - name: applicationId
          in: header
          description: ''
          required: false
          style: simple
          explode: false
          schema:
            type: integer
            description: ''
            format: int32
            nullable: true
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/GetJobResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/GetJobResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/GetJobResponse'
      security:
        - bearer: []
  /api/v1/jobs/cancel:
    put:
      tags:
        - Jobs
      summary: Cancel Job
      parameters:
        - name: jobKey
          in: query
          description: ''
          required: false
          style: form
          explode: true
          schema:
            type: string
            description: ''
            format: uuid
        - name: applicationId
          in: header
          description: ''
          required: false
          style: simple
          explode: false
          schema:
            type: integer
            description: ''
            format: int32
            nullable: true
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/GetJobResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/GetJobResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/GetJobResponse'
      security:
        - bearer: []
components:
  schemas:
    JobRunRequest:
      type: object
      properties:
        channelKey:
          type: string
          format: uuid
        deltaFromDate:
          type: string
          format: date-time
          nullable: true
        channelId:
          type: string
          format: uuid
          deprecated: true
        endpointUrl:
          type: string
          nullable: true
          deprecated: true
      additionalProperties: false
      nullable: true
    ResponseCode:
      type: string
      enum:
        - Success
        - AlreadyInProgress
        - NoData
        - Failed
    ExportFeedResponse:
      type: object
      properties:
        code:
          $ref: '#/components/schemas/ResponseCode'
        jobKey:
          type: string
          nullable: true
        dataUrl:
          type: string
          nullable: true
        contentType:
          type: string
          nullable: true
        itemsTotal:
          type: integer
          format: int32
      additionalProperties: false
      nullable: true
    ProblemDetails:
      type: object
      properties:
        type:
          type: string
          nullable: true
        title:
          type: string
          nullable: true
        status:
          type: integer
          format: int32
          nullable: true
        detail:
          type: string
          nullable: true
        instance:
          type: string
          nullable: true
      additionalProperties:
        type: object
        additionalProperties: false
        nullable: true
      nullable: true
    JobStatus:
      type: string
      enum:
        - Unknown
        - Initialized
        - WaitingForSlot
        - RunningInExportFeed
        - CompletedInExportFeed
        - CompletedByAdapter
        - NoContent
        - Failed
        - Cancelled
    GetJobResponse:
      type: object
      properties:
        clientId:
          type: integer
          format: int32
        key:
          type: string
          format: uuid
        channelKey:
          type: string
          format: uuid
        endpoint:
          type: string
          nullable: true
        type:
          type: string
          nullable: true
        deltaFromDate:
          type: string
          format: date-time
          nullable: true
        itemsTotal:
          type: integer
          format: int32
        statusId:
          $ref: '#/components/schemas/JobStatus'
        start:
          type: string
          format: date-time
        stop:
          type: string
          format: date-time
          nullable: true
        lastUpdated:
          type: string
          format: date-time
      additionalProperties: false
      nullable: true
    CodeName:
      type: object
      properties:
        code:
          type: string
          nullable: true
        name:
          type: string
          nullable: true
        id:
          type: integer
          description: Internal id of the value
          format: int32
      additionalProperties: false
      description: Generic Code/Name entity, without localization.
      nullable: true
    CultureNames:
      type: object
      properties:
        cultureCode:
          type: string
          nullable: true
        name:
          type: string
          nullable: true
        uniqueUrlName:
          type: string
          nullable: true
      additionalProperties: false
      description: Localized names for a Product/Variant.
      nullable: true
    CategoryCulture:
      type: object
      properties:
        cultureCode:
          type: string
          nullable: true
        name:
          type: string
          nullable: true
        fullName:
          type: string
          nullable: true
        synonyms:
          type: string
          nullable: true
      additionalProperties: false
      description: Localized Category information.
      nullable: true
    Category:
      type: object
      properties:
        code:
          type: string
          nullable: true
        cultures:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/CategoryCulture'
        id:
          type: integer
          description: Norce internal category id
          format: int32
      additionalProperties: false
      description: Represents a Category with localized names.
      nullable: true
    Status:
      type: string
      description: Specifies the status for the part number.
      enum:
        - Active
        - Coming
        - Expiring
        - Hidden
        - Inactive
    Warehouse:
      type: object
      properties:
        code:
          type: string
          nullable: true
        locationCode:
          type: string
          nullable: true
        id:
          type: integer
          description: Norce internal warehouse id
          format: int32
        locationId:
          type: integer
          description: Norce internal location id
          format: int32
      additionalProperties: false
      description: Represents a Warehouse, on which stock information is kept.
      nullable: true
    QuantityBreakPrice:
      type: object
      properties:
        priceListCode:
          type: string
          description: >-
            The price list code. Called "Agreement" in Norce [Storm] API and
            Query. This may be diferent than on the default price.
          nullable: true
        quantityBreak:
          type: integer
          description: Quantity Break, the quantity where this price becomes valid.
          format: int32
        isDiscountable:
          type: boolean
          description: >-
            Defines if the current price is further discountable or not by
            promotions.
        value:
          type: number
          description: The chosen price, excl VAT.
          format: double
        valueIncVat:
          type: number
          description: The chosen price, incl VAT
          format: double
      additionalProperties: false
      description: Represents a quantity-break price.
      nullable: true
    Price:
      type: object
      properties:
        salesArea:
          type: string
          nullable: true
        priceListCode:
          type: string
          nullable: true
        currency:
          type: string
          nullable: true
        value:
          type: number
          format: double
        isDiscountable:
          type: boolean
        original:
          type: number
          format: double
          nullable: true
        vatRate:
          type: number
          format: double
        availableOnWarehouses:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/Warehouse'
        purchaseCost:
          type: number
          format: double
        unitCost:
          type: number
          format: double
        isActive:
          type: boolean
        valueIncVat:
          type: number
          description: The chosen price, incl VAT
          format: double
        priceListId:
          type: integer
          description: Norce internal Price list Id
          format: int32
        recommendedPrice:
          type: number
          description: Recommended price, if exists.
          format: double
          nullable: true
        standardPrice:
          type: number
          description: Standard price, if exists.
          format: double
          nullable: true
        catalogPrice:
          type: number
          description: Catalog price, if exists.
          format: double
          nullable: true
        recommendedPriceIncVat:
          type: number
          description: Recommended price, incl VAT, if exists.
          format: double
          nullable: true
        standardPriceIncVat:
          type: number
          description: Standard price, incl VAT, if exists.
          format: double
          nullable: true
        catalogPriceIncVat:
          type: number
          description: Catalog price, incl VAT, if exists.
          format: double
          nullable: true
        availableQuantityBreaks:
          type: array
          description: Available quantity breaks
          nullable: true
          items:
            $ref: '#/components/schemas/QuantityBreakPrice'
      additionalProperties: false
      description: Represents the chosen Price for a specific Variant, unique by SalesArea.
      nullable: true
    WarehouseType:
      type: string
      description: >-
        Specifies the parametric type, used to interpret the value set on a
        Parametric.
      enum:
        - Warehouse
        - Store
        - Transit
        - Other
    OnHand:
      type: object
      properties:
        warehouse:
          $ref: '#/components/schemas/Warehouse'
        warehouseType:
          $ref: '#/components/schemas/WarehouseType'
        value:
          type: number
          format: double
        leadTimeDayCount:
          type: integer
          format: int32
          nullable: true
        availableOnStores:
          type: array
          nullable: true
          items:
            type: string
        availableOnPriceLists:
          type: array
          nullable: true
          items:
            type: string
        nextDelivery:
          type: string
          format: date-time
          nullable: true
      additionalProperties: false
      description: Represents the on hand (stock) values per warehouse.
      nullable: true
    Supplier:
      type: object
      properties:
        supplierCode:
          type: string
          nullable: true
        supplierPartNo:
          type: string
          nullable: true
        supplierPriceListCode:
          type: string
          nullable: true
        currency:
          type: string
          nullable: true
        cost:
          type: number
          format: double
        onHandValue:
          type: number
          format: double
        isStockCalculated:
          type: boolean
        leadTimeDayCount:
          type: integer
          format: int32
          nullable: true
        chosenSupplierOnPriceLists:
          type: array
          nullable: true
          items:
            type: string
        availableOnPriceLists:
          type: array
          nullable: true
          items:
            type: string
      additionalProperties: false
      description: Represents a supplier record.
      nullable: true
    FlagCulture:
      type: object
      properties:
        cultureCode:
          type: string
          nullable: true
        name:
          type: string
          nullable: true
        groupName:
          type: string
          nullable: true
      additionalProperties: false
      description: Localized Flag information.
      nullable: true
    Flag:
      type: object
      properties:
        code:
          type: string
          nullable: true
        cultures:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/FlagCulture'
        id:
          type: integer
          description: Norce internal flag id
          format: int32
        groupCode:
          type: string
          nullable: true
      additionalProperties: false
      description: Represents a Flag value.
      nullable: true
    FileType:
      type: string
      description: Specifies the type of a specific File.
      enum:
        - External
        - Asset
    File:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/FileType'
        code:
          type: string
          nullable: true
        fileCode:
          type: string
          nullable: true
        key:
          type: string
          format: uuid
          nullable: true
        mimeType:
          type: string
          nullable: true
        url:
          type: string
          nullable: true
        sortOrder:
          type: integer
          description: The sort order within the type of files
          format: int32
          nullable: true
      additionalProperties: false
      description: >-
        Represents a File, a reference to an asset in Norce [Storm] or external
        reference (e.g. Youtube url)
      nullable: true
    ParametricType:
      type: string
      description: >-
        Specifies the parametric type, used to interpret the value set on a
        Parametric.
      enum:
        - Text
        - Integer
        - Decimal
        - Boolean
        - Html
        - Date
        - List
        - Multiple
    ParametricCulture:
      type: object
      properties:
        cultureCode:
          type: string
          nullable: true
        name:
          type: string
          nullable: true
        groupName:
          type: string
          nullable: true
        unitOfMeasurement:
          type: string
          nullable: true
        value:
          type: object
          additionalProperties: false
          nullable: true
        listValue:
          $ref: '#/components/schemas/CodeName'
        multipleValues:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/CodeName'
      additionalProperties: false
      description: Localized Parametric information.
      nullable: true
    Parametric:
      type: object
      properties:
        code:
          type: string
          nullable: true
        type:
          $ref: '#/components/schemas/ParametricType'
        sortOrder:
          type: integer
          format: int32
          nullable: true
        cultures:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ParametricCulture'
        id:
          type: integer
          description: Internal parametric id
          format: int32
        groupCode:
          type: string
          nullable: true
      additionalProperties: false
      description: Represents a Parametric value.
      nullable: true
    Relation:
      type: object
      properties:
        type:
          type: string
          nullable: true
        partNo:
          type: string
          nullable: true
        code:
          type: string
          description: Identifier for the relation type.
          nullable: true
      additionalProperties: false
      description: Represents a Relation between Products/Variants.
      nullable: true
    CultureTexts:
      type: object
      properties:
        cultureCode:
          type: string
          nullable: true
        descriptionHeader:
          type: string
          nullable: true
        description:
          type: string
          nullable: true
        subHeader:
          type: string
          nullable: true
        subDescription:
          type: string
          nullable: true
        synonyms:
          type: string
          nullable: true
      additionalProperties: false
      description: Localized descriptive text fields for a Product/Variant.
      nullable: true
    Logistics:
      type: object
      properties:
        width:
          type: number
          format: double
          nullable: true
        height:
          type: number
          format: double
          nullable: true
        depth:
          type: number
          format: double
          nullable: true
        weight:
          type: number
          format: double
          nullable: true
      additionalProperties: false
      description: Contains logistic data for an item.
      nullable: true
    Popularity:
      type: object
      properties:
        source:
          type: string
          nullable: true
        categoryRank:
          type: integer
          format: int32
        categoryRankMax:
          type: integer
          format: int32
        totalRank:
          type: integer
          format: int32
        applicationId:
          type: integer
          description: >-
            Application reference. If client setting is "Product popularity by
            application" = true the rank will be restricted to this application
            only. If false, applicationid can be ignored.
          format: int32
          nullable: true
      additionalProperties: false
      description: Represents a Popularity score.
      nullable: true
    Variant:
      type: object
      properties:
        partNo:
          type: string
          nullable: true
        manufacturerPartNo:
          type: string
          nullable: true
        names:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/CultureNames'
        eanCode:
          type: string
          nullable: true
        status:
          $ref: '#/components/schemas/Status'
        prices:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/Price'
        onHands:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/OnHand'
        suppliers:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/Supplier'
        flags:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/Flag'
        primaryImage:
          $ref: '#/components/schemas/File'
        files:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/File'
        variantDefiningParametrics:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/Parametric'
        additionalParametrics:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/Parametric'
        relations:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/Relation'
        texts:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/CultureTexts'
        logistics:
          $ref: '#/components/schemas/Logistics'
        commodityCode:
          type: string
          nullable: true
        recommendedQty:
          type: number
          format: double
          nullable: true
        isRecommendedQtyFixed:
          type: boolean
        startDate:
          type: string
          format: date-time
          nullable: true
        endDate:
          type: string
          format: date-time
          nullable: true
        type:
          type: string
          description: Product type.
          nullable: true
        popularities:
          type: array
          description: >-
            Popularities on the Variant level (depending on the client setting
            "Product popularity by variant" = true).
          nullable: true
          items:
            $ref: '#/components/schemas/Popularity'
        id:
          type: integer
          description: Norce internal variant id, same as "Id" in Norce [Storm] API.
          format: int32
        typeId:
          type: integer
          description: >-
            Product type id (for example: Standard=1, Freight=3, Service=11,
            Extended assortment=14, ManagedStructure=37, Virtual=40). See
            documentation for more.
          format: int32
      additionalProperties: false
      description: Represents a Variant.
      nullable: true
    FamilyCulture:
      type: object
      properties:
        cultureCode:
          type: string
          nullable: true
        name:
          type: string
          nullable: true
      additionalProperties: false
      description: Localized Family information.
      nullable: true
    Family:
      type: object
      properties:
        code:
          type: string
          nullable: true
        cultures:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/FamilyCulture'
      additionalProperties: false
      description: Represents a Family value.
      nullable: true
    Product:
      type: object
      properties:
        code:
          type: string
          nullable: true
        manufacturer:
          $ref: '#/components/schemas/CodeName'
        names:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/CultureNames'
        primaryCategory:
          $ref: '#/components/schemas/Category'
        additionalCategories:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/Category'
        variants:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/Variant'
        families:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/Family'
        flags:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/Flag'
        primaryImage:
          $ref: '#/components/schemas/File'
        files:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/File'
        parametrics:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/Parametric'
        relations:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/Relation'
        texts:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/CultureTexts'
        popularities:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/Popularity'
        groupById:
          type: integer
          description: >-
            Internal variant grouping id. Same as "GroupByKey" in Norce [Storm]
            API, but as an Int. Att a "v" as prefix to match it with the key.
          format: int32
          nullable: true
      additionalProperties: false
      description: >-
        A product can contain one or more variants, where variant contains the
        individual sku.
      nullable: true
    ProductStatus:
      type: object
      properties:
        partNo:
          type: string
          nullable: true
        status:
          $ref: '#/components/schemas/Status'
        prices:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/Price'
        onHands:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/OnHand'
        suppliers:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/Supplier'
        primaryCategory:
          type: string
          nullable: true
        viewCount:
          type: integer
          format: int32
        flags:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/Flag'
      additionalProperties: false
      description: Represents a ProductStatus (lightweight product message).
      nullable: true
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      bearerFormat: JWT
