openapi: 3.0.1
info:
title: Product Catalog Management agreement troubleTicket 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: troubleTicket
description: Operations for TroubleTicket Resource
paths:
/troubleTicket:
get:
tags:
- troubleTicket
summary: TM Forum List or Find TroubleTicket Objects
description: List or find TroubleTicket objects
operationId: listTroubleTicket
parameters:
- $ref: '#/components/parameters/Fields'
- $ref: '#/components/parameters/Offset'
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/Before'
- $ref: '#/components/parameters/After'
- $ref: '#/components/parameters/Sort'
- $ref: '#/components/parameters/Filter'
responses:
'200':
$ref: '#/components/responses/200TroubleTicketArray'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'503':
$ref: '#/components/responses/503'
post:
tags:
- troubleTicket
summary: TM Forum Creates a TroubleTicket
description: This operation creates a TroubleTicket entity.
operationId: createTroubleTicket
parameters:
- $ref: '#/components/parameters/Fields'
requestBody:
$ref: '#/components/requestBodies/TroubleTicket_FVO'
responses:
'201':
$ref: '#/components/responses/201TroubleTicket'
'202':
description: Accepted
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'409':
$ref: '#/components/responses/409'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'503':
$ref: '#/components/responses/503'
/troubleTicket/{id}:
get:
tags:
- troubleTicket
summary: TM Forum Retrieves a TroubleTicket by ID
description: This operation retrieves a TroubleTicket entity. Attribute selection enabled for all first level attributes.
operationId: retrieveTroubleTicket
parameters:
- $ref: '#/components/parameters/Id'
- $ref: '#/components/parameters/Fields'
responses:
'200':
$ref: '#/components/responses/200TroubleTicket_Get'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'503':
$ref: '#/components/responses/503'
patch:
tags:
- troubleTicket
summary: TM Forum Updates Partially a TroubleTicket
description: This operation updates partially a TroubleTicket entity.
operationId: patchTroubleTicket
parameters:
- $ref: '#/components/parameters/Id'
- $ref: '#/components/parameters/Fields'
requestBody:
$ref: '#/components/requestBodies/TroubleTicket_MVO'
responses:
'200':
$ref: '#/components/responses/200TroubleTicket_Patch'
'202':
description: Accepted
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'409':
$ref: '#/components/responses/409'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'503':
$ref: '#/components/responses/503'
delete:
tags:
- troubleTicket
summary: TM Forum Deletes a TroubleTicket
description: This operation deletes a TroubleTicket entity.
operationId: deleteTroubleTicket
parameters:
- $ref: '#/components/parameters/Id'
responses:
'202':
$ref: '#/components/responses/202'
'204':
$ref: '#/components/responses/204'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'409':
$ref: '#/components/responses/409'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'503':
$ref: '#/components/responses/503'
components:
schemas:
TroubleTicketStatusType:
enum:
- acknowledged
- rejected
- pending
- held
- inProgress
- cancelled
- closed
- resolved
type: string
description: Possible values for the status of the trouble ticket
PartyRefOrPartyRoleRef_MVO:
type: object
description: ''
oneOf:
- $ref: '#/components/schemas/PartyRef_MVO'
- $ref: '#/components/schemas/PartyRoleRef_MVO'
discriminator:
propertyName: '@type'
mapping:
PartyRef: '#/components/schemas/PartyRef_MVO'
PartyRoleRef: '#/components/schemas/PartyRoleRef_MVO'
Note_FVO:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: Extra information about a given entity
properties:
id:
type: string
description: Identifier of the note within its containing entity
example: afa9-3d90aaa8da0f
author:
type: string
description: Author of the note
example: Mr. N. Bene
date:
type: string
format: date-time
description: Date of the note
example: '2020-11-20T08:00:00Z'
text:
type: string
description: Text of the note
example: This is important
discriminator:
propertyName: '@type'
mapping:
Note: '#/components/schemas/Note_FVO'
PartyRoleRef_MVO:
allOf:
- $ref: '#/components/schemas/EntityRef_MVO'
- type: object
description: Party role reference. A party role represents the part played by a party in a given context.
properties:
partyId:
type: string
description: The identifier of the engaged party that is linked to the PartyRole object.
partyName:
type: string
description: The name of the engaged party that is linked to the PartyRole object.
discriminator:
propertyName: '@type'
mapping:
PartyRoleRef: '#/components/schemas/PartyRoleRef_MVO'
Attachment:
allOf:
- $ref: '#/components/schemas/Entity'
- type: object
description: Complements the description of an element (for instance a product) through video, pictures...
properties:
name:
type: string
description: The name of the attachment
description:
type: string
description: A narrative text describing the content of the attachment
example: Photograph of the Product
url:
type: string
description: Uniform Resource Locator, is a web page address (a subset of URI)
example: https://host/Content/4aafacbd-11ff-4dc8-b445-305f2215715f
content:
type: string
format: base64
description: The actual contents of the attachment object, if embedded, encoded as base64
size:
$ref: '#/components/schemas/Quantity'
validFor:
$ref: '#/components/schemas/TimePeriod'
attachmentType:
type: string
description: a business characterization of the purpose of the attachment, for example logo, instructionManual, contractCopy
mimeType:
type: string
description: a technical characterization of the attachment content format using IETF Mime Types
discriminator:
propertyName: '@type'
mapping:
Attachment: '#/components/schemas/Attachment'
ChannelRef_FVO:
type: object
description: The channel to which the resource reference to. e.g. channel for selling product offerings, channel for opening a trouble ticket etc..
allOf:
- $ref: '#/components/schemas/EntityRef'
discriminator:
propertyName: '@type'
mapping:
ChannelRef: '#/components/schemas/ChannelRef_FVO'
RelatedEntity_MVO:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: A reference to an entity, where the type of the entity is not known in advance.
properties:
role:
type: string
entity:
$ref: '#/components/schemas/EntityRef_MVO'
discriminator:
propertyName: '@type'
mapping:
RelatedEntity: '#/components/schemas/RelatedEntity_MVO'
TroubleTicketSpecificationRef_MVO:
allOf:
- $ref: '#/components/schemas/EntityRef_MVO'
- type: object
description: reference to an TroubleTicketSpecification object
properties:
version:
type: string
description: The version of the trouble ticket specification, in case it is desired to maintain multiple versions of trouble ticket specifications
discriminator:
propertyName: '@type'
mapping:
TroubleTicketSpecificationRef: '#/components/schemas/TroubleTicketSpecificationRef_MVO'
TroubleTicketSpecificationRef_FVO:
allOf:
- $ref: '#/components/schemas/EntityRef'
- type: object
description: reference to an TroubleTicketSpecification object
properties:
version:
type: string
description: The version of the trouble ticket specification, in case it is desired to maintain multiple versions of trouble ticket specifications
discriminator:
propertyName: '@type'
mapping:
TroubleTicketSpecificationRef: '#/components/schemas/TroubleTicketSpecificationRef_FVO'
RelatedEntity_FVO:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: A reference to an entity, where the type of the entity is not known in advance.
properties:
role:
type: string
entity:
$ref: '#/components/schemas/EntityRef'
required:
- role
- entity
discriminator:
propertyName: '@type'
mapping:
RelatedEntity: '#/components/schemas/RelatedEntity_FVO'
PartyRoleRef_FVO:
allOf:
- $ref: '#/components/schemas/EntityRef'
- type: object
description: Party role reference. A party role represents the part played by a party in a given context.
properties:
partyId:
type: string
description: The identifier of the engaged party that is linked to the PartyRole object.
partyName:
type: string
description: The name of the engaged party that is linked to the PartyRole object.
discriminator:
propertyName: '@type'
mapping:
PartyRoleRef: '#/components/schemas/PartyRoleRef_FVO'
StatusChange_MVO:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: Holds the status, reasons and associated date the status changed, populated by the server
properties:
statusChangeDate:
type: string
format: date-time
description: The date and time the status changed.
statusChangeReason:
type: string
description: The reason why the status changed.
status:
$ref: '#/components/schemas/TroubleTicketStatusType'
discriminator:
propertyName: '@type'
mapping:
StatusChange: '#/components/schemas/StatusChange_MVO'
ChannelRef_MVO:
type: object
description: The channel to which the resource reference to. e.g. channel for selling product offerings, channel for opening a trouble ticket etc..
allOf:
- $ref: '#/components/schemas/EntityRef_MVO'
discriminator:
propertyName: '@type'
mapping:
ChannelRef: '#/components/schemas/ChannelRef_MVO'
Characteristic_FVO:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: 'Describes a given characteristic of an object or entity through a name/value pair. This is an abstract base class, the actual value is in one of the strongly-typed subclasses : StringCharacteristic, ObjectCharacteristic, FloatCharacteristic, BooleanCharacteristic, NumberCharacteristic, IntegerCharacteristic, StringArrayCharacteristic, ObjectArrayCharacteristic, BooleanArrayCharacteristic, NumberArrayCharacteristic, IntegerArrayCharacteristic...'
properties:
id:
type: string
description: Unique identifier of the characteristic
name:
type: string
description: Name of the characteristic
valueType:
type: string
description: Data type of the value of the characteristic
characteristicRelationship:
type: array
description: Collection of characteristic relationships
items:
$ref: '#/components/schemas/CharacteristicRelationship_FVO'
required:
- name
discriminator:
propertyName: '@type'
mapping:
BooleanArrayCharacteristic: '#/components/schemas/BooleanArrayCharacteristic_FVO'
BooleanCharacteristic: '#/components/schemas/BooleanCharacteristic_FVO'
Characteristic: '#/components/schemas/Characteristic_FVO'
FloatCharacteristic: '#/components/schemas/FloatCharacteristic_FVO'
IntegerArrayCharacteristic: '#/components/schemas/IntegerArrayCharacteristic_FVO'
IntegerCharacteristic: '#/components/schemas/IntegerCharacteristic_FVO'
NumberArrayCharacteristic: '#/components/schemas/NumberArrayCharacteristic_FVO'
NumberCharacteristic: '#/components/schemas/NumberCharacteristic_FVO'
ObjectArrayCharacteristic: '#/components/schemas/ObjectArrayCharacteristic_FVO'
ObjectCharacteristic: '#/components/schemas/ObjectCharacteristic_FVO'
StringArrayCharacteristic: '#/components/schemas/StringArrayCharacteristic_FVO'
StringCharacteristic: '#/components/schemas/StringCharacteristic_FVO'
EntityRef_MVO:
allOf:
- $ref: '#/components/schemas/Extensible'
- $ref: '#/components/schemas/Addressable'
- type: object
description: Entity reference schema to be use for all entityRef class.
properties:
id:
type: string
description: The identifier of the referred entity.
href:
type: string
description: The URI of the referred entity.
name:
type: string
description: Name of the referred entity.
'@referredType':
type: string
description: The actual type of the target instance when needed for disambiguation.
TroubleTicket:
allOf:
- $ref: '#/components/schemas/Entity'
- type: object
description: A trouble ticket is a record of an issue that is created, tracked, and managed by a trouble ticket management system
properties:
name:
type: string
description: Name of the trouble ticket, typically a short description provided by the user that create the ticket
description:
type: string
description: Description of the trouble or issue
severity:
type: string
description: "The severity of the issue. Indicate the implication of the issue on the expected functionality e.g. of a system, application, service etc.. \nSeverity values can be for example : Critical, Major, Minor"
ticketType:
type: string
description: Represent a business type of the trouble ticket e.g. incident, complain, request
attachment:
type: array
items:
$ref: '#/components/schemas/AttachmentRefOrValue'
description: File(s) attached to the trouble ticket. e.g. picture of broken device, scanning of a bill or charge
channel:
$ref: '#/components/schemas/ChannelRef'
creationDate:
type: string
format: date-time
description: The date on which the trouble ticket was created
requestedResolutionDate:
type: string
format: date-time
description: The resolution date requested by the user
expectedResolutionDate:
type: string
format: date-time
description: The expected resolution date determined by the trouble ticket system
resolutionDate:
type: string
format: date-time
description: The date and time the trouble ticket was resolved
externalIdentifier:
type: array
items:
$ref: '#/components/schemas/ExternalIdentifier'
lastUpdate:
type: string
format: date-time
description: The date and time that the trouble ticket was last updated
note:
type: array
items:
$ref: '#/components/schemas/Note'
description: The note(s) that are associated to the ticket.
priority:
type: string
description: 'The priority of the trouble ticket and how quickly the issue should be resolved. Example: Critical, High, Medium, Low. The value is set by the ticket management system considering the severity, ticket type etc...'
relatedEntity:
type: array
items:
$ref: '#/components/schemas/RelatedEntity'
description: An entity that is related to the ticket such as a bill, a product, etc. The entity against which the ticket is associated.
relatedParty:
type: array
items:
$ref: '#/components/schemas/RelatedPartyRefOrPartyRoleRef'
description: The related party(ies) that are associated to the ticket.
status:
$ref: '#/components/schemas/TroubleTicketStatusType'
statusChangeDate:
type: string
format: date-time
description: The date and time the status changed.
statusChangeReason:
type: string
description: The reason for changing the status
statusChangeHistory:
type: array
items:
$ref: '#/components/schemas/StatusChange'
description: The status change history that are associated to the ticket. Populated by the server
troubleTicketRelationship:
type: array
items:
$ref: '#/components/schemas/TroubleTicketRelationship'
description: A list of trouble ticket relationships (TroubleTicketRelationship [*]). Represents a relationship between trouble tickets
troubleTicketSpecification:
$ref: '#/components/schemas/TroubleTicketSpecificationRef'
troubleTicketCharacteristic:
type: array
items:
$ref: '#/components/schemas/Characteristic'
description: List of characteristics of the trouble ticket
discriminator:
propertyName: '@type'
mapping:
TroubleTicket: '#/components/schemas/TroubleTicket'
JsonPatchOperations:
description: JSONPatch Operations document as defined by RFC 6902
type: array
items:
$ref: '#/components/schemas/JsonPatch'
Quantity:
type: object
description: An amount in a given unit
properties:
amount:
type: number
format: float
default: 1
description: Numeric value in a given unit
units:
type: string
description: Unit
CharacteristicRelationship_MVO:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: Another Characteristic that is related to the current Characteristic;
properties:
id:
type: string
description: Unique identifier of the characteristic
relationshipType:
type: string
description: The type of relationship
discriminator:
propertyName: '@type'
mapping:
CharacteristicRelationship: '#/components/schemas/CharacteristicRelationship_MVO'
PartyRoleRef:
allOf:
- $ref: '#/components/schemas/EntityRef'
- type: object
description: Party role reference. A party role represents the part played by a party in a given context.
properties:
partyId:
type: string
description: The identifier of the engaged party that is linked to the PartyRole object.
partyName:
type: string
description: The name of the engaged party that is linked to the PartyRole object.
discriminator:
propertyName: '@type'
mapping:
PartyRoleRef: '#/components/schemas/PartyRoleRef'
Attachment_FVO:
allOf:
- $ref: '#/components/schemas/Entity'
- type: object
description: Complements the description of an element (for instance a product) through video, pictures...
properties:
name:
type: string
description: The name of the attachment
description:
type: string
description: A narrative text describing the content of the attachment
example: Photograph of the Product
url:
type: string
description: Uniform Resource Locator, is a web page address (a subset of URI)
example: https://host/Content/4aafacbd-11ff-4dc8-b445-305f2215715f
content:
type: string
format: base64
description: The actual contents of the attachment object, if embedded, encoded as base64
size:
$ref: '#/components/schemas/Quantity'
validFor:
$ref: '#/components/schemas/TimePeriod'
attachmentType:
type: string
description: a business characterization of the purpose of the attachment, for example logo, instructionManual, contractCopy
mimeType:
type: string
description: a technical characterization of the attachment content format using IETF Mime Types
required:
- attachmentType
- mimeType
discriminator:
propertyName: '@type'
mapping:
Attachment: '#/components/schemas/Attachment_FVO'
AttachmentRefOrValue_FVO:
type: object
description: The polymorphic attributes @type, @schemaLocation & @referredType are related to the Attachment entity and not the AttachmentRefOrValue class itself
oneOf:
- $ref: '#/components/schemas/Attachment_FVO'
- $ref: '#/components/schemas/AttachmentRef_FVO'
discriminator:
propertyName: '@type'
mapping:
Attachment: '#/components/schemas/Attachment_FVO'
AttachmentRef: '#/components/schemas/AttachmentRef_FVO'
ExternalIdentifier_MVO:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: An identification of an entity that is owned by or originates in a software system different from the current system, for example a ProductOrder handed off from a commerce platform into an order handling system. The structure identifies the system itself, the nature of the entity within the system (e.g. class name) and the unique ID of the entity within the system. It is anticipated that multiple external IDs can be held for a single entity, e.g. if the entity passed through multiple systems on the way to the current system. In this case the consumer is expected to sequence the IDs in the array in reverse order of provenance, i.e. most recent system first in the list.
properties:
owner:
type: string
description: Name of the external system that owns the entity.
example: MagentoCommerce
externalIdentifierType:
type: string
description: Type of the identification, typically would be the type of the entity within the external system
example: ProductOrder
id:
type: string
description: identification of the entity within the external system.
discriminator:
propertyName: '@type'
mapping:
ExternalIdentifier: '#/components/schemas/ExternalIdentifier_MVO'
PartyRef_MVO:
type: object
description: A Party reference
allOf:
- $ref: '#/components/schemas/EntityRef_MVO'
discriminator:
propertyName: '@type'
mapping:
PartyRef: '#/components/schemas/PartyRef_MVO'
TroubleTicketRelationship:
allOf:
- $ref: '#/components/schemas/EntityRef'
- type: object
description: Represents a relationship between trouble tickets
properties:
id:
type: string
description: Unique identifier of the related trouble ticket
name:
type: string
description: Name of the trouble ticket
relationshipType:
type: string
description: Type of relationship
discriminator:
propertyName: '@type'
mapping:
TroubleTicketRelationship: '#/components/schemas/TroubleTicketRelationship'
PartyRef:
type: object
description: A Party reference
allOf:
- $ref: '#/components/schemas/EntityRef'
discriminator:
propertyName: '@type'
mapping:
PartyRef: '#/components/schemas/PartyRef'
RelatedEntity:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: A reference to an entity, where the type of the entity is not known in advance.
properties:
role:
type: string
entity:
$ref: '#/components/schemas/EntityRef'
discriminator:
propertyName: '@type'
mapping:
RelatedEntity: '#/components/schemas/RelatedEntity'
TroubleTicket_FVO:
allOf:
- $ref: '#/components/schemas/Entity'
- type: object
description: A trouble ticket is a record of an issue that is created, tracked, and managed by a trouble ticket management system
properties:
name:
type: string
description: Name of the trouble ticket, typically a short description provided by the user that create the ticket
description:
type: string
description: Description of the trouble or issue
severity:
type: string
description: "The severity of the issue. Indicate the implication of the issue on the expected functionality e.g. of a system, application, service etc.. \nSeverity values can be for example : Critical, Major, Minor"
ticketType:
type: string
description: Represent a business type of the trouble ticket e.g. incident, complain, request
attachment:
type: array
items:
$ref: '#/components/schemas/AttachmentRefOrValue_FVO'
description: File(s) attached to the trouble ticket. e.g. picture of broken device, scanning of a bill or charge
channel:
$ref: '#/components/schemas/ChannelRef_FVO'
requestedResolutionDate:
type: string
format: date-time
description: The resolution date requested by the user
expectedResolutionDate:
type: string
format: date-time
description: The expected resolution date determined by the trouble ticket system
resolutionDate:
type: string
format: date-time
description: The date and time the trouble ticket was resolved
externalIdentifier:
type: array
items:
$ref: '#/components/schemas/ExternalIdentifier_FVO'
note:
type: array
items:
$ref: '#/components/schemas/Note_FVO'
description: The note(s) that are associated to the ticket.
priority:
type: string
description: 'The priority of the trouble ticket and how quickly the issue should be resolved. Example: Critical, High, Medium, Low. The value is set by the ticket management system considering the severity, ticket type etc...'
relatedEntity:
type: array
items:
$ref: '#/components/schemas/RelatedEntity_FVO'
description: An entity that is related to the ticket such as a bill, a product, etc. The entity against which the ticket is associated.
relatedParty:
type: array
items:
$ref: '#/components/schemas/RelatedPartyRefOrPartyRoleRef_FVO'
description: The related party(ies) that are associated to the ticket.
status:
$ref: '#/components/schemas/TroubleTicketStatusType'
statusChangeDate:
type: string
format: date-time
description: The date and time the status changed.
statusChangeReason:
type: string
description: The reason for changing the status
troubleTicketRelationship:
type: array
items:
$ref: '#/components/schemas/TroubleTicketRelationship_FVO'
description: A list of trouble ticket relationships (TroubleTicketRelationship [*]). Represents a relationship between trouble tickets
troubleTicketSpecification:
$ref: '#/components/schemas/TroubleTicketSpecificationRef_FVO'
troubleTicketCharacteristic:
type: array
items:
$ref: '#/components/schemas/Characteristic_FVO'
description: List of characteristics of the trouble ticket
required:
- description
- severity
- ticketType
discriminator:
propertyName: '@type'
mapping:
TroubleTicket: '#/components/schemas/TroubleTicket_FVO'
Characteristic_MVO:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: 'Describes a given characteristic of an object or entity through a name/value pair. This is an abstract base class, the actual value is in one of the strongly-typed subclasses : StringCharacteristic, ObjectCharacteristic, FloatCharacteristic, BooleanCharacteristic, NumberCharacteristic, IntegerCharacteristic, StringArrayCharacteristic, ObjectArrayCharacteris
# --- truncated at 32 KB (93 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/tm-forum/refs/heads/main/openapi/tm-forum-troubleticket-api-openapi.yml