MTN TMF637 Product Inventory

**TMF API Reference : TMF 637 - Product Inventory Management**.

OpenAPI Specification

mtn-group-tmf637-product-inventory.yml Raw ↑
swagger: '2.0'
info:
  title: TMF637- Product Inventory Management
  description: |+
    **TMF API Reference : TMF 637 - Product Inventory Management**

  version: 4.0.0
host: serverRoot
basePath: /tmf-api/productInventory/v4/
schemes:
  - https
consumes:
  - application/json;charset=utf-8
produces:
  - application/json;charset=utf-8
tags:
  - name: product
  - name: notification listeners (client side)
  - name: events subscription
security:
  - ApiKeyAuth: []
  - OAuth2: []
securityDefinitions:
  ApiKeyAuth:
    type: "apiKey"
    name: "X-API-Key"
    in: "header"
  OAuth2:
    type: oauth2
    flow: application
    tokenUrl: https://api.mtn.com/v1/oauth/access_token
paths:
  /product:
    get:
      operationId: listProduct
      summary: List or find Product objects
      description: This operation list or find Product entities
      tags:
        - product
      parameters:
        - name: customerNodeId
          description: Identifier of the customer. SV_MAPPING:CUSTOMER_NODE_TRE_V.CUSTOMER_NODE_ID
          required: false
          type: string
          in: query
        - name: planName
          description: Identifier of the offer display name. SV_MAPPING:PRODUCT_NSTANCE_TRE_V.PRODUCT_OFFER_DISPLAY_NAME. Default to All. Supports comma separated list of values
          required: false
          type: string
          in: query
        - name: offerIds
          description: Identifier of the offer id. SV_MAPPING:PRODUCT_OFFER_TRE_V.PRODUCT_OFFER_ID. Supports comma separated list of values
          required: false
          type: string
          in: query
        - name: serviceName
          description: Identifier of the service name. SV_MAPPING:SERVICE_TRE_V.SERVICE_NAME. Support wildcard. If wildcard is provided, then 'LIKE' SQL operator is enforced by the API, otherwise '=' is used.
          required: false
          type: string
          in: query
        - name: subscriberName
          description: Identifier of the subscriber name. SV_MAPPING:PERSON_TRE_V.OFFICIAL_NAME. Support wildcard. If wildcard is provided, then 'LIKE' SQL operator is enforced by the API, otherwise '=' is used.
          required: false
          type: string
          in: query
        - name: subscriptionStatus
          description: SV_MAPPING:PRODUCT_INSTANCE_TRE_V.PRODUCT_INSTANCE_STATUS_CODE. Refer to RT perestapi.imp.PRODUCT_INSTANCE_STATUS. Default to All
          required: false
          type: string
          in: query
        - name: includeStatus
          description: 'Filter for base product instances status. If set to ''All'', all instances will be returned regardless the status. If set to ''Cancelled'', only all Cancelled, Moved and Upgraded status instances will be included in the main query. If set to Non-Cancelled, then all instances will be included in the main query except for Cancelled, Moved and Upgraded status instances. Default is set to ''All''. SV_MAPPING: RT perestapi.INCLUDE_STATUS'
          required: false
          type: string
          in: query
          x-refdata-source: RT-perestapi.INCLUDE_STATUS
        - name: sortKey
          description: To sort the response based on sortKey. Possible values - validFor. These values are retrieved from RT perestapi.imp.product.SORT_KEY
          required: false
          in: query
          type: string
        - name: sortOrder
          description: To sort the response based on sort order. Possible value ascending, descending. Default to descending if sortKey is provided.
          required: false
          in: query
          type: string
        - name: offset
          description: Requested index for start of resources to be provided in response. Default to 0
          required: false
          in: query
          type: integer
          format: int64
        - name: limit
          description: Requested number of resources to be provided in response. Default to configuration item API_CONFIGURATION1.DEFAULT_MAX_ROWS
          required: false
          in: query
          type: integer
          format: int64
        - name: scn
          description: Oracle system change number used for data read consistency. Default to emtpy string if configuration item API_CONFIGURATION1.USE_FLASHBACK is not ON
          required: false
          in: query
          type: string
        - name: fields
          description: Comma-separated properties to provide in response
          required: false
          type: string
          in: query
      responses:
        '200':
          description: Success
          headers:
            X-Result-Count:
              description: Actual number of items returned in the response body
              type: integer
            X-Total-Count:
              description: Total number of items matching criteria
              type: integer
          schema:
            $ref: '#/definitions/Product'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error'
        '401':
          description: Unauthorized
          schema:
            $ref: '#/definitions/Error'
        '403':
          description: Forbidden
          schema:
            $ref: '#/definitions/Error'
        '404':
          description: Not Found
          schema:
            $ref: '#/definitions/Error'
        '405':
          description: Method Not allowed
          schema:
            $ref: '#/definitions/Error'
        '409':
          description: Conflict
          schema:
            $ref: '#/definitions/Error'
        '500':
          description: Internal Server Error
          schema:
            $ref: '#/definitions/Error'
  /product/{id}:
    get:
      operationId: retrieveProduct
      summary: Retrieves a Product by ID
      description: This operation retrieves a Product entity. Attribute selection is enabled for all first level attributes.
      tags:
        - product
      parameters:
        - name: id
          description: Identifier of the Product
          required: true
          type: string
          in: path
        - name: fields
          description: Comma-separated properties to provide in response
          required: false
          type: string
          in: query
      responses:
        '200':
          description: Success
          schema:
            $ref: '#/definitions/Product'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error'
        '401':
          description: Unauthorized
          schema:
            $ref: '#/definitions/Error'
        '403':
          description: Forbidden
          schema:
            $ref: '#/definitions/Error'
        '404':
          description: Not Found
          schema:
            $ref: '#/definitions/Error'
        '405':
          description: Method Not allowed
          schema:
            $ref: '#/definitions/Error'
        '409':
          description: Conflict
          schema:
            $ref: '#/definitions/Error'
        '500':
          description: Internal Server Error
          schema:
            $ref: '#/definitions/Error'
