TM Forum product API

Operations for Product Resource

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-product-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 email required.

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

OpenAPI Specification

tm-forum-product-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Catalog Management agreement product 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: product
  description: Operations for Product Resource
paths:
  /product:
    get:
      tags:
      - product
      summary: TM Forum List or Find Product Objects
      description: List or find Product objects
      operationId: listProduct
      parameters:
      - $ref: '#/components/parameters/Fields'
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/Limit'
      responses:
        '200':
          $ref: '#/components/responses/200ProductArray'
        '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:
      - product
      summary: TM Forum Creates a Product
      description: This operation creates a Product entity.
      operationId: createProduct
      parameters:
      - $ref: '#/components/parameters/Fields'
      requestBody:
        $ref: '#/components/requestBodies/Product_FVO'
      responses:
        '201':
          $ref: '#/components/responses/201Product'
        '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'
  /product/{id}:
    get:
      tags:
      - product
      summary: TM Forum Retrieves a Product by ID
      description: This operation retrieves a Product entity. Attribute selection enabled for all first level attributes.
      operationId: retrieveProduct
      parameters:
      - $ref: '#/components/parameters/Id'
      - $ref: '#/components/parameters/Fields'
      responses:
        '200':
          $ref: '#/components/responses/200Product_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'
    delete:
      tags:
      - product
      summary: TM Forum Deletes a Product
      description: This operation deletes a Product entity.
      operationId: deleteProduct
      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'
    patch:
      tags:
      - product
      summary: TM Forum Updates Partially a Product
      description: This operation updates partially a Product entity.
      operationId: patchProduct
      parameters:
      - $ref: '#/components/parameters/Id'
      - $ref: '#/components/parameters/Fields'
      requestBody:
        $ref: '#/components/requestBodies/Product_MVO'
      responses:
        '200':
          $ref: '#/components/responses/200Product_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'
