TM Forum serviceCatalog API

The serviceCatalog API from TM Forum — 2 operation(s) for servicecatalog.

OpenAPI Specification

tm-forum-servicecatalog-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Product Catalog Management agreement serviceCatalog 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: serviceCatalog
paths:
  /serviceCatalog:
    get:
      operationId: listServiceCatalog
      summary: List or find ServiceCatalog objects
      description: This operation list or find ServiceCatalog entities
      tags:
      - serviceCatalog
      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/ServiceCatalog'
        '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: createServiceCatalog
      summary: Creates a ServiceCatalog
      description: This operation creates a ServiceCatalog entity.
      tags:
      - serviceCatalog
      parameters:
      - name: serviceCatalog
        description: The ServiceCatalog to be created
        required: true
        schema:
          $ref: '#/definitions/ServiceCatalog_Create'
        in: body
      responses:
        '201':
          description: Created
          schema:
            $ref: '#/definitions/ServiceCatalog'
        '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'
  /serviceCatalog/{id}:
    get:
      operationId: retrieveServiceCatalog
      summary: Retrieves a ServiceCatalog by ID
      description: This operation retrieves a ServiceCatalog entity. Attribute selection is enabled for all first level attributes.
      tags:
      - serviceCatalog
      parameters:
      - name: id
        description: Identifier of the ServiceCatalog
        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/ServiceCatalog'
        '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: patchServiceCatalog
      summary: Updates partially a ServiceCatalog
      description: This operation updates partially a ServiceCatalog entity.
      tags:
      - serviceCatalog
      parameters:
      - name: id
        description: Identifier of the ServiceCatalog
        required: true
        type: string
        in: path
      - name: serviceCatalog
        description: The ServiceCatalog to be updated
        required: true
        schema:
          $ref: '#/definitions/ServiceCatalog_Update'
        in: body
      responses:
        '200':
          description: Updated
          schema:
            $ref: '#/definitions/ServiceCatalog'
        '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: deleteServiceCatalog
      summary: Deletes a ServiceCatalog
      description: This operation deletes a ServiceCatalog entity.
      tags:
      - serviceCatalog
      parameters:
      - name: id
        description: Identifier of the ServiceCatalog
        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:
  ServiceCatalog:
    type: object
    description: "The root entity for service catalog management.\nA service catalog is a group of service specifications made available through service candidates that an organization provides to the consumers (internal consumers like its employees or B2B customers or B2C customers). \nA service catalog typically includes name, description and time period that is valid for. It will have a list of ServiceCandidate catalog items. A ServiceCandidate is an entity that makes a ServiceSpecification available to a catalog.\nA ServiceCandidate and its associated ServiceSpecification may be \"published\" - made visible -in any number of ServiceCatalogs, or in none."
    properties:
      id:
        type: string
        description: unique identifier
      href:
        type: string
        format: uri
        description: Hyperlink reference
      description:
        type: string
        description: Description of this catalog
      lastUpdate:
        type: string
        format: date-time
        description: Date and time of the last update
      lifecycleStatus:
        type: string
        description: Used to indicate the current lifecycle status
      name:
        type: string
        description: Name of the service catalog
      version:
        type: string
        description: ServiceCatalog version
      category:
        type: array
        items:
          $ref: '#/definitions/ServiceCategoryRef'
        description: List of service categories associated with this catalog
      relatedParty:
        type: array
        items:
          $ref: '#/definitions/RelatedParty'
        description: List of parties or party roles related to this category
      validFor:
        $ref: '#/definitions/TimePeriod'
        description: The period for which the service catalog 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.
  ServiceCategoryRef:
    type: object
    description: The (service) category resource is used to group service candidates in logical containers. Categories can contain other categories.
    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: 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 Extensible name
      '@referredType':
        type: string
        description: The actual type of the target instance when needed for disambiguation.
    required:
    - id
  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
  ServiceCatalog_Update:
    type: object
    description: "The root entity for service catalog management.\nA service catalog is a group of service specifications made available through service candidates that an organization provides to the consumers (internal consumers like its employees or B2B customers or B2C customers). \nA service catalog typically includes name, description and time period that is valid for. It will have a list of ServiceCandidate catalog items. A ServiceCandidate is an entity that makes a ServiceSpecification available to a catalog.\nA ServiceCandidate and its associated ServiceSpecification may be \"published\" - made visible -in any number of ServiceCatalogs, or in none.\nSkipped properties: id,href,lastUpdate"
    properties:
      description:
        type: string
        description: Description of this catalog
      lifecycleStatus:
        type: string
        description: Used to indicate the current lifecycle status
      name:
        type: string
        description: Name of the service catalog
      version:
        type: string
        description: ServiceCatalog version
      category:
        type: array
        items:
          $ref: '#/definitions/ServiceCategoryRef'
        description: List of service categories associated with this catalog
      relatedParty:
        type: array
        items:
          $ref: '#/definitions/RelatedParty'
        description: List of parties or party roles related to this category
      validFor:
        $ref: '#/definitions/TimePeriod'
        description: The period for which the service catalog 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
  RelatedParty:
    type: object
    description: Related Entity reference. A related party defines party or party role linked to a specific entity.
    required:
    - '@referredType'
    - id
    properties:
      id:
        type: string
        description: unique identifier
      href:
        type: string
        format: uri
        description: Hyperlink reference
      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 Extensible name
      '@referredType':
        type: string
        description: The actual type of the target instance when needed for disambiguation.
  ServiceCatalog_Create:
    type: object
    description: "The root entity for service catalog management.\nA service catalog is a group of service specifications made available through service candidates that an organization provides to the consumers (internal consumers like its employees or B2B customers or B2C customers). \nA service catalog typically includes name, description and time period that is valid for. It will have a list of ServiceCandidate catalog items. A ServiceCandidate is an entity that makes a ServiceSpecification available to a catalog.\nA ServiceCandidate and its associated ServiceSpecification may be \"published\" - made visible -in any number of ServiceCatalogs, or in none.\nSkipped properties: id,href"
    required:
    - name
    properties:
      description:
        type: string
        description: Description of this catalog
      lastUpdate:
        type: string
        format: date-time
        description: Date and time of the last update
      lifecycleStatus:
        type: string
        description: Used to indicate the current lifecycle status
      name:
        type: string
        description: Name of the service catalog
      version:
        type: string
        description: ServiceCatalog version
      category:
        type: array
        items:
          $ref: '#/definitions/ServiceCategoryRef'
        description: List of service categories associated with this catalog
      relatedParty:
        type: array
        items:
          $ref: '#/definitions/RelatedParty'
        description: List of parties or party roles related to this category
      validFor:
        $ref: '#/definitions/TimePeriod'
        description: The period for which the service catalog 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