openapi: 3.0.0
info:
  title: MG Autotranscribe API Router
  description: Router service for controlling MG transcription
  version: '1'
servers:
  - url: https://api.sandbox.asapp.com
tags:
  - name: AutoTranscribe Media Gateway
    description: >-
      Operations for controlling AutoTranscribe Media Gateway transcription and
      streaming
security:
  - API-ID: []
    API-Secret: []
paths:
  /mg-autotranscribe/v1/start-streaming:
    post:
      tags:
        - AutoTranscribe Media Gateway
      operationId: startStreaming
      summary: Start streaming
      description: >
        This starts the transcription of the audio stream.


        Use in conjunction with the
        [stop-streaming](/apis/media-gateway/stop-streaming-audio) endpoint to
        control when transcription occurs for a given call. This allow you to
        prevent transcription of sensitive parts of a conversation, such as
        entering PCI data.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                namespace:
                  description: The media gateway platform or protocol you are using.
                  type: string
                  enum:
                    - siprec
                    - twilio
                    - amazonconnect
                    - genesysaudiohook
                guid:
                  description: >-
                    The globally unique Id for the call, also sometimes called
                    Unique Call Id (UCID). Must be in decimal form.
                  type: string
                autotranscribeParams:
                  type: object
                  properties:
                    language:
                      description: IETF language tag
                      type: string
                      default: en-US
                    detailedToken:
                      description: >
                        Determines whether AutoTranscribe outputs word-level
                        details like word content, timestamp and word type
                      type: boolean
                      default: false
                    audioRecordingAllowed:
                      description: >
                        Determines whether ASAPP may record and store the audio
                        for this conversation for the purposes of model training
                      type: boolean
                      default: false
                    redactionOutput:
                      description: >
                        Determines whether the transcription output is redacted.


                        If detailedToken is true, requests with value "redacted"
                        or "redacted_and_unredacted" will be rejected.


                        If no redaction rules configured by the client for
                        "redacted" or "redacted_and_unredacted", the request
                        will be rejected.
                      type: string
                      default: redacted
                      enum:
                        - redacted
                        - unredacted
                        - redacted_and_unredacted
                  example:
                    language: en-US
                    detailedToken: false
                    audioRecordingAllowed: false
                    redactionOutput: redacted
                siprecParams:
                  type: object
                  properties:
                    mediaLineOrder:
                      description: >
                        Defines the mapping of media lines (m-lines) in SDP of
                        SIPREC protocol.

                        - `CUSTOMER_FIRST` will map top audio m-line to customer
                        side of conversation (usual for inbound calls to call
                        center, default)

                        - `AGENT_FIRST` will map top audio m-line to agent side
                        of the conversation (usual for outbound calls from call
                        center)
                      type: string
                      default: CUSTOMER_FIRST
                      enum:
                        - CUSTOMER_FIRST
                        - AGENT_FIRST
                twilioParams:
                  type: object
                  properties:
                    trackMap:
                      type: object
                      properties:
                        inbound:
                          type: string
                          description: The inbound twilio track
                          default: customer
                          enum:
                            - customer
                            - agent
                        outbound:
                          type: string
                          description: The outbound twilio track
                          default: agent
                          enum:
                            - customer
                            - agent
                  example:
                    trackMap:
                      inbound: customer
                      outbound: agent
                amazonConnectParams:
                  type: object
                  properties:
                    streamArn:
                      type: string
                      description: Amazon stream arn
                    startSelectorType:
                      type: string
                      description: >-
                        Identifies the fragment on the Kinesis video stream
                        where you want to start getting the data from
                      enum:
                        - NOW
                        - FRAGMENT_NUMBER
                    afterFragmentNumber:
                      type: string
                      description: >-
                        Amazon fragment number from where you want to start
                        returning the fragments - mandatory if startSelectorType
                        is FRAGMENT_NUMBER
                  example:
                    streamArn: >-
                      arn:aws:kinesisvideo:us-east-1:000000000000:stream/streamtest-connect-asappconnect-contact-1117e864-690f-4e1e-9dcf-6fbfcc288e41/1654194145007
                    startSelectorType: FRAGMENT_NUMBER
                    afterFragmentNumber: '91343852333181476958523476930058290730435475343'
                customerId:
                  description: >-
                    Id of the customer on the call. Usually taken from Call
                    Center CTI information.
                  type: string
                agentId:
                  description: >-
                    The Id of the agent on the call. Usually taken from Call
                    Center CTI information.
                  type: string
              required:
                - namespace
                - guid
                - customerId
                - agentId
              example:
                namespace: siprec
                guid: 0867617078-0032318833-2221801472-0002236962
                customerId: customerId
                agentId: agentId
                autotranscribeParams:
                  language: en-US
                siprecParams:
                  mediaLineOrder: CUSTOMER_FIRST
      responses:
        '200':
          description: Router processed the request, details are in the response body
          content:
            application/json:
              schema:
                type: object
                properties:
                  autotranscribeResponse:
                    type: object
                    properties:
                      customer:
                        type: object
                        properties:
                          streamId:
                            type: string
                            example: 5ce2b755-3f38-11ed-b755-7aed4b5c38d5
                          status:
                            type: object
                            properties:
                              code:
                                type: integer
                                example: 1000
                              description:
                                type: string
                                example: OK
                      agent:
                        type: object
                        properties:
                          streamId:
                            type: string
                            example: 5ce2b755-3f38-11ed-b755-7aed4b5c38d5
                          status:
                            type: object
                            properties:
                              code:
                                type: integer
                                example: 1000
                              description:
                                type: string
                                example: OK
                  isOk:
                    type: boolean
                  errorMessage:
                    type: string
                example:
                  isOk: true
                  autotranscribeResponse:
                    customer:
                      streamId: 5ce2b755-3f38-11ed-b755-7aed4b5c38d5
                      status:
                        code: 1000
                        description: OK
                    agent:
                      streamId: cf31116-3f38-11ed-9116-7a0a36c763f1
                      status:
                        code: 1000
                        description: OK
        '400':
          description: 400 - Bad request
          content:
            application/json:
              schema:
                description: Bad request response
                type: object
                properties:
                  error:
                    example:
                      requestId: 8e033668-9f1a-11ec-b909-0242ac120002
                      code: 400-01
                      message: Bad request
                    description: Error details
                    type: object
                    properties:
                      requestId:
                        type: string
                        description: Unique ID of the failing request
                      message:
                        type: string
                        description: Error message
                      code:
                        type: string
                        description: Error code
                    required:
                      - requestId
                      - message
        '401':
          description: 401 - Unauthorized
          content:
            application/json:
              schema:
                description: Unauthorized response
                type: object
                properties:
                  error:
                    example:
                      requestId: 8e033668-9f1a-11ec-b909-0242ac120002
                      code: 401-01
                      message: Unauthorized
                    description: Error details
                    type: object
                    properties:
                      requestId:
                        type: string
                        description: Unique ID of the failing request
                      message:
                        type: string
                        description: Error message
                      code:
                        type: string
                        description: Error code
                    required:
                      - requestId
                      - message
        '403':
          description: 403 - Forbidden
          content:
            application/json:
              schema:
                description: Forbidden response
                type: object
                properties:
                  error:
                    example:
                      requestId: 8e033668-9f1a-11ec-b909-0242ac120002
                      code: 403-01
                      message: Forbidden Response
                    description: Error details
                    type: object
                    properties:
                      requestId:
                        type: string
                        description: Unique ID of the failing request
                      message:
                        type: string
                        description: Error message
                      code:
                        type: string
                        description: Error code
                    required:
                      - requestId
                      - message
        '404':
          description: 404 - Not Found
          content:
            application/json:
              schema:
                description: Not Found response
                type: object
                properties:
                  error:
                    example:
                      requestId: 8e033668-9f1a-11ec-b909-0242ac120002
                      code: 404-01
                      message: Not Found
                    description: Error details
                    type: object
                    properties:
                      requestId:
                        type: string
                        description: Unique ID of the failing request
                      message:
                        type: string
                        description: Error message
                      code:
                        type: string
                        description: Error code
                    required:
                      - requestId
                      - message
        '409':
          description: 409 - Conflict
          content:
            application/json:
              schema:
                description: Conflict response
                type: object
                properties:
                  error:
                    example:
                      requestId: 8e033668-9f1a-11ec-b909-0242ac120002
                      code: 409-01
                      message: Conflict
                    description: Error details
                    type: object
                    properties:
                      requestId:
                        type: string
                        description: Unique ID of the failing request
                      message:
                        type: string
                        description: Error message
                      code:
                        type: string
                        description: Error code
                    required:
                      - requestId
                      - message
        '413':
          description: 413 - Request Entity Too Large
          content:
            application/json:
              schema:
                description: Request Entity Too Large response
                type: object
                properties:
                  error:
                    example:
                      requestId: 8e033668-9f1a-11ec-b909-0242ac120002
                      code: 413-01
                      message: Request Entity Too Large
                    description: Error details
                    type: object
                    properties:
                      requestId:
                        type: string
                        description: Unique ID of the failing request
                      message:
                        type: string
                        description: Error message
                      code:
                        type: string
                        description: Error code
                    required:
                      - requestId
                      - message
        '422':
          description: 422 - Unprocessable Entity
          content:
            application/json:
              schema:
                description: Unprocessable Entity response
                type: object
                properties:
                  error:
                    example:
                      requestId: 8e033668-9f1a-11ec-b909-0242ac120002
                      code: 422-01
                      message: Unprocessable Entity
                    description: Error details
                    type: object
                    properties:
                      requestId:
                        type: string
                        description: Unique ID of the failing request
                      message:
                        type: string
                        description: Error message
                      code:
                        type: string
                        description: Error code
                    required:
                      - requestId
                      - message
        '429':
          description: 429 - Too Many Requests
          content:
            application/json:
              schema:
                description: Too Many Requests response
                type: object
                properties:
                  error:
                    example:
                      requestId: 8e033668-9f1a-11ec-b909-0242ac120002
                      code: 429-01
                      message: Too Many Requests
                    description: Error details
                    type: object
                    properties:
                      requestId:
                        type: string
                        description: Unique ID of the failing request
                      message:
                        type: string
                        description: Error message
                      code:
                        type: string
                        description: Error code
                    required:
                      - requestId
                      - message
        '503':
          description: 503 - Service Unavailable
          content:
            application/json:
              schema:
                description: Service Unavailable response
                type: object
                properties:
                  error:
                    example:
                      requestId: 8e033668-9f1a-11ec-b909-0242ac120002
                      code: 503-01
                      message: Service Unavailable
                    description: Error details
                    type: object
                    properties:
                      requestId:
                        type: string
                        description: Unique ID of the failing request
                      message:
                        type: string
                        description: Error message
                      code:
                        type: string
                        description: Error code
                    required:
                      - requestId
                      - message
        default:
          description: 500 - Internal Server Error
          content:
            application/json:
              schema:
                description: Default error response
                type: object
                properties:
                  error:
                    example:
                      requestId: 8e033668-9f1a-11ec-b909-0242ac120002
                      code: 500-01
                      message: Internal server error
                    description: Error details
                    type: object
                    properties:
                      requestId:
                        type: string
                        description: Unique ID of the failing request
                      message:
                        type: string
                        description: Error message
                      code:
                        type: string
                        description: Error code
                    required:
                      - requestId
                      - message
  /mg-autotranscribe/v1/stop-streaming:
    post:
      tags:
        - AutoTranscribe Media Gateway
      operationId: stopStreaming
      summary: Stop streaming
      description: >
        This stops the transcription of the audio stream.


        Use in conjunction with the
        [start-streaming](/apis/media-gateway/start-streaming-audio) endpoint to
        control when transcription occurs for a given call. This allow you to
        prevent transcription of sensitive parts of a conversation, such as
        entering PCI data.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                namespace:
                  description: The media gateway platform or protocol you are using.
                  type: string
                  enum:
                    - siprec
                    - twilio
                    - amazonconnect
                    - genesysaudiohook
                guid:
                  description: >-
                    The globally unique Id for the call, also sometimes called
                    Unique Call Id (UCID). Must be in decimal form.
                  type: string
              example:
                namespace: siprec
                guid: 0867617078-0032318833-2221801472-0002236962
      responses:
        '200':
          description: Router processed the request, details are in the response body
          content:
            application/json:
              schema:
                type: object
                properties:
                  autotranscribeResponse:
                    type: object
                    properties:
                      customer:
                        type: object
                        properties:
                          streamId:
                            type: string
                            example: 5ce2b755-3f38-11ed-b755-7aed4b5c38d5
                          status:
                            type: object
                            properties:
                              code:
                                type: integer
                                example: 1000
                              description:
                                type: string
                                example: OK
                          summary:
                            type: object
                            properties:
                              totalAudioBytes:
                                type: integer
                              audioDurationMs:
                                type: integer
                              streamingSeconds:
                                type: integer
                              transcripts:
                                type: integer
                            example:
                              totalAudioBytes: 1334720
                              audioDurationMs: 83420
                              streamingSeconds: 84
                              transcripts: 2
                      agent:
                        type: object
                        properties:
                          streamId:
                            type: string
                            example: 5ce2b755-3f38-11ed-b755-7aed4b5c38d5
                          status:
                            type: object
                            properties:
                              code:
                                type: integer
                                example: 1000
                              description:
                                type: string
                                example: OK
                          summary:
                            type: object
                            properties:
                              totalAudioBytes:
                                type: integer
                              audioDurationMs:
                                type: integer
                              streamingSeconds:
                                type: integer
                              transcripts:
                                type: integer
                            example:
                              totalAudioBytes: 1334720
                              audioDurationMs: 83420
                              streamingSeconds: 84
                              transcripts: 2
                  isOk:
                    type: boolean
                  errorMessage:
                    type: string
        '400':
          description: 400 - Bad request
          content:
            application/json:
              schema:
                description: Bad request response
                type: object
                properties:
                  error:
                    example:
                      requestId: 8e033668-9f1a-11ec-b909-0242ac120002
                      code: 400-01
                      message: Bad request
                    description: Error details
                    type: object
                    properties:
                      requestId:
                        type: string
                        description: Unique ID of the failing request
                      message:
                        type: string
                        description: Error message
                      code:
                        type: string
                        description: Error code
                    required:
                      - requestId
                      - message
        '401':
          description: 401 - Unauthorized
          content:
            application/json:
              schema:
                description: Unauthorized response
                type: object
                properties:
                  error:
                    example:
                      requestId: 8e033668-9f1a-11ec-b909-0242ac120002
                      code: 401-01
                      message: Unauthorized
                    description: Error details
                    type: object
                    properties:
                      requestId:
                        type: string
                        description: Unique ID of the failing request
                      message:
                        type: string
                        description: Error message
                      code:
                        type: string
                        description: Error code
                    required:
                      - requestId
                      - message
        '403':
          description: 403 - Forbidden
          content:
            application/json:
              schema:
                description: Forbidden response
                type: object
                properties:
                  error:
                    example:
                      requestId: 8e033668-9f1a-11ec-b909-0242ac120002
                      code: 403-01
                      message: Forbidden Response
                    description: Error details
                    type: object
                    properties:
                      requestId:
                        type: string
                        description: Unique ID of the failing request
                      message:
                        type: string
                        description: Error message
                      code:
                        type: string
                        description: Error code
                    required:
                      - requestId
                      - message
        '404':
          description: 404 - Not Found
          content:
            application/json:
              schema:
                description: Not Found response
                type: object
                properties:
                  error:
                    example:
                      requestId: 8e033668-9f1a-11ec-b909-0242ac120002
                      code: 404-01
                      message: Not Found
                    description: Error details
                    type: object
                    properties:
                      requestId:
                        type: string
                        description: Unique ID of the failing request
                      message:
                        type: string
                        description: Error message
                      code:
                        type: string
                        description: Error code
                    required:
                      - requestId
                      - message
        '409':
          description: 409 - Conflict
          content:
            application/json:
              schema:
                description: Conflict response
                type: object
                properties:
                  error:
                    example:
                      requestId: 8e033668-9f1a-11ec-b909-0242ac120002
                      code: 409-01
                      message: Conflict
                    description: Error details
                    type: object
                    properties:
                      requestId:
                        type: string
                        description: Unique ID of the failing request
                      message:
                        type: string
                        description: Error message
                      code:
                        type: string
                        description: Error code
                    required:
                      - requestId
                      - message
        '413':
          description: 413 - Request Entity Too Large
          content:
            application/json:
              schema:
                description: Request Entity Too Large response
                type: object
                properties:
                  error:
                    example:
                      requestId: 8e033668-9f1a-11ec-b909-0242ac120002
                      code: 413-01
                      message: Request Entity Too Large
                    description: Error details
                    type: object
                    properties:
                      requestId:
                        type: string
                        description: Unique ID of the failing request
                      message:
                        type: string
                        description: Error message
                      code:
                        type: string
                        description: Error code
                    required:
                      - requestId
                      - message
        '422':
          description: 422 - Unprocessable Entity
          content:
            application/json:
              schema:
                description: Unprocessable Entity response
                type: object
                properties:
                  error:
                    example:
                      requestId: 8e033668-9f1a-11ec-b909-0242ac120002
                      code: 422-01
                      message: Unprocessable Entity
                    description: Error details
                    type: object
                    properties:
                      requestId:
                        type: string
                        description: Unique ID of the failing request
                      message:
                        type: string
                        description: Error message
                      code:
                        type: string
                        description: Error code
                    required:
                      - requestId
                      - message
        '429':
          description: 429 - Too Many Requests
          content:
            application/json:
              schema:
                description: Too Many Requests response
                type: object
                properties:
                  error:
                    example:
                      requestId: 8e033668-9f1a-11ec-b909-0242ac120002
                      code: 429-01
                      message: Too Many Requests
                    description: Error details
                    type: object
                    properties:
                      requestId:
                        type: string
                        description: Unique ID of the failing request
                      message:
                        type: string
                        description: Error message
                      code:
                        type: string
                        description: Error code
                    required:
                      - requestId
                      - message
        '503':
          description: 503 - Service Unavailable
          content:
            application/json:
              schema:
                description: Service Unavailable response
                type: object
                properties:
                  error:
                    example:
                      requestId: 8e033668-9f1a-11ec-b909-0242ac120002
                      code: 503-01
                      message: Service Unavailable
                    description: Error details
                    type: object
                    properties:
                      requestId:
                        type: string
                        description: Unique ID of the failing request
                      message:
                        type: string
                        description: Error message
                      code:
                        type: string
                        description: Error code
                    required:
                      - requestId
                      - message
        default:
          description: 500 - Internal Server Error
          content:
            application/json:
              schema:
                description: Default error response
                type: object
                properties:
                  error:
                    example:
                      requestId: 8e033668-9f1a-11ec-b909-0242ac120002
                      code: 500-01
                      message: Internal server error
                    description: Error details
                    type: object
                    properties:
                      requestId:
                        type: string
                        description: Unique ID of the failing request
                      message:
                        type: string
                        description: Error message
                      code:
                        type: string
                        description: Error code
                    required:
                      - requestId
                      - message
  /mg-autotranscribe/v1/twilio-media-stream-url:
    get:
      tags:
        - AutoTranscribe Media Gateway
      operationId: getTwilioMediaStreams
      summary: Get Twilio media stream url
      description: >-
        Returns url where [Twilio media
        stream](/autotranscribe/deploying-autotranscribe-for-twilio) should be
        sent to.
      responses:
        '200':
          description: OK - Twilio media stream url in the response body
          content:
            application/json:
              schema:
                type: object
                properties:
                  streamingUrl:
                    description: >-
                      The websocket URL you provide to Twilio for media
                      streaming.
                    type: string
                    example: >-
                      wss://localhost/mg-twilio-autotranscribe/twilio-media/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
        '401':
          description: 401 - Unauthorized
          content:
            application/json:
              schema:
                description: Unauthorized response
                type: object
                properties:
                  error:
                    example:
                      requestId: 8e033668-9f1a-11ec-b909-0242ac120002
                      code: 401-01
                      message: Unauthorized
                    description: Error details
                    type: object
                    properties:
                      requestId:
                        type: string
                        description: Unique ID of the failing request
                      message:
                        type: string
                        description: Error message
                      code:
                        type: string
                        description: Error code
                    required:
                      - requestId
                      - message
        '403':
          description: 403 - Forbidden
          content:
            application/json:
              schema:
                description: Forbidden response
                type: object
                properties:
                  error:
                    example:
                      requestId: 8e033668-9f1a-11ec-b909-0242ac120002
                      code: 403-01
                      message: Forbidden Response
                    description: Error details
                    type: object
                    properties:
                      requestId:
                        type: string
                        description: Unique ID of the failing request
                      message:
                        type: string
                        description: Error message
                      code:
                        type: string
                        description: Error code
                    required:
                      - requestId
                      - message
        '404':
          description: 404 - Not Found
          content:
            application/json:
              schema:
                description: Not Found response
                type: object
                properties:
                  error:
                    example:
                      requestId: 8e033668-9f1a-11ec-b909-0242ac120002
                      code: 404-01
                      message: Not Found
                    description: Error details
                    type: object
                    properties:
                      requestId:
                        type: string
                        description: Unique ID of the failing request
                      message:
                        type: string
                        description: Error message
                      code:
                        type: string
                        description: Error code
                    required:
                      - requestId
                      - message
        '429':
          description: 429 - Too Many Requests
          content:
            application/json:
              schema:
                description: Too Many Requests response
                type: object
                properties:
                  error:
                    example:
                      requestId: 8e033668-9f1a-11ec-b909-0242ac120002
                      code: 429-01
                      message: Too Many Requests
                    description: Error details
                    type: object
                    properties:
                      requestId:
                        type: string
                        description: Unique ID of the failing request
                      message:
                        type: string
                        description: Error message
                      code:
                        type: string
                        description: Error code
                    required:
                      - requestId
                      - message
        '503':
          description: 503 - Service Unavailable
          content:
            application/json:
              schema:
                description: Service Unavailable response
                type: object
                properties:
                  error:
                    example:
                      requestId: 8e033668-9f1a-11ec-b909-0242ac120002
                      code: 503-01
                      message: Service Unavailable
                    description: Error details
                    type: object
                    properties:
                      requestId:
                        type: string
                        description: Unique ID of the failing request
                      message:
                        type: string
                        description: Error message
                      code:
                        type: string
                        description: Error code
                    required:
                      - requestId
                      - message
        default:
          description: 500 - Internal Server Error
          content:
            application/json:
              schema:
                description: Default error response
                type: object
                properties:
                  error:
                    example:
                      requestId: 8e033668-9f1a-11ec-b909-0242ac120002
                      code: 500-01
                      message: Internal server error
                    description: Error details
                    type: object
                    properties:
                      requestId:
                        type: string
                        description: Unique ID of the failing request
                      message:
                        type: string
                        description: Error message
                      code:
                        type: string
                        description: Error code
                    required:
                      - requestId
                      - message
