TM Forum serviceOrder API

The serviceOrder API from TM Forum — 2 operation(s) for serviceorder.

OpenAPI Specification

tm-forum-serviceorder-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Product Catalog Management agreement serviceOrder 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: serviceOrder
paths:
  /serviceOrder:
    get:
      operationId: listServiceOrder
      summary: List or find ServiceOrder objects
      description: This operation list or find ServiceOrder entities
      tags:
      - serviceOrder
      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/ServiceOrder'
        '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: createServiceOrder
      summary: Creates a ServiceOrder
      description: This operation creates a ServiceOrder entity.
      tags:
      - serviceOrder
      parameters:
      - name: serviceOrder
        description: The ServiceOrder to be created
        required: true
        schema:
          $ref: '#/definitions/ServiceOrder_Create'
        in: body
      responses:
        '201':
          description: Created
          schema:
            $ref: '#/definitions/ServiceOrder'
        '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'
  /serviceOrder/{id}:
    get:
      operationId: retrieveServiceOrder
      summary: Retrieves a ServiceOrder by ID
      description: This operation retrieves a ServiceOrder entity. Attribute selection is enabled for all first level attributes.
      tags:
      - serviceOrder
      parameters:
      - name: id
        description: Identifier of the ServiceOrder
        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/ServiceOrder'
        '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: patchServiceOrder
      summary: Updates partially a ServiceOrder
      description: This operation updates partially a ServiceOrder entity.
      tags:
      - serviceOrder
      parameters:
      - name: id
        description: Identifier of the ServiceOrder
        required: true
        type: string
        in: path
      - name: serviceOrder
        description: The ServiceOrder to be updated
        required: true
        schema:
          $ref: '#/definitions/ServiceOrder_Update'
        in: body
      responses:
        '200':
          description: Updated
          schema:
            $ref: '#/definitions/ServiceOrder'
        '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: deleteServiceOrder
      summary: Deletes a ServiceOrder
      description: This operation deletes a ServiceOrder entity.
      tags:
      - serviceOrder
      parameters:
      - name: id
        description: Identifier of the ServiceOrder
        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:
  ExternalReference:
    type: object
    description: External reference of the individual or reference in other system
    required:
    - name
    properties:
      id:
        type: string
        description: unique identifier
      href:
        type: string
        format: uri
        description: Hyperlink reference
      externalReferenceType:
        type: string
        description: Type of the external reference
      name:
        type: string
        description: External reference name
      '@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
  ResourceRef:
    type: 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
  ServiceOrder_Update:
    type: object
    description: '

      Skipped properties: id,href,orderDate,jeopardyAlert,errorMessage,milestone,@baseType,@schemaLocation,@type,cancellationDate,cancellationReason,category,completionDate,startDate'
    properties:
      description:
        type: string
        description: A free-text description of the service order
      expectedCompletionDate:
        type: string
        format: date-time
        description: Expected delivery date amended by the provider
      externalId:
        type: string
        description: ID given by the consumer to facilitate searches
      notificationContact:
        type: string
        description: Contact attached to the order to send back information regarding this order
      priority:
        type: string
        description: Can be used by consumers to prioritize orders in a Service Order Management system
      requestedCompletionDate:
        type: string
        format: date-time
        description: Requested delivery date from the requestors perspective
      requestedStartDate:
        type: string
        format: date-time
        description: Order start date wished by the requestor
      externalReference:
        type: array
        items:
          $ref: '#/definitions/ExternalReference'
      note:
        type: array
        items:
          $ref: '#/definitions/Note'
        description: Extra-information about the order; e.g. useful to add extra delivery information that could be useful for a human process
      orderRelationship:
        type: array
        items:
          $ref: '#/definitions/ServiceOrderRelationship'
        description: A list of service orders related to this order (e.g. prerequisite, dependent on)
      relatedParty:
        type: array
        items:
          $ref: '#/definitions/RelatedParty'
        description: A list of parties which are involved in this order and the role they are playing
      serviceOrderItem:
        type: array
        items:
          $ref: '#/definitions/ServiceOrderItem'
        description: A list of service order items to be processed by this order
      state:
        $ref: '#/definitions/ServiceOrderStateType'
        description: 'State of the order: described in the state-machine diagram'
  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.
  ServiceOrderJeopardyAlert:
    type: object
    description: A ServiceOrderJeopardyAlert represents a predicted exception during a service order processing that would brings risk to complete successfully the ordetr.
    properties:
      id:
        type: string
        description: identifier of the JeopardyAlert
      alertDate:
        type: string
        format: date-time
        description: A date time( DateTime). The date that the alert issued
      exception:
        type: string
        description: ' The exception associated with this jeopardy alert'
      jeopardyType:
        type: string
        description: A string represents the type of jeopardy/risk like Normal, Hazard, Critical, ...
      message:
        type: string
        description: A string represents the message of the alert
      name:
        type: string
        description: A string used to give a name to the jeopardy alert
      serviceOrderItem:
        type: array
        items:
          $ref: '#/definitions/ServiceOrderItemRef'
        description: A list of order item references corresponded to this alert
      '@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
  ServiceOrderStateType:
    type: string
    description: Possible values for the state of the order
    enum:
    - acknowledged
    - rejected
    - pending
    - held
    - inProgress
    - cancelled
    - completed
    - failed
    - partial
    - assessingCancellation
    - pendingCancellation
  ServiceOrderErrorMessage:
    type: object
    description: A ServiceOrderErrorMessage represents an error that causes a status change in a service order.
    properties:
      code:
        type: string
        description: error code
      message:
        type: string
        description: More details and corrective actions related to the error
      reason:
        type: string
        description: Explanation of the reason for the error
      referenceError:
        type: string
        format: uri
        description: URI of documentation describing the error
      status:
        type: string
        description: error code extension like sys-ABC-2001
      timestamp:
        type: string
        format: date-time
        description: Date when the error happened
      serviceOrderItem:
        type: array
        items:
          $ref: '#/definitions/ServiceOrderItemRef'
        description: A list of order item references corresponded to this 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 Extensible name
  ServiceOrderItemRef:
    type: object
    properties:
      itemId:
        type: string
        description: Identifier of the line item
      serviceOrderHref:
        type: string
        format: uri
        description: Link to the order to which this item belongs to
      serviceOrderId:
        type: string
        description: Identifier of the order that this item belongs to
      '@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
  ServiceOrderItemStateType:
    type: string
    description: Possible values for the state of the order item
    enum:
    - acknowledged
    - rejected
    - pending
    - held
    - inProgress
    - cancelled
    - completed
    - failed
    - assessingCancellation
    - pendingCancellation
    - partial
  ServiceOrderItemErrorMessage:
    type: object
    description: AServiceOrderItemErrorMessage represents an error that causes a status change in a service order item.
    properties:
      code:
        type: string
        description: error code
      message:
        type: string
        description: More details and corrective actions related to the error
      reason:
        type: string
        description: Explanation of the reason for the error
      referenceError:
        type: string
        format: uri
        description: URI of documentation describing the error
      status:
        type: string
        description: error code extension like sys-ABC-2001
      timestamp:
        type: string
        format: date-time
        description: Date when the error happened
      '@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
  ServiceRefOrValue:
    type: object
    description: A Service to be created defined by value or existing defined by reference. The polymorphic attributes @type, @schemaLocation & @referredType are related to the Service entity and not the RelatedServiceRefOrValue class itself
    properties:
      id:
        type: string
        description: Unique identifier of the service
      href:
        type: string
        description: Reference of the service
      category:
        type: string
        description: Is it a customer facing or resource facing service
      description:
        type: string
        description: Free-text description of the service
      endDate:
        type: string
        format: date-time
        description: Date when the service ends
      hasStarted:
        type: boolean
        description: If TRUE, this Service has already been started
      isBundle:
        type: boolean
        description: If true, the service is a ServiceBundle which regroup a service hierachy. If false, the service is a 'atomic' service (hierachy leaf).
      isServiceEnabled:
        type: boolean
        description: 'If FALSE and hasStarted is FALSE, this particular Service has NOT been enabled for use - if FALSE and hasStarted is TRUE then the service has failed '
      isStateful:
        type: boolean
        description: If TRUE, this Service can be changed without affecting any other services
      name:
        type: string
        description: Name of the service
      serviceDate:
        type: string
        description: Date when the service was created (whatever its status).
      serviceType:
        type: string
        description: Business type of the service
      startDate:
        type: string
        format: date-time
        description: Date when the service starts
      startMode:
        type: string
        description: 'This attribute is an enumerated integer that indicates how the Service is started, such as: 0: Unknown; 1: Automatically by the managed environment; 2: Automatically by the owning device; 3: Manually by the Provider of the Service; 4: Manually by a Customer of the Provider; 5: Any of the above'
      feature:
        type: array
        items:
          $ref: '#/definitions/Feature'
        description: 'A list of feature associated with this service '
      note:
        type: array
        items:
          $ref: '#/definitions/Note'
        description: A list of notes made on this service
      place:
        type: array
        items:
          $ref: '#/definitions/RelatedPlaceRefOrValue'
        description: A list of places (Place [*]). Used to define a place useful for the service (for example a geographical place whre the service is installed)
      relatedEntity:
        type: array
        items:
          $ref: '#/definitions/RelatedEntityRefOrValue'
        description: 'A list of related  entity in relationship with this service '
      relatedParty:
        type: array
        items:
          $ref: '#/definitions/RelatedParty'
        description: A list of related party references (RelatedParty [*]). A related party defines party or party role linked to a specific entity
      serviceCharacteristic:
        type: array
        items:
          $ref: '#/definitions/Characteristic'
        description: 'A list of characteristics that characterize this service (ServiceCharacteristic [*]) '
      serviceOrderItem:
        type: array
        items:
          $ref: '#/definitions/RelatedServiceOrderItem'
        description: A list of service order items related to this service
      serviceRelationship:
        type: array
        items:
          $ref: '#/definitions/ServiceRelationship'
        description: A list of service relationships (ServiceRelationship [*]). Describes links with other service(s) in the inventory.
      serviceSpecification:
        $ref: '#/definitions/ServiceSpecificationRef'
        description: The specification from which this service was instantiated
      state:
        $ref: '#/definitions/ServiceStateType'
        description: The life cycle state of the service, such as designed, reserved, active, etc...
      supportingResource:
        type: array
        items:
          $ref: '#/definitions/ResourceRef'
        description: 'A list of supporting resources (SupportingResource [*]).Note: only Service of type RFS can be associated with Resources'
      supportingService:
        type: array
        items:
          $ref: '#/definitions/ServiceRefOrValue'
        description: A list of supporting services (SupportingService [*]). A collection of services that support this service (bundling, link CFS to RFS)
      '@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.
  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
  RelatedPlaceRefOrValue:
    type: object
    description: Related Entity reference. A related place defines a place described by reference or by value linked to a specific entity. The polymorphic attributes @type, @schemaLocation & @referredType are related to the place entity and not the RelatedPlaceRefOrValue class itself
    required:
    - role
    properties:
      id:
        type: string
        description: Unique identifier of the place
      href:
        type: string
        description: Unique reference of the place
      name:
        type: string
        description: A user-friendly name for the place, such as [Paris Store], [London Store], [Main Home]
      role:
        type: string
      '@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.
  ServiceStateType:
    type: string
    description: Valid values for the lifecycle state of the service
    enum:
    - feasibilityChecked
    - designed
    - reserved
    - inactive
    - active
    - terminated
  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
  FeatureRelationship:
    type: object
    description: Configuration feature
    required:
    - name
    - relationshipType
    properties:
      id:
        type: string
        description: Unique identifier of the target feature.
      name:
        type: string
        description: This is the name of the target feature.
      relationshipType:
        type: string
        description: This is the type of the feature relationship.
      validFor:
        $ref: '#/definitions/TimePeriod'
        description: The period for which this feature relationship is valid.
  ServiceOrder:
    type: object
    properties:
      id:
        type: string
        description: ID created on repository side
      href:
        type: string
        description: Hyperlink to access the order
      cancellationDate:
        type: string
        format: date-time
        description: 'Date when the order is cancelled. This is used when order is cancelled. '
      cancellationReason:
        type: string
        description: 'Reason why the order is cancelled. This is used when order is cancelled. '
      category:
        type: string
        description: 'Used to categorize the order, useful for the OM system, such as: Broadband, TVOption'
      completionDate:
        type: string
        format: date-time
        description: Effective delivery date amended by the provider
      description:
        type: string
        description: A free-text description of the service order
      expectedCompletionDate:
        type: string
        format: date-time
        description: Expected delivery date amended by the provider
      externalId:
        type: string
        description: ID given by the consumer to facilitate searches
      notificationContact:
        type: string
        description: Contact attached to the order to send back information regarding this order
      orderDate:
        type: string
        format: date-time
      priority:
        type: string
        description: Can be used by consumers to prioritize orders in a Service Order Management system
      requestedCompletionDate:
        type: string
        format: date-time
        description: Requested delivery date from the requestors perspective
      requestedStartDate:
        type: string
        format: date-time
        description: Order start date wished by the requestor
      startDate:
        type: string
        format: date-time
        description: Date when the order was started for processing
      errorMessage:
        type: array
        items:
          $ref: '#/definitions/ServiceOrderErrorMessage'
        description: the error(s) cause an order status change
      externalReference:
        type: array
        items:
          $ref: '#/definitions/ExternalReference'
      jeopardyAlert:
        type: array
        items:
          $ref: '#/definitions/ServiceOrderJeopardyAlert'
        description: A list of jeopardy alerts related to this order
      milestone:
        type: array
        items:
          $ref: '#/definitions/ServiceOrderMilestone'
        description: A list of milestones related to this order
      note:
        type: array
        items:
          $ref: '#/definitions/Note'
        description: Extra-information about the order; e.g. useful to add extra delivery information that could be useful for a human process
      orderRelationship:
        type: array
        items:
          $ref: '#/definitions/ServiceOrderRelationship'
        description: A list of service orders related to this order (e.g. prerequisite, dependent on)
      relatedParty:
        type: array
        items:
          $ref: '#/definitions/RelatedParty'
        description: A list of parties which are involved in this order and the role they are playing
      serviceOrderItem:
        type: array
        items:
          $ref: '#/definitions/ServiceOrderItem'
        description: A list of service order items to be processed by this order
      state:
        $ref: '#/definitions/ServiceOrderStateType'
        description: 'State of the order: described in the state-machine diagram'
      '@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
  ServiceOrderMilestone:
    type: object
    description: ServiceOrderMilestone represents an action or event marking a significant change or stage in processing of a service order.
    properties:
      id:
        type: string
        description: identifier of the Milestone
      description:
        type: string
        description: free-text description of the Milestone
      message:
        type: string
        description: A string represents the message of the milestone
      milestoneDate:
        type: string
        format: date-time
        description: A date time( DateTime). The date that the milestone happens
      name:
        type: string
        description: A string used to give a name to the milestone
      status:
        type: string
        description: The milestone status
      serviceOrderItem:
        type: array
        items:
          $ref: '#/definitions/ServiceOrderItemRef'
        description: A list of order item references corresponded to this milestone
      '@baseType':
        type: string
        description: When sub-classing, this defines the super-class
      '@schemaLocation':
        type: string
        format: uri
        description: A URI to a JSON-Schema fil

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