TM Forum agreementSpecification API

The agreementSpecification API from TM Forum — 2 operation(s) for agreementspecification.

OpenAPI Specification

tm-forum-agreementspecification-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Product Catalog Management agreement agreementSpecification 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: agreementSpecification
paths:
  /agreementSpecification:
    get:
      operationId: listAgreementSpecification
      summary: List or find AgreementSpecification objects
      description: This operation list or find AgreementSpecification entities
      tags:
      - agreementSpecification
      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/AgreementSpecification'
        '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: createAgreementSpecification
      summary: Creates a AgreementSpecification
      description: This operation creates a AgreementSpecification entity.
      tags:
      - agreementSpecification
      parameters:
      - name: agreementSpecification
        description: The AgreementSpecification to be created
        required: true
        schema:
          $ref: '#/definitions/AgreementSpecification_Create'
        in: body
      responses:
        '201':
          description: Created
          schema:
            $ref: '#/definitions/AgreementSpecification'
        '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'
  /agreementSpecification/{id}:
    get:
      operationId: retrieveAgreementSpecification
      summary: Retrieves a AgreementSpecification by ID
      description: This operation retrieves a AgreementSpecification entity. Attribute selection is enabled for all first level attributes.
      tags:
      - agreementSpecification
      parameters:
      - name: id
        description: Identifier of the AgreementSpecification
        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/AgreementSpecification'
        '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: patchAgreementSpecification
      summary: Updates partially a AgreementSpecification
      description: This operation updates partially a AgreementSpecification entity.
      tags:
      - agreementSpecification
      parameters:
      - name: id
        description: Identifier of the AgreementSpecification
        required: true
        type: string
        in: path
      - name: agreementSpecification
        description: The AgreementSpecification to be updated
        required: true
        schema:
          $ref: '#/definitions/AgreementSpecification_Update'
        in: body
      responses:
        '200':
          description: Updated
          schema:
            $ref: '#/definitions/AgreementSpecification'
        '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: deleteAgreementSpecification
      summary: Deletes a AgreementSpecification
      description: This operation deletes a AgreementSpecification entity.
      tags:
      - agreementSpecification
      parameters:
      - name: id
        description: Identifier of the AgreementSpecification
        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:
  AgreementSpecification:
    type: object
    description: A template of an agreement that can be used when establishing partnerships
    required:
    - attachment
    - name
    properties:
      id:
        type: string
        description: Unique identifier of the agreement specification
      href:
        type: string
        description: Reference of the agreement specification
      description:
        type: string
        description: A narrative that explains in detail what the agreement specification is about
      isBundle:
        type: boolean
        description: If true, this agreement specification is a grouping of other agreement specifications. The list of bundled agreement specifications is provided by the specificationRelationship property
      lastUpdate:
        type: string
        format: date-time
        description: Date and time of the last update
      lifecycleStatus:
        type: string
        description: Indicates the current lifecycle status
      name:
        type: string
        description: Name of the agreement specification
      version:
        type: string
        description: Agreement specification version
      attachment:
        type: array
        items:
          $ref: '#/definitions/AttachmentRefOrValue'
        minItems: 1
      relatedParty:
        type: array
        items:
          $ref: '#/definitions/RelatedParty'
      serviceCategory:
        $ref: '#/definitions/CategoryRef'
      specificationCharacteristic:
        type: array
        items:
          $ref: '#/definitions/AgreementSpecCharacteristic'
      specificationRelationship:
        type: array
        items:
          $ref: '#/definitions/AgreementSpecificationRelationship'
      validFor:
        $ref: '#/definitions/TimePeriod'
        description: The period for which the agreement specification 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 entity name
  AgreementSpecificationRelationship:
    type: object
    description: A relationship between agreement specifications. Typical relationships are substitution and dependency.
    properties:
      id:
        type: string
        description: Unique identifier of a related entity.
      href:
        type: string
        description: Reference of the related entity.
      name:
        type: string
        description: Name of the related entity.
      relationshipType:
        type: string
        description: Type of relationship such as, substitution or dependency.
      validFor:
        $ref: '#/definitions/TimePeriod'
        description: The period for which the relationship 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 entity name
      '@referredType':
        type: string
        description: The actual type of the target instance when needed for disambiguation.
  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:
        type: string
        description: Unique identifier for this particular attachment
      href:
        type: string
        description: URI for this Attachment
      attachmentType:
        type: string
        description: Attachment type such as video, picture
      content:
        type: string
        description: The actual contents of the attachment object, if embedded, encoded as base64
      description:
        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:
        type: string
        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
        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
      '@referredType':
        type: string
        description: The actual type of the target instance when needed for disambiguation.
  AgreementSpecCharacteristic:
    type: object
    description: A characteristic quality or distinctive feature of an agreement.
    properties:
      configurable:
        type: boolean
        description: If true, the Boolean indicates that the characteristic is configurable
      description:
        type: string
        description: A narrative that explains in detail what the characteristic is
      name:
        type: string
        description: Name of the characteristic being specified.
      valueType:
        type: string
        description: A kind of value that the characteristic can take on, such as numeric, text and so forth
      specCharacteristicValue:
        type: array
        items:
          $ref: '#/definitions/AgreementSpecCharacteristicValue'
      validFor:
        $ref: '#/definitions/TimePeriod'
        description: The period for which the specification characteristic 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 entity name
  AgreementSpecCharacteristicValue:
    type: object
    description: A number or text that can be assigned to an agreement specification characteristic.
    properties:
      default:
        type: boolean
        description: Indicates if the value is the default value for a characteristic
      unitOfMeasure:
        type: string
        description: Unit of measure for the characteristic, such as minutes, gigabytes (GB) and so on.
      valueFrom:
        type: string
        description: The low range value that a characteristic can take on
      valueTo:
        type: string
        description: The upper range value that a characteristic can take on
      valueType:
        type: string
        description: A kind of value that the characteristic can take on, such as numeric, text, and so forth
      validFor:
        $ref: '#/definitions/TimePeriod'
        description: The period of time for which a value is applicable
      value:
        $ref: '#/definitions/Any'
        description: A discrete value that the characteristic can take on
      '@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
  CategoryRef:
    type: object
    description: The category for grouping recommendations
    properties:
      id:
        type: string
        description: Unique identifier of a related entity.
      href:
        type: string
        description: Reference of the related entity.
      name:
        type: string
        description: Name of the related entity.
      version:
        type: string
        description: Category 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 entity name
      '@referredType':
        type: string
        description: The actual type of the target instance when needed for disambiguation.
    required:
    - id
  Any: {}
  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
  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.
  TimePeriod:
    type: object
    description: A period of time, either as a deadline (endDateTime only) a startDateTime only, or both
    properties:
      endDateTime:
        type: string
        format: date-time
        description: End of the time period, using IETC-RFC-3339 format
      startDateTime:
        type: string
        format: date-time
        description: Start of the time period, using IETC-RFC-3339 format. If you define a start, you must also define an end
  AgreementSpecification_Update:
    type: object
    description: 'A template of an agreement that can be used when establishing partnerships

      Skipped properties: id,href'
    required:
    - attachment
    - name
    properties:
      description:
        type: string
        description: A narrative that explains in detail what the agreement specification is about
      isBundle:
        type: boolean
        description: If true, this agreement specification is a grouping of other agreement specifications. The list of bundled agreement specifications is provided by the specificationRelationship property
      lastUpdate:
        type: string
        format: date-time
        description: Date and time of the last update
      lifecycleStatus:
        type: string
        description: Indicates the current lifecycle status
      name:
        type: string
        description: Name of the agreement specification
      version:
        type: string
        description: Agreement specification version
      attachment:
        type: array
        items:
          $ref: '#/definitions/AttachmentRefOrValue'
        minItems: 1
      relatedParty:
        type: array
        items:
          $ref: '#/definitions/RelatedParty'
      serviceCategory:
        $ref: '#/definitions/CategoryRef'
      specificationCharacteristic:
        type: array
        items:
          $ref: '#/definitions/AgreementSpecCharacteristic'
      specificationRelationship:
        type: array
        items:
          $ref: '#/definitions/AgreementSpecificationRelationship'
      validFor:
        $ref: '#/definitions/TimePeriod'
        description: The period for which the agreement specification 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 entity name
  RelatedParty:
    type: object
    description: Related Entity reference. A related party defines party or party role linked to a specific entity.
    required:
    - '@referredType'
    - id
    - name
    properties:
      id:
        type: string
        description: Unique identifier of a related entity.
      href:
        type: string
        description: Reference of the related entity.
      name:
        type: string
        description: Name of the related entity.
      role:
        type: string
        description: Role played by the related party
      '@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
      '@referredType':
        type: string
        description: The actual type of the target instance when needed for disambiguation.
  AgreementSpecification_Create:
    type: object
    description: 'A template of an agreement that can be used when establishing partnerships

      Skipped properties: id,href'
    required:
    - attachment
    - name
    properties:
      description:
        type: string
        description: A narrative that explains in detail what the agreement specification is about
      isBundle:
        type: boolean
        description: If true, this agreement specification is a grouping of other agreement specifications. The list of bundled agreement specifications is provided by the specificationRelationship property
      lastUpdate:
        type: string
        format: date-time
        description: Date and time of the last update
      lifecycleStatus:
        type: string
        description: Indicates the current lifecycle status
      name:
        type: string
        description: Name of the agreement specification
      version:
        type: string
        description: Agreement specification version
      attachment:
        type: array
        items:
          $ref: '#/definitions/AttachmentRefOrValue'
        minItems: 1
      relatedParty:
        type: array
        items:
          $ref: '#/definitions/RelatedParty'
      serviceCategory:
        $ref: '#/definitions/CategoryRef'
      specificationCharacteristic:
        type: array
        items:
          $ref: '#/definitions/AgreementSpecCharacteristic'
      specificationRelationship:
        type: array
        items:
          $ref: '#/definitions/AgreementSpecificationRelationship'
      validFor:
        $ref: '#/definitions/TimePeriod'
        description: The period for which the agreement specification 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 entity name