components:
  securitySchemes:
    API-ID:
      type: apiKey
      in: header
      name: asapp-api-id
    API-Secret:
      type: apiKey
      in: header
      name: asapp-api-secret
  responses:
    BadRequest:
      description: 400 - Bad request
      content:
        application/json:
          schema:
            description: Bad request response
            type: object
            properties:
              error:
                example:
                  requestId: 8e033668-9f1a-11ec-b909-0242ac120002
                  code: 400-01
                  message: Bad request
                description: Error details
                type: object
                properties:
                  requestId:
                    type: string
                    description: Unique ID of the failing request
                  message:
                    type: string
                    description: Error message
                  code:
                    type: string
                    description: Error code
                required:
                  - requestId
                  - message
    DefaultError:
      description: 500 - Internal Server Error
      content:
        application/json:
          schema:
            description: Default error response
            type: object
            properties:
              error:
                example:
                  requestId: 8e033668-9f1a-11ec-b909-0242ac120002
                  code: 500-01
                  message: Internal server error
                description: Error details
                type: object
                properties:
                  requestId:
                    type: string
                    description: Unique ID of the failing request
                  message:
                    type: string
                    description: Error message
                  code:
                    type: string
                    description: Error code
                required:
                  - requestId
                  - message
    Unauthorized:
      description: 401 - Unauthorized
      content:
        application/json:
          schema:
            description: Unauthorized response
            type: object
            properties:
              error:
                example:
                  requestId: 8e033668-9f1a-11ec-b909-0242ac120002
                  code: 401-01
                  message: Unauthorized
                description: Error details
                type: object
                properties:
                  requestId:
                    type: string
                    description: Unique ID of the failing request
                  message:
                    type: string
                    description: Error message
                  code:
                    type: string
                    description: Error code
                required:
                  - requestId
                  - message
    Forbidden:
      description: 403 - Forbidden
      content:
        application/json:
          schema:
            description: Forbidden response
            type: object
            properties:
              error:
                example:
                  requestId: 8e033668-9f1a-11ec-b909-0242ac120002
                  code: 403-01
                  message: Forbidden Response
                description: Error details
                type: object
                properties:
                  requestId:
                    type: string
                    description: Unique ID of the failing request
                  message:
                    type: string
                    description: Error message
                  code:
                    type: string
                    description: Error code
                required:
                  - requestId
                  - message
    NotFound:
      description: 404 - Not Found
      content:
        application/json:
          schema:
            description: Not Found response
            type: object
            properties:
              error:
                example:
                  requestId: 8e033668-9f1a-11ec-b909-0242ac120002
                  code: 404-01
                  message: Not Found
                description: Error details
                type: object
                properties:
                  requestId:
                    type: string
                    description: Unique ID of the failing request
                  message:
                    type: string
                    description: Error message
                  code:
                    type: string
                    description: Error code
                required:
                  - requestId
                  - message
    Conflict:
      description: 409 - Conflict
      content:
        application/json:
          schema:
            description: Conflict response
            type: object
            properties:
              error:
                example:
                  requestId: 8e033668-9f1a-11ec-b909-0242ac120002
                  code: 409-01
                  message: Conflict
                description: Error details
                type: object
                properties:
                  requestId:
                    type: string
                    description: Unique ID of the failing request
                  message:
                    type: string
                    description: Error message
                  code:
                    type: string
                    description: Error code
                required:
                  - requestId
                  - message
    RequestEntityTooLarge:
      description: 413 - Request Entity Too Large
      content:
        application/json:
          schema:
            description: Request Entity Too Large response
            type: object
            properties:
              error:
                example:
                  requestId: 8e033668-9f1a-11ec-b909-0242ac120002
                  code: 413-01
                  message: Request Entity Too Large
                description: Error details
                type: object
                properties:
                  requestId:
                    type: string
                    description: Unique ID of the failing request
                  message:
                    type: string
                    description: Error message
                  code:
                    type: string
                    description: Error code
                required:
                  - requestId
                  - message
    UnprocessableEntity:
      description: 422 - Unprocessable Entity
      content:
        application/json:
          schema:
            description: Unprocessable Entity response
            type: object
            properties:
              error:
                example:
                  requestId: 8e033668-9f1a-11ec-b909-0242ac120002
                  code: 422-01
                  message: Unprocessable Entity
                description: Error details
                type: object
                properties:
                  requestId:
                    type: string
                    description: Unique ID of the failing request
                  message:
                    type: string
                    description: Error message
                  code:
                    type: string
                    description: Error code
                required:
                  - requestId
                  - message
    TooManyRequests:
      description: 429 - Too Many Requests
      content:
        application/json:
          schema:
            description: Too Many Requests response
            type: object
            properties:
              error:
                example:
                  requestId: 8e033668-9f1a-11ec-b909-0242ac120002
                  code: 429-01
                  message: Too Many Requests
                description: Error details
                type: object
                properties:
                  requestId:
                    type: string
                    description: Unique ID of the failing request
                  message:
                    type: string
                    description: Error message
                  code:
                    type: string
                    description: Error code
                required:
                  - requestId
                  - message
    ServiceUnavailable:
      description: 503 - Service Unavailable
      content:
        application/json:
          schema:
            description: Service Unavailable response
            type: object
            properties:
              error:
                example:
                  requestId: 8e033668-9f1a-11ec-b909-0242ac120002
                  code: 503-01
                  message: Service Unavailable
                description: Error details
                type: object
                properties:
                  requestId:
                    type: string
                    description: Unique ID of the failing request
                  message:
                    type: string
                    description: Error message
                  code:
                    type: string
                    description: Error code
                required:
                  - requestId
                  - message
  schemas:
    StartStreamingRequest:
      type: object
      properties:
        namespace:
          description: The media gateway platform or protocol you are using.
          type: string
          enum:
            - siprec
            - twilio
            - amazonconnect
            - genesysaudiohook
        guid:
          description: >-
            The globally unique Id for the call, also sometimes called Unique
            Call Id (UCID). Must be in decimal form.
          type: string
        autotranscribeParams:
          type: object
          properties:
            language:
              description: IETF language tag
              type: string
              default: en-US
            detailedToken:
              description: >
                Determines whether AutoTranscribe outputs word-level details
                like word content, timestamp and word type
              type: boolean
              default: false
            audioRecordingAllowed:
              description: >
                Determines whether ASAPP may record and store the audio for this
                conversation for the purposes of model training
              type: boolean
              default: false
            redactionOutput:
              description: >
                Determines whether the transcription output is redacted.


                If detailedToken is true, requests with value "redacted" or
                "redacted_and_unredacted" will be rejected.


                If no redaction rules configured by the client for "redacted" or
                "redacted_and_unredacted", the request will be rejected.
              type: string
              default: redacted
              enum:
                - redacted
                - unredacted
                - redacted_and_unredacted
          example:
            language: en-US
            detailedToken: false
            audioRecordingAllowed: false
            redactionOutput: redacted
        siprecParams:
          type: object
          properties:
            mediaLineOrder:
              description: >
                Defines the mapping of media lines (m-lines) in SDP of SIPREC
                protocol.

                - `CUSTOMER_FIRST` will map top audio m-line to customer side of
                conversation (usual for inbound calls to call center, default)

                - `AGENT_FIRST` will map top audio m-line to agent side of the
                conversation (usual for outbound calls from call center)
              type: string
              default: CUSTOMER_FIRST
              enum:
                - CUSTOMER_FIRST
                - AGENT_FIRST
        twilioParams:
          type: object
          properties:
            trackMap:
              type: object
              properties:
                inbound:
                  type: string
                  description: The inbound twilio track
                  default: customer
                  enum:
                    - customer
                    - agent
                outbound:
                  type: string
                  description: The outbound twilio track
                  default: agent
                  enum:
                    - customer
                    - agent
          example:
            trackMap:
              inbound: customer
              outbound: agent
        amazonConnectParams:
          type: object
          properties:
            streamArn:
              type: string
              description: Amazon stream arn
            startSelectorType:
              type: string
              description: >-
                Identifies the fragment on the Kinesis video stream where you
                want to start getting the data from
              enum:
                - NOW
                - FRAGMENT_NUMBER
            afterFragmentNumber:
              type: string
              description: >-
                Amazon fragment number from where you want to start returning
                the fragments - mandatory if startSelectorType is
                FRAGMENT_NUMBER
          example:
            streamArn: >-
              arn:aws:kinesisvideo:us-east-1:000000000000:stream/streamtest-connect-asappconnect-contact-1117e864-690f-4e1e-9dcf-6fbfcc288e41/1654194145007
            startSelectorType: FRAGMENT_NUMBER
            afterFragmentNumber: '91343852333181476958523476930058290730435475343'
        customerId:
          description: >-
            Id of the customer on the call. Usually taken from Call Center CTI
            information.
          type: string
        agentId:
          description: >-
            The Id of the agent on the call. Usually taken from Call Center CTI
            information.
          type: string
      required:
        - namespace
        - guid
        - customerId
        - agentId
      example:
        namespace: siprec
        guid: 0867617078-0032318833-2221801472-0002236962
        customerId: customerId
        agentId: agentId
        autotranscribeParams:
          language: en-US
        siprecParams:
          mediaLineOrder: CUSTOMER_FIRST
    StartStreamingAutotranscribeParams:
      type: object
      properties:
        language:
          description: IETF language tag
          type: string
          default: en-US
        detailedToken:
          description: >
            Determines whether AutoTranscribe outputs word-level details like
            word content, timestamp and word type
          type: boolean
          default: false
        audioRecordingAllowed:
          description: >
            Determines whether ASAPP may record and store the audio for this
            conversation for the purposes of model training
          type: boolean
          default: false
        redactionOutput:
          description: >
            Determines whether the transcription output is redacted.


            If detailedToken is true, requests with value "redacted" or
            "redacted_and_unredacted" will be rejected.


            If no redaction rules configured by the client for "redacted" or
            "redacted_and_unredacted", the request will be rejected.
          type: string
          default: redacted
          enum:
            - redacted
            - unredacted
            - redacted_and_unredacted
      example:
        language: en-US
        detailedToken: false
        audioRecordingAllowed: false
        redactionOutput: redacted
    StartStreamingSiprecParams:
      type: object
      properties:
        mediaLineOrder:
          description: >
            Defines the mapping of media lines (m-lines) in SDP of SIPREC
            protocol.

            - `CUSTOMER_FIRST` will map top audio m-line to customer side of
            conversation (usual for inbound calls to call center, default)

            - `AGENT_FIRST` will map top audio m-line to agent side of the
            conversation (usual for outbound calls from call center)
          type: string
          default: CUSTOMER_FIRST
          enum:
            - CUSTOMER_FIRST
            - AGENT_FIRST
    SiprecMediaLineOrder:
      description: >
        Defines the mapping of media lines (m-lines) in SDP of SIPREC protocol.

        - `CUSTOMER_FIRST` will map top audio m-line to customer side of
        conversation (usual for inbound calls to call center, default)

        - `AGENT_FIRST` will map top audio m-line to agent side of the
        conversation (usual for outbound calls from call center)
      type: string
      default: CUSTOMER_FIRST
      enum:
        - CUSTOMER_FIRST
        - AGENT_FIRST
    StartStreamingTwilioParams:
      type: object
      properties:
        trackMap:
          type: object
          properties:
            inbound:
              type: string
              description: The inbound twilio track
              default: customer
              enum:
                - customer
                - agent
            outbound:
              type: string
              description: The outbound twilio track
              default: agent
              enum:
                - customer
                - agent
      example:
        trackMap:
          inbound: customer
          outbound: agent
    TwilioTrackMap:
      type: object
      properties:
        inbound:
          type: string
          description: The inbound twilio track
          default: customer
          enum:
            - customer
            - agent
        outbound:
          type: string
          description: The outbound twilio track
          default: agent
          enum:
            - customer
            - agent
    StartStreamingAmazonConnectParams:
      type: object
      properties:
        streamArn:
          type: string
          description: Amazon stream arn
        startSelectorType:
          type: string
          description: >-
            Identifies the fragment on the Kinesis video stream where you want
            to start getting the data from
          enum:
            - NOW
            - FRAGMENT_NUMBER
        afterFragmentNumber:
          type: string
          description: >-
            Amazon fragment number from where you want to start returning the
            fragments - mandatory if startSelectorType is FRAGMENT_NUMBER
      example:
        streamArn: >-
          arn:aws:kinesisvideo:us-east-1:000000000000:stream/streamtest-connect-asappconnect-contact-1117e864-690f-4e1e-9dcf-6fbfcc288e41/1654194145007
        startSelectorType: FRAGMENT_NUMBER
        afterFragmentNumber: '91343852333181476958523476930058290730435475343'
    StartStreamingResponse:
      type: object
      properties:
        autotranscribeResponse:
          type: object
          properties:
            customer:
              type: object
              properties:
                streamId:
                  type: string
                  example: 5ce2b755-3f38-11ed-b755-7aed4b5c38d5
                status:
                  type: object
                  properties:
                    code:
                      type: integer
                      example: 1000
                    description:
                      type: string
                      example: OK
            agent:
              type: object
              properties:
                streamId:
                  type: string
                  example: 5ce2b755-3f38-11ed-b755-7aed4b5c38d5
                status:
                  type: object
                  properties:
                    code:
                      type: integer
                      example: 1000
                    description:
                      type: string
                      example: OK
        isOk:
          type: boolean
        errorMessage:
          type: string
      example:
        isOk: true
        autotranscribeResponse:
          customer:
            streamId: 5ce2b755-3f38-11ed-b755-7aed4b5c38d5
            status:
              code: 1000
              description: OK
          agent:
            streamId: cf31116-3f38-11ed-9116-7a0a36c763f1
            status:
              code: 1000
              description: OK
    StartStreamingAutotranscribeResponse:
      type: object
      properties:
        customer:
          type: object
          properties:
            streamId:
              type: string
              example: 5ce2b755-3f38-11ed-b755-7aed4b5c38d5
            status:
              type: object
              properties:
                code:
                  type: integer
                  example: 1000
                description:
                  type: string
                  example: OK
        agent:
          type: object
          properties:
            streamId:
              type: string
              example: 5ce2b755-3f38-11ed-b755-7aed4b5c38d5
            status:
              type: object
              properties:
                code:
                  type: integer
                  example: 1000
                description:
                  type: string
                  example: OK
    StartStreamingAutotranscribeResponseDetails:
      type: object
      properties:
        streamId:
          type: string
          example: 5ce2b755-3f38-11ed-b755-7aed4b5c38d5
        status:
          type: object
          properties:
            code:
              type: integer
              example: 1000
            description:
              type: string
              example: OK
    AutotranscribeResponseStatus:
      type: object
      properties:
        code:
          type: integer
          example: 1000
        description:
          type: string
          example: OK
    StopStreamingRequest:
      type: object
      properties:
        namespace:
          description: The media gateway platform or protocol you are using.
          type: string
          enum:
            - siprec
            - twilio
            - amazonconnect
            - genesysaudiohook
        guid:
          description: >-
            The globally unique Id for the call, also sometimes called Unique
            Call Id (UCID). Must be in decimal form.
          type: string
      example:
        namespace: siprec
        guid: 0867617078-0032318833-2221801472-0002236962
    StopStreamingResponse:
      type: object
      properties:
        autotranscribeResponse:
          type: object
          properties:
            customer:
              type: object
              properties:
                streamId:
                  type: string
                  example: 5ce2b755-3f38-11ed-b755-7aed4b5c38d5
                status:
                  type: object
                  properties:
                    code:
                      type: integer
                      example: 1000
                    description:
                      type: string
                      example: OK
                summary:
                  type: object
                  properties:
                    totalAudioBytes:
                      type: integer
                    audioDurationMs:
                      type: integer
                    streamingSeconds:
                      type: integer
                    transcripts:
                      type: integer
                  example:
                    totalAudioBytes: 1334720
                    audioDurationMs: 83420
                    streamingSeconds: 84
                    transcripts: 2
            agent:
              type: object
              properties:
                streamId:
                  type: string
                  example: 5ce2b755-3f38-11ed-b755-7aed4b5c38d5
                status:
                  type: object
                  properties:
                    code:
                      type: integer
                      example: 1000
                    description:
                      type: string
                      example: OK
                summary:
                  type: object
                  properties:
                    totalAudioBytes:
                      type: integer
                    audioDurationMs:
                      type: integer
                    streamingSeconds:
                      type: integer
                    transcripts:
                      type: integer
                  example:
                    totalAudioBytes: 1334720
                    audioDurationMs: 83420
                    streamingSeconds: 84
                    transcripts: 2
        isOk:
          type: boolean
        errorMessage:
          type: string
    StopStreamingAutotranscribeResponse:
      type: object
      properties:
        customer:
          type: object
          properties:
            streamId:
              type: string
              example: 5ce2b755-3f38-11ed-b755-7aed4b5c38d5
            status:
              type: object
              properties:
                code:
                  type: integer
                  example: 1000
                description:
                  type: string
                  example: OK
            summary:
              type: object
              properties:
                totalAudioBytes:
                  type: integer
                audioDurationMs:
                  type: integer
                streamingSeconds:
                  type: integer
                transcripts:
                  type: integer
              example:
                totalAudioBytes: 1334720
                audioDurationMs: 83420
                streamingSeconds: 84
                transcripts: 2
        agent:
          type: object
          properties:
            streamId:
              type: string
              example: 5ce2b755-3f38-11ed-b755-7aed4b5c38d5
            status:
              type: object
              properties:
                code:
                  type: integer
                  example: 1000
                description:
                  type: string
                  example: OK
            summary:
              type: object
              properties:
                totalAudioBytes:
                  type: integer
                audioDurationMs:
                  type: integer
                streamingSeconds:
                  type: integer
                transcripts:
                  type: integer
              example:
                totalAudioBytes: 1334720
                audioDurationMs: 83420
                streamingSeconds: 84
                transcripts: 2
    StopStreamingAutotranscribeResponseDetails:
      type: object
      properties:
        streamId:
          type: string
          example: 5ce2b755-3f38-11ed-b755-7aed4b5c38d5
        status:
          type: object
          properties:
            code:
              type: integer
              example: 1000
            description:
              type: string
              example: OK
        summary:
          type: object
          properties:
            totalAudioBytes:
              type: integer
            audioDurationMs:
              type: integer
            streamingSeconds:
              type: integer
            transcripts:
              type: integer
          example:
            totalAudioBytes: 1334720
            audioDurationMs: 83420
            streamingSeconds: 84
            transcripts: 2
    StopStreamingResponseSummary:
      type: object
      properties:
        totalAudioBytes:
          type: integer
        audioDurationMs:
          type: integer
        streamingSeconds:
          type: integer
        transcripts:
          type: integer
      example:
        totalAudioBytes: 1334720
        audioDurationMs: 83420
        streamingSeconds: 84
        transcripts: 2
    GetTwilioMediaStreamsResponse:
      type: object
      properties:
        streamingUrl:
          description: The websocket URL you provide to Twilio for media streaming.
          type: string
          example: >-
            wss://localhost/mg-twilio-autotranscribe/twilio-media/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
