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:<ul>
        <li>*standard*: TODO</li>
        <li>*oneTime*: TODO</li>
        <li>*none*: TODO</li>
        </ul>
      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<ul>
        <li>*acknowledged*: The acknowledged status is where an trouble ticket has been received and has passed message level validation (e. g. schema, conformance profile). The trouble ticket is stored and addressable.</li>
        <li>*rejected*: The rejected status is where Invalid information is provided or the request fails to meet business rules</li>
        <li>*pending*: The pending status is used when an trouble ticket is currently in a waiting stage for an action/activity to be completed before it can progress further. In situations where Buyer action is required, an “information required” notification will be issued on transition into this status.</li>
        <li>*held*: The held status is (optional) used when an trouble ticket cannot be progressed due to an issue. Upon resolution of the issue, the trouble ticket will continue to progress</li>
        <li>*inProgress*: The in progress status is where an trouble ticket has passed the Feasibility check successfully and troubleshooting has started.</li>
        <li>*cancelled*: The cancelled status is where an trouble ticket has been successfully cancelled.</li>
        <li>*closed*: The post-provisioning activities such as billing account update have been finalized. The trouble ticket is closed.TODO</li>
        <li>*resolved*: The resolved status is used when the problem is resolved from the seller's point of view</li>
        <li>*failed*: The problem is not resolved and the trouble ticket has failed.</li>
        </ul>
      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:
                  <ul>
                  <li><b>add</b>: add information, e.g., a note or a related party</li>
                  <li><b>reschedule</b>: reschedule the troubleTicket</li>
                  </ul>
                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:<ul>
        <li>*initialized*: Appointment initialized</li>
        <li>*confirmed*: Appointment confirmed</li>
        <li>*cancelled*: Appointment cancelled</li>
        <li>*completed*: Appointment completed</li>
        <li>*failed*: Appointment failed</li
        </ul>
      type: string
      enum:
        - initialized
        - confirmed
        - cancelled
        - completed
        - failed
    Appointment:
      description: An Appointment is an arrangement to do something or meet someone at a particular time, at a place (for face to face appointment) or in a contact medium (for phone appointment).
      allOf:
        - $ref: '#/components/schemas/Entity'
        - type: object
          required:
            - validFor
          properties:
            category:
              description: 'Business category : intervention for example or to be more precise after SalesIntervention, orderDeliveryIntervention,...'
              type: string
              example: intervention
            creationDate:
              description: Appointment creation date
              type: string
              format: date-time
              example: '2023-01-01T08:00:00+01:00'
            description:
              description: Short free text describing the appointment
              type: string
              example: Lorem ipsum dolor
            externalId:
              description: External reference known by the customer
              type: string
              example: '1234'
            lastUpdate:
              description: Date of last appointment update
              type: string
              format: date-time
              example: '2023-01-01T08:00:00+01:00'
            attachment:
              description: Attachment
              type: array
              items:
                $ref: '#/components/schemas/AttachmentRefOrValue'
              example: []
            contactMedium:
              description: Contact medium
              type: array
              items:
                $ref: '#/components/schemas/ContactMedium'
              example: []
            note:
              description: Note
              type: array
              items:
                $ref: '#/components/schemas/Note'
              example: []
            relatedParty:
              description: Related party
              type: array
              items:
                $ref: '#/components/schemas/RelatedPartyOrPartyRole'
              example: []
            relatedPlace:
              description: Related place defines (by reference or value) the place where the appointment will take place.
              $ref: '#/components/schemas/RelatedPlaceRefOrValue'
            status:
              $ref: '#/components/schemas/AppointmentStateType'
            validFor:
              $ref: '#/components/schemas/TimePeriod'
    AppointmentRefOrValue:
      description: Appointment reference and value
      type: object
      discriminator:
        propertyName: '@type'
      oneOf:
        - $ref: '#/components/schemas/AppointmentRef'
        - $ref: '#/components/schemas/Appointment'
    EntityRefOrValue:
      description: An entity ref or value
      type: object
      discriminator:
        propertyName: '@type'
      oneOf:
        - $ref: '#/components/schemas/Entity'
        - $ref: '#/components/schemas/EntityRef'
    RelatedEntityRefOrValue:
      description: A reference to an entity, where the type of the entity is not known in advance. A related entity defines a entity described by reference or by value linked to a specific entity. The polymorphic attributes @type, @schemaLocation & @referredType are related to the Entity and not the RelatedEntityRefOrValue class itself
      type: object
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          required:
            - role
            - entity
          properties:
            role:
              description: Role played by the related entity
              type: string
              example: ''
            entity:
              $ref: '#/components/schemas/EntityRefOrValue'
    Message:
      description: A message described as a combination of a text and a code with additional info where required.
      type: object
      properties:
        code:
          description: Predefined code corresponding to the message
          type: string
          example: '00'
        text:
          description: Predefined text describing the message corresponding to the code
          type: string
          example: Lorem ipsum dolor
        additionalInformation:
          description: additional textual information for the message
          type: string
          example: Lorem ipsum dolor
        messageSource:
          description: Predefined text describing the message corresponding to the code (e.g. Related)
          type: string
          example: Related
    StatusChange:
      description: Holds the status, messages and associated date the status changed, populated by the server
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          required:
            - statusChangeDate
            - status
          properties:
            statusChangeDate:
              description: The date and time the status changed.
              type: string
              format: date-time
              example: '2023-01-01T08:00:00+01:00'
            statusChangeMessage:
              description: Message for the status change described as a combination of a text and a code.
              type: array
              items:
                $ref: '#/components/schemas/Message'
              example: []
            status:
              description: The status of the API resource
              type: string
              example: ''
      discriminator:
        propertyName: '@type'
        mapping:
          StatusChange: '#/components/schemas/StatusChange'
    JeopardyAlert:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          description: |-
            A JeopardyAlert represents a predicted exception during a process that may cause a risk
            to complete successfully the process.
          properties:
            id:
              description: Identifier of the JeopardyAlert
              type: string
              example: 2d7ed5fd-9f62-4211-bc84-357f5f7b80f5
            alertDate:
              description: A date time( DateTime). The date that the alert issued
              type: string
              format: date-time
              example: '2023-01-01T08:00:00+01:00'
            name:
              description: A string used to give a name to the jeopardy alert
              type: string
              example: alert name
            jeopardyAlertMessage:
              description: Text and code that represents the message of the jeopardy alert
              type: array
              items:
                $ref: '#/components/schemas/Message'
              example: []
            estimatedAlertEndDate:
              description: A date time(DateTime). The estimated date of the alert ending
              type: string
              format: date-time
              example: '2023-01-01T08:00:00+01:00'
            exception:
              description: The exception associated with this jeopardy alert
              type: string
      discriminator:
        propertyName: '@type'
        mapping:
          JeopardyAlert: '#/components/schemas/JeopardyAlert'
    Milestone:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          description: |-
            Milestone represents an action or event marking a significant change or stage in a
            process like an order process.
          properties:
            id:
              description: Identifier of the Milestone
              type: string
              example: 2d7ed5fd-9f62-4211-bc84-357f5f7b80f5
            milestoneDate:
              description: A date time( DateTime). The date that the milestone happens
              type: string
              format: date-time
              example: '2023-01-01T08:00:00+01:00'
            name:
              description: A string used to give a name to the milestone
              type: string
              example: milestone name
            milestoneMessage:
              description: Text and code that represents the message of the milestone
              type: array
              items:
                $ref: '#/components/schemas/Message'
              example: []
            relatedState:
              description: |-
                Documents the state of the related API Resource at the time of the
                Milestone
              type: string
              example: active
      discriminator:
        propertyName: '@type'
        mapping:
          Milestone: '#/components/schemas/Milestone'
    ErrorMessage:
      description: Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx)
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          required:
            - code
            - reason
          properties:
            code:
              description: Application relevant detail, defined in the API or a common list.
              type: string
              example: '0995'
            reason:
              description: Explanation of the reason for the error which can be shown to a client user.
              type: string
              example: human error
            message:
              description: More details and corrective actions related to the error which can be shown to a client user.
              type: string
              example: Datenstruktur unzulässig.
            status:
              description: HTTP Error code extension
              type: string
              example: not found
            referenceError:
              description: URI of documentation describing the error.
              type: string
              format: uri
              example: https://api.example.org/error/id
          example:
            '@type': ErrorMessage
            code: '0995'
            reason: human error
            message: Datenstruktur unzulässig.
            status: not found
            referenceError: https://api.example.org/error/id
    Extensible_FVO:
      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'
    TaskStateType:
      description: |-
        Possible values for the state of a task are:<ul>
        <li>*acknowledged*: The acknowledged state is used if a task resource has been received and has passed message and basic business validations.</li>
        <li>*rejected*: The task has been rejected during validation or processing.</li>
        <li>*inProgress*: The InProgress state is used while the task is being processed.</li>
        <li>*done*: The task has been completed and a result is available.</li>
        </ul>
      type: string
      enum:
        - acknowledged
        - rejected
        - inProgress
        - done
    TaskEntity:
      description: Base schema for task resource entities
      allOf:
        - $ref: '#/components/schemas/Entity'
        - type: object
          properties:
            state:
              $ref: '#/components/schemas/TaskStateType'
            requestDate:
              description: Date when the task resource was created
              type: string
              format: date-time
              example: '2023-01-01T08:00:00+01:00'
            requestPostedDate:
              description: Date when the request was posted
              type: string
              format: date-time
              example: '2023-01-01T08:00:00+01:00'
            entity:
              $ref: '#/components/schemas/EntityRef'
          required:
            - state
            - entity
            - requestDate
            - requestPostedDate
    StateChange:
      description: Holds the state notification message and associated date the state changed, populated by the server
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          required:
            - stateChangeDate
            - state
          properties:
            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: []
            state:
              description: The state of the API resource
              type: string
              example: ''
    Entity_FVO:
      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
    TaskEntity_FVO:
      description: |-
        Base schema for task resource FVO entities
        Skipped properties: state, requestDate
      allOf:
        - $ref: '#/components/schemas/Entity_FVO'
        - type: object
          properties:
            requestPostedDate:
              description: Date when the request was posted
              type: string
              format: date-time
              example: '2023-01-01T08:00:00+01:00'
            entity:
              $ref: '#/components/schemas/EntityRef'
          required:
            - entity
            - requestPostedDate
    Event:
      description: event with common attributes.
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          properties:
            eventId:
              description: The identifier of the notification.
              type: string
              example: 2d7ed5fd-9f62-4211-bc84-357f5f7b80f5
            eventTime:
              description: Time of the event occurrence.
              type: string
              format: date-time
              example: '2023-01-01T08:00:00+01:00'
            eventType:
              description: The type of the notification.
              type: string
              example: ''
            description:
              description: An explanatory of the event.
              type: string
              example: Lorem ipsum dolor
            timeOccurred:
              description: The time the event occurred.
              type: string
              format: date-time
              example: '2023-01-01T08:00:00+01:00'
            source:
              description: Source Entity described by EntityRef
              $ref: '#/components/schemas/EntityRef'
            reportingSystem:
              description: Reporting System described by EntityRef
              $ref: '#/components/schemas/EntityRef'
          required:
            - eventId
            - eventTime
            - eventType
            - event
    FieldPath:
      description: Field path
      type: object
      properties:
        path:
          description: Path of updated attribute
          type: string
          example: /productOrderItem/0/product/terminationDate
        typeOfChange:
          description: Type of change
          type: string
          example: add
      required:
        - path
    AttributeValueChangeEvent:
      description: Attribute value change event
      allOf:
        - $ref: '#/components/schemas/Event'
        - type: object
          properties:
            fieldPath:
              description: Field path
              type: array
              items:
                $ref: '#/components/schemas/FieldPath'
              example: []
    JsonPatch:
      description: A JSONPatch document as defined by RFC 6902
      properties:
        op:
          description: |-
            The operation to be performed:<ul>
            <li>*add*: TODO</li>
            <li>*remove*: TODO</li>
            <li>*replace*: TODO</li>
            <li>*move*: TODO</li>
            <li>*copy*: TODO</li>
            <li>*test*: TODO</li>
            </ul>
          type: string
          enum:
            - add
            - remove
            - replace
            - move
            - copy
            - test
          example: add
        path:
          description: A JSON-Pointer
          type: string
          example: /productOrderItem/0/product/terminationDate
        value:
          description: The value to be used within the operations.
          example: ''
        from:
          description: A string containing a JSON Pointer value.
          type: string
          example: /productOrderItem/0/product/terminationDate
      required:
        - op
        - path
    EntitySpecification:
      allOf:
        - $ref: '#/components/schemas/Entity'
        - type: object
          description: |-
            EntitySpecification is a class that offers characteristics to describe a type of entity.
            Entities are generic constructs that may be used to describe bespoke business entities
            that are not effectively covered by the existing SID model.

            Functionally, the entity specification acts as a template by which entities may be
            instantiated and described. By sharing the same specification, these entities would
            therefore share the same set of characteristics.

            Note: The 'configurable' attribute on the specCharacteristics determines if an entity
            instantiated from the entity specification can override the value of the attribute. When
            set to false, the entity instance may not define a value that differs from the value in
            the specification.
          properties:
            name:
              description: Name given to the specification
              type: string
              example: EntityName
            description:
              description: Description of the specification
              type: string
              example: Lorem ipsum dolor
            lastUpdate:
              description: Date and time of the last update of the specification
              type: string
              format: date-time
              example: '2023-01-01T08:00:00+01:00'
            lifecycleStatus:
              description: Used to indicate the current lifecycle status of this catalog item
              type: string
              example: active
            isBundle:
              description: |-
                Determines whether specification represents a single specification (false),
                or a bundle of specifications (true).
                example: true
              type: boolean
            validFor:
              $ref: '#/components/schemas/TimePeriod'
            version:
              description: Specification version
              type: string
              example: '1.0'
            attachment:
              description: |-
                Attachments that may be of relevance to this specification, such as picture,
                document, media
              type: array
              items:
                $ref: '#/components/schemas/AttachmentRefOrValue'
              example: []
            targetEntitySchema:
              $ref: '#/components/schemas/TargetEntitySchema'
            specCharacteristic:
              description: List of characteristics that the entity can take
              type: array
              items:
                $ref: '#/components/schemas/CharacteristicSpecification'
              example: []
            relatedParty:
              description: Parties who manage or otherwise have an interest in this specification
              type: array
              items:
                $ref: '#/components/schemas/RelatedPartyOrPartyRole'
              example: []
      discriminator:
        propertyName: '@type'
        mapping:
          EntitySpecification: '#/components/schemas/EntitySpecification'
    TargetEntitySchema:
      description: |-
        The reference object to the schema and type of target entity which is described by a
        specification
      type: object
      properties:
        '@type':
          description: Class type of the target entity
          type: string
          example: ''
        '@schemaLocation':
          description: This field provides a link to the schema describing the target entity
          type: string
          example: ''
    CharacteristicSpecification:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          description: This class defines a characteristic specification.
          properties:
            id:
              description: Unique ID for the characteristic
              type: string
              example: 2d7ed5fd-9f62-4211-bc84-357f5f7b80f5
            name:
              description: |-
                A word, term, or phrase by which this characteristic specification is known and
                distinguished from other characteristic specifications.
              type: string
              example: characteristic specification name
            valueType:
              description: |-
                A kind of value that the characteristic can take on, such as numeric, text and so
                forth
              type: string
              example: Lorem ipsum dolor
            description:
              description: A narrative that explains the CharacteristicSpecification.
              type: string
              example: Lorem ipsum dolor
            configurable:
              description: If true, the Boolean indicates that the target Characteristic is configurable
              type: boolean
              example: true
            validFor:
              $ref: '#/components/schemas/TimePeriod'
            minCardinality:
              description: |-
                The minimum number of instances a CharacteristicValue can take on. For example, zero
                to five phone numbers in a group calling plan, where zero is the value for the
                minCardinality.
              type: integer
              example: 2
            maxCardinality:
              description: |-
                The maximum number of instances a CharacteristicValue can take on. For example, zero
                to five phone numbers in a group calling plan, where five is the value for the
                maxCardinality.
              type: integer
              example: 5
            isUnique:
              description: |-
                Specifies if the value of this characteristic is unique across all entities
                instantiated from the specification that uses this characteristc. For example,
                consider a ProductSpecification for a set-top box, with a
                CharacteristicSpecification cardID. Each set-top box must have a different value for
                cardID, so this isUnique attribute would be set to true for the characteristic.
              type: boolean
              example: false
            regex:
              description: |-
                A rule or principle represented in regular expression used to derive the value of a
                characteristic value.
              type: string
              example: ''
            extensible:
              description: |-
                An indicator that specifies that the values for the characteristic can be extended
                by adding new values when instantiating a characteristic for a resource.
              type: boolean
              example: false
            '@valueSchemaLocation':
              description: This (optional) field provides a link to the schema describing the value type.
              type: string
              example: https://schemas.example.com/example/schema
            characteristicValueSpecification:
              description: |-
                A CharacteristicValueSpecification object is used to define a set of attributes,
                each of which can be assigned to a corresponding set of attributes in a
                CharacteristicSpecification object. The values of the attributes in the
                CharacteristicValueSpecification object describe the values of the attributes that a
                corresponding Characteristic object can take on.
              type: array
              items:
                $ref: '#/components/schemas/CharacteristicValueSpecification'
              example: ''
      discriminator:
        propertyName: '@type'
        mapping:
          CharacteristicSpecification: '#/components/schemas/CharacteristicSpecification'
    CharacteristicValueSpecification:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          description: |-
            specification of a value (number or text or an object) that can be assigned to a
            Characteristic. This is an abstract base class, the actual value is in one of the
            strongly-typed subclasses
          properties:
            valueType:
              description: |-
                A kind of value that the characteristic value can take on, such as numeric, text and
                so forth
              type: string
              example: string
            isDefault:
              description: |-
                If true, the Boolean Indicates if the value is the default value for a
                characteristic
              type: boolean
              example: false
            unitOfMeasure:
              description: |-
                A length, surface, volume, dry measure, liquid measure, money, weight, time, and the
                like. In general, a determinate quantity or magnitude of the kind designated, taken
                as a standard of comparison for others of the same kind, in assigning to them
                numerical values, as 1 foot, 1 yard, 1 mile, 1 square foot.
              type: string
              example: MBit/s
            validFor:
              $ref: '#/components/schemas/TimePeriod'
            valueFrom:
              description: The low range value that a characteristic can take on
              type: integer
              example: 0
            valueTo:
              description: The upper range value that a characteristic can take on
              type: integer
              example: 1000
            rangeInterval:
              description: |-
                An indicator that specifies the inclusion or exclusion of the valueFrom and valueTo
                attributes. If applicable, possible values are "open", "closed", "closedBottom" and
                "closedTop".
              type: string
              example: open
            regex:
              description: A regular expression constraint for given value
              type: string
              example: ''
            '@valueSchemaLocation':
              description: This (optional) field provides a link to the schema describing the value type.
              type: string
              example: https://schemas.example.com/example/schema
      discriminator:
        propertyName: '@type'
        mapping:
          CharacteristicValueSpecification: '#/components/schemas/CharacteristicValueSpecification'
          BooleanArrayCharacteristicValueSpecification: '#/components/schemas/BooleanArrayCharacteristicValueSpecification'
          BooleanCharacteristicValueSpecification: '#/components/schemas/BooleanCharacteristicValueSpecification'
          IntegerArrayCharacteristicValueSpecification: '#/components/schemas/IntegerArrayCharacteristicValueSpecification'
          IntegerCharacteristicValueSpecification: '#/components/schemas/IntegerCharacteristicValueSpecification'
          NumberArrayCharacteristicValueSpecification: '#/components/schemas/NumberArrayCharacteristicValueSpecification'
          NumberCharacteristicValueSpecification: '#/components/schemas/NumberCharacteristicValueSpecification'
          ObjectArrayCharacteristicValueSpecification: '#/components/schemas/ObjectArrayCharacteristicValueSpecification'
          ObjectCharacteristicValueSpecification: '#/components/schemas/ObjectCharacteristicValueSpecification'
          StringArrayCharacteristicValueSpecification: '#/components/schemas/StringArrayCharacteristicValueSpecification'
          StringCharacteristicValueSpecification: '#/components/schemas/StringCharacteristicValueSpecification'
    BooleanArrayCharacteristicValueSpecification:
      allOf:
        - $ref: '#/components/schemas/CharacteristicValueSpecification'
        - type: object
          description: A specification for a characteristic for which the value is an array booleans
          properties:
            value:
              description: TODO
              type: array
              items:
                type: boolean
                description: Characteristic specification item boolean value
                example: true
              example: []
    BooleanCharacteristicValueSpecification:
      allOf:
        - $ref: '#/components/schemas/CharacteristicValueSpecification'
        - type: object
          description: A specification for a characteristic for which the value is a boolean
          properties:
            value:
              description: Value of the characteristic
              type: boolean
              example: true
    IntegerArrayCharacteristicValueSpecification:
      allOf:
        - $ref: '#/components/schemas/CharacteristicValueSpecification'
        - type: object
          description: |-
            A specification for a characteristic for which the value is a number array of format
            integer
          properties:
            value:
              description: TODO
              type: array
              items:
                type: integer
                description: Characteristic value
                example: 1
              example: []
    IntegerCharacteristicValueSpecification:
      allOf:
        - $ref: '#/components/schemas/CharacteristicValueSpecification'
        - type: object
          description: A specification for a characteristic for which the value is an integer number
          properties:
            value:
              description: Value of the characteristic
              type: integer
              example: 1
    NumberArrayCharacteristicValueSpecification:
      allOf:
        - $ref: '#/components/schemas/CharacteristicValueSpecification'
        - type: object
          description: |-
            A specification for a characteristic for which the value is a number array with no
            specific format
          properties:
            value:
              description: TODO
              type: array
              items:
                type: number
                description: Characteristic value
                example: 1
              example: []
    NumberCharacteristicValueSpecification:
      allOf:
        - $ref: '#/components/schemas/CharacteristicValueSpecification'
        - type: object
          description: |-
            A specification for a characteristic for which the value is a number of no specific
            format
          properties:
            value:
              description: Value of the characteristic
              type: number
              example: 1
    ObjectArrayCharacteristicValueSpecification:
      allOf:
        - $ref: '#/components/schemas/CharacteristicValueSpecification'
        - type: object
          description: A specification for a characteristic for which the value is an array of objects
          properties:
            value:
              description: A specification for a list of characteristics for which the value is a object
              type: array
              items:
                type: object
                description: Characteristic value
                example: ''
              example: []
    ObjectCharacteristicValueSpecification:
      allOf:
        - $ref: '#/components/schemas/CharacteristicValueSpecification'
        - type: object
          description: A specification for a characteristic for which the value is any object
          properties:
            value:
              description: Value of the characteristic
              type: object
              example: ''
    StringArrayCharacteristicValueSpecification:
      allOf:
        - $ref: '#/components/schemas/CharacteristicValueSpecification'
        - type: object
          description: A specification for a characteristic for which the value is an array of strings
          properties:
            value:
              description: A specification for a list of of characteristics for which the value is a string
              type: array
              items:
                type: string
                description: Characteristic value
                example: example
              example: []
    StringCharacteristicValueSpecification:
      allOf:
        - $ref: '#/components/schemas/CharacteristicValueSpecification'
        - type: object
          description: A specification for a characteristic for which the value is a string
          properties:
            value:
              description: Value of the characteristic
              type: string
              example: example
  examples:
    CreateTroubleTicket_request:
      description: POST TroubleTicket Request Example
      value:
        $schema: '##SCHEMA_PATH##'
        '@type': FaultTicket_FVO
        description: Internetverbindung fällt mehrmals pro Tag aus
        orderPostedDate: '2024-02-08T08:00:00+01:00'
        ticketType: fault
        requestedResolutionDate: '2024-03-08T00:00:00+01:00'
        externalIdentifier:
          - '@type': ExternalIdentifier
            id: '1000222'
            externalIdentifierType: troubleTicketExternalId
            owner: DEU.VFD
        relatedEntity:
          - '@type': RelatedEntityRefOrValue
            role: affectedProduct
            entity:
              '@type': EntityRef
              id: 922ebf01-e930-47a0-842e-059d1f188a15
              '@referredType': Product
          - '@type': RelatedEntityRefOrValue
            role: optionalServices
            entity:
              '@type': ProductOffering
              name: Ganzheitliche Entstörung
          - '@type': RelatedEntityRefOrValue
            role: diagnosis
            entity:
              '@type': EntityRef
              id: 873ebg01-a930-47a0-842e-059d1f188b23
              '@referredType': ProductTest
        relatedParty:
          - '@type': RelatedPartyOrPartyRole
            role: orderManagementBuyerContact
            partyOrPartyRole:
              '@type': Individual
              contactMedium:
                - '@type': PhoneContactMedium
                  contactType: fixed
                  phoneNumber: '+49221456789'
                - '@type': PhoneContactMedium
                  contactType: mobile
                  phoneNumber: '+4917754545454'
                - '@type': EmailContactMedium
                  contactType: email
                  emailAddress: j.kirk@example.net
              familyName: Kirk
              salutation: Herr
              givenName: James T.
              title: Captain
          - '@type': RelatedPartyOrPartyRole
            role: installationContact
            partyOrPartyRole:
              '@type': Individual
              contactMedium:
                - '@type': PhoneContactMedium
                  contactType: fixed
                  phoneNumber: '+49221456790'
                - '@type': PhoneContactMedium
                  contactType: mobile
                  phoneNumber: '+4917754545455'
                - '@type': EmailContactMedium
                  contactType: email
                  emailAddress: m.scott@example.net
              familyName: Scott
              salutation: Herr
              givenName: Montgomery
              title: Lt. Cmdr.
        accessLineId: DEU.DTAG.FTYLIQ7PFT
        agreement:
          - '@type': Agreement
            name: buyerServiceContract
            engagedParty:
              - '@type': Organization
                businessId: '500011'
            businessId: '500012'
            agreementType: buyerServiceContract
          - '@type': Agreement
            name: ordererServiceContract
            engagedParty:
              - '@type': Organization
                businessId: '500014'
            businessId: '500013'
            agreementType: ordererServiceContract
          - '@type': Agreement
            name: singleContract
            businessId: '555001'
            agreementType: singleContract
        endUserContactAllowed: true
        expressFaultResolution: oneTime
        faultQuestionnaire:
          - questionId: DSL01
            answerId: DSL01-03
          - questionId: DSL04
            answerId: DSL04-02
        interimMessagesRequested: true
        networkTerminationLocation: Flur
        requestedTimeSlot:
          '@type': TimeSlot
          validFor:
            startDateTime: '2024-03-08T12:00:00+01:00'
            endDateTime: '2024-03-08T16:00:00+01:00'
        categoryId: SABB
    CreateInflightChangeTroubleTicket_request:
      description: POST InflightChangeTroubleTicket Request Example
      value:
        $schema: '##SCHEMA_PATH##'
        '@type': InflightChangeTroubleTicket_FVO
        requestPostedDate: '2024-02-09T17:30:00+01:00'
        entity:
          '@type': TroubleTicketRef
          id: ac925eed-111b-4558-82e3-c48153c8c95c
          href: https://api.example.org/tmf-api/troubleTicketManagement/v5/troubleTicket/ac925eed-111b-4558-82e3-c48153c8c95c
        category:
          - reschedule
        requestedResolutionDate: '2024-03-09T00:00:00+01:00'
        requestedTimeSlot:
          '@type': TimeSlot
          validFor:
            startDateTime: '2024-03-09T12:00:00+01:00'
            endDateTime: '2024-03-09T16:00:00+01:00'
    TroubleTicketAttributeValueChangeEvent_request:
      description: Message example for TroubleTicketAttributeValueChangeEvent_request event
      value:
        $schema: '##SCHEMA_PATH##'
        '@type': TroubleTicketAttributeValueChangeEvent
        eventId: 9436cffe-68b9-42f7-9f93-ef154f7bb8a6
        eventTime: '2024-03-09T15:30:00+01:00'
        eventType: TroubleTicketAttributeValueChangeEvent
        fieldPath:
          - path: /note
            typeOfChange: add
          - path: /resolutionDate
            typeOfChange: add
          - path: /relatedParty/-
            typeOfChange: add
        event:
          troubleTicket:
            '@type': FaultTicket
            id: ac925eed-111b-4558-82e3-c48153c8c95c
            href: https://api.example.org/tmf-api/troubleTicketManagement/v5/troubleTicket/ac925eed-111b-4558-82e3-c48153c8c95c
            description: Internetverbindung fällt mehrmals pro Tag aus
            orderPostedDate: '2024-02-08T08:00:00+01:00'
            ticketType: fault
            creationDate: '2024-02-08T08:00:10+01:00'
            requestedResolutionDate: '2024-03-08T00:00:00+01:00'
            resolutionDate: '2024-03-09T15:30:00+01:00'
            externalIdentifier:
              - '@type': ExternalIdentifier
                id: '1000222'
                externalIdentifierType: troubleTicketExternalId
                owner: DEU.VFD
            note:
              - '@type': TroubleTicketRemark
                text: Anschluss läuft wieder
            relatedEntity:
              - '@type': RelatedEntityRefOrValue
                role: affectedProduct
                entity:
                  '@type': EntityRef
                  id: 922ebf01-e930-47a0-842e-059d1f188a15
                  '@referredType': Product
              - '@type': RelatedEntityRefOrValue
                role: optionalServices
                entity:
                  '@type': ProductOffering
                  name: Ganzheitliche Entstörung
              - '@type': RelatedEntityRefOrValue
                role: diagnosis
                entity:
                  '@type': EntityRef
                  id: 873ebg01-a930-47a0-842e-059d1f188b23
                  '@referredType': ProductTest
            relatedParty:
              - '@type': RelatedPartyOrPartyRole
                role: orderManagementBuyerContact
                partyOrPartyRole:
                  '@type': Individual
                  contactMedium:
                    - '@type': PhoneContactMedium
                      contactType: fixed
                      phoneNumber: '+49221456789'
                    - '@type': PhoneContactMedium
                      contactType: mobile
                      phoneNumber: '+4917754545454'
                    - '@type': EmailContactMedium
                      contactType: email
                      emailAddress: j.kirk@example.net
                  familyName: Kirk
                  salutation: Herr
                  givenName: James T.
                  title: Captain
              - '@type': RelatedPartyOrPartyRole
                role: installationContact
                partyOrPartyRole:
                  '@type': Individual
                  contactMedium:
                    - '@type': PhoneContactMedium
                      contactType: fixed
                      phoneNumber: '+49221456790'
                    - '@type': PhoneContactMedium
                      contactType: mobile
                      phoneNumber: '+4917754545455'
                    - '@type': EmailContactMedium
                      contactType: email
                      emailAddress: m.scott@example.net
                  familyName: Scott
                  salutation: Herr
                  givenName: Montgomery
                  title: Lt. Cmdr.
              - '@type': RelatedPartyOrPartyRole
                role: orderManagementSellerContact
                partyOrPartyRole:
                  '@type': Individual
                  contactMedium:
                    - '@type': PhoneContactMedium
                      contactType: fixed
                      phoneNumber: '0221789456'
                    - '@type': PhoneContactMedium
                      contactType: mobile
                      phoneNumber: '01717894560221'
                    - '@type': EmailContactMedium
                      contactType: email
                      emailAddress: l.bach@example.net
                  familyName: Bach
                  salutation: Frau
                  givenName: Lisa
            status: inProgress
            statusChangeDate: '2024-02-08T16:00:00+01:00'
            statusChangeMessage:
              - code: '0000'
                text: Keine Änderung zum Auftrag
            statusChangeHistory:
              - '@type': StatusChange
                statusChangeDate: '2024-02-08T08:00:10+01:00'
                status: acknowledged
            accessLineId: DEU.DTAG.FTYLIQ7PFT
            agreement:
              - '@type': Agreement
                name: buyerServiceContract
                engagedParty:
                  - '@type': Organization
                    businessId: '500011'
                businessId: '500012'
                agreementType: buyerServiceContract
              - '@type': Agreement
                name: ordererServiceContract
                engagedParty:
                  - '@type': Organization
                    businessId: '500014'
                businessId: '500013'
                agreementType: ordererServiceContract
              - '@type': Agreement
                name: singleContract
                businessId: '555001'
                agreementType: singleContract
            endUserContactAllowed: true
            expressFaultResolution: oneTime
            faultQuestionnaire:
              - questionId: DSL01
                answerId: DSL01-03
              - questionId: DSL04
                answerId: DSL04-02
            interimMessagesRequested: true
            networkTerminationLocation: Flur
            requestedTimeSlot:
              '@type': TimeSlot
              validFor:
                startDateTime: '2024-03-08T12:00:00+01:00'
                endDateTime: '2024-03-08T16:00:00+01:00'
            categoryId: SABB
    TroubleTicketInformationRequiredEvent_request:
      description: Message example for TroubleTicketInformationRequiredEvent event
      value:
        $schema: '##SCHEMA_PATH##'
        '@type': TroubleTicketInformationRequiredEvent
        eventId: 6d18e234-8559-4432-aed0-5f1d003fce73
        eventTime: '2024-02-08T17:30:00+01:00'
        eventType: TroubleTicketInformationRequiredEvent
        fieldPath:
          - path: /requestedTimeSlot
            typeOfChange: replace
        event:
          troubleTicket:
            '@type': FaultTicket
            id: ac925eed-111b-4558-82e3-c48153c8c95c
            href: https://api.example.org/tmf-api/troubleTicketManagement/v5/troubleTicket/ac925eed-111b-4558-82e3-c48153c8c95c
            description: Internetverbindung fällt mehrmals pro Tag aus
            orderPostedDate: '2024-02-08T08:00:00+01:00'
            ticketType: fault
            creationDate: '2024-02-08T08:00:10+01:00'
            requestedResolutionDate: '2024-03-08T00:00:00+01:00'
            externalIdentifier:
              - '@type': ExternalIdentifier
                id: '1000222'
                externalIdentifierType: troubleTicketExternalId
                owner: DEU.VFD
            relatedEntity:
              - '@type': RelatedEntityRefOrValue
                role: affectedProduct
                entity:
                  '@type': EntityRef
                  id: 922ebf01-e930-47a0-842e-059d1f188a15
                  '@referredType': Product
              - '@type': RelatedEntityRefOrValue
                role: optionalServices
                entity:
                  '@type': ProductOffering
                  name: Ganzheitliche Entstörung
              - '@type': RelatedEntityRefOrValue
                role: diagnosis
                entity:
                  '@type': EntityRef
                  id: 873ebg01-a930-47a0-842e-059d1f188b23
                  '@referredType': ProductTest
            relatedParty:
              - '@type': RelatedPartyOrPartyRole
                role: orderManagementBuyerContact
                partyOrPartyRole:
                  '@type': Individual
                  contactMedium:
                    - '@type': PhoneContactMedium
                      contactType: fixed
                      phoneNumber: '+49221456789'
                    - '@type': PhoneContactMedium
                      contactType: mobile
                      phoneNumber: '+4917754545454'
                    - '@type': EmailContactMedium
                      contactType: email
                      emailAddress: j.kirk@example.net
                  familyName: Kirk
                  salutation: Herr
                  givenName: James T.
                  title: Captain
              - '@type': RelatedPartyOrPartyRole
                role: installationContact
                partyOrPartyRole:
                  '@type': Individual
                  contactMedium:
                    - '@type': PhoneContactMedium
                      contactType: fixed
                      phoneNumber: '+49221456790'
                    - '@type': PhoneContactMedium
                      contactType: mobile
                      phoneNumber: '+4917754545455'
                    - '@type': EmailContactMedium
                      contactType: email
                      emailAddress: m.scott@example.net
                  familyName: Scott
                  salutation: Herr
                  givenName: Montgomery
                  title: Lt. Cmdr.
            status: pending
            statusChangeDate: '2024-02-08T17:00:00+01:00'
            statusChangeMessage:
              - code: '6000'
                text: Endkunde hat Herstellung zurückgestellt/verweigert.
            statusChangeHistory:
              - '@type': StatusChange
                statusChangeDate: '2024-02-08T08:00:10+01:00'
                status: acknowledged
              - '@type': StatusChange
                statusChangeDate: '2024-02-08T16:00:00+01:00'
                statusChangeMessage:
                  - code: '0000'
                    text: Keine Änderung zum Auftrag
                status: inProgress
            accessLineId: DEU.DTAG.FTYLIQ7PFT
            agreement:
              - '@type': Agreement
                name: buyerServiceContract
                engagedParty:
                  - '@type': Organization
                    businessId: '500011'
                businessId: '500012'
                agreementType: buyerServiceContract
              - '@type': Agreement
                name: ordererServiceContract
                engagedParty:
                  - '@type': Organization
                    businessId: '500014'
                businessId: '500013'
                agreementType: ordererServiceContract
              - '@type': Agreement
                name: singleContract
                businessId: '555001'
                agreementType: singleContract
            endUserContactAllowed: true
            expressFaultResolution: oneTime
            faultQuestionnaire:
              - questionId: DSL01
                answerId: DSL01-03
              - questionId: DSL04
                answerId: DSL04-02
            interimMessagesRequested: true
            networkTerminationLocation: Flur
            requestedTimeSlot:
              '@type': TimeSlot
              validFor:
                startDateTime: '2024-03-08T12:00:00+01:00'
                endDateTime: '2024-03-08T16:00:00+01:00'
            categoryId: SABB
    TroubleTicketStatusChangeEvent_request:
      description: Message example for TroubleTicketStatusChangeEvent event
      value:
        $schema: '##SCHEMA_PATH##'
        '@type': TroubleTicketStatusChangeEvent
        eventId: d09381ea-bff0-4c4b-8698-05cdbc347188
        eventTime: '2024-02-08T16:00:00+01:00'
        eventType: TroubleTicketStatusChangeEvent
        event:
          troubleTicket:
            '@type': FaultTicket
            id: ac925eed-111b-4558-82e3-c48153c8c95c
            href: https://api.example.org/tmf-api/troubleTicketManagement/v5/troubleTicket/ac925eed-111b-4558-82e3-c48153c8c95c
            description: Internetverbindung fällt mehrmals pro Tag aus
            orderPostedDate: '2024-02-08T08:00:00+01:00'
            ticketType: fault
            creationDate: '2024-02-08T08:00:10+01:00'
            requestedResolutionDate: '2024-03-08T00:00:00+01:00'
            externalIdentifier:
              - '@type': ExternalIdentifier
                id: '1000222'
                externalIdentifierType: troubleTicketExternalId
                owner: DEU.VFD
            relatedEntity:
              - '@type': RelatedEntityRefOrValue
                role: affectedProduct
                entity:
                  '@type': EntityRef
                  id: 922ebf01-e930-47a0-842e-059d1f188a15
                  '@referredType': Product
              - '@type': RelatedEntityRefOrValue
                role: optionalServices
                entity:
                  '@type': ProductOffering
                  name: Ganzheitliche Entstörung
              - '@type': RelatedEntityRefOrValue
                role: diagnosis
                entity:
                  '@type': EntityRef
                  id: 873ebg01-a930-47a0-842e-059d1f188b23
                  '@referredType': ProductTest
            relatedParty:
              - '@type': RelatedPartyOrPartyRole
                role: orderManagementBuyerContact
                partyOrPartyRole:
                  '@type': Individual
                  contactMedium:
                    - '@type': PhoneContactMedium
                      contactType: fixed
                      phoneNumber: '+49221456789'
                    - '@type': PhoneContactMedium
                      contactType: mobile
                      phoneNumber: '+4917754545454'
                    - '@type': EmailContactMedium
                      contactType: email
                      emailAddress: j.kirk@example.net
                  familyName: Kirk
                  salutation: Herr
                  givenName: James T.
                  title: Captain
              - '@type': RelatedPartyOrPartyRole
                role: installationContact
                partyOrPartyRole:
                  '@type': Individual
                  contactMedium:
                    - '@type': PhoneContactMedium
                      contactType: fixed
                      phoneNumber: '+49221456790'
                    - '@type': PhoneContactMedium
                      contactType: mobile
                      phoneNumber: '+4917754545455'
                    - '@type': EmailContactMedium
                      contactType: email
                      emailAddress: m.scott@example.net
                  familyName: Scott
                  salutation: Herr
                  givenName: Montgomery
                  title: Lt. Cmdr.
            status: inProgress
            statusChangeDate: '2024-02-08T16:00:00+01:00'
            statusChangeMessage:
              - code: '0000'
                text: Keine Änderung zum Auftrag
            statusChangeHistory:
              - '@type': StatusChange
                statusChangeDate: '2024-02-08T08:00:10+01:00'
                status: acknowledged
            accessLineId: DEU.DTAG.FTYLIQ7PFT
            agreement:
              - '@type': Agreement
                name: buyerServiceContract
                engagedParty:
                  - '@type': Organization
                    businessId: '500011'
                businessId: '500012'
                agreementType: buyerServiceContract
              - '@type': Agreement
                name: ordererServiceContract
                engagedParty:
                  - '@type': Organization
                    businessId: '500014'
                businessId: '500013'
                agreementType: ordererServiceContract
              - '@type': Agreement
                name: singleContract
                businessId: '555001'
                agreementType: singleContract
            endUserContactAllowed: true
            expressFaultResolution: oneTime
            faultQuestionnaire:
              - questionId: DSL01
                answerId: DSL01-03
              - questionId: DSL04
                answerId: DSL04-02
            interimMessagesRequested: true
            networkTerminationLocation: Flur
            requestedTimeSlot:
              '@type': TimeSlot
              validFor:
                startDateTime: '2024-03-08T12:00:00+01:00'
                endDateTime: '2024-03-08T16:00:00+01:00'
            categoryId: SABB
    TroubleTicketResolvedEvent_request:
      description: Message example for TroubleTicketStatusChangeEvent event
      value:
        $schema: '##SCHEMA_PATH##'
        '@type': TroubleTicketStatusChangeEvent
        eventId: cad34f21-f37f-4141-b123-9ccea07f1c21
        eventTime: '2024-03-24T00:00:00+01:00'
        eventType: TroubleTicketStatusChangeEvent
        event:
          troubleTicket:
            '@type': FaultTicket
            id: ac925eed-111b-4558-82e3-c48153c8c95c
            href: https://api.example.org/tmf-api/troubleTicketManagement/v5/troubleTicket/ac925eed-111b-4558-82e3-c48153c8c95c
            description: Internetverbindung fällt mehrmals pro Tag aus
            orderPostedDate: '2024-02-08T08:00:00+01:00'
            ticketType: fault
            creationDate: '2024-02-08T08:00:10+01:00'
            requestedResolutionDate: '2024-03-08T00:00:00+01:00'
            resolutionDate: '2024-03-09T15:30:00+01:00'
            externalIdentifier:
              - '@type': ExternalIdentifier
                id: '1000222'
                externalIdentifierType: troubleTicketExternalId
                owner: DEU.VFD
            note:
              - '@type': TroubleTicketRemark
                text: Anschluss läuft wieder
            relatedEntity:
              - '@type': RelatedEntityRefOrValue
                role: affectedProduct
                entity:
                  '@type': EntityRef
                  id: 922ebf01-e930-47a0-842e-059d1f188a15
                  '@referredType': Product
              - '@type': RelatedEntityRefOrValue
                role: optionalServices
                entity:
                  '@type': ProductOffering
                  name: Ganzheitliche Entstörung
              - '@type': RelatedEntityRefOrValue
                role: diagnosis
                entity:
                  '@type': EntityRef
                  id: 873ebg01-a930-47a0-842e-059d1f188b23
                  '@referredType': ProductTest
            relatedParty:
              - '@type': RelatedPartyOrPartyRole
                role: orderManagementBuyerContact
                partyOrPartyRole:
                  '@type': Individual
                  contactMedium:
                    - '@type': PhoneContactMedium
                      contactType: fixed
                      phoneNumber: '+49221456789'
                    - '@type': PhoneContactMedium
                      contactType: mobile
                      phoneNumber: '+4917754545454'
                    - '@type': EmailContactMedium
                      contactType: email
                      emailAddress: j.kirk@example.net
                  familyName: Kirk
                  salutation: Herr
                  givenName: James T.
                  title: Captain
              - '@type': RelatedPartyOrPartyRole
                role: installationContact
                partyOrPartyRole:
                  '@type': Individual
                  contactMedium:
                    - '@type': PhoneContactMedium
                      contactType: fixed
                      phoneNumber: '+49221456790'
                    - '@type': PhoneContactMedium
                      contactType: mobile
                      phoneNumber: '+4917754545455'
                    - '@type': EmailContactMedium
                      contactType: email
                      emailAddress: m.scott@example.net
                  familyName: Scott
                  salutation: Herr
                  givenName: Montgomery
                  title: Lt. Cmdr.
              - '@type': RelatedPartyOrPartyRole
                role: orderManagementSellerContact
                partyOrPartyRole:
                  '@type': Individual
                  contactMedium:
                    - '@type': PhoneContactMedium
                      contactType: fixed
                      phoneNumber: '0221789456'
                    - '@type': PhoneContactMedium
                      contactType: mobile
                      phoneNumber: '01717894560221'
                    - '@type': EmailContactMedium
                      contactType: email
                      emailAddress: l.bach@example.net
                  familyName: Bach
                  salutation: Frau
                  givenName: Lisa
            status: resolved
            statusChangeDate: '2024-03-24T00:00:00+01:00'
            statusChangeMessage:
              - code: '7000'
                text: Fehler beseitigt.
            statusChangeHistory:
              - '@type': StatusChange
                statusChangeDate: '2024-02-08T08:00:10+01:00'
                status: acknowledged
              - '@type': StatusChange
                statusChangeDate: '2024-02-08T16:00:00+01:00'
                statusChangeMessage:
                  - code: '0000'
                    text: Keine Änderung zum Auftrag
                status: inProgress
            accessLineId: DEU.DTAG.FTYLIQ7PFT
            agreement:
              - '@type': Agreement
                name: buyerServiceContract
                engagedParty:
                  - '@type': Organization
                    businessId: '500011'
                businessId: '500012'
                agreementType: buyerServiceContract
              - '@type': Agreement
                name: ordererServiceContract
                engagedParty:
                  - '@type': Organization
                    businessId: '500014'
                businessId: '500013'
                agreementType: ordererServiceContract
              - '@type': Agreement
                name: singleContract
                businessId: '555001'
                agreementType: singleContract
            endUserContactAllowed: true
            expressFaultResolution: oneTime
            faultQuestionnaire:
              - questionId: DSL01
                answerId: DSL01-03
              - questionId: DSL04
                answerId: DSL04-02
            interimMessagesRequested: true
            networkTerminationLocation: Flur
            requestedTimeSlot:
              '@type': TimeSlot
              validFor:
                startDateTime: '2024-03-08T12:00:00+01:00'
                endDateTime: '2024-03-08T16:00:00+01:00'
            categoryId: SABB
    InflightChangeTroubleTicketStateChangeEvent_request:
      description: Message example for InflightChangeTroubleTicketStateChangeEvent event
      value:
        $schema: '##SCHEMA_PATH##'
        '@type': InflightChangeTroubleTicketStateChangeEvent
        eventId: 2285ace1-f11b-4de0-8f12-f9143b839fbd
        eventTime: '2024-02-09T17:30:10+01:00'
        eventType: InflightChangeTroubleTicketStateChangeEvent
        event:
          inflightChangeTroubleTicket:
            '@type': InflightChangeTroubleTicket
            id: 33359a1e-134f-4b0f-98a8-acc91cf5bffe
            href: https://api.example.org/tmf-api/troubleTicketManagement/v5/inflightChangeTroubleTicket/33359a1e-134f-4b0f-98a8-acc91cf5bffe
            state: inProgress
            requestDate: '2024-02-09T17:30:10+01:00'
            requestPostedDate: '2024-02-09T17:30:00+01:00'
            entity:
              '@type': TroubleTicketRef
              id: ac925eed-111b-4558-82e3-c48153c8c95c
              href: https://api.example.org/tmf-api/troubleTicketManagement/v5/troubleTicket/ac925eed-111b-4558-82e3-c48153c8c95c
            troubleTicket:
              '@type': TroubleTicketRef
              id: ac925eed-111b-4558-82e3-c48153c8c95c
              href: https://api.example.org/tmf-api/troubleTicketManagement/v5/troubleTicket/ac925eed-111b-4558-82e3-c48153c8c95c
            category:
              - reschedule
            stateChangeDate: '2024-02-09T17:30:10+01:00'
            stateChangeHistory:
              - '@type': StateChange
                stateChangeDate: '2024-02-09T17:30:10+01:00'
                state: acknowledged
            stateChangeMessage:
              - code: '0010'
                text: Auftrag ausgeführt
            requestedResolutionDate: '2024-03-09T00:00:00+01:00'
            requestedTimeSlot:
              '@type': TimeSlot
              validFor:
                startDateTime: '2024-03-09T12:00:00+01:00'
                endDateTime: '2024-03-09T16:00:00+01:00'
    TroubleTicket_list_example_response:
      value:
        - id: '3180'
          href: https://mycsp.com:8080/tmf-api/troubleTicket/v5/troubleTicket/3180
          name: complaint over last bill
          priority: High
          '@type': TroubleTicket
        - id: '3256'
          href: https://mycsp.com:8080/tmf-api/troubleTicket/v5/troubleTicket/3256
          name: 'Coversage problem '
          priority: High
          '@type': TechnicalTroubleTicket
        - id: '4563'
          href: https://mycsp.com:8080/tmf-api/troubleTicket/5/troubleTicket/4563
          name: Network latency
          priority: High
          '@type': NetworkTroubleTicket
      description: Here's an example of a request for retrieving a list of trouble ticket(s). The given filter criteria is priority High and fields id,href,name,@type,priority
    TroubleTicket_retrieve_example_response:
      value:
        id: '3180'
        href: https://mycsp.com:8080/tmf-api/troubleTicket/v5/troubleTicket/3180
        creationDate: '2022-05-31T07:34:45.968Z'
        description: 'I do not accept the last VOD charge, since the movie was constantly interrupted, I had to quick watching the movie in the middle '
        expectedResolutionDate: '2019-06-10T07:34:45.968Z'
        lastUpdateDate: '2022-05-31T07:34:45.968Z'
        name: complaint over last bill
        priority: High
        requestedResolutionDate: '2022-05-31T07:34:45.968Z'
        resolutionDate: '2022-05-31T07:34:45.968Z'
        severity: Minor
        status: resolved
        statusChangeDate: '2022-05-31T07:34:45.968Z'
        statusChangeMessage: Apply full credit
        ticketType: Bill Dispute
        troubleTicketCharacteristic:
          - id: '1'
            name: disputeAmount
            valueType: Number
            value: '40'
            '@type': NumberCharacteristic
          - id: '2'
            name: creditAmount
            valueType: Number
            value: '40'
            characteristicRelationship:
              - id: '4'
                relationshipType: dependency
                '@type': CharacteristicRelationship
            '@type': NumberCharacteristic
          - id: '3'
            name: currency
            valueType: String
            value: USD
            '@type': StringCharacteristic
          - id: '4'
            name: creditReason
            valueType: String
            value: Network connectivity issues
            '@type': StringCharacteristic
        attachment:
          - description: Scanned disputed bill
            mimeType: image/png
            name: March Bill
            url: https://mycsp.com:7070/docloader?docnum=3534555
            '@type': AttachmentRef
        channel:
          id: '8774'
          name: self service
          '@type': ChannelRef
        note:
          - id: '77456'
            author: Jack Smith
            date: '2019-05-31T07:34:45.968Z'
            text: This is quite important, please approach me as soon as possible
            '@type': Note
        relatedEntity:
          - role: disputedBill
            '@type': RelatedEntity
            entity:
              id: '3472'
              href: https://mycsp.com:8080/tmf-api/customerBillManagement/v4/customerBill/8297
              name: March 2019 Bill
              '@type': EntityRef
              '@referredType': CustomerBill
        relatedParty:
          - role: member
            partyOrPartyRole:
              id: '9866'
              href: https://mycsp.com:8080/tmf-api/partyManagement/v1/individual/9866
              name: Sandy Smith
              '@type': PartyRef
              '@referredType': Individual
            '@type': RelatedPartyOrPartyRole
          - role: reporter
            '@type': RelatedPartyOrPartyRole
            partyOrPartyRole:
              name: Jacob Jac Miller
              contactMedium:
                - contactType: business email
                  emailAddress: jacobJac@telco.com
                  '@type': EmailContactMedium
              '@type': Individual
          - role: customer
            partyOrPartyRole:
              id: '9176'
              href: https://mycsp.com:8080/tmf-api/partyManagement/v4/customer/9176
              name: Jack Smith
              '@type': PartyRoleRef
              '@referredType': Customer
            '@type': RelatedPartyOrPartyRole
        statusChangeHistory:
          - statusChangeDate: '2022-05-28T07:34:45.968Z'
            statusChangeMessage: 'trouble ticket created '
            status: acknowledged
            '@type': StatusChange
          - statusChangeDate: '2022-05-28T08:34:45.968Z'
            statusChangeMessage: start process
            status: inProgress
            '@type': StatusChange
          - statusChangeDate: '2022-05-29T07:34:45.968Z'
            statusChangeMessage: Need more information from the customer
            status: pending
            '@type': StatusChange
          - statusChangeDate: '2022-05-31T07:34:45.968Z'
            statusChangeMessage: Apply full credit
            status: resolved
            '@type': StatusChange
        troubleTicketRelationship:
          - id: '567433'
            href: https://mycsp.com:8080/tmf-api/troubleTicket/v5/troubleTicket/567433
            name: Network Coverage
            relationshipType: dependecy
            '@type': TroubleTicketRelationship
        externalIdentifier:
          - id: '3331234'
            owner: BMC Remedy
            externalIdentifierType: Incident
            '@type': ExternalIdentifier
        '@schemaLocation': https://mycsp.com:8080/tmf-api/troubleTicket/5/schema/troubleTicket.yaml
        '@type': TroubleTicket
      description: Here's an example of a request for retrieving a spesific trouble ticket with id 3180.
    TroubleTicket_create_example_request:
      value:
        name: complaint over last bill
        description: 'I do not accept the last VOD charge, since the movie was constantly interrupted, I had to quick watching the movie in the middle '
        severity: Major
        status: inProgress
        ticketType: Bill Dispute
        expectedResolutionDate: '2019-06-10T07:34:45.968Z'
        requestedResolutionDate: '2022-05-31T07:34:45.968Z'
        attachment:
          - description: Scanned disputed bill
            mimeType: image/png
            name: March Bill
            url: https://mycsp.com:7070/docloader?docnum=3534555
            '@type': AttachmentRef
        channel:
          id: '8774'
          name: self service
          '@type': ChannelRef
        note:
          - id: '77456'
            author: Jack Smith
            date: '2022-05-31T07:34:45.968Z'
            text: This is quite important, please approach me as soon as posible
            '@type': Note
        relatedEntity:
          - role: disputedBill
            '@type': RelatedEntity
            entity:
              id: '3472'
              href: https://mycsp.com:8080/tmf-api/customerBillManagement/v5/customerBill/8297
              name: March 2019 Bill
              '@type': EntityRef
              '@referredType': CustomerBill
        relatedParty:
          - role: member
            '@type': RelatedPartyOrPartyRole
            partyOrPartyRole:
              id: '9866'
              href: https://mycsp.com:8080/tmf-api/partyManagement/v1/individual/9866
              name: Sandy Smith
              '@type': PartyRef
              '@referredType': Individual
          - role: reporter
            '@type': RelatedPartyOrPartyRole
            partyOrPartyRole:
              name: Jacob Jac Miller
              contactMedium:
                - contactType: business email
                  emailAddress: jacobJac@telco.com
                  '@type': EmailContactMedium
              '@type': Individual
          - role: customer
            '@type': RelatedPartyOrPartyRole
            partyOrPartyRole:
              id: '9176'
              href: https://mycsp.com:8080/tmf-api/partyManagement/v4/customer/9176
              name: Jack Smith
              '@type': PartyRoleRef
              '@referredType': Customer
        '@type': TroubleTicket
      description: POST trouble ticket request example - only a subset of trouble ticket attributes are used in this example
    TroubleTicket_create_example_response:
      value:
        id: '3180'
        href: https://mycsp.com:8080/tmf-api/troubleTicket/v4/troubleTicket/3180
        creationDate: '2022-05-31T07:34:45.968Z'
        description: 'I do not accept the last VOD charge, since the movie was constantly interrupted, I had to quick watching the movie in the middle '
        expectedResolutionDate: '2019-06-10T07:34:45.968Z'
        lastUpdateDate: '2022-05-31T07:34:45.968Z'
        name: complaint over last bill
        priority: High
        requestedResolutionDate: '2019-05-31T07:34:45.968Z'
        severity: Major
        status: pending
        statusChangeDate: '2019-05-31T07:34:45.968Z'
        statusChangeMessage: Need more information from the customer
        ticketType: Bill Dispute
        attachment:
          - description: Scanned disputed bill
            mimeType: image/png
            name: March Bill
            url: https://mycsp.com:7070/docloader?docnum=3534555
        channel:
          id: '8774'
          name: self service
          '@type': ChannelRef
        note:
          - id: '77456'
            author: Jack Smith
            date: '2019-05-31T07:34:45.968Z'
            text: This is quite important, please approach  me as soon as possible
            '@type': Note
        relatedEntity:
          - role: disputedBill
            '@type': RelatedEntity
            entity:
              id: '3472'
              href: https://mycsp.com:8080/tmf-api/customerBillManagement/v5/customerBill/8297
              name: March 2019 Bill
              '@type': EntityRef
              '@referredType': CustomerBill
        relatedParty:
          - role: member
            '@type': RelatedPartyOrPartyRole
            partyOrPartyRole:
              id: '9866'
              href: https://mycsp.com:8080/tmf-api/partyManagement/v1/individual/9866
              name: Sandy Smith
              '@type': PartyRef
              '@referredType': Individual
          - role: reporter
            '@type': RelatedPartyOrPartyRole
            partyOrPartyRole:
              name: Jacob Jac Miller
              contactMedium:
                - contactType: business email
                  emailAddress: jacobJac@telco.com
                  '@type': EmailContactMedium
              '@type': Individual
          - role: customer
            '@type': RelatedPartyOrPartyRole
            partyOrPartyRole:
              id: '9176'
              href: https://mycsp.com:8080/tmf-api/partyManagement/v4/customer/9176
              name: Jack Smith
              '@type': PartyRoleRef
              '@referredType': Customer
        statusChangeHistory:
          - statusChangeDate: '2019-05-31T07:34:45.968Z'
            statusChangeMessage: Need more information from the customer
            status: pending
            '@type': StatusChange
        troubleTicketRelationship:
          - id: '567433'
            href: https://mycsp.com:8080/tmf-api/troubleTicket/v5/troubleTicket/567433
            name: Network Coverage
            relationshipType: dependecy
        '@schemaLocation': https://mycsp.com:8080/tmf-api/troubleTicket/v5/schema/troubleTicket.yaml
        '@type': TroubleTicket
      description: POST Trouble Ticket response description.
    TroubleTicket_partialupdate_example_application_json_response:
      value:
        id: '3180'
        href: https://mycsp.com:8080/tmf-api/troubleTicket/v5/troubleTicket/3180
        creationDate: '2022-05-31T07:34:45.968Z'
        description: 'I do not accept the last VOD charge, since the movie was constantly interrupted, I had to quick watching the movie in the middle '
        expectedResolutionDate: '2019-06-10T07:34:45.968Z'
        lastUpdateDate: '2022-06-01T07:34:45.968Z'
        name: complaint over last bill
        priority: High
        requestedResDateolutionDate: '2022-05-31T07:34:45.968Z'
        resolutionDate: '2022-06-01T07:34:45.968Z'
        severity: Major
        status: resolved
        statusChangeDate: '2022-06-01T07:34:45.968Z'
        statusChangeMessage: Give credit and resent bill to customer
        ticketType: Bill Dispute
        attachment:
          - description: Scanned disputed bill
            mimeType: image/png
            name: March Bill
            url: https://mycsp.com:7070/docloader?docnum=3534555
        channel:
          id: '8774'
          name: self service
          '@type': ChannelRef
        note:
          - id: '77456'
            author: Jack Smith
            date: '2022-05-31T07:34:45.968Z'
            text: This is quite important, please approach me as soon as possible
            '@type': Note
        relatedEntity:
          - id: '3472'
            href: https://mycsp.com:8080/tmf-api/customerBillManagement/v5/customerBill/8297
            name: March 2022 Bill
            role: disputedBill
            '@type': RelatedEntity
            '@referredType': CustomerBill
        relatedParty:
          - id: '9866'
            href: https://mycsp.com:8080/tmf-api/partyManagement/5/individual/9866
            name: Sandy Smith
            role: member
            '@referredType': Individual
          - id: '9176'
            href: https://mycsp.com:8080/tmf-api/partyManagement/v5/customer/9176
            name: Jack Smith
            role: customer
            '@referredType': Customer
        statusChangeHistory:
          - statusChangeDate: '2022-05-31T07:34:45.968Z'
            statusChangeMessage: Need more information from the customer
            status: pending
            '@type': StatusChange
          - changeDate: '2022-06-01T07:34:45.968Z'
            changeMessage: Give credit and resent bill to customer
            status: resolved
            '@type': StatusChange
        troubleTicketRelationship:
          - id: '567433'
            href: https://mycsp.com:8080/tmf-api/troubleTicket/v5/troubleTicket/567433
            name: Network Coverage
            relationshipType: dependecy
        '@schemaLocation': https://mycsp.com:8080/tmf-api/troubleTicket/v5/schema/troubleTicket.yml
        '@type': TroubleTicket
      description: Response message
    TroubleTicket_partialupdate_example_application_merge_json_request:
      value:
        status: resolved
        statusChangeMessage: Give credit and resent bill to customer
      description: Here's an example of a request for updating a trouble ticket - set status to resolved. This example illustrating patch merge, When PATCH is implemeted merge syntaxt is mandatory
    TroubleTicket_partialupdate_example_application_merge_json_response:
      value:
        id: '3180'
        href: https://mycsp.com:8080/tmf-api/troubleTicket/v5/troubleTicket/3180
        creationDate: '2022-05-31T07:34:45.968Z'
        description: 'I do not accept the last VOD charge, since the movie was constantly interrupted, I had to quick watching the movie in the middle '
        expectedResolutionDate: '2019-06-10T07:34:45.968Z'
        lastUpdateDate: '2022-06-01T07:34:45.968Z'
        name: complaint over last bill
        priority: High
        requestedResDateolutionDate: '2022-05-31T07:34:45.968Z'
        resolutionDate: '2022-06-01T07:34:45.968Z'
        severity: Major
        status: resolved
        statusChangeDate: '2022-06-01T07:34:45.968Z'
        statusChangeMessage: Give credit and resent bill to customer
        ticketType: Bill Dispute
        attachment:
          - description: Scanned disputed bill
            mimeType: image/png
            name: March Bill
            url: https://mycsp.com:7070/docloader?docnum=3534555
        channel:
          id: '8774'
          name: self service
          '@type': ChannelRef
        note:
          - id: '77456'
            author: Jack Smith
            date: '2022-05-31T07:34:45.968Z'
            text: This is quite important, please approach me as soon as possible
            '@type': Note
        relatedEntity:
          - id: '3472'
            href: https://mycsp.com:8080/tmf-api/customerBillManagement/v5/customerBill/8297
            name: March 2022 Bill
            role: disputedBill
            '@type': RelatedEntity
            '@referredType': CustomerBill
        relatedParty:
          - id: '9866'
            href: https://mycsp.com:8080/tmf-api/partyManagement/5/individual/9866
            name: Sandy Smith
            role: member
            '@referredType': Individual
          - id: '9176'
            href: https://mycsp.com:8080/tmf-api/partyManagement/v5/customer/9176
            name: Jack Smith
            role: customer
            '@referredType': Customer
        statusChangeHistory:
          - statusChangeDate: '2022-05-31T07:34:45.968Z'
            statusChangeMessage: Need more information from the customer
            status: pending
            '@type': StatusChange
          - changeDate: '2022-06-01T07:34:45.968Z'
            changeMessage: Give credit and resent bill to customer
            status: resolved
            '@type': StatusChange
        troubleTicketRelationship:
          - id: '567433'
            href: https://mycsp.com:8080/tmf-api/troubleTicket/v5/troubleTicket/567433
            name: Network Coverage
            relationshipType: dependecy
        '@schemaLocation': https://mycsp.com:8080/tmf-api/troubleTicket/v5/schema/troubleTicket.yml
        '@type': TroubleTicket
      description: Response message
    TroubleTicket_partialupdate_example_application_json_patch_request:
      value:
        - op: replace
          path: /severity
          value: Minor
        - op: add
          path: /note
          value:
            id: '77456'
            author: Jack Smith
            text: This is quite important, please approach me as soon as possible
      description: Here's an example of a request for updating a trouble ticket - set severity to Minor and add new Note. This example illustrating patch json
    TroubleTicket_partialupdate_example_application_json_patch_response:
      value:
        id: '3180'
        href: https://mycsp.com:8080/tmf-api/troubleTicket/v5/troubleTicket/3180
        creationDate: '2022-05-31T07:34:45.968Z'
        description: 'I do not accept the last VOD charge, since the movie was constantly interrupted, I had to quick watching the movie in the middle '
        expectedResolutionDate: '2019-06-10T07:34:45.968Z'
        lastUpdateDate: '2022-05-31T07:34:45.968Z'
        name: complaint over last bill
        priority: Medium
        requestedResolutionDate: '2022-05-31T07:34:45.968Z'
        severity: Minor
        status: pending
        statusChangeDate: '2022-05-31T07:34:45.968Z'
        statusChangeMessage: Need more information from the customer
        ticketType: Bill Dispute
        attachment:
          - description: Scanned disputed bill
            mimeType: image/png
            name: March Bill
            url: https://mycsp.com:7070/docloader?docnum=3534555
        channel:
          id: '8774'
          name: self service
          '@type': ChannelRef
        note:
          - id: '77456'
            author: Jack Smith
            date: '2019-05-31T07:34:45.968Z'
            text: This is quite important, please approach me as soon as possible
            '@type': Note
        relatedEntity:
          - id: '3472'
            href: https://mycsp.com:8080/tmf-api/customerBillManagement/v5/customerBill/8297
            name: March 2019 Bill
            role: disputedBill
            '@type': RelatedEntity
            '@referredType': CustomerBill
        relatedParty:
          - id: '9866'
            href: https://mycsp.com:8080/tmf-api/partyManagement/v4/individual/9866
            name: Sandy Smith
            role: member
            '@referredType': Individual
          - id: '9176'
            href: https://mycsp.com:8080/tmf-api/partyManagement/v4/customer/9176
            name: Jack Smith
            role: customer
            '@referredType': Customer
        statusChangeHistory:
          - statusChangeDate: '2019-05-31T07:34:45.968Z'
            statusChangeMessage: Need more information from the customer
            status: pending
            '@type': StatusChange
        troubleTicketRelationship:
          - TroubleTicket:
              id: '567433'
              href: https://mycsp.com:8080/tmf-api/troubleTicket/v5/troubleTicket/567433
              name: Network Coverage
              relationshipType: dependecy
        '@schemaLocation': https://mycsp.com:8080/tmf-api/troubleTicket/v5/schema/troubleTicket.yml
        '@type': TroubleTicket
      description: Response message
    TroubleTicket_partialupdate_example_application_json_patch_query_response:
      value:
        id: '3180'
        href: https://mycsp.com:8080/tmf-api/troubleTicket/v5/troubleTicket/3180
        creationDate: '2022-05-31T07:34:45.968Z'
        description: 'I do not accept the last VOD charge, since the movie was constantly interrupted, I had to quick watching the movie in the middle '
        expectedResolutionDate: '2019-06-10T07:34:45.968Z'
        lastUpdateDate: '2022-05-31T07:34:45.968Z'
        name: complaint over last bill
        priority: High
        requestedResolutionDate: '2022-05-31T07:34:45.968Z'
        severity: Minor
        status: pending
        statusChangeDate: '2022-05-31T07:34:45.968Z'
        statusChangeMessage: Need more information from the customer
        ticketType: Bill Dispute
        attachment:
          - description: Scanned disputed bill
            mimeType: image/png
            name: March Bill
            url: https://mycsp.com:7070/docloader?docnum=3534555
        channel:
          id: '8774'
          name: self service
          '@type': ChannelRef
        note:
          - id: '77456'
            author: Jack Smith
            date: '2022-05-31T07:34:45.968Z'
            text: Please approach me as soon as possible. Thanks in advance
            '@type': Note
        relatedEntity:
          - id: '3472'
            href: https://mycsp.com:8080/tmf-api/customerBillManagement/v5/customerBill/8297
            name: March 2022 Bill
            role: disputedBill
            '@type': RelatedEntity
            '@referredType': CustomerBill
        relatedParty:
          - id: '9866'
            href: https://mycsp.com:8080/tmf-api/partyManagement/v5/individual/9866
            name: Sandy Smith
            role: member
            '@referredType': Individual
          - id: '9176'
            href: https://mycsp.com:8080/tmf-api/partyManagement/v5/customer/9176
            name: Jack Smith
            role: customer
            '@referredType': Customer
        statusChangeHistory:
          - statusChangeDate: '2022-05-31T07:34:45.968Z'
            statusChangeMessage: Need more information from the customer
            status: pending
            '@type': StatusChange
        troubleTicketRelationship:
          - TroubleTicket:
              id: '567433'
              href: https://mycsp.com:8080/tmf-api/troubleTicket/v5/troubleTicket/567433
              name: Network Coverage
              relationshipType: dependecy
        '@schemaLocation': https://mycsp.com:8080/tmf-api/troubleTicket/v5/schema/troubleTicket.yml
        '@type': TroubleTicket
      description: Response message
    TroubleTicketCreateEvent_request:
      value:
        correlationId: 95003dd3-e325
        description: TroubleTicketCreateEvent illustration
        domain: Commercial
        eventId: 4010-9b59-509a64cf85a8
        eventTime: '2022-08-25T12:18:12.171Z'
        eventType: TroubleTicketCreateEvent
        priority: '1'
        timeOcurred: '2022-08-25T12:18:06.252Z'
        title: TroubleTicketCreateEvent
        event:
          troubleTicket:
            id: '3180'
            href: http://servername/troubleTicket/3180
            creationDate: '2019-05-31T07:34:45.968Z'
            description: 'I do not accept the last VOD charge, since the movie was constantly interrupted, I had to quick watching the movie in the middle '
            expectedResolutionDate: '2019-06-10T07:34:45.968Z'
            externalIdentifier: 213-9909
            lastUpdateDate: '2019-05-31T07:34:45.968Z'
            name: complaint over last bill
            priority: High
            requestedResolutionDate: '2019-05-31T07:34:45.968Z'
            severity: Urgent
            status: Pending
            statusChangeDate: '2019-05-31T07:34:45.968Z'
            statusChangeMessage: Need more information from the customer
            ticketType: Bill Dispute
            attachment:
              - description: Scanned disputed bill
                mimeType: image/png
                name: March Bill
                url: https://mycsp.com:7070/docloader?docnum=3534555
                '@type': ' AttachmentRef'
            channel:
              id: '8774'
              name: self service
              '@type': ChannelRef
            note:
              - id: '77456'
                author: Jack Smith
                date: '2019-05-31T07:34:45.968Z'
                text: This is quite important, please approach me as soon as possible
                '@type': Note
            relatedEntity:
              - role: disputedBill
                '@type': RelatedEntity
                entity:
                  id: '3472'
                  href: https://mycsp.com:8080/tmf-api/customerBillManagement/v5/customerBill/8297
                  name: March 2019 Bill
                  '@type': EntityRef
                  '@referredType': CustomerBill
            relatedParty:
              - role: member
                '@type': RelatedPartyOrPartyRole
                partyOrPartyRole:
                  id: '9866'
                  href: https://mycsp.com:8080/tmf-api/partyManagement/v1/individual/9866
                  name: Sandy Smith
                  '@type': PartyRef
                  '@referredType': Individual
              - role: reporter
                '@type': RelatedPartyOrPartyRole
                partyOrPartyRole:
                  id: '9867'
                  href: https://mycsp.com:8080/tmf-api/partyManagement/v1/individual/9867
                  name: Jacob Jac Miller
                  '@type': PartyRef
                  '@referredType': Individual
              - role: customer
                '@type': RelatedPartyOrPartyRole
                partyOrPartyRole:
                  id: '9176'
                  href: https://mycsp.com:8080/tmf-api/partyManagement/v4/customer/9176
                  name: Jack Smith
                  '@type': PartyRoleRef
                  '@referredType': Customer
            statusChangeHistory:
              - statusChangeDate: '2019-05-31T07:34:45.968Z'
                statusChangeMessage: Need more information from the customer
                status: Pending
                '@type': StatusChange
            troubleTicketRelationship:
              - id: '567433'
                href: https://mycsp.com:8080/tmf-api/troubleTicket/v4/troubleTicket/567433
                name: Network Coverage
                relationshipType: dependecy
                '@type': TroubleTicketRelationship
            '@type': TroubleTicket
        reportingSystem:
          id: '759'
          name: APP-745
          '@type': ReportingResource
          '@referredType': LogicalResource
        source:
          id: '705'
          name: APP-317
          '@type': ReportingResource
          '@referredType': LogicalResource
        '@baseType': Event
        '@type': TroubleTicketCreateEvent
      description: Message example for TroubleTicketCreateEvent event
    TroubleTicketDeleteEvent_request:
      value:
        correlationId: 90cfc73d-deb7
        description: TroubleTicketDeleteEvent illustration
        domain: Commercial
        eventId: 47d6-9751-40e4f01440c9
        eventTime: '2022-08-25T12:18:12.202Z'
        eventType: TroubleTicketDeleteEvent
        priority: '4'
        timeOcurred: '2022-08-25T12:18:07.224Z'
        title: TroubleTicketDeleteEvent
        event:
          troubleTicket:
            id: '3180'
            href: https://host:port/troubleTicket/v5/troubleTicket/3180
            '@type': TroubleTicket
        reportingSystem:
          id: '759'
          name: APP-745
          '@type': ReportingResource
          '@referredType': LogicalResource
        source:
          id: '705'
          name: APP-317
          '@type': ReportingResource
          '@referredType': LogicalResource
        '@baseType': Event
        '@type': TroubleTicketDeleteEvent
      description: Message example for TroubleTicketDeleteEvent event
    TroubleTicketSpecification_list_example_response:
      value:
        - id: '453180'
          href: https://mycsp.com:8080/tmf-api/troubleTicket/v5/troubleTicketSpecification/453180
          name: Billing Dispute
          status: active
          '@type': TroubleTicketSpecification
        - id: '453256'
          href: https://mycsp.com:8080/tmf-api/troubleTicket/v5/troubleTicketSpecification/453256
          name: Technical TroubleTicket Specification
          status: active
          '@type': TechnicalTroubleTicketSpecification
        - id: '454563'
          href: https://mycsp.com:8080/tmf-api/troubleTicket/5/troubleTicketSpecification/454563
          name: Network and latency TicketSpecification
          status: active
          '@type': NetworkTroubleTicketSpecification
      description: |-
        Here's an example of a request for retrieving a list of trouble ticket specification(s). The
        given criteria is status is active
    TroubleTicketSpecification_retrieve_example_response:
      value:
        href: https://mycsp.com:8080/tmf-api/troubleTicket/v5/troubleTicketSpecification/25632415
        id: '25632415'
        '@type': TroubleTicketSpecification
        description: |-
          This trouble ticket specification describes the characteristic and rules to apply when
          creating a Trouble Ticket...
        lastUpdateDate: '2022-06-22T10:36:30.709Z'
        name: Bill Dispute
        relatedParty:
          - id: '6678'
            href: https://mycsp.com:8080/tmf-api/partyManagement/v5/individual/6678
            name: Sara Smith
            role: approver
            '@referredType': Individual
            '@type': RelatedParty
        status: active
        troubleTicketSpecCharacteristic:
          - id: '1'
            configurable: true
            description: |-
              The amount that is on dispute, it can be the entire charge amount or partial amount of
              the charge
            maxCardinality: 0
            minCardinality: 1
            name: disputeAmount
            valueType: Number
            '@type': TroubleTicketSpecCharacteristic
          - id: '2'
            configurable: true
            description: |-
              The positive amount to be credit, it can be equal or less than the dispute amount. In
              case credit is given a credit reason must be provided. In case no credit is given a
              reject reason must be provided
            maxCardinality: 0
            minCardinality: 1
            name: creditAmount
            valueType: Number
            '@type': TroubleTicketSpecCharacteristic
            charSpecRelationship:
              - '@type': string
                '@baseType': string
                '@schemaLocation': string
                characteristicSpecificationId: '3'
                name: creditReason
                relationshipType: dependency
          - id: '3'
            configurable: true
            description: |-
              The reason for giving the credit, in case credit apply. In case no credit apply a
              reject reason must be provided
            maxCardinality: 0
            minCardinality: 1
            name: creditReason
            valueType: String
            '@type': TroubleTicketSpecCharacteristic
          - id: '4'
            configurable: true
            description: The reason for rejecting the dispute, in case no credit apply.
            maxCardinality: 0
            minCardinality: 1
            name: rejectReason
            valueType: String
            '@type': TroubleTicketSpecCharacteristic
          - id: '5'
            configurable: true
            description: Currency (ISO4217 norm uses 3 letters to define the currency)
            maxCardinality: 0
            minCardinality: 1
            name: currency
            valueType: String
            '@type': TroubleTicketSpecCharacteristic
        validFor:
          startDateTime: '2022-06-22T23:20:50.52Z'
        version: '1'
      description: Here's an example of a request for retrieving a spesific trouble ticket specification.
    TroubleTicketSpecification_create_example_request:
      value:
        '@type': TroubleTicketSpecification
        description: |-
          This trouble ticket specification describes the characteristic and rules to apply when
          creating a Trouble Ticket...
        name: Bill Dispute
        relatedParty:
          - id: '6678'
            href: https://mycsp.com:8080/tmf-api/partyManagement/v5/individual/6678
            name: Sara Smith
            role: approver
            '@referredType': Individual
            '@type': RelatedParty
        troubleTicketSpecCharacteristic:
          - id: '1'
            configurable: true
            description: |-
              The amount that is on dispute, it can be the entire charge amount or partial amount of
              the charge
            maxCardinality: 0
            minCardinality: 1
            name: disputeAmount
            valueType: Number
            '@type': CharacteristicSpecification
          - id: '2'
            configurable: true
            description: |-
              The positive amount to be credit, it can be equal or less than the dispute amount. In
              case credit is given a credit reason must be provided. In case no credit is given a
              reject reason must be provided
            maxCardinality: 0
            minCardinality: 1
            name: creditAmount
            valueType: Number
            '@type': CharacteristicSpecification
            charSpecRelationship:
              - '@type': CharacteristicSpecRelationship
                '@baseType': CharacteristicSpecRelationship
                '@schemaLocation': /someUri
                characteristicSpecificationId: '3'
                name: creditReason
                relationshipType: dependency
          - id: '3'
            configurable: true
            description: |-
              The reason for giving the credit, in case credit apply. In case no credit apply a
              reject reason must be provided
            maxCardinality: 0
            minCardinality: 1
            name: creditReason
            valueType: String
            '@type': CharacteristicSpecification
          - id: '4'
            configurable: true
            description: The reason for rejecting the dispute, in case no credit apply.
            maxCardinality: 0
            minCardinality: 1
            name: rejectReason
            valueType: String
            '@type': CharacteristicSpecification
          - id: '5'
            configurable: true
            description: Currency (ISO4217 norm uses 3 letters to define the currency)
            maxCardinality: 0
            minCardinality: 1
            name: currency
            valueType: String
            '@type': CharacteristicSpecification
        validFor:
          startDateTime: '2022-06-22T23:20:50.52Z'
        version: '1'
      description: |-
        POST trouble ticket request example - only a subset of trouble ticket specification
        attributes are used in this example
    TroubleTicketSpecification_create_example_response:
      value:
        href: https://mycsp.com:8080/tmf-api/troubleTicket/v5/troubleTicketSpecification/25632415
        id: '25632415'
        '@type': TroubleTicketSpecification
        description: |-
          This trouble ticket specification describes the characteristic and rules to apply when
          creating a Trouble Ticket...
        lastUpdateDate: '2022-06-22T10:36:30.709Z'
        name: Bill Dispute
        relatedParty:
          - id: '6678'
            href: https://mycsp.com:8080/tmf-api/partyManagement/v5/individual/6678
            name: Sara Smith
            role: approver
            '@referredType': Individual
            '@type': RelatedParty
        status: inDesgin
        troubleTicketSpecCharacteristic:
          - id: '1'
            configurable: true
            description: |-
              The amount that is on dispute, it can be the entire charge amount or partial amount of
              the charge
            maxCardinality: 0
            minCardinality: 1
            name: disputeAmount
            valueType: Number
            '@type': CharacteristicSpecification
          - id: '2'
            configurable: true
            description: |-
              The positive amount to be credit, it can be equal or less than the dispute amount. In
              case credit is given a credit reason must be provided. In case no credit is given a
              reject reason must be provided
            maxCardinality: 0
            minCardinality: 1
            name: creditAmount
            valueType: Number
            '@type': CharacteristicSpecification
            charSpecRelationship:
              - '@type': string
                '@baseType': string
                '@schemaLocation': string
                characteristicSpecificationId: '3'
                name: creditReason
                relationshipType: dependency
          - id: '3'
            configurable: true
            description: |-
              The reason for giving the credit, in case credit apply. In case no credit apply a
              reject reason must be provided
            maxCardinality: 0
            minCardinality: 1
            name: creditReason
            valueType: String
            '@type': CharacteristicSpecification
          - id: '4'
            configurable: true
            description: The reason for rejecting the dispute, in case no credit apply.
            maxCardinality: 0
            minCardinality: 1
            name: rejectReason
            valueType: String
            '@type': CharacteristicSpecification
          - id: '5'
            configurable: true
            description: Currency (ISO4217 norm uses 3 letters to define the currency)
            maxCardinality: 0
            minCardinality: 1
            name: currency
            valueType: String
            '@type': CharacteristicSpecification
        validFor:
          startDateTime: '2022-06-22T23:20:50.52Z'
        version: '1'
      description: POST Trouble Ticket Specification response description.
    TroubleTicketSpecification_partialupdate_example_Application_request:
      value:
        status: active
        description: Bill Dispute Specification
      description: |-
        Here's an example of a request for updating a trouble ticket - set status to active and
        update description. This example illustrating patch merge, When PATCH is implemeted merge
        syntaxt is mandatory
    TroubleTicketSpecification_partialupdate_example_Application_response:
      value:
        href: https://mycsp.com:8080/tmf-api/troubleTicket/v5/troubleTicketSpecification/25632415
        id: '25632415'
        '@type': TroubleTicketSpecification
        description: |-
          This trouble ticket specification describes the characteristic and rules to apply when
          creating a Trouble Ticket...
        lastUpdateDate: '2022-06-22T10:36:30.709Z'
        name: Bill Dispute Specification
        relatedParty:
          - id: '6678'
            href: https://mycsp.com:8080/tmf-api/partyManagement/v5/individual/6678
            name: Sara Smith
            role: approver
            '@referredType': Individual
        status: active
        troubleTicketSpecCharacteristic:
          - id: '1'
            configurable: true
            description: |-
              The amount that is on dispute, it can be the entire charge amount or partial amount of
              the charge
            maxCardinality: 0
            minCardinality: 1
            name: disputeAmount
            valueType: Number
          - id: '2'
            configurable: true
            description: |-
              The positive amount to be credit, it can be equal or less than the dispute amount. In
              case credit is given a credit reason must be provided. In case no credit is given a
              reject reason must be provided
            maxCardinality: 0
            minCardinality: 1
            name: creditAmount
            valueType: Number
            charSpecRelationship:
              - '@type': string
                '@baseType': string
                '@schemaLocation': string
                characteristicSpecificationId: '3'
                name: creditReason
                relationshipType: dependency
          - id: '3'
            configurable: true
            description: |-
              The reason for giving the credit, in case credit apply. In case no credit apply a
              reject reason must be provided
            maxCardinality: 0
            minCardinality: 1
            name: creditReason
            valueType: String
          - id: '4'
            configurable: true
            description: The reason for rejecting the dispute, in case no credit apply.
            maxCardinality: 0
            minCardinality: 1
            name: rejectReason
            valueType: String
          - id: '5'
            configurable: true
            description: Currency (ISO4217 norm uses 3 letters to define the currency)
            maxCardinality: 0
            minCardinality: 1
            name: currency
            valueType: String
        validFor:
          startDateTime: '2022-06-22T23:20:50.52Z'
        version: '1'
      description: Response message
    TroubleTicketSpecification_partialupdate_example_02_request:
      value:
        status: active
        description: Bill Dispute Specification
      description: |-
        Here's an example of a request for updating a trouble ticket - set status to active and
        update description. This example illustrating patch merge, When PATCH is implemeted merge
        syntaxt is mandatory
    TroubleTicketSpecification_partialupdate_example_02_response:
      value:
        href: https://mycsp.com:8080/tmf-api/troubleTicket/v5/troubleTicketSpecification/25632415
        id: '25632415'
        '@type': TroubleTicketSpecification
        description: |-
          This trouble ticket specification describes the characteristic and rules to apply when
          creating a Trouble Ticket...
        lastUpdateDate: '2022-06-22T10:36:30.709Z'
        name: Bill Dispute Specification
        relatedParty:
          - id: '6678'
            href: https://mycsp.com:8080/tmf-api/partyManagement/v5/individual/6678
            name: Sara Smith
            role: approver
            '@referredType': Individual
        status: active
        troubleTicketSpecCharacteristic:
          - id: '1'
            configurable: true
            description: |-
              The amount that is on dispute, it can be the entire charge amount or partial amount of
              the charge
            maxCardinality: 0
            minCardinality: 1
            name: disputeAmount
            valueType: Number
          - id: '2'
            configurable: true
            description: |-
              The positive amount to be credit, it can be equal or less than the dispute amount. In
              case credit is given a credit reason must be provided. In case no credit is given a
              reject reason must be provided
            maxCardinality: 0
            minCardinality: 1
            name: creditAmount
            valueType: Number
            charSpecRelationship:
              - '@type': string
                '@baseType': string
                '@schemaLocation': string
                characteristicSpecificationId: '3'
                name: creditReason
                relationshipType: dependency
          - id: '3'
            configurable: true
            description: |-
              The reason for giving the credit, in case credit apply. In case no credit apply a
              reject reason must be provided
            maxCardinality: 0
            minCardinality: 1
            name: creditReason
            valueType: String
          - id: '4'
            configurable: true
            description: The reason for rejecting the dispute, in case no credit apply.
            maxCardinality: 0
            minCardinality: 1
            name: rejectReason
            valueType: String
          - id: '5'
            configurable: true
            description: Currency (ISO4217 norm uses 3 letters to define the currency)
            maxCardinality: 0
            minCardinality: 1
            name: currency
            valueType: String
        validFor:
          startDateTime: '2022-06-22T23:20:50.52Z'
        version: '1'
      description: Response message
    TroubleTicketSpecification_partialupdate_example_01_request:
      value:
        - op: replace
          path: /status
          value: active
        - op: replace
          path: /name
          value: Bill Dispute Specification
      description: |-
        Here's an example of a request for updating a trouble ticket spesification - set status to
        active and update description. This example illustrating patch json
    TroubleTicketSpecification_partialupdate_example_01_response:
      value:
        href: https://mycsp.com:8080/tmf-api/troubleTicket/v5/troubleTicketSpecification/25632415
        id: '25632415'
        '@type': TroubleTicketSpecification
        description: |-
          This trouble ticket specification describes the characteristic and rules to apply when
          creating a Trouble Ticket...
        lastUpdateDate: '2022-06-22T10:36:30.709Z'
        name: Bill Dispute Specification
        relatedParty:
          - id: '6678'
            href: https://mycsp.com:8080/tmf-api/partyManagement/v5/individual/6678
            name: Sara Smith
            role: approver
            '@referredType': Individual
        status: active
        troubleTicketSpecCharacteristic:
          - id: '1'
            configurable: true
            description: |-
              The amount that is on dispute, it can be the entire charge amount or partial amount of
              the charge
            maxCardinality: 0
            minCardinality: 1
            name: disputeAmount
            valueType: Number
          - id: '2'
            configurable: true
            description: |-
              The positive amount to be credit, it can be equal or less than the dispute amount. In
              case credit is given a credit reason must be provided. In case no credit is given a
              reject reason must be provided
            maxCardinality: 0
            minCardinality: 1
            name: creditAmount
            valueType: Number
            charSpecRelationship:
              - '@type': string
                '@baseType': string
                '@schemaLocation': string
                characteristicSpecificationId: '3'
                name: creditReason
                relationshipType: dependency
          - id: '3'
            configurable: true
            description: |-
              The reason for giving the credit, in case credit apply. In case no credit apply a
              reject reason must be provided
            maxCardinality: 0
            minCardinality: 1
            name: creditReason
            valueType: String
          - id: '4'
            configurable: true
            description: The reason for rejecting the dispute, in case no credit apply.
            maxCardinality: 0
            minCardinality: 1
            name: rejectReason
            valueType: String
          - id: '5'
            configurable: true
            description: Currency (ISO4217 norm uses 3 letters to define the currency)
            maxCardinality: 0
            minCardinality: 1
            name: currency
            valueType: String
        validFor:
          startDateTime: '2022-06-22T23:20:50.52Z'
        version: '1'
      description: Response message
    TroubleTicketSpecification_partialupdate_example_03_request:
      value:
        - op: replace
          path: /troubleTicketSpecCharacteristic?id=5
          value: 'false'
      description: |-
        Here's an example of a request for updating a trouble ticket - set characteristic id=5 to
        readonly. This example illustrating patch query json
    TroubleTicketSpecification_partialupdate_example_03_response:
      value:
        href: https://mycsp.com:8080/tmf-api/troubleTicket/v5/troubleTicketSpecification/25632415
        id: '25632415'
        '@type': TroubleTicketSpecification
        description: |-
          This trouble ticket specification describes the characteristic and rules to apply when
          creating a Trouble Ticket...
        lastUpdateDate: '2022-06-22T10:36:30.709Z'
        name: Bill Dispute Specification
        relatedParty:
          - id: '6678'
            href: https://mycsp.com:8080/tmf-api/partyManagement/v5/individual/6678
            name: Sara Smith
            role: approver
            '@referredType': Individual
        status: active
        troubleTicketSpecCharacteristic:
          - id: '1'
            configurable: true
            description: |-
              The amount that is on dispute, it can be the entire charge amount or partial amount of
              the charge
            maxCardinality: 0
            minCardinality: 1
            name: disputeAmount
            valueType: Number
          - id: '2'
            configurable: true
            description: |-
              The positive amount to be credit, it can be equal or less than the dispute amount. In
              case credit is given a credit reason must be provided. In case no credit is given a
              reject reason must be provided
            maxCardinality: 0
            minCardinality: 1
            name: creditAmount
            valueType: Number
            charSpecRelationship:
              - '@type': string
                '@baseType': string
                '@schemaLocation': string
                characteristicSpecificationId: '3'
                name: creditReason
                relationshipType: dependency
          - id: '3'
            configurable: true
            description: |-
              The reason for giving the credit, in case credit apply. In case no credit apply a
              reject reason must be provided
            maxCardinality: 0
            minCardinality: 1
            name: creditReason
            valueType: String
          - id: '4'
            configurable: true
            description: The reason for rejecting the dispute, in case no credit apply.
            maxCardinality: 0
            minCardinality: 1
            name: rejectReason
            valueType: String
          - id: '5'
            configurable: false
            description: Currency (ISO4217 norm uses 3 letters to define the currency)
            maxCardinality: 0
            minCardinality: 1
            name: currency
            valueType: String
        validFor:
          startDateTime: '2022-06-22T23:20:50.52Z'
        version: '1'
      description: Response message
  requestBodies:
    TroubleTicket_FVO:
      description: The TroubleTicket to be created
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TroubleTicket_FVO'
          examples:
            CreateTroubleTicket:
              $ref: '#/components/examples/CreateTroubleTicket_request'
      required: true
    InflightChangeTroubleTicket_FVO:
      description: The InflightChangeTroubleTicket to be created
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/InflightChangeTroubleTicket_FVO'
          examples:
            CreateInflightChangeTroubleTicket:
              $ref: '#/components/examples/CreateInflightChangeTroubleTicket_request'
      required: true
    InflightChangeTroubleTicketStateChangeEvent:
      description: InflightChangeTroubleTicket StateChange Event payload
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/InflightChangeTroubleTicketStateChangeEvent'
          examples:
            InflightChangeTroubleTicketStateChangeEvent:
              $ref: '#/components/examples/InflightChangeTroubleTicketStateChangeEvent_request'
      required: true
    CancelTroubleTicket_FVO:
      description: The CancelTroubleTicket to be created
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CancelTroubleTicket_FVO'
      required: true
    CancelTroubleTicketStateChangeEvent:
      description: CancelTroubleTicket StateChange Event payload
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CancelTroubleTicketStateChangeEvent'
      required: true
    TroubleTicketCreateEvent:
      description: TroubleTicket create Event payload
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TroubleTicketCreateEvent'
          examples:
            TroubleTicketCreateEvent:
              $ref: '#/components/examples/TroubleTicketCreateEvent_request'
      required: true
    TroubleTicketAttributeValueChangeEvent:
      description: TroubleTicket attributeValueChange Event payload
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TroubleTicketAttributeValueChangeEvent'
          examples:
            TroubleTicketAttributeValueChangeEvent:
              $ref: '#/components/examples/TroubleTicketAttributeValueChangeEvent_request'
      required: true
    TroubleTicketStatusChangeEvent:
      description: TroubleTicket StatusChange Event payload
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TroubleTicketStatusChangeEvent'
          examples:
            TroubleTicketStatusChangeEvent:
              $ref: '#/components/examples/TroubleTicketStatusChangeEvent_request'
      required: true
    TroubleTicketResolvedEvent:
      description: TroubleTicket resolved Event payload
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TroubleTicketResolvedEvent'
          examples:
            TroubleTicketResolvedEvent:
              $ref: '#/components/examples/TroubleTicketResolvedEvent_request'
      required: true
    TroubleTicketInformationRequiredEvent:
      description: TroubleTicket informationRequired Event payload
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TroubleTicketInformationRequiredEvent'
          examples:
            TroubleTicketInformationRequiredEvent:
              $ref: '#/components/examples/TroubleTicketInformationRequiredEvent_request'
      required: true
    TroubleTicketMilestoneEvent:
      description: TroubleTicket milestone Event payload
      content:
        application/json;charset=utf-8:
          schema:
            $ref: '#/components/schemas/TroubleTicketMilestoneEvent'
    TroubleTicketJeopardyAlertEvent:
      description: TroubleTicket jeopardyAlert Event payload
      content:
        application/json;charset=utf-8:
          schema:
            $ref: '#/components/schemas/TroubleTicketJeopardyAlertEvent'
    TroubleTicketSpecificationCreateEvent:
      description: TroubleTicketSpecification create Event payload
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TroubleTicketSpecificationCreateEvent'
      required: true
    TroubleTicketSpecificationAttributeValueChangeEvent:
      description: TroubleTicketSpecification attributeValueChange Event payload
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TroubleTicketSpecificationAttributeValueChangeEvent'
      required: true
    TroubleTicketSpecificationStatusChangeEvent:
      description: TroubleTicketSpecification StatusChange Event payload
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TroubleTicketSpecificationStatusChangeEvent'
      required: true
    TroubleTicketSpecificationDeleteEvent:
      description: TroubleTicketSpecification delete Event payload
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TroubleTicketSpecificationDeleteEvent'
      required: true
  responses:
    '202':
      description: Accepted
    '400':
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    '401':
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    '403':
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    '404':
      description: Not Found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    '405':
      description: Method Not allowed
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    '409':
      description: Conflict
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    '500':
      description: Internal Server Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    '501':
      description: Not Implemented
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    '503':
      description: Service Unavailable
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    200TroubleTicketArray:
      description: Success
      headers:
        X-Total-Count:
          $ref: '#/components/headers/X-Total-Count'
        X-Result-Count:
          $ref: '#/components/headers/X-Result-Count'
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: '#/components/schemas/TroubleTicket'
          examples:
            TroubleTicket_list_example:
              $ref: '#/components/examples/TroubleTicket_list_example_response'
    200TroubleTicket_Get:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TroubleTicket'
          examples:
            TroubleTicket_retrieve_example:
              $ref: '#/components/examples/TroubleTicket_retrieve_example_response'
    200InflightChangeTroubleTicketArray:
      description: Success
      headers:
        X-Total-Count:
          $ref: '#/components/headers/X-Total-Count'
        X-Result-Count:
          $ref: '#/components/headers/X-Result-Count'
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: '#/components/schemas/InflightChangeTroubleTicket'
    200InflightChangeTroubleTicket_Get:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/InflightChangeTroubleTicket'
    200CancelTroubleTicketArray:
      description: Success
      headers:
        X-Total-Count:
          $ref: '#/components/headers/X-Total-Count'
        X-Result-Count:
          $ref: '#/components/headers/X-Result-Count'
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: '#/components/schemas/CancelTroubleTicket'
    200CancelTroubleTicket_Get:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CancelTroubleTicket'
    201TroubleTicket:
      description: Created
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TroubleTicket'
          examples:
            TroubleTicket_create_example:
              $ref: '#/components/examples/TroubleTicket_create_example_response'
    200TroubleTicketSpecificationArray:
      description: Success
      headers:
        X-Total-Count:
          $ref: '#/components/headers/X-Total-Count'
        X-Result-Count:
          $ref: '#/components/headers/X-Result-Count'
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: '#/components/schemas/TroubleTicketSpecification'
          examples:
            TroubleTicketSpecification_list_example:
              $ref: '#/components/examples/TroubleTicketSpecification_list_example_response'
    200TroubleTicketSpecification_Get:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TroubleTicketSpecification'
          examples:
            TroubleTicketSpecification_retrieve_example:
              $ref: '#/components/examples/TroubleTicketSpecification_retrieve_example_response'
    201InflightChangeTroubleTicket:
      description: Created
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/InflightChangeTroubleTicket'
    201CancelTroubleTicket:
      description: Created
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CancelTroubleTicket'
    DefaultError:
      description: Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
    204Notified:
      description: Notified
  securitySchemes:
    OAuth2ClientCredentials:
      type: oauth2
      description: See https://oauth.net/2/grant-types/client-credentials/
      flows:
        clientCredentials:
          tokenUrl: https://auth.example.org/oauth2/token/
          scopes:
            read: read objects
            write: write objects
  parameters:
    Fields:
      name: fields
      in: query
      description: Comma-separated properties to be provided in response
      schema:
        type: string
    Offset:
      name: offset
      in: query
      description: Requested index for start of resources to be provided in response
      schema:
        type: integer
    Limit:
      name: limit
      in: query
      description: Requested number of resources to be provided in response
      schema:
        type: integer
    Id:
      name: id
      required: true
      schema:
        type: string
      in: path
      description: Identifier of the API Resource
  headers:
    X-Total-Count:
      description: Total number of items matching criteria
      schema:
        type: integer
    X-Result-Count:
      description: Actual number of items returned in the response body
      schema:
        type: integer
