TM Forum · Schema

ProductSpecification

ProductSpecification schema from TM Forum API

TelcoTelecommunicationsBSSOSSOpen APIsStandards
View JSON Schema on GitHub

JSON Schema

tmf620-product-catalog-product-specification-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/tm-forum/refs/heads/main/json-schema/tmf620-product-catalog-product-specification-schema.json",
  "title": "ProductSpecification",
  "description": "ProductSpecification schema from TM Forum API",
  "allOf": [
    {
      "$ref": "#/components/schemas/Entity"
    },
    {
      "type": "object",
      "description": "Is a detailed description of a tangible or intangible object made available externally in the form of a ProductOffering to customers or other parties playing a party role.",
      "properties": {
        "brand": {
          "type": "string",
          "description": "The manufacturer or trademark of the specification"
        },
        "description": {
          "type": "string",
          "description": "A narrative that explains in detail what the product specification is"
        },
        "isBundle": {
          "type": "boolean",
          "description": "isBundle determines whether a productSpecification represents a single productSpecification (false), or a bundle of productSpecification (true)."
        },
        "productNumber": {
          "type": "string",
          "description": "An identification number assigned to uniquely identity the specification"
        },
        "category": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/CategoryRef"
          },
          "description": "The category resource is used to group product specifications in logical containers. Categories can contain other categories and/or other catalog entries."
        },
        "validFor": {
          "$ref": "#/components/schemas/TimePeriod"
        },
        "version": {
          "type": "string",
          "description": "Product specification version"
        },
        "relatedParty": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/RelatedPartyRefOrPartyRoleRef"
          },
          "description": "A related party defines party or party role linked to a specific entity."
        },
        "productSpecCharacteristic": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/CharacteristicSpecification"
          },
          "description": "A characteristic quality or distinctive feature of a ProductSpecification.  The characteristic can be take on a discrete value, such as color, can take on a range of values, (for example, sensitivity of 100-240 mV), or can be derived from a formula (for example, usage time (hrs) = 30 - talk time *3). Certain characteristics, such as color, may be configured during the ordering or some other process."
        },
        "serviceSpecification": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/ServiceSpecificationRef"
          },
          "description": "ServiceSpecification(s) required to realize a ProductSpecification."
        },
        "bundledProductSpecification": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/BundledProductSpecification"
          },
          "description": "A type of ProductSpecification that belongs to a grouping of ProductSpecifications made available to the market. It inherits of all attributes of ProductSpecification."
        },
        "productSpecificationRelationship": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/ProductSpecificationRelationship"
          },
          "description": "A migration, substitution, dependency or exclusivity relationship between/among product specifications."
        },
        "resourceSpecification": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/ResourceSpecificationRef"
          },
          "description": "The ResourceSpecification is required to realize a ProductSpecification."
        },
        "attachment": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/AttachmentRefOrValue"
          },
          "description": "Complements the description of an element (for instance a product) through video, pictures..."
        },
        "policy": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/PolicyRef"
          },
          "description": "The Policy resource represents a policy/rule applied to ProductSpecification."
        },
        "targetProductSchema": {
          "$ref": "#/components/schemas/TargetProductSchema"
        },
        "intentSpecification": {
          "$ref": "#/components/schemas/IntentSpecificationRef"
        },
        "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 product specification"
        },
        "externalIdentifier": {
          "type": "array",
          "description": "List of external identifieers for the specification, e.g. identifier in source catalog",
          "items": {
            "$ref": "#/components/schemas/ExternalIdentifier"
          }
        }
      }
    }
  ],
  "discriminator": {
    "propertyName": "@type",
    "mapping": {
      "ProductSpecification": "#/components/schemas/ProductSpecification"
    }
  }
}