openapi: 3.1.0 info: title: FIT-Trouble Ticket description: |- The 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. Examples of Trouble Ticket API originators (clients) include CRM applications, network management or fault management systems, or other Trouble Ticket management systems (e.g. B2B). The 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. ### Resources -A 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 -Main trouble ticket attributes are its description, severity, type, related dates (creation, expected resolution, resolution), state and related information (change message and change date), related parties (originator, owner, reviser, etc.), related entities (product, product order, customer bill) and notes ### Operations -Retrieval of a trouble ticket or a collection of trouble ticket depending on filter criteria -Partial update of a trouble ticket -Creation of a trouble ticket #### Notification of events on trouble ticket -Trouble ticket state change -Trouble ticket attribute value change -Trouble ticket created -Trouble ticket Information required #### Trouble Ticket API performs the following operations on trouble ticket specification -Retrieval of a trouble ticket specification or a collection of trouble ticket specification depending on filter criteria -Partial update of a trouble ticket specification -Creation of a trouble ticket specification -Notification of events on trouble ticket specification: -Trouble ticket specification state change -Trouble ticket specification attribute value change -Trouble ticket specification delete (typically restricted to admin role) -Trouble ticket specification created #### TMF API Reference TMF API Reference : TMF - 621 Trouble Ticket #### FIT Adaptations TroubleTicket: - PATCH & DELETE are not used for FIT - Added Milestone / JeopardyAlert adapted to FIT requirements TroubleTicketSpecification: POST, PATCH & DELETE are not used for FIT Added Task resources: CancelTroubleTicket & InflightChangeTroubleTicket TroubleTicket strongly-typed extension @FaultTicket: AgreementRefOrValue, TimeSlot, Appointment, faultDescriptionMessage, resolutionDisputeReason, expressFaultResolution, interimMessageRequested, endUserContactAllowed #### Sources The source API definition can be found at [fit-tmf621.yaml](https://bitbucket.org/fit-api/fit-api/src/tmf621_v1.0.0/tmf621/oas/fit-tmf621.yaml) version: '1.0.0' servers: - url: https://api.example.org/tmf-api/troubleTicketManagement/v5 - url: http://localhost:8080/tmf-api/troubleTicketManagement/v5 security: - OAuth2ClientCredentials: - read - write tags: - name: troubleTicket description: Operations for TroubleTicket Resource - name: troubleTicketSpecification description: Operations for TroubleTicketSpecification Resource - name: inflightChangeTroubleTicket description: Operations for InflightChangeTroubleTicket Resource - name: cancelTroubleTicket description: Operations for CancelTroubleTicket Resource - name: notification listener description: Notifications for Resource Lifecycle and event notifications paths: /troubleTicket: get: operationId: listTroubleTicket summary: List or find TroubleTicket objects description: This operation retrieves a TroubleTicket entity. Attribute selection enabled for all first level attributes. parameters: - $ref: '#/components/parameters/Fields' - $ref: '#/components/parameters/Offset' - $ref: '#/components/parameters/Limit' 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' security: - OAuth2ClientCredentials: - read tags: - troubleTicket post: operationId: createTroubleTicket summary: Creates a TroubleTicket description: This operation creates a TroubleTicket entity. parameters: - $ref: '#/components/parameters/Fields' requestBody: $ref: '#/components/requestBodies/TroubleTicket_FVO' responses: '201': $ref: '#/components/responses/201TroubleTicket' '202': $ref: '#/components/responses/202' '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' security: - OAuth2ClientCredentials: - write tags: - troubleTicket /troubleTicket/{id}: get: operationId: retrieveTroubleTicket summary: Retrieves a TroubleTicket by ID description: List or find TroubleTicket objects 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' security: - OAuth2ClientCredentials: - read tags: - troubleTicket /inflightChangeTroubleTicket: get: operationId: listInflightChangeTroubleTicket summary: List or find InflightChangeTroubleTicket objects description: List or find InflightChangeTroubleTicket objects parameters: - $ref: '#/components/parameters/Fields' - $ref: '#/components/parameters/Offset' - $ref: '#/components/parameters/Limit' responses: '200': $ref: '#/components/responses/200InflightChangeTroubleTicketArray' '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' security: - OAuth2ClientCredentials: - read tags: - inflightChangeTroubleTicket post: operationId: createInflightChangeTroubleTicket summary: Creates a InflightChangeTroubleTicket description: This operation creates a InflightChangeTroubleTicket entity. parameters: - $ref: '#/components/parameters/Fields' requestBody: $ref: '#/components/requestBodies/InflightChangeTroubleTicket_FVO' responses: '201': $ref: '#/components/responses/201InflightChangeTroubleTicket' '202': $ref: '#/components/responses/202' '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' security: - OAuth2ClientCredentials: - write tags: - inflightChangeTroubleTicket /inflightChangeTroubleTicket/{id}: get: operationId: retrieveInflightChangeTroubleTicket summary: Retrieves a InflightChangeTroubleTicket by ID description: |- This operation retrieves a InflightChangeTroubleTicket entity. Attribute selection enabled for all first level attributes. parameters: - $ref: '#/components/parameters/Id' - $ref: '#/components/parameters/Fields' responses: '200': $ref: '#/components/responses/200InflightChangeTroubleTicket_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' security: - OAuth2ClientCredentials: - read tags: - inflightChangeTroubleTicket /cancelTroubleTicket: get: operationId: listCancelTroubleTicket summary: List or find CancelTroubleTicket objects description: List or find CancelTroubleTicket objects parameters: - $ref: '#/components/parameters/Fields' - $ref: '#/components/parameters/Offset' - $ref: '#/components/parameters/Limit' responses: '200': $ref: '#/components/responses/200CancelTroubleTicketArray' '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' security: - OAuth2ClientCredentials: - read tags: - cancelTroubleTicket post: operationId: createCancelTroubleTicket summary: Creates a CancelTroubleTicket description: This operation creates a CancelTroubleTicket entity. parameters: - $ref: '#/components/parameters/Fields' requestBody: $ref: '#/components/requestBodies/CancelTroubleTicket_FVO' responses: '201': $ref: '#/components/responses/201CancelTroubleTicket' '202': $ref: '#/components/responses/202' '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' security: - OAuth2ClientCredentials: - write tags: - cancelTroubleTicket /cancelTroubleTicket/{id}: get: operationId: retrieveCancelTroubleTicket summary: Retrieves a CancelTroubleTicket by ID description: |- This operation retrieves a CancelTroubleTicket entity. Attribute selection enabled for all first level attributes. parameters: - $ref: '#/components/parameters/Id' - $ref: '#/components/parameters/Fields' responses: '200': $ref: '#/components/responses/200CancelTroubleTicket_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' security: - OAuth2ClientCredentials: - read tags: - cancelTroubleTicket /listener/troubleTicketCreateEvent: post: operationId: troubleTicketCreateEvent summary: Client listener for entity TroubleTicketCreateEvent description: Example of a client listener for receiving the notification TroubleTicketCreateEvent requestBody: $ref: '#/components/requestBodies/TroubleTicketCreateEvent' responses: '204': $ref: '#/components/responses/204Notified' default: $ref: '#/components/responses/DefaultError' security: - OAuth2ClientCredentials: - write tags: - notification listener /listener/troubleTicketAttributeValueChangeEvent: post: operationId: troubleTicketAttributeValueChangeEvent summary: Client listener for entity TroubleTicketAttributeValueChangeEvent description: Example of a client listener for receiving the notification TroubleTicketAttributeValueChangeEvent requestBody: $ref: '#/components/requestBodies/TroubleTicketAttributeValueChangeEvent' responses: '204': $ref: '#/components/responses/204Notified' default: $ref: '#/components/responses/DefaultError' security: - OAuth2ClientCredentials: - write tags: - notification listener /listener/troubleTicketStatusChangeEvent: post: operationId: troubleTicketStatusChangeEvent summary: Client listener for entity TroubleTicketStatusChangeEvent description: Example of a client listener for receiving the notification TroubleTicketStatusChangeEvent requestBody: $ref: '#/components/requestBodies/TroubleTicketStatusChangeEvent' responses: '204': $ref: '#/components/responses/204Notified' default: $ref: '#/components/responses/DefaultError' security: - OAuth2ClientCredentials: - write tags: - notification listener /listener/inflightChangeTroubleTicketStateChangeEvent: post: operationId: listenToInflightChangeTroubleTicketStateChangeEvent summary: Client listener for entity InflightChangeTroubleTicketStateChangeEvent description: Example of a client listener for receiving notification InflightChangeTroubleTicketStateChangeEvent requestBody: $ref: '#/components/requestBodies/InflightChangeTroubleTicketStateChangeEvent' responses: '204': $ref: '#/components/responses/204Notified' default: $ref: '#/components/responses/DefaultError' security: - OAuth2ClientCredentials: - write tags: - notification listener /listener/cancelTroubleTicketStateChangeEvent: post: operationId: listenToCancelTroubleTicketStateChangeEvent summary: Client listener for entity CancelTroubleTicketStateChangeEvent description: Example of a client listener for receiving notification CancelTroubleTicketStateChangeEvent requestBody: $ref: '#/components/requestBodies/CancelTroubleTicketStateChangeEvent' responses: '204': $ref: '#/components/responses/204Notified' default: $ref: '#/components/responses/DefaultError' security: - OAuth2ClientCredentials: - write tags: - notification listener /listener/troubleTicketResolvedEvent: post: operationId: troubleTicketResolvedEvent summary: Client listener for entity TroubleTicketResolvedEvent description: Example of a client listener for receiving the notification TroubleTicketResolvedEvent requestBody: $ref: '#/components/requestBodies/TroubleTicketResolvedEvent' responses: '204': $ref: '#/components/responses/204Notified' default: $ref: '#/components/responses/DefaultError' security: - OAuth2ClientCredentials: - write tags: - notification listener /listener/troubleTicketInformationRequiredEvent: post: operationId: troubleTicketInformationRequiredEvent summary: Client listener for entity TroubleTicketInformationRequiredEvent description: Example of a client listener for receiving the notification TroubleTicketInformationRequiredEvent requestBody: $ref: '#/components/requestBodies/TroubleTicketInformationRequiredEvent' responses: '204': $ref: '#/components/responses/204Notified' default: $ref: '#/components/responses/DefaultError' security: - OAuth2ClientCredentials: - write tags: - notification listener /listener/troubleTicketMilestoneEvent: post: operationId: listenToTroubleTicketMilestoneEvent summary: Client listener for entity TroubleTicketMilestoneEvent description: Example of a client listener for receiving the notification TroubleTicketMilestoneEvent requestBody: $ref: '#/components/requestBodies/TroubleTicketMilestoneEvent' responses: '204': $ref: '#/components/responses/204Notified' default: $ref: '#/components/responses/DefaultError' security: - OAuth2ClientCredentials: - write tags: - notification listener /listener/troubleTicketJeopardyAlertEvent: post: operationId: listenToTroubleTicketJeopardyAlertEvent summary: Client listener for entity TroubleTicketJeopardyAlertEvent description: Example of a client listener for receiving the notification TroubleTicketJeopardyAlertEvent requestBody: $ref: '#/components/requestBodies/TroubleTicketJeopardyAlertEvent' responses: '204': $ref: '#/components/responses/204Notified' default: $ref: '#/components/responses/DefaultError' security: - OAuth2ClientCredentials: - write tags: - notification listener /troubleTicketSpecification: get: operationId: listTroubleTicketSpecification summary: List or find TroubleTicketSpecification objects description: |- This operation retrieves a TroubleTicketSpecification entity. Attribute selection enabled for all first level attributes. parameters: - $ref: '#/components/parameters/Fields' - $ref: '#/components/parameters/Offset' - $ref: '#/components/parameters/Limit' responses: '200': $ref: '#/components/responses/200TroubleTicketSpecificationArray' '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' security: - OAuth2ClientCredentials: - read tags: - troubleTicketSpecification /troubleTicketSpecification/{id}: get: operationId: retrieveTroubleTicketSpecification summary: Retrieves a TroubleTicketSpecification by ID description: List or find TroubleTicketSpecification objects parameters: - $ref: '#/components/parameters/Id' responses: '200': $ref: '#/components/responses/200TroubleTicketSpecification_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' security: - OAuth2ClientCredentials: - read tags: - troubleTicketSpecification /listener/troubleTicketSpecificationCreateEvent: post: operationId: troubleTicketSpecificationCreateEvent summary: Client listener for entity TroubleTicketSpecificationCreateEvent description: |- Example of a client listener for receiving the notification TroubleTicketSpecificationCreateEvent requestBody: $ref: '#/components/requestBodies/TroubleTicketSpecificationCreateEvent' responses: '204': $ref: '#/components/responses/204Notified' default: $ref: '#/components/responses/DefaultError' security: - OAuth2ClientCredentials: - write tags: - notification listener /listener/troubleTicketSpecificationAttributeValueChangeEvent: post: operationId: troubleTicketSpecificationAttributeValueChangeEvent summary: Client listener for entity TroubleTicketSpecificationCreateEvent description: |- Example of a client listener for receiving the notification TroubleTicketSpecificationAttributeValueChangeEvent requestBody: $ref: '#/components/requestBodies/TroubleTicketSpecificationAttributeValueChangeEvent' responses: '204': $ref: '#/components/responses/204Notified' default: $ref: '#/components/responses/DefaultError' security: - OAuth2ClientCredentials: - write tags: - notification listener /listener/troubleTicketSpecificationStatusChangeEvent: post: operationId: troubleTicketSpecificationStatusChangeEvent summary: Client listener for entity TroubleTicketSpecificationCreateEvent description: |- Example of a client listener for receiving the notification TroubleTicketSpecificationStatusChangeEvent requestBody: $ref: '#/components/requestBodies/TroubleTicketSpecificationStatusChangeEvent' responses: '204': $ref: '#/components/responses/204Notified' default: $ref: '#/components/responses/DefaultError' security: - OAuth2ClientCredentials: - write tags: - notification listener /listener/troubleTicketSpecificationDeleteEvent: post: operationId: troubleTicketSpecificationDeleteEvent summary: Client listener for entity TroubleTicketSpecificationCreateEvent description: |- Example of a client listener for receiving the notification TroubleTicketSpecificationDeleteEvent requestBody: $ref: '#/components/requestBodies/TroubleTicketSpecificationDeleteEvent' responses: '204': $ref: '#/components/responses/204Notified' default: $ref: '#/components/responses/DefaultError' security: - OAuth2ClientCredentials: - write tags: - notification listener components: schemas: TroubleTicketRemark: description: Specialization of Note allOf: - $ref: '#/components/schemas/Note' - type: object discriminator: propertyName: '@type' mapping: TroubleTicketRemark: '#/components/schemas/TroubleTicketRemark' ChannelRef: description: The channel to which the resource reference to. e.g. channel for selling product offerings, channel for opening a trouble ticket etc.. type: object allOf: - $ref: '#/components/schemas/EntityRef' discriminator: propertyName: '@type' mapping: ChannelRef: '#/components/schemas/ChannelRef' QuestionAnswer: description: An object defined as a combination of a question and an answer. type: object properties: questionId: description: The ID of a question from a question/answer catalog type: string example: DSL01 answerId: description: The ID of an answer from a question/answer catalog type: string example: DSL01-01 ExpressFaultResolutionType: description: |- Possible values for the express resolution selection: type: string enum: - standard - oneTime - none FaultTicket: allOf: - $ref: '#/components/schemas/TroubleTicket' - type: object description: A specific type of trouble ticket is a record of a fault on a product required: - ticketType - externalIdentifier - agreement properties: ticketType: type: string description: type: string accessLineId: description: Technical identifier for a physical connection type: string example: DEU.DTAG.FTYLIQ7PFT agreement: description: A reference to an agreement defined in the context of the product order type: array items: $ref: '#/components/schemas/AgreementRefOrValue' endUserContactAllowed: description: Defines if direct contact with end user is allowed type: boolean endUserAppointmentIsNecessary: description: Defines if an appointment with the endUser is necessary type: boolean expressFaultResolution: $ref: '#/components/schemas/ExpressFaultResolutionType' faultQuestionnaire: description: An array of questions and answers type: array minItems: 0 maxItems: 99 items: $ref: '#/components/schemas/QuestionAnswer' interimMessagesRequested: description: Defines if interim messages are requested to be provided type: boolean networkTerminationLocation: description: Describes the location of the network termination in the building type: string example: Flur resolutionDisputeReason: description: Indicates the reason why the resolution of the trouble ticket is disputed type: string requestedTimeSlot: $ref: '#/components/schemas/TimeSlot' appointment: $ref: '#/components/schemas/AppointmentRefOrValue' categoryId: description: Identifier of the trouble ticket category type: string billingItem: description: Array/List of billing items type: array minItems: 0 maxItems: 99 items: type: string discriminator: propertyName: '@type' mapping: FaultTicket: '#/components/schemas/FaultTicket' FaultTicket_FVO: allOf: - $ref: '#/components/schemas/TroubleTicket_FVO' - type: object description: A specific type of trouble ticket is a record of a fault on a product required: - ticketType - externalIdentifier - agreement properties: ticketType: type: string description: type: string accessLineId: description: Technical identifier for a physical connection type: string example: DEU.DTAG.FTYLIQ7PFT agreement: description: A reference to an agreement defined in the context of the product order type: array items: $ref: '#/components/schemas/AgreementRefOrValue' endUserContactAllowed: description: Defines if direct contact with end user is allowed type: boolean endUserAppointmentIsNecessary: description: Defines if an appointment with the endUser is necessary type: boolean expressFaultResolution: $ref: '#/components/schemas/ExpressFaultResolutionType' faultQuestionnaire: description: An array of questions and answers type: array minItems: 0 maxItems: 99 items: $ref: '#/components/schemas/QuestionAnswer' interimMessagesRequested: description: Defines if interim messages are requested to be provided type: boolean networkTerminationLocation: description: Describes the location of the network termination in the building type: string example: Flur resolutionDisputeReason: description: Indicates the reason why the resolution of the trouble ticket is disputed type: string requestedTimeSlot: $ref: '#/components/schemas/TimeSlot' appointment: $ref: '#/components/schemas/AppointmentRefOrValue' categoryId: description: Identifier of the trouble ticket category type: string billingItem: description: Array/List of billing items type: array minItems: 0 maxItems: 99 items: type: string discriminator: propertyName: '@type' mapping: FaultTicket: '#/components/schemas/FaultTicket_FVO' ProductRef: allOf: - $ref: '#/components/schemas/EntityRef' - type: object description: Reference to a product discriminator: propertyName: '@type' mapping: ProductRef: '#/components/schemas/ProductRef' ProductTestRef: allOf: - $ref: '#/components/schemas/EntityRef' - type: object description: Reference to a product test discriminator: propertyName: '@type' mapping: ProductTestRef: '#/components/schemas/ProductTestRef' 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 required: - orderPostedDate properties: name: description: Name of the trouble ticket, typically a short description provided by the user that create the ticket type: string description: description: Description of the trouble or issue type: string orderPostedDate: description: Date when the order was posted by the requester type: string format: date-time example: '2023-01-01T08:00:00+01:00' severity: description: |- The severity of the issue. Indicate the implication of the issue on the expected functionality e.g. of a system, application, service etc.. Severity values can be for example : Critical, Major, Minor type: string ticketType: description: represent a business type of the trouble ticket e.g. incident, complain, request type: string attachment: description: File(s) attached to the trouble ticket. e.g. picture of broken device, scaning of a bill or charge type: array items: $ref: '#/components/schemas/AttachmentRefOrValue' channel: $ref: '#/components/schemas/ChannelRef' creationDate: description: The date on which the trouble ticket was created type: string format: date-time requestedResolutionDate: description: The resolution date requested by the user type: string format: date-time expectedResolutionDate: description: The expected resolution date determined by the trouble ticket system type: string format: date-time resolutionDate: description: The date and time the trouble ticket was resolved type: string format: date-time externalIdentifier: type: array items: $ref: '#/components/schemas/ExternalIdentifier' lastUpdate: description: The date and time that the trouble ticket was last updated type: string format: date-time note: description: The note(s) that are associated to the ticket. type: array items: $ref: '#/components/schemas/TroubleTicketRemark' priority: 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...' type: string 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. type: array items: $ref: '#/components/schemas/RelatedEntityRefOrValue' relatedParty: description: The related party(ies) that are associated to the ticket. type: array items: $ref: '#/components/schemas/RelatedPartyOrPartyRole' status: $ref: '#/components/schemas/TroubleTicketStatusType' statusChangeDate: description: The date and time the status changed. type: string format: date-time statusChangeMessage: description: Message for the status change described as a combination of a text and a code. type: array items: $ref: '#/components/schemas/Message' statusChangeHistory: description: The status change history that are associated to the ticket. Populated by the server type: array items: $ref: '#/components/schemas/StatusChange' troubleTicketRelationship: description: A list of trouble ticket relationships (TroubleTicketRelationship [*]). Represents a relationship between trouble tickets type: array items: $ref: '#/components/schemas/TroubleTicketRelationship' troubleTicketCharacteristic: description: List of characteristics of the trouble ticket type: array items: $ref: '#/components/schemas/Characteristic' troubleTicketJeopardyAlert: description: List of TroubleTicketJeopardyAlerts. A TroubleTicketJeopardyAlert represents a predicted exception during a trouble ticket processing that would brings risk to resolve successfully the trouble ticket. type: array items: $ref: '#/components/schemas/TroubleTicketJeopardyAlert' troubleTicketMilestone: description: List of TroubleTicketMilestones. A TroubleTicketMilestone represents an action or event marking a significant change or stage in processing of a trouble ticket. type: array items: $ref: '#/components/schemas/TroubleTicketMilestone' troubleTicketSpecification: $ref: '#/components/schemas/TroubleTicketSpecificationRef' ticketIsChargingRelevant: description: Boolean amended by the provider defining if the processing of the TroubleTicket is charging relevant type: boolean example: false discriminator: propertyName: '@type' mapping: TroubleTicket: '#/components/schemas/TroubleTicket' FaultTicket: '#/components/schemas/FaultTicket' TroubleTicketAttributeValueChangeEvent: allOf: - $ref: '#/components/schemas/AttributeValueChangeEvent' - type: object description: TroubleTicketAttributeValueChange structure properties: event: $ref: '#/components/schemas/TroubleTicketAttributeValueChangeEventPayload' discriminator: propertyName: '@type' mapping: TroubleTicketAttributeValueChangeEvent: '#/components/schemas/TroubleTicketAttributeValueChangeEvent' TroubleTicketAttributeValueChangeEventPayload: description: TroubleTicketAttributeValueChangeEventPayload generic structure type: object properties: troubleTicket: $ref: '#/components/schemas/TroubleTicket' TroubleTicketCreateEvent: allOf: - $ref: '#/components/schemas/Event' - type: object description: TroubleTicketCreateEvent generic structure properties: event: $ref: '#/components/schemas/TroubleTicketCreateEventPayload' discriminator: propertyName: '@type' mapping: TroubleTicketCreateEvent: '#/components/schemas/TroubleTicketCreateEvent' TroubleTicketCreateEventPayload: description: TroubleTicketCreateEventPayload generic structure type: object properties: troubleTicket: $ref: '#/components/schemas/TroubleTicket' TroubleTicketInformationRequiredEvent: allOf: - $ref: '#/components/schemas/Event' - type: object description: TroubleTicketInformationRequiredEvent generic structure properties: fieldPath: description: TODO type: array items: $ref: '#/components/schemas/FieldPath' event: $ref: '#/components/schemas/TroubleTicketInformationRequiredEventPayload' discriminator: propertyName: '@type' mapping: TroubleTicketInformationRequiredEvent: '#/components/schemas/TroubleTicketInformationRequiredEvent' TroubleTicketInformationRequiredEventPayload: description: TroubleTicketInformationRequiredEventPayload generic structure type: object properties: troubleTicket: $ref: '#/components/schemas/TroubleTicket' informationRequired: $ref: '#/components/schemas/JsonPatch' TroubleTicketJeopardyAlert: description: A TroubleTicketJeopardyAlert represents a predicted exception during a trouble ticket processing that would brings risk to resolve successfully the trouble ticket. type: object allOf: - $ref: '#/components/schemas/JeopardyAlert' discriminator: propertyName: '@type' mapping: TroubleTicketJeopardyAlert: '#/components/schemas/TroubleTicketJeopardyAlert' TroubleTicketJeopardyAlertEvent: description: TroubleTicketJeopardyAlertEvent generic structure allOf: - $ref: '#/components/schemas/Event' - type: object properties: event: $ref: '#/components/schemas/TroubleTicketJeopardyAlertEventPayload' discriminator: propertyName: '@type' mapping: TroubleTicketJeopardyAlertEvent: '#/components/schemas/TroubleTicketJeopardyAlertEvent' TroubleTicketJeopardyAlertEventPayload: description: TroubleTicketJeopardyAlertEventPayload generic structure type: object properties: troubleTicket: $ref: '#/components/schemas/TroubleTicket' TroubleTicketMilestone: description: A TroubleTicketMilestone represents an action or event marking a significant change or stage in processing of a trouble ticket. type: object allOf: - $ref: '#/components/schemas/Milestone' discriminator: propertyName: '@type' mapping: TroubleTicketMilestone: '#/components/schemas/TroubleTicketMilestone' TroubleTicketMilestoneEvent: description: TroubleTicketMilestoneEvent generic structure allOf: - $ref: '#/components/schemas/Event' - type: object properties: event: $ref: '#/components/schemas/TroubleTicketMilestoneEventPayload' discriminator: propertyName: '@type' mapping: TroubleTicketMilestoneEvent: '#/components/schemas/TroubleTicketMilestoneEvent' TroubleTicketMilestoneEventPayload: description: TroubleTicketMilestoneEventPayload generic structure type: object properties: troubleTicket: $ref: '#/components/schemas/TroubleTicket' TroubleTicketRef: allOf: - $ref: '#/components/schemas/EntityRef' - type: object description: Reference to an TroubleTicket object required: - id properties: id: description: Identifier of the corresponding TroubleTicket type: string example: 450e8400-e29b-11d4-a716-446651440001 version: description: The version of the trouble ticket , in case it is desired to maintain multiple versions of trouble ticket type: string discriminator: propertyName: '@type' mapping: TroubleTicketRef: '#/components/schemas/TroubleTicketRef' TroubleTicketRelationship: allOf: - $ref: '#/components/schemas/EntityRef' - type: object description: Represents a relationship between trouble tickets required: - relationshipType properties: relationshipType: description: Type of relationship type: string TroubleTicketResolvedEvent: allOf: - $ref: '#/components/schemas/Event' - type: object description: TroubleTicketResolvedEvent generic structure properties: event: $ref: '#/components/schemas/TroubleTicketResolvedEventPayload' discriminator: propertyName: '@type' mapping: TroubleTicketResolvedEvent: '#/components/schemas/TroubleTicketResolvedEvent' TroubleTicketResolvedEventPayload: description: TroubleTicketResolvedEventPayload generic structure type: object properties: troubleTicket: $ref: '#/components/schemas/TroubleTicket' TroubleTicketStatusChangeEvent: allOf: - $ref: '#/components/schemas/Event' - type: object description: TroubleTicketStatusChangeEvent generic structure properties: event: $ref: '#/components/schemas/TroubleTicketStatusChangeEventPayload' discriminator: propertyName: '@type' mapping: TroubleTicketStatusChangeEvent: '#/components/schemas/TroubleTicketStatusChangeEvent' TroubleTicketStatusChangeEventPayload: description: TroubleTicketStatusChangeEventPayload generic structure type: object properties: troubleTicket: $ref: '#/components/schemas/TroubleTicket' TroubleTicketStatusType: description: |- Possible values for the status of the trouble ticket type: string enum: - acknowledged - rejected - pending - held - inProgress - cancelled - closed - resolved - failed TroubleTicket_FVO: allOf: - $ref: '#/components/schemas/Extensible_FVO' - 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: description: Name of the trouble ticket, typically a short description provided by the user that create the ticket type: string description: description: Description of the trouble or issue type: string orderPostedDate: description: Date when the order was posted by the requester type: string format: date-time example: '2023-01-01T08:00:00+01:00' severity: description: |- The severity of the issue. Indicate the implication of the issue on the expected functionality e.g. of a system, application, service etc.. Severity values can be for example : Critical, Major, Minor type: string ticketType: description: Represent a business type of the trouble ticket e.g. incident, complain, request type: string attachment: description: File(s) attached to the trouble ticket. e.g. pictur of broken device, scaning of a bill or charge type: array items: $ref: '#/components/schemas/AttachmentRefOrValue' channel: $ref: '#/components/schemas/ChannelRef' requestedResolutionDate: description: The resolution date requested by the user type: string format: date-time externalIdentifier: type: array items: $ref: '#/components/schemas/ExternalIdentifier' note: description: The note(s) that are associated to the ticket. type: array items: $ref: '#/components/schemas/TroubleTicketRemark' priority: 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...' type: string 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. type: array items: $ref: '#/components/schemas/RelatedEntityRefOrValue' relatedParty: description: The related party(ies) that are associated to the ticket. type: array items: $ref: '#/components/schemas/RelatedPartyOrPartyRole' troubleTicketRelationship: description: A list of trouble ticket relationships (TroubleTicketRelationship [*]). Represents a relationship between trouble tickets type: array items: $ref: '#/components/schemas/TroubleTicketRelationship' troubleTicketCharacteristic: description: List of characteristics of the trouble ticket type: array items: $ref: '#/components/schemas/Characteristic' required: - ticketType - orderPostedDate discriminator: propertyName: '@type' mapping: TroubleTicket: '#/components/schemas/TroubleTicket_FVO' TroubleTicketSpecification: description: |- TroubleTicketSpecification defines the common attributes and relationships of a set of related trouble tickets, while trouble ticket defines a specific instance that is based on a particular trouble ticket specification. type: object allOf: - $ref: '#/components/schemas/EntitySpecification' discriminator: propertyName: '@type' mapping: TroubleTicketSpecification: '#/components/schemas/TroubleTicketSpecification' InflightChangeTroubleTicket: description: Request to change an existing trouble ticket in-flight allOf: - $ref: '#/components/schemas/TaskEntity' - type: object required: - category properties: troubleTicket: description: Explicit reference to the related TroubleTicket $ref: '#/components/schemas/TroubleTicketRef' appointment: $ref: '#/components/schemas/AppointmentRefOrValue' buyerMessage: description: message, send from Buyer to Seller allOf: - $ref: '#/components/schemas/Message' - type: object required: - text - code properties: text: type: string code: type: string additionalInformation: type: string category: description: Type of action to be performed with the task resource type: array minItems: 1 maxItems: 2 items: type: string description: |- Possible values for the category of the task resource: enum: - add - reschedule externalIdentifier: description: A reference to an externally defined object in the context of the managed entity type: array items: $ref: '#/components/schemas/ExternalIdentifier' example: [] note: description: Note type: array items: $ref: '#/components/schemas/Note' example: [] stateChangeDate: description: The date and time the state changed. type: string format: date-time example: '2023-01-01T08:00:00+01:00' stateChangeHistory: description: The state change history that is associated to the Entity. Populated by the server type: array items: $ref: '#/components/schemas/StateChange' example: [] stateChangeMessage: description: Message for the state change described as a combination of a text and a code. type: array items: $ref: '#/components/schemas/Message' example: [] requestedResolutionDate: description: The resolution date requested by the user type: string format: date-time requestedTimeSlot: $ref: '#/components/schemas/TimeSlot' InflightChangeTroubleTicket_FVO: description: Request to change an existing trouble ticket in-flight allOf: - $ref: '#/components/schemas/TaskEntity_FVO' - type: object required: - category properties: troubleTicket: description: Explicit reference to the related TroubleTicket $ref: '#/components/schemas/TroubleTicketRef' appointment: $ref: '#/components/schemas/AppointmentRefOrValue' buyerMessage: description: message, send from Buyer to Seller allOf: - $ref: '#/components/schemas/Message' - type: object required: - text - code properties: text: type: string code: type: string additionalInformation: type: string category: description: Type of action to be performed with the task resource type: array minItems: 1 maxItems: 2 items: type: string enum: - add - reschedule example: - add externalIdentifier: description: A reference to an externally defined object in the context of the managed entity type: array items: $ref: '#/components/schemas/ExternalIdentifier' example: [] note: description: Note type: array items: $ref: '#/components/schemas/Note' example: [] requestedResolutionDate: description: The resolution date requested by the user type: string format: date-time requestedTimeSlot: $ref: '#/components/schemas/TimeSlot' InflightChangeTroubleTicketStateChangeEvent: allOf: - $ref: '#/components/schemas/Event' - type: object description: InflightChangeTroubleTicketStateChangeEvent generic structure properties: event: $ref: '#/components/schemas/InflightChangeTroubleTicketStateChangeEventPayload' discriminator: propertyName: '@type' mapping: InflightChangeTroubleTicketStateChangeEvent: '#/components/schemas/InflightChangeTroubleTicketStateChangeEvent' InflightChangeTroubleTicketStateChangeEventPayload: description: InflightChangeTroubleTicketStateChangeEventPayload generic structure type: object properties: inflightChangeTroubleTicket: $ref: '#/components/schemas/InflightChangeTroubleTicket' CancelTroubleTicket: description: Request to cancel an existing trouble ticket allOf: - $ref: '#/components/schemas/TaskEntity' - type: object properties: troubleTicket: description: Explicit reference to the related TroubleTicket $ref: '#/components/schemas/TroubleTicketRef' stateChangeDate: description: The date and time the state changed. type: string format: date-time example: '2023-01-01T08:00:00+01:00' stateChangeMessage: description: Message for the state change described as a combination of a text and a code. type: array items: $ref: '#/components/schemas/Message' example: [] stateChangeHistory: description: The state change history that is associated to the Entity. Populated by the server type: array items: $ref: '#/components/schemas/StateChange' example: [] externalIdentifier: description: A reference to an externally defined object in the context of the managed entity type: array items: $ref: '#/components/schemas/ExternalIdentifier' example: [] CancelTroubleTicket_FVO: description: Request to cancel an existing trouble ticket allOf: - $ref: '#/components/schemas/TaskEntity_FVO' - type: object properties: troubleTicket: description: Explicit reference to the related TroubleTicket $ref: '#/components/schemas/TroubleTicketRef' externalIdentifier: description: A reference to an externally defined object in the context of the managed entity type: array items: $ref: '#/components/schemas/ExternalIdentifier' example: [] CancelTroubleTicketStateChangeEvent: allOf: - $ref: '#/components/schemas/Event' - type: object description: CancelTroubleTicketStateChangeEvent generic structure properties: event: $ref: '#/components/schemas/CancelTroubleTicketStateChangeEventPayload' discriminator: propertyName: '@type' mapping: CancelTroubleTicketStateChangeEvent: '#/components/schemas/CancelTroubleTicketStateChangeEvent' CancelTroubleTicketStateChangeEventPayload: description: CancelTroubleTicketStateChangeEventPayload generic structure type: object properties: cancelTroubleTicket: $ref: '#/components/schemas/CancelTroubleTicket' TroubleTicketSpecificationAttributeValueChangeEvent: allOf: - $ref: '#/components/schemas/AttributeValueChangeEvent' - type: object description: TroubleTicketSpecificationAttributeValueChange structure properties: event: $ref: '#/components/schemas/TroubleTicketSpecificationAttributeValueChangeEventPayload' discriminator: propertyName: '@type' mapping: TroubleTicketSpecificationAttributeValueChangeEvent: '#/components/schemas/TroubleTicketSpecificationAttributeValueChangeEvent' TroubleTicketSpecificationAttributeValueChangeEventPayload: description: TroubleTicketSpecificationAttributeValueChangeEventPayload generic structure type: object properties: troubleTicketSpecification: $ref: '#/components/schemas/TroubleTicketSpecification' TroubleTicketSpecificationCreateEvent: allOf: - $ref: '#/components/schemas/Event' - type: object description: TroubleTicketSpecificationCreateEvent generic structure properties: event: $ref: '#/components/schemas/TroubleTicketSpecificationCreateEventPayload' discriminator: propertyName: '@type' mapping: TroubleTicketSpecificationCreateEvent: '#/components/schemas/TroubleTicketSpecificationCreateEvent' TroubleTicketSpecificationCreateEventPayload: description: TroubleTicketSpecificationCreateEventPayload generic structure type: object properties: troubleTicketSpecification: $ref: '#/components/schemas/TroubleTicketSpecification' TroubleTicketSpecificationDeleteEvent: allOf: - $ref: '#/components/schemas/Event' - type: object description: TroubleTicketSpecificationDeleteEvent generic structure properties: event: $ref: '#/components/schemas/TroubleTicketSpecificationDeleteEventPayload' discriminator: propertyName: '@type' mapping: TroubleTicketSpecificationDeleteEvent: '#/components/schemas/TroubleTicketSpecificationDeleteEvent' TroubleTicketSpecificationDeleteEventPayload: description: TroubleTicketSpecificationDeleteEventPayload generic structure type: object properties: troubleTicketSpecification: $ref: '#/components/schemas/TroubleTicketSpecification' TroubleTicketSpecificationRef: allOf: - $ref: '#/components/schemas/EntityRef' - type: object description: Reference to an TroubleTicketSpecification object properties: version: description: |- The version of the trouble ticket specification, in case it is desired to maintain multiple versions of trouble ticket specifications type: string discriminator: propertyName: '@type' mapping: TroubleTicketSpecificationRef: '#/components/schemas/TroubleTicketSpecificationRef' TroubleTicketSpecificationStatusChangeEvent: allOf: - $ref: '#/components/schemas/Event' - type: object description: TroubleTicketSpecificationStatusChangeEvent generic structure properties: event: $ref: '#/components/schemas/TroubleTicketSpecificationStatusChangeEventPayload' discriminator: propertyName: '@type' mapping: TroubleTicketSpecificationStatusChangeEvent: '#/components/schemas/TroubleTicketSpecificationStatusChangeEvent' TroubleTicketSpecificationStatusChangeEventPayload: description: TroubleTicketSpecificationStatusChangeEventPayload generic structure type: object properties: troubleTicketSpecification: $ref: '#/components/schemas/TroubleTicketSpecification' Extensible: 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 type: object properties: '@type': description: When sub-classing, this defines the sub-class Extensible name type: string example: '' '@baseType': description: When sub-classing, this defines the super-class type: string example: '' '@schemaLocation': description: A URI to a JSON-Schema file that defines additional attributes and relationships type: string example: '' discriminator: propertyName: '@type' required: - '@type' Entity: description: Base entity schema for use in TMForum Open-APIs. allOf: - $ref: '#/components/schemas/Extensible' - type: object properties: id: description: Unique identifier type: string example: 2d7ed5fd-9f62-4211-bc84-357f5f7b80f5 href: description: Hyperlink reference type: string format: uri example: https://api.example.org/resource/id ContactMedium: description: Indicates the contact medium that could be used to contact the party. allOf: - $ref: '#/components/schemas/Extensible' - type: object properties: contactMediumIdentifier: description: Identifier for this contact medium. type: string example: '123' contactType: description: Type of the contact medium to qualifiy it like pro email / personal email. This is not used to define the contact medium used. type: string example: personal email preferred: description: If true, indicates that is the preferred contact medium type: boolean example: true validFor: $ref: '#/components/schemas/TimePeriod' discriminator: propertyName: '@type' mapping: PhoneContactMedium: '#/components/schemas/PhoneContactMedium' EmailContactMedium: '#/components/schemas/EmailContactMedium' PostalAddressContactMedium: '#/components/schemas/PostalAddressContactMedium' PhoneContactMedium: description: Describes a phone number that could be used to contact a party (an individual or an organization). allOf: - $ref: '#/components/schemas/ContactMedium' - type: object properties: phoneNumber: description: The phone number of the contact type: string example: +49 30 1234567 EmailContactMedium: description: Describes a email that could be used to contact a party (an individual or an organization). allOf: - $ref: '#/components/schemas/ContactMedium' - type: object properties: emailAddress: description: Full email address in standard format type: string example: info@example.net PostalAddressContactMedium: description: Describes a email that could be used to contact a party (an individual or an organization). allOf: - $ref: '#/components/schemas/ContactMedium' - type: object properties: city: description: Full city name type: string example: Berlin country: description: Country that the address is in (ISO-3166-1 ALPHA-2) type: string example: DE locality: description: Locality type: string example: '' postcode: description: Postcode type: string example: '10117' streetName: description: StreetName type: string example: Reinhardtstr. streetNr: description: StreetNr type: string example: '31' streetNrSuffix: description: StreetNrSuffix type: string example: a TimePeriod: description: A period of time, either as a deadline (endDateTime only) a startDateTime only, or both type: object properties: startDateTime: description: Start of the time period, using IETC-RFC-3339 format. If you define a start, you must also define an end type: string format: date-time example: '2023-01-01T08:00:00+01:00' endDateTime: description: End of the time period, using IETC-RFC-3339 format type: string format: date-time example: '2025-12-24T19:30:00+01:00' ExternalIdentifier: 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. allOf: - $ref: '#/components/schemas/Extensible' - type: object properties: id: description: Unique identifier type: string example: 2d7ed5fd-9f62-4211-bc84-357f5f7b80f5 externalIdentifierType: description: Type of the identification, typically would be the type of the entity within the external system type: string example: ProductOrder owner: description: Name of the external system that owns the entity. type: string example: AcmeCommerce Characteristic: description: Describes a given characteristic of an object or entity through a name/value pair. allOf: - $ref: '#/components/schemas/Extensible' - type: object properties: id: description: Unique identifier of the characteristic type: string example: 2d7ed5fd-9f62-4211-bc84-357f5f7b80f5 name: description: Name of the characteristic type: string example: characteristic name valueType: description: Data type of the value of the characteristic type: string example: string discriminator: propertyName: '@type' mapping: Characteristic: '#/components/schemas/Characteristic' StringCharacteristic: '#/components/schemas/StringCharacteristic' StringArrayCharacteristic: '#/components/schemas/StringArrayCharacteristic' ObjectCharacteristic: '#/components/schemas/ObjectCharacteristic' ObjectArrayCharacteristic: '#/components/schemas/ObjectArrayCharacteristic' NumberCharacteristic: '#/components/schemas/NumberCharacteristic' NumberArrayCharacteristic: '#/components/schemas/NumberArrayCharacteristic' IntegerCharacteristic: '#/components/schemas/IntegerCharacteristic' IntegerArrayCharacteristic: '#/components/schemas/IntegerArrayCharacteristic' BooleanCharacteristic: '#/components/schemas/BooleanCharacteristic' BooleanArrayCharacteristic: '#/components/schemas/BooleanArrayCharacteristic' StringCharacteristic: description: A characteristic which value is a String. allOf: - $ref: '#/components/schemas/Characteristic' - type: object required: - value properties: value: description: Value of the characteristic type: string example: Lorem ipsum dolor StringArrayCharacteristic: description: A characteristic which value is a String. allOf: - $ref: '#/components/schemas/Characteristic' - type: object properties: value: description: Value of the characteristic type: array items: type: string example: [] ObjectCharacteristic: description: A characteristic which value is an Object. allOf: - $ref: '#/components/schemas/Characteristic' - type: object required: - value properties: value: description: Value of the characteristic type: object ObjectArrayCharacteristic: description: A characteristic which value is an Object. allOf: - $ref: '#/components/schemas/Characteristic' - type: object properties: value: description: Value of the characteristic type: array items: type: object example: [] NumberCharacteristic: description: A characteristic which value is a Number. allOf: - $ref: '#/components/schemas/Characteristic' - type: object required: - value properties: value: description: Value of the characteristic type: number example: 1 NumberArrayCharacteristic: description: A characteristic which value is a Number. allOf: - $ref: '#/components/schemas/Characteristic' - type: object properties: value: description: Value of the characteristic type: array items: type: number example: [] IntegerCharacteristic: description: A characteristic which value is an Integer. allOf: - $ref: '#/components/schemas/Characteristic' - type: object required: - value properties: value: description: Value of the characteristic type: integer example: 1 IntegerArrayCharacteristic: description: A characteristic which value is an Integer. allOf: - $ref: '#/components/schemas/Characteristic' - type: object properties: value: description: Value of the characteristic type: array items: type: integer example: [] BooleanCharacteristic: description: A characteristic which value is a Boolean. allOf: - $ref: '#/components/schemas/Characteristic' - type: object required: - value properties: value: description: Value of the characteristic type: boolean example: true BooleanArrayCharacteristic: description: A characteristic which value is a Boolean. allOf: - $ref: '#/components/schemas/Characteristic' - type: object properties: value: description: Value of the characteristic type: array items: type: boolean example: [] Party: description: Generic Party structure used to define commonalities between sub concepts of Individual and Organization. allOf: - $ref: '#/components/schemas/Entity' - type: object properties: contactMedium: description: List of means for contacting the party, e.g. mobile phone, email address type: array items: $ref: '#/components/schemas/ContactMedium' example: [] externalReference: description: List of identifiers of the Party in an external system, for example when party information is imported from a commerce system type: array items: $ref: '#/components/schemas/ExternalIdentifier' example: [] businessId: description: A business relevant identifier when different from the technical identifier documented with the .id property type: string example: '1234' partyCharacteristic: description: List of additional characteristics that a Party can take on. type: array items: $ref: '#/components/schemas/Characteristic' example: [] Individual: description: Individual represents a single human being (a man, woman or child). The individual can be a customer, an employee or any other person that the organization needs to store information about. allOf: - $ref: '#/components/schemas/Party' - type: object properties: familyName: description: Contains the non-chosen or inherited name. Also known as last name in the Western context type: string example: Muster salutation: description: Standard wording used to address an individual type: string example: Ms givenName: description: First name of the individual type: string example: Melanie title: description: Useful for titles (aristocratic, social,...) Pr, Dr, Sir, ... type: string example: Dr. Organization: description: Organization represents a group of people identified by shared interests or purpose. Examples include business, department and enterprise. Because of the complex nature of many businesses, both organizations and organization units are represented by the same data. allOf: - $ref: '#/components/schemas/Party' - type: object properties: name: description: Organization name (department name for example) type: string example: Acme Corp. EntityRef: description: Entity reference schema to be use for all entityRef class. allOf: - $ref: '#/components/schemas/Extensible' - type: object required: - id properties: id: description: Identifier of the referred entity. type: string example: 2d7ed5fd-9f62-4211-bc84-357f5f7b80f5 href: description: Hyperlink reference type: string format: uri example: https://api.example.org/resource/id name: description: Name of the referred entity. type: string example: EntityName '@referredType': description: The actual type of the target instance when needed for disambiguation. type: string example: '' PartyRef: description: Party reference. type: object allOf: - $ref: '#/components/schemas/EntityRef' PartyRoleRef: description: Party role reference. type: object allOf: - $ref: '#/components/schemas/EntityRef' AccountRef: description: Account reference. A account may be a party account or a financial account. allOf: - $ref: '#/components/schemas/EntityRef' - type: object properties: description: description: Detailed description of the account type: string example: lorem ipsum dolor AgreementRef: description: Agreement reference. An agreement represents a contract or arrangement, either written or verbal and sometimes enforceable by law, such as a service level agreement or a customer price agreement. An agreement involves a number of other business entities, such as products, services, and resources and/or their specifications. type: object allOf: - $ref: '#/components/schemas/EntityRef' PartyOrPartyRole: description: A Party or PartyRole or Ref type: object discriminator: propertyName: '@type' oneOf: - $ref: '#/components/schemas/Individual' - $ref: '#/components/schemas/Organization' - $ref: '#/components/schemas/PartyRef' - $ref: '#/components/schemas/PartyRoleRef' - $ref: '#/components/schemas/PartyRole' RelatedPartyOrPartyRole: description: RelatedParty reference. A related party defines party or party role or its reference, linked to a specific entity allOf: - $ref: '#/components/schemas/Extensible' - type: object required: - role - partyOrPartyRole 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 example: '' partyOrPartyRole: $ref: '#/components/schemas/PartyOrPartyRole' PartyRole: description: The part played by a party in a given context. allOf: - $ref: '#/components/schemas/Entity' - type: object required: - name - engagedParty properties: businessId: description: A business relevant identifier when different from the technical identifier documented with the .id property type: string example: '1234' name: description: A word, term, or phrase by which the PartyRole is known and distinguished from other PartyRoles. It's the name of the PartyRole unique entity. type: string example: PartyRoleName description: description: A description of the PartyRole. type: string example: Lorem ipsum dolor role: description: Role played by the engagedParty in this context. As role is defined by partyRoleSpecification, this role attribute can be used to precise the role defined by partyRoleSpecification, or it can be used to define the role in case there is no partyRoleSpecification. type: string example: '' engagedParty: $ref: '#/components/schemas/PartyRef' characteristic: description: Describes the characteristic of a party role. type: array items: $ref: '#/components/schemas/Characteristic' example: [] account: description: Account type: array items: $ref: '#/components/schemas/AccountRef' example: [] agreement: description: Agreement type: array items: $ref: '#/components/schemas/AgreementRef' example: [] contactMedium: description: Contact medium type: array items: $ref: '#/components/schemas/ContactMedium' example: [] relatedParty: description: Related party type: array items: $ref: '#/components/schemas/RelatedPartyOrPartyRole' example: [] status: description: Used to track the lifecycle status of the party role. type: string example: '' statusReason: description: A string providing an explanation on the value of the status lifecycle. For instance if the status is Rejected, statusReason will provide the reason for rejection. type: string example: '' validFor: $ref: '#/components/schemas/TimePeriod' Agreement: description: An agreement represents a contract or arrangement, either written or verbal and sometimes enforceable by law, such as a service level agreement or a customer price agreement. An agreement involves a number of other business entities, such as products, services, and resources and/or their specifications. allOf: - $ref: '#/components/schemas/Entity' - type: object required: - agreementType properties: name: description: A human-readable name for the agreement type: string example: contract no. 42 engagedParty: description: Engaged party type: array items: $ref: '#/components/schemas/PartyOrPartyRole' example: [] relatedParty: description: Related party type: array items: $ref: '#/components/schemas/RelatedPartyOrPartyRole' example: [] businessId: description: A business relevant identifier when different from the technical identifier documented with the .id property type: string example: '1234' agreementType: description: Type of the agreement (e.g. witaContract, ServiceContractCustomer, ServiceContractOrderer, SingleContract, PreAgreement, witaContract,...) type: string example: ServiceContractOrderer AgreementRefOrValue: description: Agreement reference or value type: object discriminator: propertyName: '@type' oneOf: - $ref: '#/components/schemas/Agreement' - $ref: '#/components/schemas/AgreementRef' TimeSlot: allOf: - $ref: '#/components/schemas/Extensible' - type: object required: - validFor properties: id: description: Unique identifier of the TimeSlot type: string example: 2d7ed5fd-9f62-4211-bc84-357f5f7b80f5 href: description: Reference of the TimeSlot type: string example: https://api.example.org/timeslot/id relatedParty: description: RelatedParty reference. A related party defines party or party role linked to a specific entity. $ref: '#/components/schemas/RelatedPartyOrPartyRole' validFor: description: Start date and end date of the timeSlot $ref: '#/components/schemas/TimePeriod' AppointmentRef: description: Appointment reference. type: object allOf: - $ref: '#/components/schemas/EntityRef' AttachmentRef: description: Attachment reference. type: object allOf: - $ref: '#/components/schemas/EntityRef' Quantity: description: An amount in a given unit type: object properties: amount: description: Numeric value in a given unit type: number format: float example: 20 default: 1 units: description: Unit type: string example: MBit/s Attachment: description: Complements the description of an element (for instance a product) through video, pictures... allOf: - $ref: '#/components/schemas/Entity' - type: object properties: attachmentType: description: Attachment type such as video, picture type: string example: video content: description: The actual contents of the attachment object, if embedded, encoded as base64 example: '' format: base64 type: string description: description: A narrative text describing the content of the attachment type: string example: Photograph of the Product mimeType: description: Attachment mime type such as extension file for video, picture and document type: string example: image/AVIF name: description: The name of the attachment type: string example: attachment.file url: description: Uniform Resource Locator, is a web page address (a subset of URI) type: string format: uri example: https://api.example.org/content/4aafacbd-11ff-4dc8-b445-305f2215715f size: description: The size of the attachment. $ref: '#/components/schemas/Quantity' validFor: description: The period of time for which the attachment is valid $ref: '#/components/schemas/TimePeriod' AttachmentRefOrValue: description: Attachment reference or value type: object discriminator: propertyName: '@type' oneOf: - $ref: '#/components/schemas/AttachmentRef' - $ref: '#/components/schemas/Attachment' Note: description: Extra information about a given entity allOf: - $ref: '#/components/schemas/Entity' - type: object required: - text properties: author: description: Author of the note type: string example: jarvis date: description: Date of the note type: string format: date-time example: '2023-01-01T08:00:00+01:00' text: description: Text of the note type: string example: Lorem ipsum dolor Place: description: Place value (base class). allOf: - $ref: '#/components/schemas/Entity' - type: object properties: externalIdentifier: type: array description: Collection of external identifiers items: $ref: '#/components/schemas/ExternalIdentifier' GeographicSubAddress: description: |- Representation of a GeographicSubAddress It is used for addressing within a property in an urban area (country properties are often defined differently). It may refer to a building, a building cluster, or a floor of a multistory building. allOf: - $ref: '#/components/schemas/Place' - type: object properties: buildingName: description: Allows for buildings that have well-known names type: string example: Hinterhaus buildingComplement: description: Additional designation for completing the building name type: string example: n/a GeographicAddress: description: |- Structured textual way of describing how to find a Property in an urban area (country properties are often defined differently). Note : Address corresponds to SID UrbanPropertyAddress allOf: - $ref: '#/components/schemas/Place' - type: object properties: city: description: City that the address is in type: string example: Berlin country: description: Country that the address is in (ISO-3166-1 ALPHA-2) type: string example: DE locality: description: An area of defined or undefined boundaries within a local authority or other legislatively defined area, usually rural or semi rural in nature. [ANZLIC-STREET], or a suburb, a bounded locality within a city, town or shire principally of urban character [ANZLICSTREET] type: string example: '' postcode: description: descriptor for a postal delivery area, used to speed and simplify the delivery of mail (also know as zipcode) type: string example: '10117' streetName: description: Name of the street or other street type type: string example: Reinhardtstr. streetNr: description: Number identifying a specific property on a public street. It may be combined with streetNrLast for ranged addresses type: string example: '31' streetNrSuffix: description: the first street number suffix type: string example: a geographicSubAddress: description: Geographic sub address type: array items: $ref: '#/components/schemas/GeographicSubAddress' example: [] GeographicSite: description: Geographic site allOf: - $ref: '#/components/schemas/Place' - type: object properties: code: description: 'A code that may be used for some addressing schemes eg: [ANSI T1.253-1999]' type: string example: '' creationDate: description: Date and time when the GeographicSite was created type: string format: date-time example: '2023-01-01T08:00:00+01:00' description: description: Text describing additional information regarding the site type: string example: Lorem ipsum dolor place: description: Place type: array items: $ref: '#/components/schemas/Place' example: [] geographicSiteCharacteristic: description: Geographic site characteristics type: array items: $ref: '#/components/schemas/Characteristic' example: [] status: description: The condition of the GeographicSite, such as planned, underConstruction, cancelled, active, inactive, former type: string example: active PlaceRef: description: Place reference. type: object allOf: - $ref: '#/components/schemas/EntityRef' PlaceRefOrValue: description: A place ref or value type: object discriminator: propertyName: '@type' oneOf: - $ref: '#/components/schemas/GeographicAddress' - $ref: '#/components/schemas/GeographicSite' - $ref: '#/components/schemas/PlaceRef' RelatedPlaceRefOrValue: description: Entity reference. The polymorphic attributes @type, @schemaLocation & @referredType are related to the RelatedPlace entity and not the RelatedPlaceRefOrValue class itself allOf: - $ref: '#/components/schemas/Extensible' - type: object required: - role - place properties: role: description: Role played by the related entity type: string example: '' place: $ref: '#/components/schemas/PlaceRefOrValue' AppointmentStateType: description: |- Valid values for the lifecycle status of the appointment are: