TM Forum productCatalog API

Operations for ProductCatalog Resource

OpenAPI Specification

tm-forum-productcatalog-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Product Catalog Management agreement productCatalog API
  description: "Product Catalog API is one of Catalog Management API Family. Product Catalog API goal is to provide a catalog of products. \n### Operations\nProduct Catalog API performs the following operations on the resources :\n- Retrieve an entity or a collection of entities depending on filter criteria\n- Partial update of an entity (including updating rules)\n- Create an entity (including default values and creation rules)\n- Delete an entity\n- Manage notification of events"
  version: 5.0.0
servers:
- url: https://serverRoot/productCatalogManagement/v5/
tags:
- name: productCatalog
  description: Operations for ProductCatalog Resource
paths:
  /productCatalog:
    get:
      tags:
      - productCatalog
      summary: TM Forum List or Find ProductCatalog Objects
      description: List or find ProductCatalog objects
      operationId: listProductCatalog
      parameters:
      - $ref: '#/components/parameters/Fields'
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/Limit'
      responses:
        '200':
          $ref: '#/components/responses/200ProductCatalogArray'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
    post:
      tags:
      - productCatalog
      summary: TM Forum Creates a ProductCatalog
      description: This operation creates a ProductCatalog entity.
      operationId: createProductCatalog
      parameters:
      - $ref: '#/components/parameters/Fields'
      requestBody:
        $ref: '#/components/requestBodies/ProductCatalog_FVO'
      responses:
        '201':
          $ref: '#/components/responses/201ProductCatalog'
        '202':
          description: Accepted
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '409':
          $ref: '#/components/responses/409'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
  /productCatalog/{id}:
    get:
      tags:
      - productCatalog
      summary: TM Forum Retrieves a ProductCatalog by ID
      description: This operation retrieves a ProductCatalog entity. Attribute selection enabled for all first level attributes.
      operationId: retrieveProductCatalog
      parameters:
      - $ref: '#/components/parameters/Id'
      - $ref: '#/components/parameters/Fields'
      responses:
        '200':
          $ref: '#/components/responses/200ProductCatalog_Get'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
    patch:
      tags:
      - productCatalog
      summary: TM Forum Updates Partially a ProductCatalog
      description: This operation updates partially a ProductCatalog entity.
      operationId: patchProductCatalog
      parameters:
      - $ref: '#/components/parameters/Id'
      - $ref: '#/components/parameters/Fields'
      requestBody:
        $ref: '#/components/requestBodies/ProductCatalog_MVO'
      responses:
        '200':
          $ref: '#/components/responses/200ProductCatalog_Patch'
        '202':
          description: Accepted
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '409':
          $ref: '#/components/responses/409'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
    delete:
      tags:
      - productCatalog
      summary: TM Forum Deletes a ProductCatalog
      description: This operation deletes a ProductCatalog entity.
      operationId: deleteProductCatalog
      parameters:
      - $ref: '#/components/parameters/Id'
      responses:
        '202':
          $ref: '#/components/responses/202'
        '204':
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '409':
          $ref: '#/components/responses/409'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
