MTN TMF Trouble Ticket - TMF621

TMF621 Trouble Ticket Management Aggregator This service provides endpoint to fetch the ticket details with ticket id, create ticket, fetch list of tickets by customer id and update the existing tickets.

OpenAPI Specification

mtn-group-tmf-trouble-ticket-tmf621.yml Raw ↑
openapi: 3.0.1
info:
  title: TMF621 Trouble Ticket Management  Aggregator
  description: "TMF621 Trouble Ticket Management  Aggregator This service provides\
    \ endpoint to fetch the ticket details with ticket id, create ticket, fetch list\
    \ of tickets by customer id and update the existing tickets"
  license:
    name: MADAPI
    url: https://developers.mtn.com/
  version: V1
servers:
- url: http://localhost:8083
  description: Generated server url
paths:
  /troubleTicket:
    get:
      tags:
      - trouble-ticket-aggregator-controller
      summary: This operation retrieves trouble ticket
      description: Retrieve list of trouble ticket. It return a  list that has the
        data filtered by provided parameters. It provide the pagination's as well
        to retrieve the data in pages with required sizes.
      operationId: listTickets
      parameters:
      - name: transactionId
        in: header
        required: false
        schema:
          type: string
          default: ""
      - name: x-country-code
        in: header
        required: false
        schema:
          type: string
          default: ""
      - name: limit
        in: query
        required: false
        schema:
          type: string
          default: ""
      - name: offset
        in: query
        required: false
        schema:
          type: string
          default: ""
      - name: sort
        in: query
        required: false
        schema:
          type: string
          default: ""
      - name: customerId
        in: query
        required: false
        schema:
          type: string
          default: ""
      - name: publicIdentifier
        in: query
        required: false
        schema:
          type: string
          default: ""
      - name: status
        in: query
        required: false
        schema:
          type: string
          default: ""
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TroubleTicketResponse'
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestErrorResponse'
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorResponse'
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerErrorResponse'
    post:
      tags:
      - trouble-ticket-aggregator-controller
      summary: This operation Creates a trouble ticket
      description: "This operation Creates a trouble ticket with provided details.\
        \ It accepts the category, description. externalId, name, priority and other\
        \ fields as well. After creation this returns the details of ticket as well."
      operationId: createTicket
      parameters:
      - name: transactionId
        in: header
        required: false
        schema:
          type: string
          default: ""
      - name: x-country-code
        in: header
        required: false
        schema:
          type: string
          default: ""
      - name: targetSystem
        in: header
        required: false
        schema:
          type: string
          default: ""
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateRequest'
        required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: string
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestErrorResponse'
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorResponse'
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerErrorResponse'
  /troubleTicket/{id}:
    get:
      tags:
      - trouble-ticket-aggregator-controller
      summary: This operation retrieves a trouble ticket
      description: Ticket details fetched by ticket ID. The provides the details of
        existing ticket with required checks. If not present then it will throw the
        required errors
      operationId: viewTicket
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: transactionId
        in: header
        required: false
        schema:
          type: string
          default: ""
      - name: sort
        in: query
        required: false
        schema:
          type: string
          default: ""
      - name: status
        in: query
        required: false
        schema:
          type: string
          default: ""
      - name: fields
        in: query
        required: false
        schema:
          type: string
          default: ""
      - name: x-country-code
        in: header
        required: false
        schema:
          type: string
          default: ""
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: string
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestErrorResponse'
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorResponse'
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerErrorResponse'
    patch:
      tags:
      - trouble-ticket-aggregator-controller
      summary: This operation updates a trouble ticket
      description: "This operation updates the status of a Ticket entity. Through\
        \ this operation, an existing ticket can be update as per requirements. User\
        \ with correct set of permission can update the ticket."
      operationId: updateTicket
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: transactionId
        in: header
        required: false
        schema:
          type: string
          default: ""
      - name: targetSystem
        in: header
        required: false
        schema:
          type: string
          default: ""
      - name: x-country-code
        in: header
        required: false
        schema:
          type: string
          default: ""
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateTicketRequest'
        required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: string
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestErrorResponse'
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorResponse'
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerErrorResponse'
  /incident/{id}:
    patch:
      tags:
      - trouble-ticket-aggregator-controller
      summary: This operation updates a trouble ticket category
      description: "This operation updates the category of a trouble ticket. Through\
        \ this operation, an existing ticket category can be update as per requirements"
      operationId: updateIncidentCategory
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: transactionId
        in: header
        required: false
        schema:
          type: string
          default: ""
      - name: targetSystem
        in: header
        required: false
        schema:
          type: string
          default: ""
      - name: x-country-code
        in: header
        required: false
        schema:
          type: string
          default: ""
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateIncidentRequest'
        required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: string
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestErrorResponse'
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorResponse'
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerErrorResponse'
  /troubleTicket/category:
    get:
      tags:
      - trouble-ticket-aggregator-controller
      summary: This operation retrieves a trouble ticket category and sub category
      description: "This operation retrieves the category  of a trouble ticket. Through\
        \ this operation, a ticket category and sub-category can be retrieved."
      operationId: getTroubleTicketCategory
      parameters:
      - name: categoryType
        in: query
        required: false
        schema:
          type: string
          enum:
          - CHANGE_TASK
          - SC_TASK
          - INCIDENT
      - name: category
        in: query
        required: false
        schema:
          type: string
          default: ""
      - name: subCategory
        in: query
        required: false
        schema:
          type: string
          default: ""
      - name: categoryStatus
        in: query
        required: false
        schema:
          type: string
          default: ""
      - name: ticketType
        in: query
        required: false
        schema:
          type: string
          default: ""
      - name: transactionId
        in: header
        required: false
        schema:
          type: string
          default: ""
      - name: targetSystem
        in: header
        required: false
        schema:
          type: string
          default: ""
      - name: sort
        in: query
        required: false
        schema:
          type: string
          default: ""
      - name: lob
        in: query
        required: false
        schema:
          type: string
          default: ""
      - name: field
        in: query
        required: false
        schema:
          type: string
          default: ""
      - name: x-country-code
        in: header
        required: false
        schema:
          type: string
          default: ""
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: string
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestErrorResponse'
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorResponse'
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerErrorResponse'
  /incident/category:
    get:
      tags:
      - trouble-ticket-aggregator-controller
      summary: This operation retrieves a trouble ticket category and sub category
      description: "This operation retrieves the category  of a trouble ticket. Through\
        \ this operation, a ticket category and sub-category can be retrieved."
      operationId: getIncidentCategory
      parameters:
      - name: categoryType
        in: query
        required: false
        schema:
          type: string
          enum:
          - CHANGE_TASK
          - SC_TASK
          - INCIDENT
      - name: category
        in: query
        required: false
        schema:
          type: string
          default: ""
      - name: subCategory
        in: query
        required: false
        schema:
          type: string
          default: ""
      - name: categoryStatus
        in: query
        required: false
        schema:
          type: string
          default: ""
      - name: ticketType
        in: query
        required: false
        schema:
          type: string
          default: ""
      - name: transactionId
        in: header
        required: false
        schema:
          type: string
          default: ""
      - name: targetSystem
        in: header
        required: false
        schema:
          type: string
          default: ""
      - name: sort
        in: query
        required: false
        schema:
          type: string
          default: ""
      - name: lob
        in: query
        required: false
        schema:
          type: string
          default: ""
      - name: field
        in: query
        required: false
        schema:
          type: string
          default: ""
      - name: x-country-code
        in: header
        required: false
        schema:
          type: string
          default: ""
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: string
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestErrorResponse'
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedErrorResponse'
        "500":
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerErrorResponse'
components:
  schemas:
    Attachments:
      type: object
      properties:
        id:
          type: string
        validFor:
          $ref: '#/components/schemas/ValidFor'
        attachmentType:
          type: string
        content:
          type: string
        name:
          type: string
    Channel:
      type: object
      properties:
        name:
          type: string
        id:
          type: string
        role:
          type: string
        href:
          type: string
        '@schemaLocation':
          type: string
        '@referredType':
          type: string
        '@type':
          type: string
    CountryInformation:
      type: object
      properties:
        country:
          type: string
        province:
          type: string
        city:
          type: string
    CreateRequest:
      type: object
      properties:
        category:
          type: string
        description:
          type: string
        externalId:
          type: string
        name:
          type: string
        nodeId:
          type: string
        countryInformation:
          $ref: '#/components/schemas/CountryInformation'
        priority:
          type: string
        severity:
          type: string
        ticketType:
          type: string
        channel:
          $ref: '#/components/schemas/Channel'
        publicIdentifier:
          type: string
        attachment:
          type: array
          items:
            $ref: '#/components/schemas/Attachments'
        relatedEntity:
          type: array
          items:
            $ref: '#/components/schemas/RelatedEntity'
    RelatedEntity:
      type: object
      properties:
        id:
          type: string
        href:
          type: string
        name:
          type: string
        '@schemaLocation':
          type: string
        '@referredType':
          type: string
    ValidFor:
      type: object
      properties:
        endDateTime:
          type: string
        startDateTime:
          type: string
    ContactMedium:
      type: object
      properties:
        medium:
          $ref: '#/components/schemas/Medium'
        type:
          type: string
        role:
          type: string
        id:
          type: string
        name:
          type: string
        preferred:
          type: boolean
    EngagedParty:
      type: object
      properties:
        id:
          type: string
        href:
          type: string
        '@referredType':
          type: string
        '@schemaLocation':
          type: string
    Medium:
      type: object
      properties:
        type:
          type: string
        emailAddress:
          type: string
        verified:
          type: boolean
        number:
          type: string
    Note:
      type: object
      properties:
        id:
          type: string
        text:
          type: string
        author:
          type: string
        date:
          type: string
        '@type':
          type: string
    RelatedParty:
      type: object
      properties:
        role:
          type: string
        id:
          type: string
        href:
          type: string
        name:
          type: string
        text:
          type: string
        contactMedium:
          type: array
          items:
            $ref: '#/components/schemas/ContactMedium'
        engagedParty:
          $ref: '#/components/schemas/EngagedParty'
        location:
          type: string
        '@referredType':
          type: string
        '@schemaLocation':
          type: string
    UpdateTicketRequest:
      type: object
      properties:
        status:
          type: string
        note:
          $ref: '#/components/schemas/Note'
        description:
          type: string
        name:
          type: string
        priority:
          type: string
        channel:
          $ref: '#/components/schemas/Channel'
        attachment:
          type: array
          items:
            $ref: '#/components/schemas/Attachments'
        relatedParty:
          $ref: '#/components/schemas/RelatedParty'
        statusChangeReason:
          type: string
    UpdateIncidentRequest:
      type: object
      properties:
        statusChangeReason:
          type: string
        field:
          type: string
        categoryType:
          type: string
        description:
          type: string
        assignedTo:
          type: string
        requestedFor:
          type: string
    Assignee:
      type: object
      properties:
        id:
          type: string
        assigned:
          type: boolean
    Assignees:
      type: object
      properties:
        id:
          type: string
        href:
          type: string
        '@schemaLocation':
          type: string
    CustomFields:
      type: object
      properties:
        country:
          type: string
        province:
          type: string
        city:
          type: string
        name:
          type: string
    DCLMTroubleTicketAPIResponse:
      type: object
      properties:
        id:
          type: string
        description:
          type: string
        priority:
          type: string
        status:
          type: string
        productId:
          type: array
          items:
            type: string
        publicIdentifier:
          type: array
          items:
            type: string
        statusChange:
          type: array
          items:
            $ref: '#/components/schemas/StatusChange'
        troubleTicketRelationship:
          $ref: '#/components/schemas/TroubleTicketRelationship'
        ticketRelationship:
          type: array
          items:
            $ref: '#/components/schemas/TicketRelationship'
        href:
          type: string
        ticketType:
          type: string
        externalId:
          type: string
        externalSystem:
          type: array
          items:
            $ref: '#/components/schemas/ExternalSystem'
        relatedParty:
          type: array
          items:
            $ref: '#/components/schemas/RelatedParty'
        relatedEntity:
          type: array
          items:
            $ref: '#/components/schemas/RelatedEntity'
        attachment:
          type: string
        channel:
          $ref: '#/components/schemas/Channel'
        channels:
          type: array
          items:
            $ref: '#/components/schemas/Channel'
        ticketActivity:
          type: array
          items:
            $ref: '#/components/schemas/TicketActivity'
        creationDate:
          type: string
        lastUpdate:
          type: string
        note:
          type: array
          items:
            $ref: '#/components/schemas/Note'
        statusChangeReason:
          type: string
        customFields:
          $ref: '#/components/schemas/CustomFields'
        assignees:
          type: array
          items:
            $ref: '#/components/schemas/Assignees'
        assignee:
          $ref: '#/components/schemas/Assignee'
        isRepeatedTicket:
          type: boolean
        customerId:
          type: array
          items:
            type: string
        rootCause:
          type: string
        isChild:
          type: boolean
        isSlaBreached:
          type: boolean
        workFlowRef:
          type: array
          items:
            $ref: '#/components/schemas/WorkFlowRef'
        groups:
          type: array
          items:
            $ref: '#/components/schemas/Groups'
        parentId:
          type: string
        subStatus:
          type: string
        accountId:
          type: array
          items:
            type: string
        postToRemedy:
          type: string
        expectedResolutionDate:
          type: string
        category:
          type: string
        loB:
          type: string
        countryInformation:
          $ref: '#/components/schemas/CountryInformation'
        '@baseType':
          type: string
        '@type':
          type: string
        '@schemaLocation':
          type: string
    ExternalSystem:
      type: object
      properties:
        id:
          type: string
    Groups:
      type: object
      properties:
        id:
          type: string
        date:
          type: string
        href:
          type: string
        '@schemaLocation':
          type: string
    StatusChange:
      type: object
      properties:
        status:
          type: string
        changeDate:
          type: string
        changeReason:
          type: string
        '@type':
          type: string
    TicketActivity:
      type: object
      properties:
        author:
          type: string
        date:
          type: string
        text:
          type: string
        action:
          type: string
        note:
          type: string
        from:
          type: string
        to:
          type: string
        assignedUser:
          type: string
        status:
          type: string
        previousComment:
          type: string
        '@type':
          type: string
    TicketRelationship:
      type: object
      properties:
        id:
          type: string
        href:
          type: string
        name:
          type: string
        relationshipType:
          type: string
        '@baseType':
          type: string
        '@schemaLocation':
          type: string
        '@type':
          type: string
    TroubleTicketRelationship:
      type: object
      properties:
        name:
          type: string
    TroubleTicketResponse:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        statusCode:
          type: string
        statusMessage:
          type: string
        description:
          type: string
        priority:
          type: string
        status:
          type: string
        note:
          type: array
          items:
            $ref: '#/components/schemas/Note'
        statusChange:
          type: array
          items:
            $ref: '#/components/schemas/StatusChange'
        troubleTicketRelationship:
          $ref: '#/components/schemas/TroubleTicketRelationship'
        href:
          type: string
        ticketType:
          type: string
        externalId:
          type: string
        resolutionDate:
          type: string
        relatedParty:
          type: array
          items:
            $ref: '#/components/schemas/RelatedParty'
        relatedEntity:
          type: array
          items:
            $ref: '#/components/schemas/RelatedEntity'
        channel:
          $ref: '#/components/schemas/Channel'
        creationDate:
          type: string
        lastUpdate:
          type: string
        number:
          type: string
        resolved_date:
          type: string
        httpStatus:
          type: string
          enum:
          - 100 CONTINUE
          - 101 SWITCHING_PROTOCOLS
          - 102 PROCESSING
          - 103 EARLY_HINTS
          - 103 CHECKPOINT
          - 200 OK
          - 201 CREATED
          - 202 ACCEPTED
          - 203 NON_AUTHORITATIVE_INFORMATION
          - 204 NO_CONTENT
          - 205 RESET_CONTENT
          - 206 PARTIAL_CONTENT
          - 207 MULTI_STATUS
          - 208 ALREADY_REPORTED
          - 226 IM_USED
          - 300 MULTIPLE_CHOICES
          - 301 MOVED_PERMANENTLY
          - 302 FOUND
          - 302 MOVED_TEMPORARILY
          - 303 SEE_OTHER
          - 304 NOT_MODIFIED
          - 305 USE_PROXY
          - 307 TEMPORARY_REDIRECT
          - 308 PERMANENT_REDIRECT
          - 400 BAD_REQUEST
          - 401 UNAUTHORIZED
          - 402 PAYMENT_REQUIRED
          - 403 FORBIDDEN
          - 404 NOT_FOUND
          - 405 METHOD_NOT_ALLOWED
          - 406 NOT_ACCEPTABLE
          - 407 PROXY_AUTHENTICATION_REQUIRED
          - 408 REQUEST_TIMEOUT
          - 409 CONFLICT
          - 410 GONE
          - 411 LENGTH_REQUIRED
          - 412 PRECONDITION_FAILED
          - 413 PAYLOAD_TOO_LARGE
          - 413 REQUEST_ENTITY_TOO_LARGE
          - 414 URI_TOO_LONG
          - 414 REQUEST_URI_TOO_LONG
          - 415 UNSUPPORTED_MEDIA_TYPE
          - 416 REQUESTED_RANGE_NOT_SATISFIABLE
          - 417 EXPECTATION_FAILED
          - 418 I_AM_A_TEAPOT
          - 419 INSUFFICIENT_SPACE_ON_RESOURCE
          - 420 METHOD_FAILURE
          - 421 DESTINATION_LOCKED
          - 422 UNPROCESSABLE_ENTITY
          - 423 LOCKED
          - 424 FAILED_DEPENDENCY
          - 425 TOO_EARLY
          - 426 UPGRADE_REQUIRED
          - 428 PRECONDITION_REQUIRED
          - 429 TOO_MANY_REQUESTS
          - 431 REQUEST_HEADER_FIELDS_TOO_LARGE
          - 451 UNAVAILABLE_FOR_LEGAL_REASONS
          - 500 INTERNAL_SERVER_ERROR
          - 501 NOT_IMPLEMENTED
          - 502 BAD_GATEWAY
          - 503 SERVICE_UNAVAILABLE
          - 504 GATEWAY_TIMEOUT
          - 505 HTTP_VERSION_NOT_SUPPORTED
          - 506 VARIANT_ALSO_NEGOTIATES
          - 507 INSUFFICIENT_STORAGE
          - 508 LOOP_DETECTED
          - 509 BANDWIDTH_LIMIT_EXCEEDED
          - 510 NOT_EXTENDED
          - 511 NETWORK_AUTHENTICATION_REQUIRED
        attachment:
          type: array
          items:
            $ref: '#/components/schemas/Attachments'
        resolution_comments:
          type: string
        statusChangeReason:
          type: string
        productId:
          type: array
          items:
            type: string
        publicIdentifier:
          type: array
          items:
            type: string
        externalSystem:
          type: array
          items:
            $ref: '#/components/schemas/ExternalSystem'
        channels:
          type: array
          items:
            $ref: '#/components/schemas/Channel'
        ticketActivity:
          type: array
          items:
            $ref: '#/components/schemas/TicketActivity'
        customFields:
          $ref: '#/components/schemas/CustomFields'
        assignees:
          type: array
          items:
            $ref: '#/components/schemas/Assignees'
        assignee:
          $ref: '#/components/schemas/Assignee'
        isRepeatedTicket:
          type: boolean
        customerId:
          type: array
          items:
            type: string
        rootCause:
          type: string
        isChild:
          type: boolean
        isSlaBreached:
          type: boolean
        workFlowRef:
          type: array
          items:
            $ref: '#/components/schemas/WorkFlowRef'
        groups:
          type: array
          items:
            $ref: '#/components/schemas/Groups'
        parentId:
          type: string
        subStatus:
          type: string
        accountId:
          type: array
          items:
            type: string
        postToRemedy:
          type: string
        expectedResolutionDate:
          type: string
        category:
          type: string
        loB:
          type: string
        dclmTroubleTicketAPIResponseList:
          type: array
          items:
            $ref: '#/components/schemas/DCLMTroubleTicketAPIResponse'
        '@baseType':
          type: string
        '@type':
          type: string
        '@schemaLocation':
          type: string
    WorkFlowRef:
      type: object
      properties:
        formId:
          type: string
        processId:
          type: string
        groupId:
          type: string
        taskInfoId:
          type: string
        formIdentity:
          type: string
        balkanGraphId:
          type: string
        workflowId:
          type: string
    BadRequestErrorResponse:
      type: object
      properties:
        statusCode:
          type: string
          example: "5000"
        statusMessage:
          type: string
          example: INVALID_INPUT_PARAMETERS
        supportMessage:
          type: string
          example: The input parameters provided are invalid.
        httpStatus;:
          type: object
          example:
            code: 400
            series: CLIENT_ERROR
            reason: Bad Request
        timestamp:
          type: string
          example: 2025-08-05T20:57:21Z
    UnauthorizedErrorResponse:
      type: object
      properties:
        statusCode:
          type: string
          example: "4000"
        statusMessage:
          type: string
          example: Unauthorized
        supportMessage:
          type: string
          example: The supplied authentication is invalid.
        httpStatus;:
          type: object
          example:
            code: 401
            series: CLIENT_ERROR
            reason: Unauthorized
        timestamp:
          type: string
          example: 2025-08-05T20:57:21Z
    ServerErrorResponse:
      type: object
      properties:
        statusCode:
          type: string
          example: "3001"
        statusMessage:
          type: string
          example: INTERNAL_SERVER_ERROR
        supportMessage:
          type: string
          example: An internal server error occurred and processing could not be completed.
        httpStatus;:
          type: object
          example:
            code: 500
            series: SERVER_ERROR
            reason: Internal Server Error
        timestamp:
          type: string
          example: 2025-08-05T20:57:21Z