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