components:
  schemas:
    Expression_MVO:
      allOf:
      - $ref: '#/components/schemas/Extensible'
      - type: object
        description: Expression is the ontology-encoded form of the Intent
        properties:
          expressionLanguage:
            $ref: '#/components/schemas/ExpressionLanguageEnum'
          iri:
            type: string
            description: Internationalized Resource Identifier of the intent Expression
          expressionValue:
            type: string
            description: expression value is the ontology-encoded form of the Intent such as RDF-XML, Turtle, Json-LD,...
      discriminator:
        propertyName: '@type'
        mapping:
          Expression: '#/components/schemas/Expression_MVO'
    GeographicLocationRef_FVO:
      type: object
      allOf:
      - $ref: '#/components/schemas/EntityRef_FVO'
      discriminator:
        propertyName: '@type'
        mapping:
          GeographicLocationRef: '#/components/schemas/GeographicLocationRef_FVO'
    BillingAccountRef_FVO:
      allOf:
      - $ref: '#/components/schemas/Extensible_FVO'
      - $ref: '#/components/schemas/EntityRef_FVO'
      - type: object
        description: BillingAccount reference. A BillingAccount is a detailed description of a bill structure.
        properties:
          ratingType:
            type: string
            description: Indicates whether the account follows a specific payment option such as prepaid or postpaid
      discriminator:
        propertyName: '@type'
        mapping:
          BillingAccountRef: '#/components/schemas/BillingAccountRef_FVO'
    AgreementRef:
      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.
      allOf:
      - $ref: '#/components/schemas/Extensible'
      - $ref: '#/components/schemas/EntityRef'
      discriminator:
        propertyName: '@type'
        mapping:
          AgreementRef: '#/components/schemas/AgreementRef'
    ContactMedium:
      allOf:
      - $ref: '#/components/schemas/Extensible'
      - type: object
        description: Indicates the contact medium that could be used to contact the party.
        properties:
          id:
            type: string
            description: Identifier for this contact medium.
          preferred:
            type: boolean
            description: If true, indicates that is the preferred contact medium
          contactType:
            type: string
            description: Type of the contact medium to qualifiy it like pro email / personal email. This is not used to define the contact medium used.
          validFor:
            $ref: '#/components/schemas/TimePeriod'
      discriminator:
        propertyName: '@type'
        mapping:
          ContactMedium: '#/components/schemas/ContactMedium'
    ProductRef:
      type: object
      description: A Product reference
      allOf:
      - $ref: '#/components/schemas/Extensible'
      - $ref: '#/components/schemas/EntityRef'
      discriminator:
        propertyName: '@type'
        mapping:
          ProductRef: '#/components/schemas/ProductRef'
    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
    StandardIdentifier:
      allOf:
      - $ref: '#/components/schemas/Entity'
      - type: object
        description: The corresponding identification of the resource in different standard, regulatory definitions. The standard specification identifier (e.g., ISO 3166-1 Alpha-2) and the corresponding value (e.g., BE) relevant to a particular resource. It is anticipated that multiple standards can provide definitions for a single entity, e.g., a country identifier can be specified in various standards (e.g., "ISO 3166-1 Alpha 2",  "ISO 3166-1 Alpha 3", "ISO 3166-1 Numeric")
        properties:
          format:
            type: string
            description: Standard/Regulatory definition identifier. e.g., ISO 3166-1
            example: ISO 3166-1
          value:
            type: string
            description: The value of the resource in the corresponding standard.e.g., a country code value
            example: GB
      discriminator:
        propertyName: '@type'
        mapping:
          StandardIdentifier: '#/components/schemas/StandardIdentifier'
    PlaceRef:
      type: object
      description: Place reference.
      allOf:
      - $ref: '#/components/schemas/Extensible'
      - $ref: '#/components/schemas/EntityRef'
      discriminator:
        propertyName: '@type'
        mapping:
          PlaceRef: '#/components/schemas/PlaceRef'
    Product_FVO:
      allOf:
      - $ref: '#/components/schemas/Entity_FVO'
      - 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:
          agreementItem:
            type: array
            items:
              $ref: '#/components/schemas/AgreementItemRef_FVO'
          billingAccount:
            $ref: '#/components/schemas/BillingAccountRef_FVO'
          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
          productCharacteristic:
            type: array
            items:
              $ref: '#/components/schemas/Characteristic_FVO'
          productOffering:
            $ref: '#/components/schemas/ProductOfferingRef_FVO'
          productOrderItem:
            type: array
            items:
              $ref: '#/components/schemas/RelatedOrderItem_FVO'
          product:
            type: array
            items:
              $ref: '#/components/schemas/ProductRefOrValue_FVO'
          productPrice:
            type: array
            items:
              $ref: '#/components/schemas/ProductPrice_FVO'
          productRelationship:
            type: array
            items:
              $ref: '#/components/schemas/ProductRelationship_FVO'
          productSerialNumber:
            type: string
            description: Is the serial number for the product. This is typically applicable to tangible products e.g. Broadband Router.
          productSpecification:
            $ref: '#/components/schemas/ProductSpecificationRef_FVO'
          productTerm:
            type: array
            items:
              $ref: '#/components/schemas/ProductTerm_FVO'
          realizingResource:
            type: array
            items:
              $ref: '#/components/schemas/ResourceRef_FVO'
          realizingService:
            type: array
            items:
              $ref: '#/components/schemas/ServiceRef_FVO'
          relatedParty:
            type: array
            items:
              $ref: '#/components/schemas/RelatedPartyOrPartyRole_FVO'
          place:
            type: array
            items:
              $ref: '#/components/schemas/RelatedPlaceRefOrValue_FVO'
          startDate:
            type: string
            format: date-time
            description: Is the date from which the product starts
          status:
            $ref: '#/components/schemas/ProductStatusType'
          terminationDate:
            type: string
            format: date-time
            description: Is the date when the product was terminated
          intent:
            $ref: '#/components/schemas/IntentRefOrValue_FVO'
      discriminator:
        propertyName: '@type'
        mapping:
          Product: '#/components/schemas/Product_FVO'
    PartyOrPartyRole_FVO:
      type: object
      description: ''
      oneOf:
      - $ref: '#/components/schemas/PartyRef_FVO'
      - $ref: '#/components/schemas/PartyRoleRef_FVO'
      - $ref: '#/components/schemas/Individual_FVO'
      - $ref: '#/components/schemas/Organization_FVO'
      - $ref: '#/components/schemas/PartyRole_FVO'
      - $ref: '#/components/schemas/Supplier_FVO'
      - $ref: '#/components/schemas/BusinessPartner_FVO'
      - $ref: '#/components/schemas/Consumer_FVO'
      - $ref: '#/components/schemas/Producer_FVO'
      discriminator:
        propertyName: '@type'
        mapping:
          PartyRef: '#/components/schemas/PartyRef_FVO'
          PartyRoleRef: '#/components/schemas/PartyRoleRef_FVO'
          Individual: '#/components/schemas/Individual_FVO'
          Organization: '#/components/schemas/Organization_FVO'
          PartyRole: '#/components/schemas/PartyRole_FVO'
          Supplier: '#/components/schemas/Supplier_FVO'
          BusinessPartner: '#/components/schemas/BusinessPartner_FVO'
          Consumer: '#/components/schemas/Consumer_FVO'
          Producer: '#/components/schemas/Producer_FVO'
    GeographicLocationRef_MVO:
      type: object
      allOf:
      - $ref: '#/components/schemas/EntityRef'
      discriminator:
        propertyName: '@type'
        mapping:
          GeographicLocationRef: '#/components/schemas/GeographicLocationRef_MVO'
    ProductOfferingRef_MVO:
      allOf:
      - $ref: '#/components/schemas/EntityRef'
      - type: object
        description: ProductOffering reference. A product offering represents entities that are orderable from the provider of the catalog, this resource includes pricing information.
        properties:
          version:
            type: string
            description: Version of the product offering
      discriminator:
        propertyName: '@type'
        mapping:
          ProductOfferingRef: '#/components/schemas/ProductOfferingRef_MVO'
    Intent_MVO:
      allOf:
      - $ref: '#/components/schemas/Entity_MVO'
      - type: object
        description: An Intent instance is the formal description of all expectations including requirements, goals, and constraints given to a technical system
        properties:
          description:
            type: string
            description: The description of the intent.
          validFor:
            $ref: '#/components/schemas/TimePeriod'
          isBundle:
            type: boolean
            description: isBundle determines whether an intent represents a single intent (false), or a bundle of intents(true).
          priority:
            type: string
            description: Can be used by intent owner to prioritize intents in an intent management system
          statusChangeDate:
            type: string
            format: date-time
            description: A date time( DateTime). The date that the entity status changed to the current one
          context:
            type: string
            description: A string used to give a context to the intent
          version:
            type: string
            description: A field that identifies the specific version of an instance of an intent.
          intentSpecification:
            $ref: '#/components/schemas/EntityRef'
          intentRelationship:
            type: array
            items:
              $ref: '#/components/schemas/EntityRelationship_MVO'
            description: A list of intents related to this intent
          characteristic:
            type: array
            items:
              $ref: '#/components/schemas/Characteristic_MVO'
          relatedParty:
            type: array
            items:
              $ref: '#/components/schemas/RelatedPartyRefOrPartyRoleRef_MVO'
          attachment:
            type: array
            items:
              $ref: '#/components/schemas/AttachmentRefOrValue_MVO'
            description: Attachments that may be of relevance to this intent, such as picture, document, media
          name:
            type: string
            description: The name of the intent.
          expression:
            $ref: '#/components/schemas/Expression_MVO'
          creationDate:
            type: string
            format: date-time
            description: Date and time of the creation of this REST resource
          lastUpdate:
            type: string
            format: date-time
            description: Date and time of the last update of this REST resource
          lifecycleStatus:
            type: string
            description: Used to indicate the current lifecycle status of this intent
      discriminator:
        propertyName: '@type'
        mapping:
          Intent: '#/components/schemas/Intent_MVO'
    Supplier_MVO:
      type: object
      description: 'When business partner is the Supplier '
      allOf:
      - $ref: '#/components/schemas/PartyRole_MVO'
    ProductRefOrValue_MVO:
      type: object
      description: The polymorphic attributes @type, @schemaLocation & @referredType are related to the Product entity and not the ProductRefOrValue class itself
      oneOf:
      - $ref: '#/components/schemas/Product_MVO'
      - $ref: '#/components/schemas/ProductRef_MVO'
      discriminator:
        propertyName: '@type'
        mapping:
          Product: '#/components/schemas/Product_MVO'
          ProductRef: '#/components/schemas/ProductRef_MVO'
    OrganizationChildRelationship_MVO:
      allOf:
      - $ref: '#/components/schemas/Extensible'
      - type: object
        description: Child references of an organization in a structure of organizations.
        properties:
          relationshipType:
            type: string
            description: Type of the relationship. Could be juridical, hierarchical, geographical, functional for example.
          organization:
            $ref: '#/components/schemas/OrganizationRef_MVO'
      discriminator:
        propertyName: '@type'
        mapping:
          OrganizationChildRelationship: '#/components/schemas/OrganizationChildRelationship_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'
    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'
    Producer:
      type: object
      allOf:
      - $ref: '#/components/schemas/PartyRole'
    ProductRelationship_MVO:
      allOf:
      - $ref: '#/components/schemas/Extensible'
      - $ref: '#/components/schemas/EntityRef'
      - type: object
        description: Used to describe relationship between product.
        properties:
          id:
            type: string
            description: Id of the related product
          relationshipType:
            type: string
            description: Relationship type as relies on, bundles, etc...
      discriminator:
        propertyName: '@type'
        mapping:
          ProductRelationship: '#/components/schemas/ProductRelationship_MVO'
    ExpressionLanguageEnum:
      enum:
      - Turtle
      - JSON-LD
      - RDF-XML
      - Other
      type: string
      description: Possible values for the serialized Expression language of an intent or Intent report
    RelatedOrderItem_MVO:
      allOf:
      - $ref: '#/components/schemas/Extensible'
      - type: object
        description: It's a Order item that has been executed previously.
        properties:
          orderItemAction:
            $ref: '#/components/schemas/ItemActionType'
          orderHref:
            type: string
            description: Reference of the related entity.
          '@referredType':
            type: string
            description: The actual type of the target instance when needed for disambiguation.
          role:
            type: string
            description: Role played by the  Order
          orderId:
            type: string
            description: Unique identifier of a related  Order.
          orderItemId:
            type: string
            description: Id of an item of a prduct order
      discriminator:
        propertyName: '@type'
        mapping:
          RelatedOrderItem: '#/components/schemas/RelatedOrderItem_MVO'
    Attachment:
      allOf:
      - $ref: '#/components/schemas/Entity'
      - type: object
        description: Complements the description of an element (for instance a product) through video, pictures...
        properties:
          name:
            type: string
            description: The name of the attachment
          description:
            type: string
            description: A narrative text describing the content of the attachment
            example: Photograph of the Product
          url:
            type: string
            description: Uniform Resource Locator, is a web page address (a subset of URI)
            example: http://host/Content/4aafacbd-11ff-4dc8-b445-305f2215715f
          content:
            type: string
            format: base64
            description: The actual contents of the attachment object, if embedded, encoded as base64
          size:
            $ref: '#/components/schemas/Quantity'
          validFor:
            $ref: '#/components/schemas/TimePeriod'
          attachmentType:
            type: string
            description: a business characterization of the purpose of the attachment, for example logo, instructionManual, contractCopy
          mimeType:
            type: string
            description: a technical characterization of the attachment content format using IETF Mime Types
      discriminator:
        propertyName: '@type'
        mapping:
          Attachment: '#/components/schemas/Attachment'
    GeographicSite:
      allOf:
      - $ref: '#/components/schemas/Place'
      - type: object
        properties:
          code:
            type: string
            description: 'A code that may be used for some addressing schemes eg: [ANSI T1.253-1999]'
          creationDate:
            type: string
            format: date-time
            description: Date and time when the GeographicSite was created
          description:
            type: string
            description: Text describing additional information regarding the site
          status:
            type: string
            description: The condition of the GeographicSite, such as planned, underConstruction, cancelled, active, inactive, former
          relatedParty:
            type: array
            items:
              $ref: '#/components/schemas/RelatedPartyOrPartyRole'
          externalIdentifier:
            type: array
            items:
              $ref: '#/components/schemas/ExternalIdentifier'
          calendar:
            type: array
            items:
              $ref: '#/components/schemas/CalendarPeriod'
          place:
            type: array
            items:
              $ref: '#/components/schemas/PlaceRefOrValue'
          siteRelationship:
            type: array
            items:
              $ref: '#/components/schemas/GeographicSiteRelationship'
    OtherNameOrganization_FVO:
      allOf:
      - $ref: '#/components/schemas/Extensible_FVO'
      - type: object
        description: Keeps track of other names, for example the old name of an organization.
        properties:
          tradingName:
            type: string
            description: The name that the organization trades under
          nameType:
            type: string
            description: Co. , Inc. , Ltd. , Pty Ltd. , Plc; , Gmbh
          name:
            type: string
            description: Organization name (department name for example)
          validFor:
            $ref: '#/components/schemas/TimePeriod'
      discriminator:
        propertyName: '@type'
        mapping:
          OtherNameOrganization: '#/components/schemas/OtherNameOrganization_FVO'
    PlaceRefOrValue:
      type: object
      description: The polymorphic attributes @type, @schemaLocation & @referredType are related to the Place entity and not the PlaceRefOrValue class itself
      oneOf:
      - $ref: '#/components/schemas/GeographicLocation'
      - $ref: '#/components/schemas/GeographicSite'
      - $ref: '#/components/schemas/GeographicAddress'
      - $ref: '#/components/schemas/PlaceRef'
      discriminator:
        propertyName: '@type'
        mapping:
          GeographicLocation: '#/components/schemas/GeographicLocation'
          GeographicSite: '#/components/schemas/GeographicSite'
          GeographicAddress: '#/components/schemas/GeographicAddress'
          PlaceRef: '#/components/schemas/PlaceRef'
    PartyCreditProfile_FVO:
      allOf:
      - $ref: '#/components/schemas/Entity_FVO'
      - type: object
        description: An individual might be evaluated for its worthiness and this evaluation might be based on a credit rating given by a credit agency.
        properties:
          creditAgencyName:
            type: string
            description: Name of the credit agency giving the score
          creditAgencyType:
            type: string
            description: Type of the credit agency giving the score
          ratingReference:
            type: string
            description: Reference corresponding to the credit rating
          ratingScore:
            type: integer
            format: int32
            description: A measure of a party's creditworthiness calculated on the basis of a combination of factors such as their income and credit history
          validFor:
            $ref: '#/components/schemas/TimePeriod'
      discriminator:
        propertyName: '@type'
        mapping:
          PartyCreditProfile: '#/components/schemas/PartyCreditProfile_FVO'
    CalendarPeriod_MVO:
      allOf:
      - $ref: '#/components/schemas/Extensible'
      - type: object
        properties:
          day:
            type: string
            description: 'Day where the calendar status applies (e.g.: monday, mon-to-fri, weekdays, weekend, all week, ...)'
          timeZone:
            type: string
            description: 'Indication of the timezone applicable to the calendar information (e.g.: Paris, GMT+1)'
          hourPeriod:
            type: array
            items:
              $ref: '#/components/schemas/HourPeriod_MVO'
          status:
            type: string
            description: 'Indication of the availability of the caledar period (e.g.: available, booked, etc.)'
      discriminator:
        propertyName: '@type'
        mapping:
          CalendarPeriod: '#/components/schemas/CalendarPeriod_MVO'
    PaymentMethodRef:
      type: object
      description: PaymentMethod reference. A payment method defines a specific mean of payment (e.g direct debit).
      allOf:
      - $ref: '#/components/schemas/EntityRef'
      discriminator:
        propertyName: '@type'
        mapping:
          PaymentMethodRef: '#/components/schemas/PaymentMethodRef'
    AccountRef:
      type: object
      description: Account reference. A account may be a party account or a financial account.
      allOf:
      - $ref: '#/components/schemas/EntityRef'
      discriminator:
        propertyName: '@type'
        mapping:
          AccountRef: '#/components/schemas/AccountRef'
    Place_MVO:
      type: object
      description: Place reference.
      allOf:
      - $ref: '#/components/schemas/Entity_MVO'
      discriminator:
        propertyName: '@type'
        mapping:
          Place: '#/components/schemas/Place_MVO'
          GeographicSite: '#/components/schemas/GeographicSite_MVO'
          GeographicLocation: '#/components/schemas/GeographicLocation_MVO'
          GeographicAddress: '#/components/schemas/GeographicAddress_MVO'
    RelatedOrderItem_FVO:
      allOf:
      - $ref: '#/components/schemas/Extensible_FVO'
      - type: object
        description: It's a Order item that has been executed previously.
        properties:
          orderItemAction:
            $ref: '#/components/schemas/ItemActionType'
          orderHref:
            type: string
            description: Reference of the related entity.
          '@referredType':
            type: string
            description: The actual type of the target instance when needed for disambiguation.
          role:
            type: string
            description: Role played by the  Order
          orderId:
            type: string
            description: Unique identifier of a related  Order.
          orderItemId:
            type: string
            description: Id of an item of a prduct order
        required:
        - role
        - orderId
        - orderItemId
      discriminator:
        propertyName: '@type'
        mapping:
          RelatedOrderItem: '#/components/schemas/RelatedOrderItem_FVO'
    GeographicSiteRelationship_FVO:
      allOf:
      - $ref: '#/components/schemas/Extensible_FVO'
      - type: object
        properties:
          href:
            type: string
            description: Reference of the related geographic site
          role:
            type: string
            description: Role of the related site in the relationship
          validFor:
            $ref: '#/components/schemas/TimePeriod'
          id:
            type: string
            description: Unique identifier of the related site entity within the server
 

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