TM Forum productCatalog API

Operations for ProductCatalog Resource

Operations 5

GET /productCatalog TM Forum List or Find ProductCatalog Objects #
POST /productCatalog TM Forum Creates a ProductCatalog #
GET /productCatalog/{id} TM Forum Retrieves a ProductCatalog by ID #
PATCH /productCatalog/{id} TM Forum Updates Partially a ProductCatalog #
DELETE /productCatalog/{id} TM Forum Deletes a ProductCatalog #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/tm-forum-productcatalog-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

tm-forum-productcatalog-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Management Product Catalog 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:
  examples:
    ProductCatalog_Update_example_with_JSON_Patch_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'
            href: https://mycsp.com:8080/tmf-api/partyManagement/v5/organization/3426
            name: Broadly Broad Ltd
            '@type': PartyRef
            '@referredType': Organization
        - role: Reviser
          '@type': RelatedPartyRefOrPartyRoleRef
          partyOrPartyRole:
            id: '115566'
            href: https://mycsp.com:8080/tmf-api/partyManagement/v5/individual/115566
            name: Roger Collins
            '@type': PartyRef
            '@referredType': Individual
        category:
        - href: https://mycsp.com:8080/tmf-api/productCatalogManagement/v5/category/7757
          id: '7757'
          name: business
          version: '1.0'
          '@referredType': Category
          '@type': CategoryRef
        '@type': Catalog
      description: Here is an example of a response for updating a catalog.
    ProductCatalog_Update_example_with_JSON_Patch_Query_request:
      value:
      - op: remove
        path: /relatedParty?role=vendor
      description: Here is an example of a request for updating a catalog.
    ProductCatalog_list_example_response:
      value:
      - id: '2027'
        href: https://mycsp.com:8080/tmf-api/productCatalogManagement/v5/Catalog/2027
        name: IoT Product Catalog
        description: This catalog describes Product Offerings and technical specifications intended to address the IoT products.
        catalogType: ProductCatalog
        version: '2.0'
        validFor:
          startDateTime: '2020-09-29T00:00:00Z'
          endDateTime: '2024-09-25T00:00:00Z'
        lastUpdate: '2020-10-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
        - role: Reviser
          '@type': RelatedPartyRefOrPartyRoleRef
          partyOrPartyRole:
            id: '115566'
            href: https://mycsp.com:8080/tmf-api/partyManagement/v5/individual/115566
            name: Roger Collins
            '@type': PartyRef
            '@referredType': Individual
        category:
        - href: https://mycsp.com:8080/tmf-api/productCatalogManagement/v5/category/2129
          id: '2129'
          name: iotProducts
          version: '1.0'
          '@referredType': Category
          '@type': CategoryRef
        '@type': Catalog
      - 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
        - role: Reviser
          '@type': RelatedPartyRefOrPartyRoleRef
          partyOrPartyRole:
            id: '115566'
            href: https://mycsp.com:8080/tmf-api/partyManagement/v5/individual/115566
            name: Roger Collins
            '@type': PartyRef
            '@referredType': Individual
        category:
        - href: https://mycsp.com:8080/tmf-api/productCatalogManagement/v5/category/7757
          id: '7757'
          name: business
          version: '1.0'
          '@referredType': Category
          '@type': CategoryRef
        '@type': Catalog
      description: Here is an example of a response for retrieving multiple catalogs.
    ProductCatalog_Update_example_with_Patch_Merge_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'
            href: https://mycsp.com:8080/tmf-api/partyManagement/v5/organization/3426
            name: Broadly Broad Ltd
            '@type': PartyRef
            '@referredType': Organization
        - role: Reviser
          '@type': RelatedPartyRefOrPartyRoleRef
          partyOrPartyRole:
            id: '115566'
            href: https://mycsp.com:8080/tmf-api/partyManagement/v5/individual/115566
            name: Roger Collins
            '@type': PartyRef
            '@referredType': Individual
        category:
        - href: https://mycsp.com:8080/tmf-api/productCatalogManagement/v5/category/7757
          id: '7757'
          name: business
          version: '1.0'
          '@referredType': Category
          '@type': CategoryRef
        '@type': Catalog
      description: Here is an example of a response 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'
            href: https://mycsp.com:8080/tmf-api/partyManagement/v5/organization/3426
            name: Broadly Broad Ltd
            '@type': PartyRef
            '@referredType': Organization
        - role: Reviser
          '@type': RelatedPartyRefOrPartyRoleRef
          partyOrPartyRole:
            id: '115566'
            href: https://mycsp.com:8080/tmf-api/partyManagement/v5/individual/115566
            name: Roger Collins
            '@type': PartyRef
            '@referredType': Individual
        category:
        - href: https://mycsp.com:8080/tmf-api/productCatalogManagement/v5/category/7757
          id: '7757'
          name: business
          version: '1.0'
          '@referredType': Category
          '@type': CategoryRef
        '@type': Catalog
      description: Here is an example of a response for updating a catalog.
    ProductCatalog_Update_example_with_JSON_Patch_request:
      value:
      - op: replace
        path: /version
        value: '2.0'
      - op: replace
        path: /validFor/startDateTime
        value: '2020-09-23T00:00:00Z'
      - op: remove
        path: /validFor/endDateTime
      description: Here is an example of a request for updating a catalog.
    ProductCatalog_retrieve_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
        - role: Reviser
          '@type': RelatedPartyRefOrPartyRoleRef
          partyOrPartyRole:
            id: '115566'
            href: https://mycsp.com:8080/tmf-api/partyManagement/v5/individual/115566
            name: Roger Collins
            '@type': PartyRef
            '@referredType': Individual
        category:
        - href: https://mycsp.com:8080/tmf-api/productCatalogManagement/v5/category/7757
          id: '7757'
          name: business
          version: '1.0'
          '@referredType': Category
          '@type': CategoryRef
        '@type': Catalog
      description: Here is an example of a response for retrieving a specific catalog.
    ProductCatalog_Create_example_request:
      value:
        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'
        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
        '@type': Catalog
      description: Here is an example of a request for creating a catalog.
    ProductCatalog_Implicit_Update_example_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_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_Update_example_with_JSON_Patch_Query_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: Reviser
          '@type': RelatedPartyRefOrPartyRoleRef
          partyOrPartyRole:
            id: '115566'
            href: https://mycsp.com:8080/tmf-api/partyManagement/v5/individual/115566
            name: Roger Collins
            '@type': PartyRef
            '@referredType': Individual
        category:
        - href: https://mycsp.com:8080/tmf-api/productCatalogManagement/v5/category/7757
          id: '7757'
          name: business
          version: '1.0'
          '@referredType': Category
          '@type': CategoryRef
        '@type': Catalog
      description: Here is an example of a response for updating a catalog.
  schemas:
    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'
    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)
    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'
    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'
    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'
    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'
    PartyRef:
      type: object
      description: A Party reference
      allOf:
      - $ref: '#/components/schemas/EntityRef'
      discriminator:
        propertyName: '@type'
        mapping:
          PartyRef: '#/components/schemas/PartyRef'
    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'
    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
    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'
    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
    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:
      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'
    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'
    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'
    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'
    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'
    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'
    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
    Entity_MVO:
      type: object
      description: Base entity schema for use in TMForum Open-APIs. Property.
      allOf:
      - $ref: '#/components/schemas/Extensible'
    Addressable:
      type: object
      description: Base schema for adressable entities
      properties:
        href:
          type: string
          description: Hyperlink reference
        id:
          type: string
          description: unique identifier
    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'
    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:
      

# --- 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