Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: Trouble Ticket API
description: "**TMF API Reference : TMF - 621 Trouble Ticket**\nThe Trouble Ticket API provides a standardized client interface to Trouble Ticket Management Systems for creating, tracking and managing trouble tickets as a result of an issue or problem identified by a customer or another system. \nExamples of Trouble Ticket API originators (clients) include CRM applications, network management or fault management systems, or other Trouble Ticket management systems (e.g. B2B).\nThe API supports the ability to send requests to create a new trouble ticket specifying the nature and severity of the trouble or issue as well as all necessary related information. The API also includes mechanisms to search for and update existing trouble tickets. Notifications are defined to provide information when a trouble ticket has been updated, including status changes. A basic set of states of a trouble ticket has been specified (as an example) to handle trouble ticket lifecycle management.\nTrouble Ticketing API manages trouble ticket resource:\n -\tA trouble ticket represents a record, or an issue raised by requestor that need to be solved, used for reporting and managing the resolution of problems, incidents or request \n -\tMain trouble ticket attributes are its description, severity, type, related dates (creation, expected resolution, resolution), state and related information (change reason and change date), related parties (originator, owner, reviser, etc.), related entities (product, product order, customer bill) and notes \n Trouble Ticket API performs the following operations on trouble ticket: \n -\tRetrieval of a trouble ticket or a collection of trouble ticket depending on filter criteria \n -\tPartial update of a trouble ticket \n -\tCreation of a trouble ticket \n \tNotification of events on trouble ticket: \n \t-\tTrouble ticket state change \n \t-\tTrouble ticket attribute value change \n \t-\tTrouble ticket resoled \n \t-\tTrouble ticket delete (typically restricted to admin role) \n \t-\tTrouble ticket created \n \t-\tTrouble ticket Information required \n Trouble Ticket API performs the following operations on trouble ticket specification \n-\tRetrieval of a trouble ticket specification or a collection of trouble ticket specification depending on filter criteria \n -\tPartial update of a trouble ticket specification \n-\tCreation of a trouble ticket specification \n-\tNotification of events on trouble ticket specification: \n \t-\tTrouble ticket specification state change \n \t-\tTrouble ticket specification attribute value change \n \t-\tTrouble ticket specification delete (typically restricted to admin role) \n \t-\tTrouble ticket specification created "
version: 5.0.1
x-generation-tooling-version: v8.5.3-hotfix.0
x-generation-data-model-version: unknown
servers:
- url: '{apiRoot}/tmf-api/troubleTicket/v5/'
variables:
apiRoot:
default: https://serverRoot
enum:
- https://serverRoot
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:
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'
TimePeriod:
type: object
description: A period of time, either as a deadline (endDateTime only) a startDateTime only, or both
properties:
startDateTime:
description: Start of the time period, using IETC-RFC-3339 format
type: string
format: date-time
example: '1985-04-12T23:20:50.52Z'
endDateTime:
description: End of the time period, using IETC-RFC-3339 format
type: string
format: date-time
example: '1985-04-12T23:20:50.52Z'
Entity:
type: object
description: Base entity schema for use in TMForum Open-APIs. Property.
allOf:
- $ref: '#/components/schemas/Extensible'
- $ref: '#/components/schemas/Addressable'
StatusChange:
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'
PartyRef:
type: object
description: A Party reference
allOf:
- $ref: '#/components/schemas/EntityRef'
discriminator:
propertyName: '@type'
mapping:
PartyRef: '#/components/schemas/PartyRef'
Attachment_MVO:
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_MVO'
Extensible:
type: object
description: Base Extensible schema for use in TMForum Open-APIs - When used for in a schema it means that the Entity described by the schema MUST be extended with the @type
properties:
'@type':
type: string
description: When sub-classing, this defines the sub-class Extensible name
'@baseType':
type: string
description: When sub-classing, this defines the super-class
'@schemaLocation':
type: string
description: A URI to a JSON-Schema file that defines additional attributes and relationships
required:
- '@type'
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'
PartyRefOrPartyRoleRef_FVO:
type: object
description: ''
oneOf:
- $ref: '#/components/schemas/PartyRef_FVO'
- $ref: '#/components/schemas/PartyRoleRef_FVO'
discriminator:
propertyName: '@type'
mapping:
PartyRef: '#/components/schemas/PartyRef_FVO'
PartyRoleRef: '#/components/schemas/PartyRoleRef_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'
JsonPatch:
type: object
description: A JSONPatch document as defined by RFC 6902
required:
- op
- path
properties:
op:
type: string
description: The operation to be performed
enum:
- add
- remove
- replace
- move
- copy
- test
path:
type: string
description: A JSON-Pointer
value:
description: The value to be used within the operations.
from:
type: string
description: A string containing a JSON Pointer value.
Characteristic:
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'
discriminator:
propertyName: '@type'
mapping:
BooleanArrayCharacteristic: '#/components/schemas/BooleanArrayCharacteristic'
BooleanCharacteristic: '#/components/schemas/BooleanCharacteristic'
Characteristic: '#/components/schemas/Characteristic'
FloatCharacteristic: '#/components/schemas/FloatCharacteristic'
IntegerArrayCharacteristic: '#/components/schemas/IntegerArrayCharacteristic'
IntegerCharacteristic: '#/components/schemas/IntegerCharacteristic'
NumberArrayCharacteristic: '#/components/schemas/NumberArrayCharacteristic'
NumberCharacteristic: '#/components/schemas/NumberCharacteristic'
ObjectArrayCharacteristic: '#/components/schemas/ObjectArrayCharacteristic'
ObjectCharacteristic: '#/components/schemas/ObjectCharacteristic'
StringArrayCharacteristic: '#/components/schemas/StringArrayCharacteristic'
StringCharacteristic: '#/components/schemas/StringCharacteristic'
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'
Note_MVO:
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_MVO'
AttachmentRef_FVO:
allOf:
- $ref: '#/components/schemas/EntityRef'
- type: object
description: Attachment reference. An attachment complements the description of an element (for instance a product) through video, pictures
properties:
description:
type: string
description: A narrative text describing the content of the attachment
url:
description: Link to the attachment media/content
type: string
discriminator:
propertyName: '@type'
mapping:
AttachmentRef: '#/components/schemas/AttachmentRef_FVO'
PartyRefOrPartyRoleRef:
type: object
description: ''
oneOf:
- $ref: '#/components/schemas/PartyRef'
- $ref: '#/components/schemas/PartyRoleRef'
discriminator:
propertyName: '@type'
mapping:
PartyRef: '#/components/schemas/PartyRef'
PartyRoleRef: '#/components/schemas/PartyRoleRef'
Error:
discriminator:
propertyName: '@type'
mapping:
Error: '#/components/schemas/Error'
allOf:
- $ref: '#/components/schemas/Extensible'
- 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
description: URI of documentation describing the error.
description: Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx)
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'
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'
Note:
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'
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'
RelatedPartyRefOrPartyRoleRef_FVO:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: RelatedParty reference. A related party defines party or party role or its reference, linked to a specific entity
properties:
role:
description: Role played by the related party or party role in the context of the specific entity it is linked to. Such as 'initiator', 'customer', 'salesAgent', 'user'
type: string
partyOrPartyRole:
$ref: '#/components/schemas/PartyRefOrPartyRoleRef_FVO'
required:
- role
discriminator:
propertyName: '@type'
mapping:
RelatedPartyRefOrPartyRoleRef: '#/components/schemas/RelatedPartyRefOrPartyRoleRef_FVO'
TroubleTicket_RES:
type: object
description: Response object for TroubleTicket
allOf:
- $ref: '#/components/schemas/TroubleTicket'
required:
- id
- href
discriminator:
propertyName: '@type'
mapping:
TroubleTicket: '#/components/schemas/TroubleTicket'
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:
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'
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'
CharacteristicRelationship_FVO:
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
required:
- id
- relationshipType
discriminator:
propertyName: '@type'
mapping:
CharacteristicRelationship: '#/components/schemas/CharacteristicRelationship_FVO'
AttachmentRef_MVO:
allOf:
- $ref: '#/components/schemas/EntityRef_MVO'
- type: object
description: Attachment reference. An attachment complements the description of an element (for instance a product) through video, pictures
properties:
description:
type: string
description: A narrative text describing the content of the attachment
url:
description: Link to the attachment media/content
type: string
discriminator:
propertyName: '@type'
mapping:
AttachmentRef: '#/components/schemas/AttachmentRef_MVO'
PartyRef_MVO:
type: object
description: A Party reference
allOf:
- $ref: '#/components/schemas/EntityRef_MVO'
discriminator:
propertyName: '@type'
mapping:
PartyRef: '#/components/schemas/PartyRef_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 sp
# --- truncated at 32 KB (95 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/tm-forum/refs/heads/main/openapi/tm-forum-troubleticket-api-openapi.yml