openapi: 3.0.0
info:
  title: Customer Experience API
  version: v1
  description: >+
    <div class="env-tabs"><a href="#env-tab-dev"
    class="env-tab-label">Sandbox</a><a href="#env-tab-prod"
    class="env-tab-label">Production</a><span id="env-tab-dev"
    class="env-tab-anchor"></span><span id="env-tab-prod"
    class="env-tab-anchor"></span><div class="env-tab-panel
    env-tab-panel-dev"><div class="env-tab-urls"><div><span
    class="env-tab-url-label">API Base
    URL</span><code>https://connect-sandbox.evernex.com/api/v2</code></div><div><span
    class="env-tab-url-label">OAuth Token
    URL</span><code>https://connect-sandbox.evernex.com/oauth/token</code></div></div><a
    class="postman-download-button"
    href="/postman/connect-api-dev.postman_collection.json" download="true"><svg
    viewBox="0 0 24 24" width="18" height="18"><path d="M12 3a1 1 0 0 1 1
    1v10.59l3.29-3.3a1 1 0 1 1 1.42 1.42l-5 5a1 1 0 0 1-1.42 0l-5-5a1 1 0 1 1
    1.42-1.42L11 14.59V4a1 1 0 0 1 1-1zM5 19a1 1 0 0 1 1-1h12a1 1 0 1 1 0 2H6a1
    1 0 0 1-1-1z"></path></svg><span>Download Postman
    Collection</span></a></div><div class="env-tab-panel
    env-tab-panel-prod"><div class="env-tab-urls"><div><span
    class="env-tab-url-label">API Base
    URL</span><code>https://connect.evernex.com/api/v2</code></div><div><span
    class="env-tab-url-label">OAuth Token
    URL</span><code>https://connect.evernex.com/oauth/token</code></div></div><a
    class="postman-download-button"
    href="/postman/connect-api-prod.postman_collection.json"
    download="true"><svg viewBox="0 0 24 24" width="18" height="18"><path d="M12
    3a1 1 0 0 1 1 1v10.59l3.29-3.3a1 1 0 1 1 1.42 1.42l-5 5a1 1 0 0 1-1.42
    0l-5-5a1 1 0 1 1 1.42-1.42L11 14.59V4a1 1 0 0 1 1-1zM5 19a1 1 0 0 1 1-1h12a1
    1 0 1 1 0 2H6a1 1 0 0 1-1-1z"></path></svg><span>Download Postman
    Collection</span></a></div></div>


    <a class="postman-download-button"
    href="/postman/connect-api-all.postman_collection.json" download="true"><svg
    viewBox="0 0 24 24" width="18" height="18"><path d="M12 3a1 1 0 0 1 1
    1v10.59l3.29-3.3a1 1 0 1 1 1.42 1.42l-5 5a1 1 0 0 1-1.42 0l-5-5a1 1 0 1 1
    1.42-1.42L11 14.59V4a1 1 0 0 1 1-1zM5 19a1 1 0 0 1 1-1h12a1 1 0 1 1 0 2H6a1
    1 0 0 1-1-1z"></path></svg><span>Download Postman Collection (All
    Environments)</span></a>


    ## Authentication


    This API is secured with **OAuth 2.0 (Client Credentials grant)**. See [Get
    Access Token](/connect-api/get-access-token) to exchange your client ID and
    secret for an access token - every other operation on this API requires it
    in the `Authorization: Bearer <access_token>` header.