components:
  responses:
    '204':
      description: Deleted
    200ProductCatalogArray:
      description: Success
      headers:
        X-Total-Count:
          $ref: '#/components/headers/X-Total-Count'
        X-Result-Count:
          $ref: '#/components/headers/X-Result-Count'
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: '#/components/schemas/ProductCatalog'
          examples:
            ProductCatalog_list_example:
              $ref: '#/components/examples/ProductCatalog_list_example_response'
    '400':
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    201ProductCatalog:
      description: OK/Created
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProductCatalog'
          examples:
            ProductCatalog_Create_example:
              $ref: '#/components/examples/ProductCatalog_Create_example_response'
    '401':
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    '202':
      description: Accepted
    200ProductCatalog_Patch:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProductCatalog'
          examples:
            ProductCatalog_Implicit_Update_example:
              $ref: '#/components/examples/ProductCatalog_Implicit_Update_example_response'
        application/merge-patch+json:
          schema:
            $ref: '#/components/schemas/ProductCatalog'
          examples:
            ProductCatalog_Update_example_with_Patch_Merge:
              $ref: '#/components/examples/ProductCatalog_Update_example_with_Patch_Merge_response'
        application/json-patch+json:
          schema:
            oneOf:
            - $ref: '#/components/schemas/ProductCatalog'
            - type: array
              items:
                $ref: '#/components/schemas/ProductCatalog'
            - type: string
              nullable: true
          examples:
            ProductCatalog_Update_example_with_JSON_Patch:
              $ref: '#/components/examples/ProductCatalog_Update_example_with_JSON_Patch_response'
        application/json-patch-query+json:
          schema:
            oneOf:
            - $ref: '#/components/schemas/ProductCatalog'
            - type: array
              items:
                $ref: '#/components/schemas/ProductCatalog'
            - type: string
              nullable: true
          examples:
            ProductCatalog_Update_example_with_JSON_Patch_Query:
              $ref: '#/components/examples/ProductCatalog_Update_example_with_JSON_Patch_Query_response'
    '403':
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    '405':
      description: Method Not allowed
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    '503':
      description: Service Unavailable
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    '500':
      description: Internal Server Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    '501':
      description: Not Implemented
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    '404':
      description: Not Found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    200ProductCatalog_Get:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProductCatalog'
          examples:
            ProductCatalog_retrieve_example:
              $ref: '#/components/examples/ProductCatalog_retrieve_example_response'
    '409':
      description: Conflict
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    JsonPatchOperations:
      description: JSONPatch Operations document as defined by RFC 6902
      type: array
      items:
        $ref: '#/components/schemas/JsonPatch'
    Catalog_MVO:
      allOf:
      - $ref: '#/components/schemas/Entity_MVO'
      - type: object
        description: A collection of Catalog Items
        properties:
          description:
            type: string
            description: Description of this catalog
          catalogType:
            type: string
            description: Type of this Catalog, like Product, Service, Resource etc.
          validFor:
            $ref: '#/components/schemas/TimePeriod'
          version:
            type: string
            description: Catalog version
          relatedParty:
            type: array
            items:
              $ref: '#/components/schemas/RelatedPartyRefOrPartyRoleRef_MVO'
            description: List of parties involved in this catalog
          lastUpdate:
            type: string
            format: date-time
            description: Date and time of the last update
          lifecycleStatus:
            type: string
            description: Used to indicate the current lifecycle status
          name:
            type: string
            description: Name of the catalog
      discriminator:
        propertyName: '@type'
        mapping:
          Catalog: '#/components/schemas/Catalog_MVO'
          ProductCatalog: '#/components/schemas/ProductCatalog_MVO'
    ProductCatalog:
      allOf:
      - $ref: '#/components/schemas/Catalog'
      - type: object
        description: A collection of Product Offerings, intended for a specific DistributionChannel, enhanced with additional information such as SLA parameters, invoicing and shipping details
        properties:
          category:
            type: array
            items:
              $ref: '#/components/schemas/CategoryRef'
            description: List of root categories contained in this catalog
    PartyRefOrPartyRoleRef_FVO:
      type: object
      description: ''
      oneOf:
      - $ref: '#/components/schemas/PartyRef_FVO'
      - $ref: '#/components/schemas/PartyRoleRef_FVO'
      discriminator:
        propertyName: '@type'
        mapping:
          PartyRef: '#/components/schemas/PartyRef_FVO'
          PartyRoleRef: '#/components/schemas/PartyRoleRef_FVO'
    EntityRef_FVO:
      allOf:
      - $ref: '#/components/schemas/Extensible_FVO'
      - $ref: '#/components/schemas/Addressable_FVO'
      - type: object
        description: Entity reference schema to be use for all entityRef class.
        properties:
          id:
            type: string
            description: The identifier of the referred entity.
          href:
            type: string
            description: The URI of the referred entity.
          name:
            type: string
            description: Name of the referred entity.
          '@referredType':
            type: string
            description: The actual type of the target instance when needed for disambiguation.
        required:
        - id
    PartyRoleRef:
      allOf:
      - $ref: '#/components/schemas/EntityRef'
      - type: object
        description: Party role reference. A party role represents the part played by a party in a given context.
        properties:
          partyId:
            type: string
            description: The identifier of the engaged party that is linked to the PartyRole object.
          partyName:
            type: string
            description: The name of the engaged party that is linked to the PartyRole object.
      discriminator:
        propertyName: '@type'
        mapping:
          PartyRoleRef: '#/components/schemas/PartyRoleRef'
    PartyRefOrPartyRoleRef_MVO:
      type: object
      description: ''
      oneOf:
      - $ref: '#/components/schemas/PartyRef_MVO'
      - $ref: '#/components/schemas/PartyRoleRef_MVO'
      discriminator:
        propertyName: '@type'
        mapping:
          PartyRef: '#/components/schemas/PartyRef_MVO'
          PartyRoleRef: '#/components/schemas/PartyRoleRef_MVO'
    PartyRoleRef_MVO:
      allOf:
      - $ref: '#/components/schemas/EntityRef'
      - type: object
        description: Party role reference. A party role represents the part played by a party in a given context.
        properties:
          partyId:
            type: string
            description: The identifier of the engaged party that is linked to the PartyRole object.
          partyName:
            type: string
            description: The name of the engaged party that is linked to the PartyRole object.
      discriminator:
        propertyName: '@type'
        mapping:
          PartyRoleRef: '#/components/schemas/PartyRoleRef_MVO'
    CategoryRef_FVO:
      allOf:
      - $ref: '#/components/schemas/EntityRef_FVO'
      - type: object
        description: Reference to a category in the catalog.
        properties:
          version:
            type: string
            description: Version of the category
      discriminator:
        propertyName: '@type'
        mapping:
          CategoryRef: '#/components/schemas/CategoryRef_FVO'
    Catalog:
      allOf:
      - $ref: '#/components/schemas/Entity'
      - type: object
        description: A collection of Catalog Items
        properties:
          description:
            type: string
            description: Description of this catalog
          catalogType:
            type: string
            description: Type of this Catalog, like Product, Service, Resource etc.
          validFor:
            $ref: '#/components/schemas/TimePeriod'
          version:
            type: string
            description: Catalog version
          relatedParty:
            type: array
            items:
              $ref: '#/components/schemas/RelatedPartyRefOrPartyRoleRef'
            description: List of parties involved in this catalog
          lastUpdate:
            type: string
            format: date-time
            description: Date and time of the last update
          lifecycleStatus:
            type: string
            description: Used to indicate the current lifecycle status
          name:
            type: string
            description: Name of the catalog
      discriminator:
        propertyName: '@type'
        mapping:
          Catalog: '#/components/schemas/Catalog'
          ProductCatalog: '#/components/schemas/ProductCatalog'
    Entity_FVO:
      type: object
      description: Base entity schema for use in TMForum Open-APIs. Property.
      allOf:
      - $ref: '#/components/schemas/Extensible_FVO'
      - $ref: '#/components/schemas/Addressable_FVO'
    RelatedPartyRefOrPartyRoleRef:
      allOf:
      - $ref: '#/components/schemas/Extensible'
      - type: object
        description: RelatedParty reference. A related party defines party or party role or its reference, linked to a specific entity
        properties:
          role:
            description: Role played by the related party or party role in the context of the specific entity it is linked to. Such as 'initiator', 'customer',  'salesAgent', 'user'
            type: string
          partyOrPartyRole:
            $ref: '#/components/schemas/PartyRefOrPartyRoleRef'
      discriminator:
        propertyName: '@type'
        mapping:
          RelatedPartyRefOrPartyRoleRef: '#/components/schemas/RelatedPartyRefOrPartyRoleRef'
    ProductCatalog_MVO:
      allOf:
      - $ref: '#/components/schemas/Catalog_MVO'
      - type: object
        description: A collection of Product Offerings, intended for a specific DistributionChannel, enhanced with additional information such as SLA parameters, invoicing and shipping details
        properties:
          category:
            type: array
            items:
              $ref: '#/components/schemas/CategoryRef_MVO'
            description: List of root categories contained in this catalog
    RelatedPartyRefOrPartyRoleRef_MVO:
      allOf:
      - $ref: '#/components/schemas/Extensible'
      - type: object
        description: RelatedParty reference. A related party defines party or party role or its reference, linked to a specific entity
        properties:
          role:
            description: Role played by the related party or party role in the context of the specific entity it is linked to. Such as 'initiator', 'customer',  'salesAgent', 'user'
            type: string
          partyOrPartyRole:
            $ref: '#/components/schemas/PartyRefOrPartyRoleRef_MVO'
      discriminator:
        propertyName: '@type'
        mapping:
          RelatedPartyRefOrPartyRoleRef: '#/components/schemas/RelatedPartyRefOrPartyRoleRef_MVO'
    Addressable:
      type: object
      description: Base schema for adressable entities
      properties:
        href:
          type: string
          description: Hyperlink reference
        id:
          type: string
          description: unique identifier
    PartyRef_FVO:
      type: object
      description: A Party reference
      allOf:
      - $ref: '#/components/schemas/EntityRef_FVO'
      discriminator:
        propertyName: '@type'
        mapping:
          PartyRef: '#/components/schemas/PartyRef_FVO'
    Error:
      discriminator:
        propertyName: '@type'
        mapping:
          Error: '#/components/schemas/Error'
      allOf:
      - $ref: '#/components/schemas/Extensible'
      - type: object
        required:
        - code
        - reason
        properties:
          code:
            type: string
            description: Application relevant detail, defined in the API or a common list.
          reason:
            type: string
            description: Explanation of the reason for the error which can be shown to a client user.
          message:
            type: string
            description: More details and corrective actions related to the error which can be shown to a client user.
          status:
            type: string
            description: HTTP Error code extension
          referenceError:
            type: string
            description: URI of documentation describing the error.
      description: Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx)
    JsonPatch:
      type: object
      description: A JSONPatch document as defined by RFC 6902
      required:
      - op
      - path
      properties:
        op:
          type: string
          description: The operation to be performed
          enum:
          - add
          - remove
          - replace
          - move
          - copy
          - test
        path:
          type: string
          description: A JSON-Pointer
        value:
          description: The value to be used within the operations.
        from:
          type: string
          description: A string containing a JSON Pointer value.
    TimePeriod:
      type: object
      description: A period of time, either as a deadline (endDateTime only) a startDateTime only, or both
      properties:
        startDateTime:
          description: Start of the time period, using IETC-RFC-3339 format
          type: string
          format: date-time
          example: '1985-04-12T23:20:50.52Z'
        endDateTime:
          description: End of the time period, using IETC-RFC-3339 format
          type: string
          format: date-time
          example: '1985-04-12T23:20:50.52Z'
    Entity:
      type: object
      description: Base entity schema for use in TMForum Open-APIs. Property.
      allOf:
      - $ref: '#/components/schemas/Extensible'
      - $ref: '#/components/schemas/Addressable'
    PartyRoleRef_FVO:
      allOf:
      - $ref: '#/components/schemas/EntityRef_FVO'
      - type: object
        description: Party role reference. A party role represents the part played by a party in a given context.
        properties:
          partyId:
            type: string
            description: The identifier of the engaged party that is linked to the PartyRole object.
          partyName:
            type: string
            description: The name of the engaged party that is linked to the PartyRole object.
      discriminator:
        propertyName: '@type'
        mapping:
          PartyRoleRef: '#/components/schemas/PartyRoleRef_FVO'
    CategoryRef:
      allOf:
      - $ref: '#/components/schemas/EntityRef'
      - type: object
        description: Reference to a category in the catalog.
        properties:
          version:
            type: string
            description: Version of the category
      discriminator:
        propertyName: '@type'
        mapping:
          CategoryRef: '#/components/schemas/CategoryRef'
    PartyRef_MVO:
      type: object
      description: A Party reference
      allOf:
      - $ref: '#/components/schemas/EntityRef'
      discriminator:
        propertyName: '@type'
        mapping:
          PartyRef: '#/components/schemas/PartyRef_MVO'
    PartyRefOrPartyRoleRef:
      type: object
      description: ''
      oneOf:
      - $ref: '#/components/schemas/PartyRef'
      - $ref: '#/components/schemas/PartyRoleRef'
      discriminator:
        propertyName: '@type'
        mapping:
          PartyRef: '#/components/schemas/PartyRef'
          PartyRoleRef: '#/components/schemas/PartyRoleRef'
    Catalog_FVO:
      allOf:
      - $ref: '#/components/schemas/Entity_FVO'
      - type: object
        description: A collection of Catalog Items
        properties:
          description:
            type: string
            description: Description of this catalog
          catalogType:
            type: string
            description: Type of this Catalog, like Product, Service, Resource etc.
          validFor:
            $ref: '#/components/schemas/TimePeriod'
          version:
            type: string
            description: Catalog version
          relatedParty:
            type: array
            items:
              $ref: '#/components/schemas/RelatedPartyRefOrPartyRoleRef_FVO'
            description: List of parties involved in this catalog
          lastUpdate:
            type: string
            format: date-time
            description: Date and time of the last update
          lifecycleStatus:
            type: string
            description: Used to indicate the current lifecycle status
          name:
            type: string
            description: Name of the catalog
        required:
        - name
      discriminator:
        propertyName: '@type'
        mapping:
          Catalog: '#/components/schemas/Catalog_FVO'
          ProductCatalog: '#/components/schemas/ProductCatalog_FVO'
    Addressable_FVO:
      type: object
      description: Base schema for adressable entities
      properties:
        id:
          type: string
          description: unique identifier
    RelatedPartyRefOrPartyRoleRef_FVO:
      allOf:
      - $ref: '#/components/schemas/Extensible_FVO'
      - type: object
        description: RelatedParty reference. A related party defines party or party role or its reference, linked to a specific entity
        properties:
          role:
            description: Role played by the related party or party role in the context of the specific entity it is linked to. Such as 'initiator', 'customer',  'salesAgent', 'user'
            type: string
          partyOrPartyRole:
            $ref: '#/components/schemas/PartyRefOrPartyRoleRef_FVO'
        required:
        - role
      discriminator:
        propertyName: '@type'
        mapping:
          RelatedPartyRefOrPartyRoleRef: '#/components/schemas/RelatedPartyRefOrPartyRoleRef_FVO'
    CategoryRef_MVO:
      allOf:
      - $ref: '#/components/schemas/EntityRef'
      - type: object
        description: Reference to a category in the catalog.
        properties:
          version:
            type: string
            description: Version of the category
      discriminator:
        propertyName: '@type'
        mapping:
          CategoryRef: '#/components/schemas/CategoryRef_MVO'
    Extensible_FVO:
      type: object
      description: Base Extensible schema for use in TMForum Open-APIs - When used for in a schema it means that the Entity described by the schema  MUST be extended with the @type
      properties:
        '@type':
          type: string
          description: When sub-classing, this defines the sub-class Extensible name
        '@baseType':
          type: string
          description: When sub-classing, this defines the super-class
        '@schemaLocation':
          type: string
          description: A URI to a JSON-Schema file that defines additional attributes and relationships
      required:
      - '@type'
    Entity_MVO:
      type: object
      description: Base entity schema for use in TMForum Open-APIs. Property.
      allOf:
      - $ref: '#/components/schemas/Extensible'
    PartyRef:
      type: object
      description: A Party reference
      allOf:
      - $ref: '#/components/schemas/EntityRef'
      discriminator:
        propertyName: '@type'
        mapping:
          PartyRef: '#/components/schemas/PartyRef'
    Extensible:
      type: object
      description: Base Extensible schema for use in TMForum Open-APIs - When used for in a schema it means that the Entity described by the schema  MUST be extended with the @type
      properties:
        '@type':
          type: string
          description: When sub-classing, this defines the sub-class Extensible name
        '@baseType':
          type: string
          description: When sub-classing, this defines the super-class
        '@schemaLocation':
          type: string
          description: A URI to a JSON-Schema file that defines additional attributes and relationships
      required:
      - '@type'
    EntityRef:
      allOf:
      - $ref: '#/components/schemas/Extensible'
      - $ref: '#/components/schemas/Addressable'
      - type: object
        description: Entity reference schema to be use for all entityRef class.
        properties:
          id:
            type: string
            description: The identifier of the referred entity.
          href:
            type: string
            description: The URI of the referred entity.
          name:
            type: string
            description: Name of the referred entity.
          '@referredType':
            type: string
            description: The actual type of the target instance when needed for disambiguation.
        required:
        - id
    ProductCatalog_FVO:
      allOf:
      - $ref: '#/components/schemas/Catalog_FVO'
      - type: object
        description: A collection of Product Offerings, intended for a specific DistributionChannel, enhanced with additional information such as SLA parameters, invoicing and shipping details
        properties:
          category:
            type: array
            items:
              $ref: '#/components/schemas/CategoryRef_FVO'
            description: List of root categories contained in this catalog
        required:
        - name
        - '@type'
  requestBodies:
    ProductCatalog_MVO:
      description: The ProductCatalog to be patched
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProductCatalog_MVO'
          examples:
            ProductCatalog_Implicit_Update_example:
              $ref: '#/components/examples/ProductCatalog_Implicit_Update_example_request'
        application/merge-patch+json:
          schema:
            $ref: '#/components/schemas/ProductCatalog_MVO'
          examples:
            ProductCatalog_Update_example_with_Patch_Merge:
              $ref: '#/components/examples/ProductCatalog_Update_example_with_Patch_Merge_request'
        application/json-patch+json:
          schema:
            $ref: '#/components/schemas/JsonPatchOperations'
          examples:
            ProductCatalog_Update_example_with_JSON_Patch:
              $ref: '#/components/examples/ProductCatalog_Update_example_with_JSON_Patch_request'
        application/json-patch-query+json:
          schema:
            $ref: '#/components/schemas/JsonPatchOperations'
          examples:
            ProductCatalog_Update_example_with_JSON_Patch_Query:
              $ref: '#/components/examples/ProductCatalog_Update_example_with_JSON_Patch_Query_request'
      required: true
    ProductCatalog_FVO:
      description: The ProductCatalog to be created
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProductCatalog_FVO'
          examples:
            ProductCatalog_Create_example:
              $ref: '#/components/examples/ProductCatalog_Create_example_request'
      required: true
  examples:
    ProductCatalog_Update_example_with_Patch_Merge_request:
      value:
        version: '2.0'
        validFor:
          startDateTime: '2020-09-23T00:00:00Z'
        '@type': Catalog
      description: Here is an example of a request for updating a catalog.
    ProductCatalog_Create_example_response:
      value:
        id: '3830'
        href: https://mycsp.com:8080/tmf-api/productCatalogManagement/v5/Catalog/3830
        name: Catalog Wholesale Business
        description: This catalog describes Product Offerings and technical specifications intended to address the wholesale business segment.
        catalogType: ProductCatalog
        version: '1.0'
        validFor:
          startDateTime: '2020-08-29T00:00:00Z'
          endDateTime: '2024-03-25T00:00:00Z'
        lastUpdate: '2020-08-27T00:00:00Z'
        lifecycleStatus: Active
        relatedParty:
        - role: vendor
          '@type': RelatedPartyRefOrPartyRoleRef
          partyOrPartyRole:
            id: '3426'
            href: https://mycsp.com:8080/tmf-api/partyManagement/v5/organization/3426
            name: Broadly Broad Ltd
            '@type': PartyRef
            '@referredType': Organization
        category: []
        '@type': Catalog
      description: Here is an example of a response for creating a catalog.
    ProductCatalog_Implicit_Update_example_response:
      value:
        id: '3830'
        href: https://mycsp.com:8080/tmf-api/productCatalogManagement/v5/Catalog/3830
        name: Catalog Wholesale Business
        description: This catalog describes Product Offerings and technical specifications intended to address the wholesale business segment.
        catalogType: ProductCatalog
        version: '2.0'
        validFor:
          startDateTime: '2020-09-23T00:00:00Z'
        lastUpdate: '2020-09-22T00:00:00Z'
        lifecycleStatus: Active
        relatedParty:
        - role: vendor
          '@type': RelatedPartyRefOrPartyRoleRef
          partyOrPartyRole:
            id: '3426'
          

# --- truncated at 32 KB (44 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/tm-forum/refs/heads/main/openapi/tm-forum-productcatalog-api-openapi.yml