TM Forum serviceSpecification API

The serviceSpecification API from TM Forum — 2 operation(s) for servicespecification.

OpenAPI Specification

tm-forum-servicespecification-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Product Catalog Management agreement serviceSpecification 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: serviceSpecification
paths:
  /serviceSpecification:
    get:
      operationId: listServiceSpecification
      summary: List or find ServiceSpecification objects
      description: This operation list or find ServiceSpecification entities
      tags:
      - serviceSpecification
      parameters:
      - name: fields
        description: Comma-separated properties to be provided in response
        required: false
        in: query
        type: string
      - name: offset
        description: Requested index for start of resources to be provided in response
        required: false
        in: query
        type: integer
      - name: limit
        description: Requested number of resources to be provided in response
        required: false
        in: query
        type: integer
      responses:
        '200':
          description: Success
          headers:
            X-Result-Count:
              description: Actual number of items returned in the response body
              type: integer
            X-Total-Count:
              description: Total number of items matching criteria
              type: integer
          schema:
            type: array
            items:
              $ref: '#/definitions/ServiceSpecification'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error'
        '401':
          description: Unauthorized
          schema:
            $ref: '#/definitions/Error'
        '403':
          description: Forbidden
          schema:
            $ref: '#/definitions/Error'
        '404':
          description: Not Found
          schema:
            $ref: '#/definitions/Error'
        '405':
          description: Method Not allowed
          schema:
            $ref: '#/definitions/Error'
        '409':
          description: Conflict
          schema:
            $ref: '#/definitions/Error'
        '500':
          description: Internal Server Error
          schema:
            $ref: '#/definitions/Error'
    post:
      operationId: createServiceSpecification
      summary: Creates a ServiceSpecification
      description: This operation creates a ServiceSpecification entity.
      tags:
      - serviceSpecification
      parameters:
      - name: serviceSpecification
        description: The ServiceSpecification to be created
        required: true
        schema:
          $ref: '#/definitions/ServiceSpecification_Create'
        in: body
      responses:
        '201':
          description: Created
          schema:
            $ref: '#/definitions/ServiceSpecification'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error'
        '401':
          description: Unauthorized
          schema:
            $ref: '#/definitions/Error'
        '403':
          description: Forbidden
          schema:
            $ref: '#/definitions/Error'
        '405':
          description: Method Not allowed
          schema:
            $ref: '#/definitions/Error'
        '409':
          description: Conflict
          schema:
            $ref: '#/definitions/Error'
        '500':
          description: Internal Server Error
          schema:
            $ref: '#/definitions/Error'
  /serviceSpecification/{id}:
    get:
      operationId: retrieveServiceSpecification
      summary: Retrieves a ServiceSpecification by ID
      description: This operation retrieves a ServiceSpecification entity. Attribute selection is enabled for all first level attributes.
      tags:
      - serviceSpecification
      parameters:
      - name: id
        description: Identifier of the ServiceSpecification
        required: true
        type: string
        in: path
      - name: fields
        description: Comma-separated properties to provide in response
        required: false
        type: string
        in: query
      responses:
        '200':
          description: Success
          schema:
            $ref: '#/definitions/ServiceSpecification'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error'
        '401':
          description: Unauthorized
          schema:
            $ref: '#/definitions/Error'
        '403':
          description: Forbidden
          schema:
            $ref: '#/definitions/Error'
        '404':
          description: Not Found
          schema:
            $ref: '#/definitions/Error'
        '405':
          description: Method Not allowed
          schema:
            $ref: '#/definitions/Error'
        '409':
          description: Conflict
          schema:
            $ref: '#/definitions/Error'
        '500':
          description: Internal Server Error
          schema:
            $ref: '#/definitions/Error'
    patch:
      operationId: patchServiceSpecification
      summary: Updates partially a ServiceSpecification
      description: This operation updates partially a ServiceSpecification entity.
      tags:
      - serviceSpecification
      parameters:
      - name: id
        description: Identifier of the ServiceSpecification
        required: true
        type: string
        in: path
      - name: serviceSpecification
        description: The ServiceSpecification to be updated
        required: true
        schema:
          $ref: '#/definitions/ServiceSpecification_Update'
        in: body
      responses:
        '200':
          description: Updated
          schema:
            $ref: '#/definitions/ServiceSpecification'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error'
        '401':
          description: Unauthorized
          schema:
            $ref: '#/definitions/Error'
        '403':
          description: Forbidden
          schema:
            $ref: '#/definitions/Error'
        '404':
          description: Not Found
          schema:
            $ref: '#/definitions/Error'
        '405':
          description: Method Not allowed
          schema:
            $ref: '#/definitions/Error'
        '409':
          description: Conflict
          schema:
            $ref: '#/definitions/Error'
        '500':
          description: Internal Server Error
          schema:
            $ref: '#/definitions/Error'
    delete:
      operationId: deleteServiceSpecification
      summary: Deletes a ServiceSpecification
      description: This operation deletes a ServiceSpecification entity.
      tags:
      - serviceSpecification
      parameters:
      - name: id
        description: Identifier of the ServiceSpecification
        required: true
        type: string
        in: path
      responses:
        '204':
          description: Deleted
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error'
        '401':
          description: Unauthorized
          schema:
            $ref: '#/definitions/Error'
        '403':
          description: Forbidden
          schema:
            $ref: '#/definitions/Error'
        '404':
          description: Not Found
          schema:
            $ref: '#/definitions/Error'
        '405':
          description: Method Not allowed
          schema:
            $ref: '#/definitions/Error'
        '409':
          description: Conflict
          schema:
            $ref: '#/definitions/Error'
        '500':
          description: Internal Server Error
          schema:
            $ref: '#/definitions/Error'