paths:
  /oauth/token:
    post:
      operationId: Get Access Token
      tags:
        - Authentication
      summary: Get Access Token
      description: >-
        Exchange your client ID and secret for an OAuth 2.0 access token. Send
        this request with a `Content-Type: application/x-www-form-urlencoded`
        header, using the Sandbox or Production token URL shown on the [Home
        page](/) depending on which environment you're targeting - the two
        environments do **not** share the same token endpoint.
      security: []
      servers:
        - url: https://connect-sandbox.evernex.com
          description: dev
        - url: https://connect.evernex.com
          description: prod
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
                - client_id
                - client_secret
              properties:
                client_id:
                  type: string
                  description: Your application's unique client identifier.
                client_secret:
                  type: string
                  description: Your application's secure client secret.
      responses:
        '200':
          description: Access token issued successfully.
          content:
            application/json:
              schema:
                type: object
                properties:
                  access_token:
                    type: string
                    description: >-
                      The token to send as `Authorization: Bearer
                      <access_token>` on every API request.
                  token_type:
                    type: string
                    example: Bearer
                  expires_in:
                    type: integer
                    description: Token lifetime, in seconds.
                  ext_expires_in:
                    type: integer
                    description: >-
                      Extended token lifetime, in seconds - a Microsoft Entra
                      ID resilience value, used as a fallback if the identity
                      platform is unreachable when the token would normally
                      expire. Usually equal to expires_in.
        '400':
          description: Missing or malformed client_id/client_secret.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: The client_id/client_secret combination is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /cases:
    post:
      operationId: Create Case
      description: >-
        Creates a new support case. Supports both simple JSON payload and
        multipart form-data to attach a file during creation.
      parameters:
        - name: x-correlation-id
          description: >-
            Unique identifier for end-to-end request tracking and
            troubleshooting.
          required: false
          in: header
          schema:
            type: string
        - name: x-target-org
          description: Optional target organization for request routing purposes.
          required: false
          in: header
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Case'
          multipart/form-data:
            schema:
              type: object
              required:
                - case
              properties:
                case:
                  type: string
                  description: >-
                    JSON string containing the case details matching the Case
                    DataType schema.
                  example: >-
                    {"contractId": "C01234567", "customerCaseId": "CC01234567",
                    "severity": 2, "title": "Issue with server", "description":
                    "Server is down."}
                file:
                  type: string
                  format: binary
                  description: File payload to be linked to the newly created case.
                fileName:
                  type: string
                  description: The file name including its extension.
                  example: logs.txt
        x-amf-mediaType: application/json
      x-amf-requestPayloads:
        - mediaType: multipart/form-data
          schema:
            type: object
            required:
              - case
            properties:
              case:
                description: >-
                  JSON string containing the case details matching the Case
                  DataType schema.
                example: >-
                  {"contractId": "C01234567", "customerCaseId": "CC01234567",
                  "severity": 2, "title": "Issue with server", "description":
                  "Server is down."}
                type: string
              file:
                description: File payload to be linked to the newly created case.
                type: file
                maxLength: 31457280
              fileName:
                description: The file name including its extension.
                example: logs.txt
                type: string
      responses:
        '201':
          description: ''
          x-amf-mediaType: application/json
          content:
            application/json:
              schema:
                example:
                  caseNumber: '00123456'
                type: object
                required:
                  - caseNumber
                properties:
                  caseNumber:
                    type: string
        '207':
          description: >
            Partial Success. The support case was successfully created, but the
            associated attachment upload failed.
          x-amf-mediaType: application/json
          content:
            application/json:
              schema:
                example:
                  caseNumber: '00123456'
                  warning: Case created successfully, but the attachment upload failed.
                type: object
                required:
                  - caseNumber
                  - warning
                properties:
                  caseNumber:
                    type: string
                  warning:
                    type: string
        '400':
          description: ''
          x-amf-mediaType: application/json
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: ''
          x-amf-mediaType: application/json
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - oauth_2_0: []
      tags:
        - Cases
    get:
      operationId: List Cases
      description: >-
        Retrieves a list of cases accessible to the authenticated customer
        account.
      parameters:
        - name: all
          description: If set to true, add closed cases to the response.
          required: false
          in: query
          schema:
            type: boolean
            default: false
        - name: customerCaseId
          description: Get cases by the customer's internal case reference.
          required: false
          in: query
          schema:
            type: string
        - name: serialNumber
          description: Get cases by the Serial Number.
          required: false
          in: query
          schema:
            type: string
        - name: serviceId
          description: Get cases by the Service ID.
          required: false
          in: query
          schema:
            type: string
        - name: contractId
          description: Get cases by contract ID.
          required: false
          in: query
          schema:
            type: string
        - name: x-correlation-id
          description: >-
            Unique identifier for end-to-end request tracking and
            troubleshooting.
          required: false
          in: header
          schema:
            type: string
        - name: x-target-org
          description: Optional target organization for request routing purposes.
          required: false
          in: header
          schema:
            type: string
      responses:
        '200':
          description: ''
          x-amf-mediaType: application/json
          content:
            application/json:
              schema:
                example:
                  - caseNumber: '00123456'
                    reference: ref:00123456:ref
                    customerCaseId: CUST123456789
                    serialNumber: SN123456789
                    serviceId: SVC-887711
                    contractId: C01234567
                    status: Scheduled
                    severity: 2
                    createdDate: '2026-05-20T14:30:00Z'
                  - caseNumber: '00123457'
                    reference: ref:00123457:ref
                    customerCaseId: CUST987654321
                    serialNumber: SN999888777
                    serviceId: SVC-998877
                    contractId: C01234567
                    status: Closed
                    severity: 1
                    createdDate: '2026-05-18T09:00:00Z'
                type: array
                items:
                  $ref: '#/components/schemas/GetCases'
        '400':
          description: ''
          x-amf-mediaType: application/json
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: ''
          x-amf-mediaType: application/json
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - oauth_2_0: []
      tags:
        - Cases
  /cases/{caseNumber}:
    get:
      operationId: Get Case Details
      description: Retrieves full details of a specific case.
      parameters:
        - name: caseNumber
          description: Unique Evernex support case number.
          required: true
          in: path
          schema:
            type: string
        - name: x-correlation-id
          description: >-
            Unique identifier for end-to-end request tracking and
            troubleshooting.
          required: false
          in: header
          schema:
            type: string
        - name: x-target-org
          description: Optional target organization for request routing purposes.
          required: false
          in: header
          schema:
            type: string
      responses:
        '200':
          description: ''
          x-amf-mediaType: application/json
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCase'
        '404':
          description: ''
          x-amf-mediaType: application/json
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: ''
          x-amf-mediaType: application/json
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - oauth_2_0: []
      tags:
        - Cases
    patch:
      operationId: Update Case
      description: >-
        Updates specific fields of an open case such as severity, communication
        language, or contacts.
      parameters:
        - name: caseNumber
          description: Unique Evernex support case number.
          required: true
          in: path
          schema:
            type: string
        - name: x-correlation-id
          description: >-
            Unique identifier for end-to-end request tracking and
            troubleshooting.
          required: false
          in: header
          schema:
            type: string
        - name: x-target-org
          description: Optional target organization for request routing purposes.
          required: false
          in: header
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCase'
        x-amf-mediaType: application/json
      responses:
        '204':
          description: Case successfully updated. No content returned.
        '400':
          description: ''
          x-amf-mediaType: application/json
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: ''
          x-amf-mediaType: application/json
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: ''
          x-amf-mediaType: application/json
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - oauth_2_0: []
      tags:
        - Cases
  /cases/{caseNumber}/messages:
    get:
      operationId: List Case Messages
      description: Retrieves the communication history and updates for this case.
      parameters:
        - name: id
          description: Filter by a specific Message ID.
          required: false
          in: query
          schema:
            type: string
        - name: source
          description: Return messages created by the specified entity.
          required: false
          in: query
          schema:
            type: string
            enum:
              - evernex
              - customer
        - name: fromDate
          description: Return messages created after this date (ISO 8601).
          required: false
          in: query
          schema:
            type: string
            format: date-time
        - name: caseNumber
          description: Unique Evernex support case number.
          required: true
          in: path
          schema:
            type: string
        - name: x-correlation-id
          description: >-
            Unique identifier for end-to-end request tracking and
            troubleshooting.
          required: false
          in: header
          schema:
            type: string
        - name: x-target-org
          description: Optional target organization for request routing purposes.
          required: false
          in: header
          schema:
            type: string
      responses:
        '200':
          description: ''
          x-amf-mediaType: application/json
          content:
            application/json:
              schema:
                example:
                  - id: 50009000008e7XRAAY
                    body: Case message 1 from customer handler
                    source: customer
                    createdDate: '2026-06-01T10:00:00Z'
                  - id: 50009000008e7XRAAZ
                    body: Spare parts have been ordered and tracking link is active.
                    source: evernex
                    createdDate: '2026-06-02T11:00:00Z'
                type: array
                items:
                  $ref: '#/components/schemas/GetCaseMessages'
        '400':
          description: ''
          x-amf-mediaType: application/json
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: ''
          x-amf-mediaType: application/json
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: ''
          x-amf-mediaType: application/json
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - oauth_2_0: []
      tags:
        - Cases
    post:
      operationId: Add Case Message
      description: Adds a new message to the case conversation thread.
      parameters:
        - name: caseNumber
          description: Unique Evernex support case number.
          required: true
          in: path
          schema:
            type: string
        - name: x-correlation-id
          description: >-
            Unique identifier for end-to-end request tracking and
            troubleshooting.
          required: false
          in: header
          schema:
            type: string
        - name: x-target-org
          description: Optional target organization for request routing purposes.
          required: false
          in: header
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - body
              properties:
                body:
                  description: The text content of the message.
                  example: Here is the information requested by the technical engineer.
                  type: string
                  maxLength: 10000
        x-amf-mediaType: application/json
      responses:
        '201':
          description: ''
          x-amf-mediaType: application/json
          content:
            application/json:
              schema:
                example:
                  id: 50009000008e7XRAAY
                type: object
                required:
                  - id
                properties:
                  id:
                    type: string
        '400':
          description: ''
          x-amf-mediaType: application/json
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: ''
          x-amf-mediaType: application/json
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: ''
          x-amf-mediaType: application/json
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - oauth_2_0: []
      tags:
        - Cases
  /cases/{caseNumber}/attachments:
    post:
      operationId: Add Attachment
      description: >-
        Uploads and associates a standalone document or file with an existing
        case.
      parameters:
        - name: caseNumber
          description: Unique Evernex support case number.
          required: true
          in: path
          schema:
            type: string
        - name: x-correlation-id
          description: >-
            Unique identifier for end-to-end request tracking and
            troubleshooting.
          required: false
          in: header
          schema:
            type: string
        - name: x-target-org
          description: Optional target organization for request routing purposes.
          required: false
          in: header
          schema:
            type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              required:
                - file
                - fileName
              properties:
                file:
                  description: Binary stream of the file to upload.
                  type: string
                  maxLength: 31457280
                  format: binary
                fileName:
                  description: File name including its extension.
                  example: screenshot.png
                  type: string
        x-amf-mediaType: multipart/form-data
      responses:
        '204':
          description: Attachment successfully uploaded.
        '400':
          description: ''
          x-amf-mediaType: application/json
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: ''
          x-amf-mediaType: application/json
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: ''
          x-amf-mediaType: application/json
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - oauth_2_0: []
      tags:
        - Cases
