openapi: 3.0.1
info:
title: Product Catalog Management agreement serviceSpecification API
description: "Product Catalog API is one of Catalog Management API Family. Product Catalog API goal is to provide a catalog of products. \n### Operations\nProduct Catalog API performs the following operations on the resources :\n- Retrieve an entity or a collection of entities depending on filter criteria\n- Partial update of an entity (including updating rules)\n- Create an entity (including default values and creation rules)\n- Delete an entity\n- Manage notification of events"
version: 5.0.0
servers:
- url: https://serverRoot/productCatalogManagement/v5/
tags:
- name: serviceSpecification
paths:
/serviceSpecification:
get:
operationId: listServiceSpecification
summary: List or find ServiceSpecification objects
description: This operation list or find ServiceSpecification entities
tags:
- serviceSpecification
parameters:
- name: fields
description: Comma-separated properties to be provided in response
required: false
in: query
type: string
- name: offset
description: Requested index for start of resources to be provided in response
required: false
in: query
type: integer
- name: limit
description: Requested number of resources to be provided in response
required: false
in: query
type: integer
responses:
'200':
description: Success
headers:
X-Result-Count:
description: Actual number of items returned in the response body
type: integer
X-Total-Count:
description: Total number of items matching criteria
type: integer
schema:
type: array
items:
$ref: '#/definitions/ServiceSpecification'
'400':
description: Bad Request
schema:
$ref: '#/definitions/Error'
'401':
description: Unauthorized
schema:
$ref: '#/definitions/Error'
'403':
description: Forbidden
schema:
$ref: '#/definitions/Error'
'404':
description: Not Found
schema:
$ref: '#/definitions/Error'
'405':
description: Method Not allowed
schema:
$ref: '#/definitions/Error'
'409':
description: Conflict
schema:
$ref: '#/definitions/Error'
'500':
description: Internal Server Error
schema:
$ref: '#/definitions/Error'
post:
operationId: createServiceSpecification
summary: Creates a ServiceSpecification
description: This operation creates a ServiceSpecification entity.
tags:
- serviceSpecification
parameters:
- name: serviceSpecification
description: The ServiceSpecification to be created
required: true
schema:
$ref: '#/definitions/ServiceSpecification_Create'
in: body
responses:
'201':
description: Created
schema:
$ref: '#/definitions/ServiceSpecification'
'400':
description: Bad Request
schema:
$ref: '#/definitions/Error'
'401':
description: Unauthorized
schema:
$ref: '#/definitions/Error'
'403':
description: Forbidden
schema:
$ref: '#/definitions/Error'
'405':
description: Method Not allowed
schema:
$ref: '#/definitions/Error'
'409':
description: Conflict
schema:
$ref: '#/definitions/Error'
'500':
description: Internal Server Error
schema:
$ref: '#/definitions/Error'
/serviceSpecification/{id}:
get:
operationId: retrieveServiceSpecification
summary: Retrieves a ServiceSpecification by ID
description: This operation retrieves a ServiceSpecification entity. Attribute selection is enabled for all first level attributes.
tags:
- serviceSpecification
parameters:
- name: id
description: Identifier of the ServiceSpecification
required: true
type: string
in: path
- name: fields
description: Comma-separated properties to provide in response
required: false
type: string
in: query
responses:
'200':
description: Success
schema:
$ref: '#/definitions/ServiceSpecification'
'400':
description: Bad Request
schema:
$ref: '#/definitions/Error'
'401':
description: Unauthorized
schema:
$ref: '#/definitions/Error'
'403':
description: Forbidden
schema:
$ref: '#/definitions/Error'
'404':
description: Not Found
schema:
$ref: '#/definitions/Error'
'405':
description: Method Not allowed
schema:
$ref: '#/definitions/Error'
'409':
description: Conflict
schema:
$ref: '#/definitions/Error'
'500':
description: Internal Server Error
schema:
$ref: '#/definitions/Error'
patch:
operationId: patchServiceSpecification
summary: Updates partially a ServiceSpecification
description: This operation updates partially a ServiceSpecification entity.
tags:
- serviceSpecification
parameters:
- name: id
description: Identifier of the ServiceSpecification
required: true
type: string
in: path
- name: serviceSpecification
description: The ServiceSpecification to be updated
required: true
schema:
$ref: '#/definitions/ServiceSpecification_Update'
in: body
responses:
'200':
description: Updated
schema:
$ref: '#/definitions/ServiceSpecification'
'400':
description: Bad Request
schema:
$ref: '#/definitions/Error'
'401':
description: Unauthorized
schema:
$ref: '#/definitions/Error'
'403':
description: Forbidden
schema:
$ref: '#/definitions/Error'
'404':
description: Not Found
schema:
$ref: '#/definitions/Error'
'405':
description: Method Not allowed
schema:
$ref: '#/definitions/Error'
'409':
description: Conflict
schema:
$ref: '#/definitions/Error'
'500':
description: Internal Server Error
schema:
$ref: '#/definitions/Error'
delete:
operationId: deleteServiceSpecification
summary: Deletes a ServiceSpecification
description: This operation deletes a ServiceSpecification entity.
tags:
- serviceSpecification
parameters:
- name: id
description: Identifier of the ServiceSpecification
required: true
type: string
in: path
responses:
'204':
description: Deleted
'400':
description: Bad Request
schema:
$ref: '#/definitions/Error'
'401':
description: Unauthorized
schema:
$ref: '#/definitions/Error'
'403':
description: Forbidden
schema:
$ref: '#/definitions/Error'
'404':
description: Not Found
schema:
$ref: '#/definitions/Error'
'405':
description: Method Not allowed
schema:
$ref: '#/definitions/Error'
'409':
description: Conflict
schema:
$ref: '#/definitions/Error'
'500':
description: Internal Server Error
schema:
$ref: '#/definitions/Error'
definitions:
ServiceSpecification:
type: object
description: 'ServiceSpecification is a class that offers characteristics to describe a type of service.
Functionally, it acts as a template by which Services may be instantiated. By sharing the same specification, these services would therefore share the same set of characteristics.'
properties:
id:
type: string
description: unique identifier
href:
type: string
format: uri
description: Hyperlink reference
description:
type: string
description: Description of the specification
isBundle:
type: boolean
description: isBundle determines whether specification represents a single specification (false), or a bundle of specifications (true).
lastUpdate:
type: string
format: date-time
description: Date and time of the last update of the specification
lifecycleStatus:
type: string
description: Used to indicate the current lifecycle status of this catalog item
name:
type: string
description: Name given to the specification
version:
type: string
description: specification version
attachment:
type: array
items:
$ref: '#/definitions/AttachmentRefOrValue'
description: Attachments that may be of relevance to this specification, such as picture, document, media
constraint:
type: array
items:
$ref: '#/definitions/ConstraintRef'
description: This is a list of constraint references applied to this specification
entitySpecRelationship:
type: array
items:
$ref: '#/definitions/EntitySpecificationRelationship'
description: Relationship to another specification
featureSpecification:
type: array
items:
$ref: '#/definitions/FeatureSpecification'
description: A list of Features for this specification.
relatedParty:
type: array
items:
$ref: '#/definitions/RelatedParty'
description: Parties who manage or otherwise have an interest in this specification
resourceSpecification:
type: array
items:
$ref: '#/definitions/ResourceSpecificationRef'
description: A list of resource specification references (ResourceSpecificationRef [*]). The ResourceSpecification is required for a service specification with type ResourceFacingServiceSpecification (RFSS).
serviceLevelSpecification:
type: array
items:
$ref: '#/definitions/ServiceLevelSpecificationRef'
description: A list of service level specifications related to this service specification, and which will need to be satisifiable for corresponding service instances; e.g. Gold, Platinum
serviceSpecRelationship:
type: array
items:
$ref: '#/definitions/ServiceSpecRelationship'
description: A list of service specifications related to this specification, e.g. migration, substitution, dependency or exclusivity relationship
specCharacteristic:
type: array
items:
$ref: '#/definitions/CharacteristicSpecification'
description: List of characteristics that the entity can take
targetEntitySchema:
$ref: '#/definitions/TargetEntitySchema'
description: Pointer to a schema that defines the target entity
validFor:
$ref: '#/definitions/TimePeriod'
description: The period for which this REST resource is valid
'@baseType':
type: string
description: When sub-classing, this defines the super-class
'@schemaLocation':
type: string
format: uri
description: A URI to a JSON-Schema file that defines additional attributes and relationships
'@type':
type: string
description: When sub-classing, this defines the sub-class Extensible name
Error:
description: Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx)
type: object
required:
- code
- reason
properties:
code:
type: string
description: Application relevant detail, defined in the API or a common list.
reason:
type: string
description: Explanation of the reason for the error which can be shown to a client user.
message:
type: string
description: More details and corrective actions related to the error which can be shown to a client user.
status:
type: string
description: HTTP Error code extension
referenceError:
type: string
format: uri
description: URI of documentation describing the error.
'@baseType':
type: string
description: When sub-classing, this defines the super-class.
'@schemaLocation':
type: string
format: uri
description: A URI to a JSON-Schema file that defines additional attributes and relationships
'@type':
type: string
description: When sub-classing, this defines the sub-class entity name.
FeatureSpecificationRelationship:
type: object
description: Relationship between feature specifications
required:
- name
- relationshipType
properties:
featureId:
type: string
description: Unique identifier of the target feature specification.
name:
type: string
description: This is the name of the target feature specification.
parentSpecificationHref:
type: string
format: uri
description: Hyperlink reference to the parent specification containing the target feature
parentSpecificationId:
type: string
description: Unique identifier of the parent specification containing the target feature
relationshipType:
type: string
description: This is the type of the feature specification relationship.
validFor:
$ref: '#/definitions/TimePeriod'
description: The period for which this feature spoecification relationship is valid.
ServiceSpecRelationship:
type: object
description: A dependency, substitution or exclusivity relationship between/among service specifications.
required:
- relationshipType
properties:
id:
type: string
description: unique identifier
href:
type: string
format: uri
description: Hyperlink reference
name:
type: string
description: Name of the related entity.
relationshipType:
type: string
description: Type of relationship such as dependency, substitution or exclusivity
role:
type: string
description: The association role for this service specification
validFor:
$ref: '#/definitions/TimePeriod'
description: The period for which the serviceSpecRelationship is valid
'@baseType':
type: string
description: When sub-classing, this defines the super-class
'@schemaLocation':
type: string
format: uri
description: A URI to a JSON-Schema file that defines additional attributes and relationships
'@type':
type: string
description: When sub-classing, this defines the sub-class Extensible name
'@referredType':
type: string
description: The actual type of the target instance when needed for disambiguation.
AssociationSpecificationRef:
type: object
description: reference to an AssociationSpecification object
properties:
id:
type: string
description: unique identifier
href:
type: string
format: uri
description: Hyperlink reference
name:
type: string
description: Name of the related entity.
'@baseType':
type: string
description: When sub-classing, this defines the super-class
'@schemaLocation':
type: string
format: uri
description: A URI to a JSON-Schema file that defines additional attributes and relationships
'@type':
type: string
description: When sub-classing, this defines the sub-class Extensible name
'@referredType':
type: string
description: The actual type of the target instance when needed for disambiguation.
required:
- id
ServiceSpecification_Create:
type: object
description: 'ServiceSpecification is a class that offers characteristics to describe a type of service.
Functionally, it acts as a template by which Services may be instantiated. By sharing the same specification, these services would therefore share the same set of characteristics.
Skipped properties: id,href'
required:
- name
properties:
description:
type: string
description: Description of the specification
isBundle:
type: boolean
description: isBundle determines whether specification represents a single specification (false), or a bundle of specifications (true).
lastUpdate:
type: string
format: date-time
description: Date and time of the last update of the specification
lifecycleStatus:
type: string
description: Used to indicate the current lifecycle status of this catalog item
name:
type: string
description: Name given to the specification
version:
type: string
description: specification version
attachment:
type: array
items:
$ref: '#/definitions/AttachmentRefOrValue'
description: Attachments that may be of relevance to this specification, such as picture, document, media
constraint:
type: array
items:
$ref: '#/definitions/ConstraintRef'
description: This is a list of constraint references applied to this specification
entitySpecRelationship:
type: array
items:
$ref: '#/definitions/EntitySpecificationRelationship'
description: Relationship to another specification
featureSpecification:
type: array
items:
$ref: '#/definitions/FeatureSpecification'
description: A list of Features for this specification.
relatedParty:
type: array
items:
$ref: '#/definitions/RelatedParty'
description: Parties who manage or otherwise have an interest in this specification
resourceSpecification:
type: array
items:
$ref: '#/definitions/ResourceSpecificationRef'
description: A list of resource specification references (ResourceSpecificationRef [*]). The ResourceSpecification is required for a service specification with type ResourceFacingServiceSpecification (RFSS).
serviceLevelSpecification:
type: array
items:
$ref: '#/definitions/ServiceLevelSpecificationRef'
description: A list of service level specifications related to this service specification, and which will need to be satisifiable for corresponding service instances; e.g. Gold, Platinum
serviceSpecRelationship:
type: array
items:
$ref: '#/definitions/ServiceSpecRelationship'
description: A list of service specifications related to this specification, e.g. migration, substitution, dependency or exclusivity relationship
specCharacteristic:
type: array
items:
$ref: '#/definitions/CharacteristicSpecification'
description: List of characteristics that the entity can take
targetEntitySchema:
$ref: '#/definitions/TargetEntitySchema'
description: Pointer to a schema that defines the target entity
validFor:
$ref: '#/definitions/TimePeriod'
description: The period for which this REST resource is valid
'@baseType':
type: string
description: When sub-classing, this defines the super-class
'@schemaLocation':
type: string
format: uri
description: A URI to a JSON-Schema file that defines additional attributes and relationships
'@type':
type: string
description: When sub-classing, this defines the sub-class Extensible name
CharacteristicSpecificationRelationship:
type: object
description: An aggregation, migration, substitution, dependency or exclusivity relationship between/among Characteristic specifications. The specification characteristic is embedded within the specification whose ID and href are in this entity, and identified by its ID.
properties:
characteristicSpecificationId:
type: string
description: Unique identifier of the characteristic within the specification
name:
type: string
description: Name of the target characteristic within the specification
parentSpecificationHref:
type: string
format: uri
description: Hyperlink reference to the parent specification containing the target characteristic
parentSpecificationId:
type: string
description: Unique identifier of the parent specification containing the target characteristic
relationshipType:
type: string
description: Type of relationship such as aggregation, migration, substitution, dependency, exclusivity
validFor:
$ref: '#/definitions/TimePeriod'
description: The period for which the object is valid
EntitySpecificationRelationship:
type: object
description: A migration, substitution, dependency or exclusivity relationship between/among entity specifications.
required:
- relationshipType
properties:
id:
type: string
description: unique identifier
href:
type: string
format: uri
description: Hyperlink reference
name:
type: string
description: Name of the related entity.
relationshipType:
type: string
description: Type of relationship such as migration, substitution, dependency, exclusivity
role:
type: string
description: The association role for this entity specification
associationSpec:
$ref: '#/definitions/AssociationSpecificationRef'
description: A specification for an association used by this relationship
validFor:
$ref: '#/definitions/TimePeriod'
description: The period for which the entitySpecRelationship is valid
'@baseType':
type: string
description: When sub-classing, this defines the super-class
'@schemaLocation':
type: string
format: uri
description: A URI to a JSON-Schema file that defines additional attributes and relationships
'@type':
type: string
description: When sub-classing, this defines the sub-class Extensible name
'@referredType':
type: string
description: The actual type of the target instance when needed for disambiguation.
FeatureSpecification:
type: object
description: Specification for resource, service or product features
properties:
id:
type: string
description: Identifier of the feature specification. Must be locally unique within the containing specification, thus allowing direct access to the feature spec.
isBundle:
type: boolean
description: A flag indicating if this is a feature group (true) or not (false)
isEnabled:
type: boolean
description: A flag indicating if the feature is enabled (true) or not (false)
name:
type: string
description: Unique name given to the feature specification
version:
type: string
description: Version of the feature specification
constraint:
type: array
items:
$ref: '#/definitions/ConstraintRef'
description: This is a list of feature constraints
featureSpecCharacteristic:
type: array
items:
$ref: '#/definitions/FeatureSpecificationCharacteristic'
description: This is a list of characteristics for a particular feature
featureSpecRelationship:
type: array
items:
$ref: '#/definitions/FeatureSpecificationRelationship'
description: A dependency, exclusivity or aggratation relationship between/among feature specifications.
validFor:
$ref: '#/definitions/TimePeriod'
description: The period for which this feature specification is valid
ConstraintRef:
type: object
description: Constraint reference. The Constraint resource represents a policy/rule applied to an entity or entity spec.
properties:
id:
type: string
description: unique identifier
href:
type: string
format: uri
description: Hyperlink reference
name:
type: string
description: Name of the related entity.
version:
type: string
description: constraint version
'@baseType':
type: string
description: When sub-classing, this defines the super-class
'@schemaLocation':
type: string
format: uri
description: A URI to a JSON-Schema file that defines additional attributes and relationships
'@type':
type: string
description: When sub-classing, this defines the sub-class Extensible name
'@referredType':
type: string
description: The actual type of the target instance when needed for disambiguation.
required:
- id
Quantity:
type: object
description: An amount in a given unit
properties:
amount:
default: 1
type: number
format: float
description: Numeric value in a given unit
units:
type: string
description: Unit
TimePeriod:
type: object
description: A period of time, either as a deadline (endDateTime only) a startDateTime only, or both
properties:
endDateTime:
example: '1985-04-12T23:20:50.52Z'
type: string
format: date-time
description: End of the time period, using IETC-RFC-3339 format
startDateTime:
example: '1985-04-12T23:20:50.52Z'
type: string
format: date-time
description: Start of the time period, using IETC-RFC-3339 format
ServiceSpecification_Update:
type: object
description: 'ServiceSpecification is a class that offers characteristics to describe a type of service.
Functionally, it acts as a template by which Services may be instantiated. By sharing the same specification, these services would therefore share the same set of characteristics.
Skipped properties: id,href,lastUpdate'
properties:
description:
type: string
description: Description of the specification
isBundle:
type: boolean
description: isBundle determines whether specification represents a single specification (false), or a bundle of specifications (true).
lifecycleStatus:
type: string
description: Used to indicate the current lifecycle status of this catalog item
name:
type: string
description: Name given to the specification
version:
type: string
description: specification version
attachment:
type: array
items:
$ref: '#/definitions/AttachmentRefOrValue'
description: Attachments that may be of relevance to this specification, such as picture, document, media
constraint:
type: array
items:
$ref: '#/definitions/ConstraintRef'
description: This is a list of constraint references applied to this specification
entitySpecRelationship:
type: array
items:
$ref: '#/definitions/EntitySpecificationRelationship'
description: Relationship to another specification
featureSpecification:
type: array
items:
$ref: '#/definitions/FeatureSpecification'
description: A list of Features for this specification.
relatedParty:
type: array
items:
$ref: '#/definitions/RelatedParty'
description: Parties who manage or otherwise have an interest in this specification
resourceSpecification:
type: array
items:
$ref: '#/definitions/ResourceSpecificationRef'
description: A list of resource specification references (ResourceSpecificationRef [*]). The ResourceSpecification is required for a service specification with type ResourceFacingServiceSpecification (RFSS).
serviceLevelSpecification:
type: array
items:
$ref: '#/definitions/ServiceLevelSpecificationRef'
description: A list of service level specifications related to this service specification, and which will need to be satisifiable for corresponding service instances; e.g. Gold, Platinum
serviceSpecRelationship:
type: array
items:
$ref: '#/definitions/ServiceSpecRelationship'
description: A list of service specifications related to this specification, e.g. migration, substitution, dependency or exclusivity relationship
specCharacteristic:
type: array
items:
$ref: '#/definitions/CharacteristicSpecification'
description: List of characteristics that the entity can take
targetEntitySchema:
$ref: '#/definitions/TargetEntitySchema'
description: Pointer to a schema that defines the target entity
validFor:
$ref: '#/definitions/TimePeriod'
description: The period for which this REST resource is valid
'@baseType':
type: string
description: When sub-classing, this defines the super-class
'@schemaLocation':
type: string
format: uri
description: A URI to a JSON-Schema file that defines additional attributes and relationships
'@type':
type: string
description: When sub-classing, this defines the sub-class Extensible name
Any: {}
TargetEntitySchema:
type: object
description: The reference object to the schema and type of target entity which is described by a specification
required:
- '@schemaLocation'
- '@type'
properties:
'@schemaLocation':
type: string
description: This field provides a link to the schema describing the target entity
'@type':
type: string
description: Class type of the target entity
AttachmentRefOrValue:
type: object
description: An attachment by value or by reference. An attachment complements the description of an element, for example through a document, a video, a picture.
properties:
id:
example: 4aafacbd-11ff-4dc8-b445-305f2215715f
type: string
description: Unique identifier for this particular attachment
href:
example: http://host/Attachment/4aafacbd-11ff-4dc8-b445-305f2215715f
type: string
format: uri
description: URI for this Attachment
attachmentType:
example: video
type: string
description: Attachment type such as video, picture
content:
type: string
format: base64
description: The actual contents of the attachment object, if embedded, encoded as base64
description:
example: Photograph of the Product
type: string
description: A narrative text describing the content of the attachment
mimeType:
type: string
description: Attachment mime type such as extension file for video, picture and document
name:
type: string
description: The name of the attachment
url:
example: http://host/Content/4aafacbd-11ff-4dc8-b445-305f2215715f
type: string
format: uri
description: Uniform Resource Locator, is a web page address (a subset of URI)
size:
$ref: '#/definitions/Quantity'
description: The size of the attachment.
validFor:
$ref: '#/definitions/TimePeriod'
description: The period of time for which the attachment is valid
'@baseType':
type: string
description: When sub-classing, this defines the super-class
'@schemaLocation':
type: string
format: uri
descr
# --- truncated at 32 KB (46 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/tm-forum/refs/heads/main/openapi/tm-forum-servicespecification-api-openapi.yml