definitions:
  AgreementItemRef:
    type: object
    description: Agreement reference. An agreement represents a contract or arrangement, either written or verbal and sometimes enforceable by law, such as a service level agreement or a customer price agreement. An agreement involves a number of other business entities, such as products, services, and resources and/or their specifications.
    required:
      - id
    properties:
      id:
        type: string
        description: Unique identifier of a related entity.
      href:
        type: string
        description: Reference of the related entity.
      agreementItemId:
        type: string
        description: Identifier of the agreement
      name:
        type: string
        description: Name of the related entity.
      '@baseType':
        type: string
        description: When sub-classing, this defines the super-class
      '@schemaLocation':
        type: string
        format: uri
        description: A URI to a JSON-Schema file that defines additional attributes and relationships
      '@type':
        type: string
        description: When sub-classing, this defines the sub-class entity name
      '@referredType':
        type: string
        description: The actual type of the target instance when needed for disambiguation.
  AttachmentRefOrValue:
    type: object
    description: An attachment by value or by reference.
    properties:
      id:
        type: string
        description: Unique identifier for this particular attachment. For Product Offer images SV_MAPPING:IMG<ProductOfferId>-(1..n), For Product Offer Help SV_MAPPING:HLP<ProductOfferId>
      attachmentType:
        type: string
        description: Attachment type such as help urls, video, picture. For Product Offer images SV_MAPPING:image, For Product Offer Help SV_MAPPING:document
      name:
        type: string
        description: The name of the attachment. For Product Offer images SV_MAPPING:ImageUrl-(1..n), For Product Offer Help SV_MAPPING:HelpUrl
      url:
        type: string
        description: Uniform Resource Locator, is a web page address (a subset of URI). SV_MAPPING:PRODUCT_OFFER.PRODUCT_OFFER_IMAGE_URLS, PRODUCT_OFFER.PRODUCT_OFFER_HELP_URL
  Any: {}
  BillingAccountRef:
    type: object
    description: BillingAccount reference. A BillingAccount is a detailed description of a bill structure.
    required:
      - id
    properties:
      id:
        type: string
        description: Unique identifier of the billing account
      href:
        type: string
        description: Reference of the billing account
      name:
        type: string
        description: Name of the billing account
      '@baseType':
        type: string
        description: When sub-classing, this defines the super-class
      '@schemaLocation':
        type: string
        format: uri
        description: A URI to a JSON-Schema file that defines additional attributes and relationships
      '@type':
        type: string
        description: When sub-classing, this defines the sub-class entity name
      '@referredType':
        type: string
        description: The actual type of the target instance when needed for disambiguation.
  Bucket:
    type: object
    description: Describes allocation consumption details
    properties:
      initialQuantity:
        description: SV_MAPPING:ENTITLEMENT_ALLOCATION_TRE_V.INITIAL_AMOUNT
        $ref: '#/definitions/Quantity'
      balanceQuantity:
        description: SV_MAPPING:ENTITLEMENT_ALLOCATION_TRE_V.CONSUMED_AMOUNT
        $ref: '#/definitions/Quantity'
      consumptionPeriod:
        description: It is from SV_MAPPING:ENTITLEMENT_ALLOCATION_TRE_V.START_DATE to SV_MAPPING:ENTITLEMENT_ALLOCATION_TRE_V.EXPIRY_DATE
        $ref: '#/definitions/TimePeriod'
      id:
        type: string
        description: Id of the entitlement allocation. SV_MAPPING:ENTITLEMENT_ALLOCATION_TRE_V.ENTITLEMENT_ALLOCATION_ID
  CategoryRef:
    type: object
    description: The category for grouping recommendations
    required:
      - id
    properties:
      id:
        type: string
        description: Unique identifier of a related entity. SV_MAPPING:perestapi.imp.CATEGORY->Ref Code
      href:
        type: string
        description: Reference of the category - <http:/<PEREST_HOSTNAME>:<PEREST_PORT>/<Category PEREST URL>/<perestapi.imp.CATEGORY->Ref Code>
      name:
        type: string
        description: Name of the related entity. SV_MAPPING:perestapi.dCatalogCategory->Category Name
      codeLabel:
        type: string
        description: Code Label corresponding to the category name. SV_MAPPING:perestapi.imp.CATEGORY->Code Label
  Characteristic:
    type: object
    description: Describes a given characteristic of an object or entity through a name/value pair.
    required:
      - name
      - value
    properties:
      name:
        type: string
        description: Name of the characteristic
      valueType:
        type: string
        description: Data type of the value of the characteristic
      value:
        $ref: '#/definitions/Any'
        description: The value of the characteristic
      dispSequence:
        type: integer
        format: int64
        description: Sequence or order in which particular attribute is shown on user interface
      configurable:
        type: string
        description: If 'True', it indicates that the Characteristic is configurable/updatable, otherwise 'False'
      enabled:
        type: string
        description: 'If ''True'', it indicates that the Characteristic is enabled to be supplied/selected at the time of selling. SV_MAPPING: RT BOOLEAN -> Abbreviation'
      id:
        type: string
        description: Identifier of the attribute which identifies characteristic uniquely. Example - Attribute Type Id
      '@baseType':
        type: string
        description: When sub-classing, this defines the super-class
      '@schemaLocation':
        type: string
        format: uri
        description: A URI to a JSON-Schema file that defines additional attributes and relationships
      '@type':
        type: string
        description: When sub-classing, this defines the sub-class entity name
  CharacteristicRef:
    type: object
    description: Describes a given characteristic of an object or entity through a name/value pair.
    required:
      - name
      - value
    properties:
      name:
        type: string
        description: Name of the characteristic
      valueType:
        type: string
        description: Data type of the value of the characteristic
      value:
        $ref: '#/definitions/Any'
        description: The value of the characteristic
      '@type':
        type: string
        description: When sub-classing, this defines the sub-class entity name
  EntityRef:
    type: object
    description: Entity reference schema to be use for all entityRef class.
    properties:
      id:
        type: string
        description: Unique identifier of a related entity.
      href:
        type: string
        description: Reference of the related entity.
      name:
        type: string
        description: Name of the related entity.
      '@baseType':
        type: string
        description: When sub-classing, this defines the super-class
      '@schemaLocation':
        type: string
        format: uri
        description: A URI to a JSON-Schema file that defines additional attributes and relationships
      '@type':
        type: string
        description: When sub-classing, this defines the sub-class entity name
      '@referredType':
        type: string
        description: The actual type of the target instance when needed for disambiguation.
    required:
      - id
  GeographicAddress:
    type: object
    description: Structured textual way of describing how to find a Property for service installation
    properties:
      street1:
        type: string
        description: 'Line 1, SV_MAPPING: SERVICE_TRE_V.A_LINE_1, SERVICE_TRE_V.B_LINE_1'
      street2:
        type: string
        description: 'Line 2, SV_MAPPING: SERVICE_TRE_V.A_LINE_2, SERVICE_TRE_V.B_LINE_2'
      suburb:
        type: string
        description: 'Suburban, SV_MAPPING: SERVICE_TRE_V.A_SUBURB, SERVICE_TRE_V.B_SUBURB'
      city:
        type: string
        description: 'City, SV_MAPPING: SERVICE_TRE_V.A_CITY, SERVICE_TRE_V.B_CITY'
      postCode:
        type: string
        description: 'Post Code, SV_MAPPING: SERVICE_TRE_V.A_POST_CODE, SERVICE_TRE_V.B_POST_CODE'
      stateOrProvince:
        type: string
        description: 'State, SV_MAPPING: SERVICE_TRE_V.A_STATE, SERVICE_TRE_V.B_STATE'
      country:
        type: string
        description: 'Country, SV_MAPPING: SERVICE_TRE_V.A_COUNTRY, SERVICE_TRE_V.B_COUNTRY'
      addressLine1:
        type: string
        description: 'Address line 1, SV_MAPPING: SERVICE_TRE_V.A_GENERAL_1, SERVICE_TRE_V.B_GENERAL_1'
      geocode:
        type: string
        description: 'Geo Code providing geographical coordinates corresponding to a location, SV_MAPPING: SERVICE_TRE_V.A_GEOCODE, SERVICE_TRE_V.B_GEOCODE'
      buildingId:
        type: string
        description: 'Building Id as used for serviceability. SV_MAPPING: SERVICE_TRE_V.A_GENERAL_2, SERVICE_TRE_V.B_GENERAL_2'
      region:
        type: string
        description: 'Region as used for serviceability. SV_MAPPING: SERVICE_TRE_V.A_GENERAL_5, SERVICE_TRE_V.B_GENERAL_5'
      subDoorNumber:
        type: string
        description: 'Sub Door Number as used for serviceability. SV_MAPPING: SERVICE_TRE_V.A_GENERAL_3, SERVICE_TRE_V.B_GENERAL_3'
      genericAddress:
        type: string
        description: 'Generic Address as used for serviceability. SV_MAPPING: SERVICE_TRE_V.A_GENERAL_4, SERVICE_TRE_V.B_GENERAL_4'
      addressId:
        type: string
        description: 'Address ID of the service address as used for serviceability. SV_MAPPING: SERVICE_HISTORY.A_ADDRESS_ID, SERVICE_HISTORY.B_ADDRESS_ID'
      xpos:
        type: number
        format: float
        description: 'X coordinate of the geographic address, SV_MAPPING: SERVICE_TRE_V.A_XPOS | SERVICE_TRE_V.B_XPOS'
      ypos:
        type: number
        format: float
        description: 'Y coordinate of the geographic address, SV_MAPPING: SERVICE_TRE_V.A_YPOS | SERVICE_TRE_V.B_YPOS'
      '@type':
        type: string
        description: This is used to differentiate service address types as 'A' and 'B'
        x-refdata-source: CM-Address_Type
  Money:
    type: object
    description: A base / value business entity used to represent money
    properties:
      unit:
        type: string
        description: Currency (ISO4217 norm uses 3 letters to define the currency)
      value:
        type: number
        format: float
        description: A positive floating point number
  PaginationRef:
    type: object
    description: Query results and paging details.
    properties:
      offset:
        type: integer
        format: int64
        description: Requested index for start of items to be provided in response
      limit:
        type: integer
        format: int64
        description: Requested number of items to be provided in response
      remainingRecords:
        type: integer
        format: int64
        description: Remaining number of items to be fetched
      totalRecords:
        type: integer
        format: int64
        description: Total number of items matching criteria
      scn:
        type: string
        description: Oracle system change number for read consistency
  Place:
    type: object
    description: Place reference. Place defines the places where the products are sold or delivered.
    properties:
      id:
        type: string
        description: Unique identifier of the place
      href:
        type: string
        description: Unique reference of the place
      name:
        type: string
        description: A user-friendly name for the place, such as [Paris Store], [London Store], [Main Home]
      '@baseType':
        type: string
        description: When sub-classing, this defines the super-class
      '@schemaLocation':
        type: string
        format: uri
        description: A URI to a JSON-Schema file that defines additional attributes and relationships
      '@type':
        type: string
        description: When sub-classing, this defines the sub-class entity name
  PlaceRef:
    type: object
    description: Place reference. PlaceRef defines the placeRefs where the products are sold or delivered.
    properties:
      id:
        type: string
        description: Unique identifier of a related entity.
      href:
        type: string
        description: Reference of the related entity.
      name:
        type: string
        description: Name of the related entity.
      '@baseType':
        type: string
        description: When sub-classing, this defines the super-class
      '@schemaLocation':
        type: string
        format: uri
        description: A URI to a JSON-Schema file that defines additional attributes and relationships
      '@type':
        type: string
        description: When sub-classing, this defines the sub-class entity name
      '@referredType':
        type: string
        description: The actual type of the target instance when needed for disambiguation.
    required:
      - id
  Price:
    type: object
    description: Provides all amounts (tax included, duty free, tax rate), used currency and percentage to apply for Price Alteration.
    properties:
      percentage:
        type: number
        format: float
        description: Percentage to apply for ProdOfferPriceAlteration
      tax:
        type: array
        items:
          $ref: '#/definitions/TaxItem'
        description: An amount of money levied on the price of a Product by a legislative body.
      priceCharacteristic:
        type: array
        items:
          $ref: '#/definitions/Characteristic'
        description: Additional attributes that describe price.
      taxRate:
        type: number
        format: float
        description: Tax rate
      dutyFreeAmount:
        $ref: '#/definitions/Money'
        description: All taxes excluded amount (expressed in the given currency)
      taxIncludedAmount:
        $ref: '#/definitions/Money'
        description: All taxes included amount (expressed in the given currency)
      '@baseType':
        type: string
        description: When sub-classing, this defines the super-class
      '@schemaLocation':
        type: string
        format: uri
        description: A URI to a JSON-Schema file that defines additional attributes and relationships
      '@type':
        type: string
        description: When sub-classing, this defines the sub-class entity name
  PriceAlteration:
    type: object
    description: Is an amount, usually of money, that modifies the price charged for an order item.
    required:
      - price
      - priceType
    properties:
      id:
        type: string
        description: unique id of this resource.
      applicationDuration:
        type: integer
        description: Duration during which the alteration applies on the order item price (for instance 2 months free of charge for the recurring charge)
      description:
        type: string
        description: A narrative that explains in detail the semantics of this order item price alteration
      name:
        type: string
        description: Name of the order item price alteration
      priceType:
        type: string
        description: A category that describes the price such as recurring, one time and usage.
      priority:
        type: integer
        description: Priority level for applying this alteration among all the defined alterations on the order item price
      recurringChargePeriod:
        type: string
        description: Could be month, week...
      unitOfMeasure:
        type: string
        description: Could be minutes, GB...
      price:
        $ref: '#/definitions/Price'
      productOfferingPrice:
        $ref: '#/definitions/ProductOfferingPriceRef'
      '@baseType':
        type: string
        description: When sub-classing, this defines the super-class
      '@schemaLocation':
        type: string
        format: uri
        description: A URI to a JSON-Schema file that defines additional attributes and relationships
      '@type':
        type: string
        description: When sub-classing, this defines the sub-class entity name
  Product:
    type: object
    description: A product offering procured by a customer or other interested party playing a party role. A product is realized as one or more service(s) and / or resource(s).
    properties:
      pagination:
        description: Query results and paging details.
        $ref: '#/definitions/PaginationRef'
      productDetails:
        type: array
        items:
          properties:
            id:
              type: string
              description: Unique identifier of the product
            href:
              type: string
              description: Reference of the product
            description:
              type: string
              description: Is the description of the product. It could be copied from the description of the Product Offering.
            isBundle:
              type: boolean
              description: If true, the product is a ProductBundle which is an instantiation of a BundledProductOffering. If false, the product is a ProductComponent which is an instantiation of a SimpleProductOffering.
            isCustomerVisible:
              type: boolean
              description: If true, the product is visible by the customer.
            name:
              type: string
              description: Name of the product. It could be the same as the name of the product offering
            orderDate:
              type: string
              format: date-time
              description: Is the date when the product was ordered
            productSerialNumber:
              type: string
              description: Is the serial number for the product. This is typically applicable to tangible products e.g. Broadband Router.
            startDate:
              type: string
              format: date-time
              description: Is the date from which the product starts
            terminationDate:
              type: string
              format: date-time
              description: Is the date when the product was terminated
            agreement:
              type: array
              items:
                $ref: '#/definitions/AgreementItemRef'
            billingAccount:
              $ref: '#/definitions/BillingAccountRef'
            place:
              type: array
              items:
                $ref: '#/definitions/RelatedPlaceRefOrValue'
            product:
              type: array
              items:
                $ref: '#/definitions/ProductRefOrValue'
            productCharacteristic:
              type: array
              items:
                $ref: '#/definitions/Characteristic'
            productOffering:
              $ref: '#/definitions/ProductOfferingRef'
            productOrderItem:
              type: array
              items:
                $ref: '#/definitions/RelatedProductOrderItem'
            productPrice:
              type: array
              items:
                $ref: '#/definitions/ProductPrice'
            productRelationship:
              type: array
              items:
                $ref: '#/definitions/ProductRelationship'
            productSpecification:
              $ref: '#/definitions/ProductSpecificationRef'
            productTerm:
              type: array
              items:
                $ref: '#/definitions/ProductTerm'
            realizingResource:
              type: array
              items:
                $ref: '#/definitions/ResourceRef'
            realizingService:
              type: array
              items:
                $ref: '#/definitions/ServiceRef'
            relatedParty:
              type: array
              items:
                $ref: '#/definitions/RelatedParty'
            status:
              $ref: '#/definitions/ProductStatusType'
              description: Is the lifecycle status of the product.
            '@baseType':
              type: string
              description: When sub-classing, this defines the super-class
            '@schemaLocation':
              type: string
              format: uri
              description: A URI to a JSON-Schema file that defines additional attributes and relationships
            '@type':
              type: string
              description: When sub-classing, this defines the sub-class entity name
  Product_Create:
    type: object
    description: |-
      A product offering procured by a customer or other interested party playing a party role. A product is realized as one or more service(s) and / or resource(s).
      Skipped properties: id,href
    required:
      - status
    properties:
      description:
        type: string
        description: Is the description of the product. It could be copied from the description of the Product Offering.
      isBundle:
        type: boolean
        description: If true, the product is a ProductBundle which is an instantiation of a BundledProductOffering. If false, the product is a ProductComponent which is an instantiation of a SimpleProductOffering.
      isCustomerVisible:
        type: boolean
        description: If true, the product is visible by the customer.
      name:
        type: string
        description: Name of the product. It could be the same as the name of the product offering
      orderDate:
        type: string
        format: date-time
        description: Is the date when the product was ordered
      productSerialNumber:
        type: string
        description: Is the serial number for the product. This is typically applicable to tangible products e.g. Broadband Router.
      startDate:
        type: string
        format: date-time
        description: Is the date from which the product starts
      terminationDate:
        type: string
        format: date-time
        description: Is the date when the product was terminated
      agreement:
        type: array
        items:
          $ref: '#/definitions/AgreementItemRef'
      billingAccount:
        $ref: '#/definitions/BillingAccountRef'
      place:
        type: array
        items:
          $ref: '#/definitions/RelatedPlaceRefOrValue'
      product:
        type: array
        items:
          $ref: '#/definitions/ProductRefOrValue'
      productCharacteristic:
        type: array
        items:
          $ref: '#/definitions/Characteristic'
      productOffering:
        $ref: '#/definitions/ProductOfferingRef'
      productOrderItem:
        type: array
        items:
          $ref: '#/definitions/RelatedProductOrderItem'
      productPrice:
        type: array
        items:
          $ref: '#/definitions/ProductPrice'
      productRelationship:
        type: array
        items:
          $ref: '#/definitions/ProductRelationship'
      productSpecification:
        $ref: '#/definitions/ProductSpecificationRef'
      productTerm:
        type: array
        items:
          $ref: '#/definitions/ProductTerm'
      realizingResource:
        type: array
        items:
          $ref: '#/definitions/ResourceRef'
      realizingService:
        type: array
        items:
          $ref: '#/definitions/ServiceRef'
      relatedParty:
        type: array
        items:
          $ref: '#/definitions/RelatedParty'
      status:
        $ref: '#/definitions/ProductStatusType'
        description: Is the lifecycle status of the product.
      '@baseType':
        type: string
        description: When sub-classing, this defines the super-class
      '@schemaLocation':
        type: string
        format: uri
        description: A URI to a JSON-Schema file that defines additional attributes and relationships
      '@type':
        type: string
        description: When sub-classing, this defines the sub-class entity name
  Product_Update:
    type: object
    description: |-
      A product offering procured by a customer or other interested party playing a party role. A product is realized as one or more service(s) and / or resource(s).
      Skipped properties: id,href
    properties:
      description:
        type: string
        description: Is the description of the product. It could be copied from the description of the Product Offering.
      isBundle:
        type: boolean
        description: If true, the product is a ProductBundle which is an instantiation of a BundledProductOffering. If false, the product is a ProductComponent which is an instantiation of a SimpleProductOffering.
      isCustomerVisible:
        type: boolean
        description: If true, the product is visible by the customer.
      name:
        type: string
        description: Name of the product. It could be the same as the name of the product offering
      orderDate:
        type: string
        format: date-time
        description: Is the date when the product was ordered
      productSerialNumber:
        type: string
        description: Is the serial number for the product. This is typically applicable to tangible products e.g. Broadband Router.
      startDate:
        type: string
        format: date-time
        description: Is the date from which the product starts
      terminationDate:
        type: 

# --- truncated at 32 KB (81 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/mtn-group/refs/heads/main/openapi/mtn-group-tmf637-product-inventory.yml