components:
  securitySchemes:
    oauth_2_0:
      type: oauth2
      description: >
        This API is secured via OAuth 2.0 Client Credentials grant type.


        ### How to get an Access Token

        To interact with this API, you must first request an access token from
        the Identity Provider by sending a `POST` request with a `Content-Type:
        application/x-www-form-urlencoded` header to the `accessTokenUri`.


        **Required Body Parameters:**

        * `client_id`: Your application's unique client identifier.

        * `client_secret`: Your application's secure client secret.
      x-amf-describedBy:
        headers:
          Authorization:
            description: |
              Used to send the valid OAuth 2.0 access token.
              The token must be prefixed with the `Bearer ` string.
            required: true
            type: string
        responses:
          '401':
            body:
              application/json:
                displayName: Error Response
                description: >-
                  Standardized error payload structure returned for
                  client-facing failures.
                examples:
                  example_0:
                    message: Unauthorized
                    error: >-
                      The access token provided is invalid, expired, or
                      malformed.
                  example_1:
                    message: Forbidden
                    error: >-
                      The access token does not contain the required scopes or
                      permissions.
                properties:
                  message:
                    description: High-level summary of the error encountered.
                    example: Bad Request
                    type: string
                  error:
                    description: >-
                      Detailed explanation pinpointing the root cause or missing
                      parameters.
                    example: >-
                      The request body must include either a valid
                      'serialNumber' or a 'serviceId'.
                    type: string
          '403':
            body:
              application/json:
                displayName: Error Response
                description: >-
                  Standardized error payload structure returned for
                  client-facing failures.
                examples:
                  example_0:
                    message: Unauthorized
                    error: >-
                      The access token provided is invalid, expired, or
                      malformed.
                  example_1:
                    message: Forbidden
                    error: >-
                      The access token does not contain the required scopes or
                      permissions.
                properties:
                  message:
                    description: High-level summary of the error encountered.
                    example: Bad Request
                    type: string
                  error:
                    description: >-
                      Detailed explanation pinpointing the root cause or missing
                      parameters.
                    example: >-
                      The request body must include either a valid
                      'serialNumber' or a 'serviceId'.
                    type: string
      x-amf-settings:
        authorizationGrants:
          - client_credentials
      flows:
        clientCredentials:
          tokenUrl: https://connect.evernex.com/oauth/token
          scopes:
            '*': ''
  schemas:
    Case:
      title: Create Case
      description: >-
        Schema representing the input payload structure required to initiate a
        support case.
      example:
        serialNumber: SN123456789
        contractId: C01234567
        customerCaseId: CC01234567
        endCustomerName: Ecust Ltd.
        endCustomerCaseId: ECC01234567
        severity: 2
        productionImpacted: true
        title: Issue with server performance
        description: The server is experiencing performance issues since yesterday.
        language: en
        location:
          assetSpot: Rack 12, Shelf 3
          address: 123 Main St.
          zipCode: '12345'
          city: New York
          state: NY
          country: US
        contacts:
          - email: john.doe@example.com
            firstName: John
            lastName: Doe
            phone: '+1234567890'
            role: Technical contact
            principal: true
        requestedInterventionDate: '2026-07-01T10:00:00Z'
      type: object
      required:
        - contractId
        - customerCaseId
        - severity
        - description
      properties:
        serialNumber:
          title: Serial Number
          description: The serial number of the physical asset tied to the case.
          example: SN01234567
          type: string
          maxLength: 80
        serviceId:
          title: Service ID
          description: The internal service identifier associated with this support ticket.
          example: S01234567
          type: string
          maxLength: 80
        equipment:
          title: Equipment Details
          description: Associated manufacturer and product details of the infrastructure.
          type: object
          properties:
            model:
              title: Model
              description: Specific product model designation.
              example: Dell PowerEdge R740
              type: string
              maxLength: 255
            brand:
              title: Brand
              description: Manufacturer name of the hardware asset.
              example: Dell
              type: string
              maxLength: 255
            serialNumber:
              title: Serial Number
              description: The hardware serial number of the unit.
              example: SN01234567
              type: string
              maxLength: 80
        contractId:
          title: Contract ID
          description: The specific contract reference governing the support terms.
          example: C01234567
          type: string
          maxLength: 18
        customerCaseId:
          title: Customer Case ID
          description: >-
            The ticket or tracking reference generated within the customer's
            native ticketing system.
          example: CC01234567
          type: string
          maxLength: 255
        endCustomerName:
          title: End Customer Name
          description: >-
            The name of the end-user organization or branch experiencing the
            issue.
          example: Ecust Ltd.
          type: string
          maxLength: 255
        endCustomerCaseId:
          title: End Customer Case ID
          description: Secondary tracking number belonging to the end user or subsidiary.
          example: ECC01234567
          type: string
          maxLength: 255
        severity:
          title: Severity Level
          description: >-
            Priority tier assigned to the incident (1 = Critical, 2 = High, 3 =
            Medium).
          enum:
            - 1
            - 2
            - 3
          example: 2
          type: integer
        productionImpacted:
          title: Production Impacted
          description: >-
            Flag specifying if business operations or live production lines are
            down.
          default: false
          example: true
          type: boolean
        title:
          title: Case Title
          description: Short summary of the technical incident.
          example: Issue with server performance
          type: string
          maxLength: 255
        description:
          title: Case Description
          description: Thorough details outlining symptoms, errors, and system logs.
          example: The server is experiencing performance issues since yesterday.
          type: string
          maxLength: 32000
        language:
          title: Communication Language
          description: >-
            Preferred speech or text language for the engineering agent
            assignments.
          default: en
          enum:
            - en
            - fr
            - de
            - es
            - it
            - pt
            - jp
            - pl
          example: en
          type: string
        location:
          title: Asset Location
          description: Geographic and facility placement details where the asset resides.
          type: object
          properties:
            state:
              title: State
              description: State or province identifier.
              example: NY
              type: string
              maxLength: 80
            address:
              title: Street Address
              description: Site street address details.
              example: 123 Main St.
              type: string
              maxLength: 255
            country:
              title: Country
              description: ISO 3166-1 alpha-2 standard country code format.
              example: US
              type: string
              maxLength: 2
            zipCode:
              title: Zip Code
              description: Postal or ZIP code of the location site.
              example: '12345'
              type: string
              maxLength: 20
            assetSpot:
              title: Asset Spot
              description: >-
                Specific location footprint or coordinate details within the
                data center facility (e.g., room, rack, shelf).
              example: Rack 12, Shelf 3
              type: string
              maxLength: 255
            city:
              title: City
              description: City location of the facility site.
              example: New York
              type: string
              maxLength: 40
        contacts:
          title: Incident Contacts
          description: Points of contact authorized to interact on this issue.
          type: array
          items:
            $ref: '#/components/schemas/type'
        requestedInterventionDate:
          title: Requested Intervention Date
          description: >-
            Planned time slot request. System computes timezone adjustments
            dynamically based on asset site details.
          example: '2026-07-01T10:00:00Z'
          type: string
          format: date-time
    ErrorResponse:
      title: Error Response
      description: >-
        Standardized error payload structure returned for client-facing
        failures.
      type: object
      required:
        - message
        - error
      properties:
        message:
          description: High-level summary of the error encountered.
          example: Bad Request
          type: string
        error:
          description: >-
            Detailed explanation pinpointing the root cause or missing
            parameters.
          example: >-
            The request body must include either a valid 'serialNumber' or a
            'serviceId'.
          type: string
    GetCases:
      title: Get Cases
      description: Clean customer-facing representation of a case item for summary lists.
      type: object
      required:
        - caseNumber
        - reference
        - customerCaseId
        - serialNumber
        - serviceId
        - contractId
        - status
        - severity
        - createdDate
      properties:
        caseNumber:
          title: Case Number
          example: '00123456'
          type: string
        reference:
          title: Case Reference
          example: ref:00123456:ref
          type: string
        customerCaseId:
          title: Customer Case ID
          example: CUST123456789
          type: string
        serialNumber:
          title: Serial Number
          example: SN123456789
          type: string
        serviceId:
          title: Service ID
          example: SVC123456789
          type: string
        contractId:
          title: Contract ID
          example: C01234567
          type: string
        status:
          title: Status
          example: Scheduled
          type: string
        severity:
          title: Severity
          enum:
            - 1
            - 2
            - 3
          example: 2
          type: integer
        createdDate:
          title: Created Date
          example: '2026-05-20T14:30:00Z'
          type: string
          format: date-time
    GetCase:
      title: Get Case
      description: Full details of a support case tailored for external customers.
      example:
        serialNumber: SN123456789
        contractId: C01234567
        customerCaseId: CC01234567
        endCustomerName: Ecust Ltd.
        endCustomerCaseId: ECC01234567
        severity: 2
        productionImpacted: true
        title: Issue with server performance
        description: The server is experiencing performance issues since yesterday.
        language: en
        location:
          assetSpot: Rack 12, Shelf 3
          address: 123 Main St.
          zipCode: '12345'
          city: New York
          state: NY
          country: US
        contacts:
          - email: john.doe@example.com
            firstName: John
            lastName: Doe
            phone: '+1234567890'
            role: Technical contact
            principal: true
        requestedInterventionDate: '2026-07-01T10:00:00Z'
        caseNumber: '00123456'
        reference: ref:00123456:ref
        cloudLink: https://cloud.evernex.com/url/123456abcdefghij
        status: Scheduled
        scheduleDate: '2026-05-22T14:30:00Z'
        timeSpentOnSite: '01:15'
        activityResult: OK
        onSiteComment: >-
          Technician reported that the issue was caused by a faulty power supply
          unit. Replaced the unit and tested the system, which is now
          functioning properly.
        createdDate: '2026-05-20T14:30:00Z'
      type: object
      required:
        - reference
        - scheduleDate
        - activityResult
        - timeSpentOnSite
        - onSiteComment
        - contractId
        - severity
        - caseNumber
        - customerCaseId
        - description
        - status
        - createdDate
      properties:
        reference:
          title: Case Reference
          example: ref:00123456:ref
          type: string
        scheduleDate:
          title: Schedule Date
          example: '2026-05-22T14:30:00Z'
          type: string
          format: date-time
        productionImpacted:
          title: Production Impacted
          description: >-
            Flag specifying if business operations or live production lines are
            down.
          default: false
          example: true
          type: boolean
        requestedInterventionDate:
          title: Requested Intervention Date
          description: >-
            Planned time slot request. System computes timezone adjustments
            dynamically based on asset site details.
          example: '2026-07-01T10:00:00Z'
          type: string
          format: date-time
        location:
          title: Asset Location
          description: Geographic and facility placement details where the asset resides.
          type: object
          properties:
            state:
              title: State
              description: State or province identifier.
              example: NY
              type: string
              maxLength: 80
            address:
              title: Street Address
              description: Site street address details.
              example: 123 Main St.
              type: string
              maxLength: 255
            country:
              title: Country
              description: ISO 3166-1 alpha-2 standard country code format.
              example: US
              type: string
              maxLength: 2
            zipCode:
              title: Zip Code
              description: Postal or ZIP code of the location site.
              example: '12345'
              type: string
              maxLength: 20
            assetSpot:
              title: Asset Spot
              description: >-
                Specific location footprint or coordinate details within the
                data center facility (e.g., room, rack, shelf).
              example: Rack 12, Shelf 3
              type: string
              maxLength: 255
            city:
              title: City
              description: City location of the facility site.
              example: New York
              type: string
              maxLength: 40
        language:
          title: Communication Language
          description: >-
            Preferred speech or text language for the engineering agent
            assignments.
          default: en
          enum:
            - en
            - fr
            - de
            - es
            - it
            - pt
            - jp
            - pl
          example: en
          type: string
        activityResult:
          title: Activity Result
          example: OK
          type: string
        title:
          title: Case Title
          description: Short summary of the technical incident.
          example: Issue with server performance
          type: string
          maxLength: 255
        timeSpentOnSite:
          title: Time Spent On Site
          example: '01:15'
          type: string
        onSiteComment:
          title: On-site Comment
          description: Summary or remarks left by the technician after completion.
          example: >-
            Technician reported that the issue was caused by a faulty power
            supply unit.
          type: string
        equipment:
          title: Equipment Details
          description: Associated manufacturer and product details of the infrastructure.
          type: object
          properties:
            model:
              title: Model
              description: Specific product model designation.
              example: Dell PowerEdge R740
              type: string
              maxLength: 255
            brand:
              title: Brand
              description: Manufacturer name of the hardware asset.
              example: Dell
              type: string
              maxLength: 255
            serialNumber:
              title: Serial Number
              description: The hardware serial number of the unit.
              example: SN01234567
              type: string
              maxLength: 80
        contractId:
          title: Contract ID
          description: The specific contract reference governing the support terms.
          example: C01234567
          type: string
          maxLength: 18
        cloudLink:
          title: Cloud Link
          description: >-
            Shared folder link for large file transfer and documentation
            sharing.
          example: https://cloud.evernex.com/url/123456abcdefghij
          type: string
        serialNumber:
          title: Serial Number
          description: The serial number of the physical asset tied to the case.
          example: SN01234567
          type: string
          maxLength: 80
        contacts:
          title: Incident Contacts
          description: Points of contact authorized to interact on this issue.
          type: array
          items:
            $ref: '#/components/schemas/type'
        severity:
          title: Severity Level
          description: >-
            Priority tier assigned to the incident (1 = Critical, 2 = High, 3 =
            Medium).
          enum:
            - 1
            - 2
            - 3
          example: 2
          type: integer
        caseNumber:
          title: Case Number
          example: '00123456'
          type: string
        serviceId:
          title: Service ID
          description: The internal service identifier associated with this support ticket.
          example: S01234567
          type: string
          maxLength: 80
        customerCaseId:
          title: Customer Case ID
          description: >-
            The ticket or tracking reference generated within the customer's
            native ticketing system.
          example: CC01234567
          type: string
          maxLength: 255
        description:
          title: Case Description
          description: Thorough details outlining symptoms, errors, and system logs.
          example: The server is experiencing performance issues since yesterday.
          type: string
          maxLength: 32000
        status:
          title: Status
          example: Scheduled
          type: string
        endCustomerName:
          title: End Customer Name
          description: >-
            The name of the end-user organization or branch experiencing the
            issue.
          example: Ecust Ltd.
          type: string
          maxLength: 255
        endCustomerCaseId:
          title: End Customer Case ID
          description: Secondary tracking number belonging to the end user or subsidiary.
          example: ECC01234567
          type: string
          maxLength: 255
        createdDate:
          title: Created Date
          example: '2026-05-20T14:30:00Z'
          type: string
          format: date-time
    UpdateCase:
      title: Update Case
      description: >-
        Schema defining patchable fields available for updating an existing open
        ticket.
      example:
        severity: 1
        productionImpacted: true
        language: fr
        contacts:
          - email: john.doe@example.com
            firstName: John
            lastName: Doe
            phone: '+1234567890'
            role: Technical contact
            principal: true
        requestedInterventionDate: '2026-07-01T10:00:00Z'
      type: object
      properties:
        severity:
          title: Severity Level
          description: >-
            Updated incident priority setting (1 = Critical, 2 = High, 3 =
            Medium).
          enum:
            - 1
            - 2
            - 3
          example: 2
          type: integer
        productionImpacted:
          title: Production Impacted
          description: Current assessment of corporate or environment production downtime.
          default: false
          example: true
          type: boolean
        language:
          title: Communication Language
          description: Adjusted language preference for upcoming technician contacts.
          default: en
          enum:
            - en
            - fr
            - de
            - es
            - it
            - pt
            - jp
            - pl
          example: en
          type: string
        contacts:
          title: Incident Contacts
          description: >-
            Comprehensive list of current active contacts handling the case
            workflow.
          type: array
          items:
            $ref: '#/components/schemas/type'
        requestedInterventionDate:
          title: Requested Intervention Date
          description: Rescheduled or updated engineering date window request.
          example: '2026-07-01T10:00:00Z'
          type: string
          format: date-time
    GetCaseMessages:
      title: Get Case Messages
      description: Stream item detail representing a single message within a case log.
      type: object
      required:
        - id
        - body
        - source
        - createdDate
      properties:
        id:
          description: Internal unique ID of the message.
          example: 50009000008e7XRAAY
          type: string
        body:
          description: The actual text content of the message.
          example: This is a message related to the case.
          type: string
        source:
          description: The entity that wrote this message.
          enum:
            - evernex
            - customer
          example: evernex
          type: string
        createdDate:
          description: Timestamp of when the message was recorded.
          example: '2026-01-01T12:00:00Z'
          type: string
          format: date-time
    type:
      title: Incident Contact
      description: >-
        Contact profile representing individuals authorized to interact on this
        support case.
      type: object
      required:
        - email
        - lastName
      properties:
        email:
          title: Email Address
          description: Email address of the contact individual.
          example: john.doe@example.com
          type: string
          pattern: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
          maxLength: 80
        firstName:
          title: First Name
          description: Given name of the contact.
          example: John
          type: string
          maxLength: 40
        lastName:
          title: Last Name
          description: Family name of the contact.
          example: Doe
          type: string
          maxLength: 80
        phone:
          title: Phone Number
          description: Direct telephone or mobile line matching E.164 string format.
          example: '+1234567890'
          type: string
          pattern: ^\+?[1-9]\d{1,14}$
          maxLength: 40
        role:
          title: Assignment Role
          description: >-
            Intended functional engagement role within the context of the
            incident resolution cycle.
          enum:
            - Technical contact
            - Onsite contact
            - Incident contact
          example: Technical contact
          type: string
        principal:
          title: Is Primary Contact
          description: >-
            Set to true if this contact is chosen as the leading operational
            notification hub for this specific case.
          default: false
          example: true
          type: boolean
servers:
  - url: https://connect-sandbox.evernex.com/api/v2
    description: dev
  - url: https://connect.evernex.com/api/v2
    description: prod