definitions:
  ServiceSpecification:
    type: object
    description: 'ServiceSpecification is a class that offers characteristics to describe a type of service.

      Functionally, it acts as a template by which Services may be instantiated. By sharing the same specification, these services would therefore share the same set of characteristics.'
    properties:
      id:
        type: string
        description: unique identifier
      href:
        type: string
        format: uri
        description: Hyperlink reference
      description:
        type: string
        description: Description of the specification
      isBundle:
        type: boolean
        description: isBundle determines whether specification represents a single specification (false), or a bundle of specifications (true).
      lastUpdate:
        type: string
        format: date-time
        description: Date and time of the last update of the specification
      lifecycleStatus:
        type: string
        description: Used to indicate the current lifecycle status of this catalog item
      name:
        type: string
        description: Name given to the specification
      version:
        type: string
        description: specification version
      attachment:
        type: array
        items:
          $ref: '#/definitions/AttachmentRefOrValue'
        description: Attachments that may be of relevance to this specification, such as picture, document, media
      constraint:
        type: array
        items:
          $ref: '#/definitions/ConstraintRef'
        description: This is a list of constraint references applied to this specification
      entitySpecRelationship:
        type: array
        items:
          $ref: '#/definitions/EntitySpecificationRelationship'
        description: Relationship to another specification
      featureSpecification:
        type: array
        items:
          $ref: '#/definitions/FeatureSpecification'
        description: A list of Features for this specification.
      relatedParty:
        type: array
        items:
          $ref: '#/definitions/RelatedParty'
        description: Parties who manage or otherwise have an interest in this specification
      resourceSpecification:
        type: array
        items:
          $ref: '#/definitions/ResourceSpecificationRef'
        description: A list of resource specification references (ResourceSpecificationRef [*]). The ResourceSpecification is required for a service specification with type ResourceFacingServiceSpecification (RFSS).
      serviceLevelSpecification:
        type: array
        items:
          $ref: '#/definitions/ServiceLevelSpecificationRef'
        description: A list of service level specifications related to this service specification, and which will need to be satisifiable for corresponding service instances; e.g. Gold, Platinum
      serviceSpecRelationship:
        type: array
        items:
          $ref: '#/definitions/ServiceSpecRelationship'
        description: A list of service specifications related to this specification, e.g. migration, substitution, dependency or exclusivity relationship
      specCharacteristic:
        type: array
        items:
          $ref: '#/definitions/CharacteristicSpecification'
        description: List of characteristics that the entity can take
      targetEntitySchema:
        $ref: '#/definitions/TargetEntitySchema'
        description: Pointer to a schema that defines the target entity
      validFor:
        $ref: '#/definitions/TimePeriod'
        description: The period for which this REST resource is valid
      '@baseType':
        type: string
        description: When sub-classing, this defines the super-class
      '@schemaLocation':
        type: string
        format: uri
        description: A URI to a JSON-Schema file that defines additional attributes and relationships
      '@type':
        type: string
        description: When sub-classing, this defines the sub-class Extensible name
  Error:
    description: Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx)
    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
        format: uri
        description: URI of documentation describing the error.
      '@baseType':
        type: string
        description: When sub-classing, this defines the super-class.
      '@schemaLocation':
        type: string
        format: uri
        description: A URI to a JSON-Schema file that defines additional attributes and relationships
      '@type':
        type: string
        description: When sub-classing, this defines the sub-class entity name.
  FeatureSpecificationRelationship:
    type: object
    description: Relationship between feature specifications
    required:
    - name
    - relationshipType
    properties:
      featureId:
        type: string
        description: Unique identifier of the target feature specification.
      name:
        type: string
        description: This is the name of the target feature specification.
      parentSpecificationHref:
        type: string
        format: uri
        description: Hyperlink reference to the parent specification containing the target feature
      parentSpecificationId:
        type: string
        description: Unique identifier of the parent specification containing the target feature
      relationshipType:
        type: string
        description: This is the type of the feature specification relationship.
      validFor:
        $ref: '#/definitions/TimePeriod'
        description: The period for which this feature spoecification relationship is valid.
  ServiceSpecRelationship:
    type: object
    description: A dependency, substitution or exclusivity relationship between/among service specifications.
    required:
    - relationshipType
    properties:
      id:
        type: string
        description: unique identifier
      href:
        type: string
        format: uri
        description: Hyperlink reference
      name:
        type: string
        description: Name of the related entity.
      relationshipType:
        type: string
        description: Type of relationship such as dependency, substitution or exclusivity
      role:
        type: string
        description: The association role for this service specification
      validFor:
        $ref: '#/definitions/TimePeriod'
        description: The period for which the serviceSpecRelationship is valid
      '@baseType':
        type: string
        description: When sub-classing, this defines the super-class
      '@schemaLocation':
        type: string
        format: uri
        description: A URI to a JSON-Schema file that defines additional attributes and relationships
      '@type':
        type: string
        description: When sub-classing, this defines the sub-class Extensible name
      '@referredType':
        type: string
        description: The actual type of the target instance when needed for disambiguation.
  AssociationSpecificationRef:
    type: object
    description: reference to an AssociationSpecification object
    properties:
      id:
        type: string
        description: unique identifier
      href:
        type: string
        format: uri
        description: Hyperlink reference
      name:
        type: string
        description: Name of the related entity.
      '@baseType':
        type: string
        description: When sub-classing, this defines the super-class
      '@schemaLocation':
        type: string
        format: uri
        description: A URI to a JSON-Schema file that defines additional attributes and relationships
      '@type':
        type: string
        description: When sub-classing, this defines the sub-class Extensible name
      '@referredType':
        type: string
        description: The actual type of the target instance when needed for disambiguation.
    required:
    - id
  ServiceSpecification_Create:
    type: object
    description: 'ServiceSpecification is a class that offers characteristics to describe a type of service.

      Functionally, it acts as a template by which Services may be instantiated. By sharing the same specification, these services would therefore share the same set of characteristics.

      Skipped properties: id,href'
    required:
    - name
    properties:
      description:
        type: string
        description: Description of the specification
      isBundle:
        type: boolean
        description: isBundle determines whether specification represents a single specification (false), or a bundle of specifications (true).
      lastUpdate:
        type: string
        format: date-time
        description: Date and time of the last update of the specification
      lifecycleStatus:
        type: string
        description: Used to indicate the current lifecycle status of this catalog item
      name:
        type: string
        description: Name given to the specification
      version:
        type: string
        description: specification version
      attachment:
        type: array
        items:
          $ref: '#/definitions/AttachmentRefOrValue'
        description: Attachments that may be of relevance to this specification, such as picture, document, media
      constraint:
        type: array
        items:
          $ref: '#/definitions/ConstraintRef'
        description: This is a list of constraint references applied to this specification
      entitySpecRelationship:
        type: array
        items:
          $ref: '#/definitions/EntitySpecificationRelationship'
        description: Relationship to another specification
      featureSpecification:
        type: array
        items:
          $ref: '#/definitions/FeatureSpecification'
        description: A list of Features for this specification.
      relatedParty:
        type: array
        items:
          $ref: '#/definitions/RelatedParty'
        description: Parties who manage or otherwise have an interest in this specification
      resourceSpecification:
        type: array
        items:
          $ref: '#/definitions/ResourceSpecificationRef'
        description: A list of resource specification references (ResourceSpecificationRef [*]). The ResourceSpecification is required for a service specification with type ResourceFacingServiceSpecification (RFSS).
      serviceLevelSpecification:
        type: array
        items:
          $ref: '#/definitions/ServiceLevelSpecificationRef'
        description: A list of service level specifications related to this service specification, and which will need to be satisifiable for corresponding service instances; e.g. Gold, Platinum
      serviceSpecRelationship:
        type: array
        items:
          $ref: '#/definitions/ServiceSpecRelationship'
        description: A list of service specifications related to this specification, e.g. migration, substitution, dependency or exclusivity relationship
      specCharacteristic:
        type: array
        items:
          $ref: '#/definitions/CharacteristicSpecification'
        description: List of characteristics that the entity can take
      targetEntitySchema:
        $ref: '#/definitions/TargetEntitySchema'
        description: Pointer to a schema that defines the target entity
      validFor:
        $ref: '#/definitions/TimePeriod'
        description: The period for which this REST resource is valid
      '@baseType':
        type: string
        description: When sub-classing, this defines the super-class
      '@schemaLocation':
        type: string
        format: uri
        description: A URI to a JSON-Schema file that defines additional attributes and relationships
      '@type':
        type: string
        description: When sub-classing, this defines the sub-class Extensible name
  CharacteristicSpecificationRelationship:
    type: object
    description: An aggregation, migration, substitution, dependency or exclusivity relationship between/among Characteristic specifications. The specification characteristic is embedded within the specification whose ID and href are in this entity, and identified by its ID.
    properties:
      characteristicSpecificationId:
        type: string
        description: Unique identifier of the characteristic within the specification
      name:
        type: string
        description: Name of the target characteristic within the specification
      parentSpecificationHref:
        type: string
        format: uri
        description: Hyperlink reference to the parent specification containing the target characteristic
      parentSpecificationId:
        type: string
        description: Unique identifier of the parent specification containing the target characteristic
      relationshipType:
        type: string
        description: Type of relationship such as aggregation, migration, substitution, dependency, exclusivity
      validFor:
        $ref: '#/definitions/TimePeriod'
        description: The period for which the object is valid
  EntitySpecificationRelationship:
    type: object
    description: A migration, substitution, dependency or exclusivity relationship between/among entity specifications.
    required:
    - relationshipType
    properties:
      id:
        type: string
        description: unique identifier
      href:
        type: string
        format: uri
        description: Hyperlink reference
      name:
        type: string
        description: Name of the related entity.
      relationshipType:
        type: string
        description: Type of relationship such as migration, substitution, dependency, exclusivity
      role:
        type: string
        description: The association role for this entity specification
      associationSpec:
        $ref: '#/definitions/AssociationSpecificationRef'
        description: A specification for an association used by this relationship
      validFor:
        $ref: '#/definitions/TimePeriod'
        description: The period for which the entitySpecRelationship is valid
      '@baseType':
        type: string
        description: When sub-classing, this defines the super-class
      '@schemaLocation':
        type: string
        format: uri
        description: A URI to a JSON-Schema file that defines additional attributes and relationships
      '@type':
        type: string
        description: When sub-classing, this defines the sub-class Extensible name
      '@referredType':
        type: string
        description: The actual type of the target instance when needed for disambiguation.
  FeatureSpecification:
    type: object
    description: Specification for resource, service or product features
    properties:
      id:
        type: string
        description: Identifier of the feature specification. Must be locally unique within the containing specification, thus allowing direct access to the feature spec.
      isBundle:
        type: boolean
        description: A flag indicating if this is a feature group (true) or not (false)
      isEnabled:
        type: boolean
        description: A flag indicating if the feature is enabled (true) or not (false)
      name:
        type: string
        description: Unique name given to the feature specification
      version:
        type: string
        description: Version of the feature specification
      constraint:
        type: array
        items:
          $ref: '#/definitions/ConstraintRef'
        description: This is a list of feature constraints
      featureSpecCharacteristic:
        type: array
        items:
          $ref: '#/definitions/FeatureSpecificationCharacteristic'
        description: This is a list of characteristics for a particular feature
      featureSpecRelationship:
        type: array
        items:
          $ref: '#/definitions/FeatureSpecificationRelationship'
        description: A dependency, exclusivity or aggratation relationship between/among feature specifications.
      validFor:
        $ref: '#/definitions/TimePeriod'
        description: The period for which this feature specification is valid
  ConstraintRef:
    type: object
    description: Constraint reference. The Constraint resource represents a policy/rule applied to an entity or entity spec.
    properties:
      id:
        type: string
        description: unique identifier
      href:
        type: string
        format: uri
        description: Hyperlink reference
      name:
        type: string
        description: Name of the related entity.
      version:
        type: string
        description: constraint version
      '@baseType':
        type: string
        description: When sub-classing, this defines the super-class
      '@schemaLocation':
        type: string
        format: uri
        description: A URI to a JSON-Schema file that defines additional attributes and relationships
      '@type':
        type: string
        description: When sub-classing, this defines the sub-class Extensible name
      '@referredType':
        type: string
        description: The actual type of the target instance when needed for disambiguation.
    required:
    - id
  Quantity:
    type: object
    description: An amount in a given unit
    properties:
      amount:
        default: 1
        type: number
        format: float
        description: Numeric value in a given unit
      units:
        type: string
        description: Unit
  TimePeriod:
    type: object
    description: A period of time, either as a deadline (endDateTime only) a startDateTime only, or both
    properties:
      endDateTime:
        example: '1985-04-12T23:20:50.52Z'
        type: string
        format: date-time
        description: End of the time period, using IETC-RFC-3339 format
      startDateTime:
        example: '1985-04-12T23:20:50.52Z'
        type: string
        format: date-time
        description: Start of the time period, using IETC-RFC-3339 format
  ServiceSpecification_Update:
    type: object
    description: 'ServiceSpecification is a class that offers characteristics to describe a type of service.

      Functionally, it acts as a template by which Services may be instantiated. By sharing the same specification, these services would therefore share the same set of characteristics.

      Skipped properties: id,href,lastUpdate'
    properties:
      description:
        type: string
        description: Description of the specification
      isBundle:
        type: boolean
        description: isBundle determines whether specification represents a single specification (false), or a bundle of specifications (true).
      lifecycleStatus:
        type: string
        description: Used to indicate the current lifecycle status of this catalog item
      name:
        type: string
        description: Name given to the specification
      version:
        type: string
        description: specification version
      attachment:
        type: array
        items:
          $ref: '#/definitions/AttachmentRefOrValue'
        description: Attachments that may be of relevance to this specification, such as picture, document, media
      constraint:
        type: array
        items:
          $ref: '#/definitions/ConstraintRef'
        description: This is a list of constraint references applied to this specification
      entitySpecRelationship:
        type: array
        items:
          $ref: '#/definitions/EntitySpecificationRelationship'
        description: Relationship to another specification
      featureSpecification:
        type: array
        items:
          $ref: '#/definitions/FeatureSpecification'
        description: A list of Features for this specification.
      relatedParty:
        type: array
        items:
          $ref: '#/definitions/RelatedParty'
        description: Parties who manage or otherwise have an interest in this specification
      resourceSpecification:
        type: array
        items:
          $ref: '#/definitions/ResourceSpecificationRef'
        description: A list of resource specification references (ResourceSpecificationRef [*]). The ResourceSpecification is required for a service specification with type ResourceFacingServiceSpecification (RFSS).
      serviceLevelSpecification:
        type: array
        items:
          $ref: '#/definitions/ServiceLevelSpecificationRef'
        description: A list of service level specifications related to this service specification, and which will need to be satisifiable for corresponding service instances; e.g. Gold, Platinum
      serviceSpecRelationship:
        type: array
        items:
          $ref: '#/definitions/ServiceSpecRelationship'
        description: A list of service specifications related to this specification, e.g. migration, substitution, dependency or exclusivity relationship
      specCharacteristic:
        type: array
        items:
          $ref: '#/definitions/CharacteristicSpecification'
        description: List of characteristics that the entity can take
      targetEntitySchema:
        $ref: '#/definitions/TargetEntitySchema'
        description: Pointer to a schema that defines the target entity
      validFor:
        $ref: '#/definitions/TimePeriod'
        description: The period for which this REST resource is valid
      '@baseType':
        type: string
        description: When sub-classing, this defines the super-class
      '@schemaLocation':
        type: string
        format: uri
        description: A URI to a JSON-Schema file that defines additional attributes and relationships
      '@type':
        type: string
        description: When sub-classing, this defines the sub-class Extensible name
  Any: {}
  TargetEntitySchema:
    type: object
    description: The reference object to the schema and type of target entity which is described by a specification
    required:
    - '@schemaLocation'
    - '@type'
    properties:
      '@schemaLocation':
        type: string
        description: This field provides a link to the schema describing the target entity
      '@type':
        type: string
        description: Class type of the target entity
  AttachmentRefOrValue:
    type: object
    description: An attachment by value or by reference. An attachment complements the description of an element, for example through a document, a video, a picture.
    properties:
      id:
        example: 4aafacbd-11ff-4dc8-b445-305f2215715f
        type: string
        description: Unique identifier for this particular attachment
      href:
        example: http://host/Attachment/4aafacbd-11ff-4dc8-b445-305f2215715f
        type: string
        format: uri
        description: URI for this Attachment
      attachmentType:
        example: video
        type: string
        description: Attachment type such as video, picture
      content:
        type: string
        format: base64
        description: The actual contents of the attachment object, if embedded, encoded as base64
      description:
        example: Photograph of the Product
        type: string
        description: A narrative text describing the content of the attachment
      mimeType:
        type: string
        description: Attachment mime type such as extension file for video, picture and document
      name:
        type: string
        description: The name of the attachment
      url:
        example: http://host/Content/4aafacbd-11ff-4dc8-b445-305f2215715f
        type: string
        format: uri
        description: Uniform Resource Locator, is a web page address (a subset of URI)
      size:
        $ref: '#/definitions/Quantity'
        description: The size of the attachment.
      validFor:
        $ref: '#/definitions/TimePeriod'
        description: The period of time for which the attachment is valid
      '@baseType':
        type: string
        description: When sub-classing, this defines the super-class
      '@schemaLocation':
        type: string
        format: uri
        descr

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