Bitmovin Outputs API

The Outputs API from Bitmovin — 20 operation(s) for outputs.

OpenAPI Specification

bitmovin-outputs-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Bitmovin Encoding Config Outputs API
  description: REST API for cloud-based VOD and live video encoding. Supports H.264, H.265/HEVC, VP9, AV1 and more, along with adaptive bitrate packaging (HLS/DASH/Smooth Streaming), DRM (Widevine, PlayReady, FairPlay), and per-title encoding optimisation.
  version: '3.0'
  termsOfService: https://bitmovin.com
  contact:
    name: Bitmovin Inc
    url: https://bitmovin.com
    email: support@bitmovin.com
servers:
- url: https://api.bitmovin.com/v1
  description: Bitmovin Server
  variables: {}
security:
- ApiKeyAuth: []
- ApiKeyAuth: []
  TenantOrgId: []
tags:
- name: Outputs
paths:
  /encoding/outputs/akamai-msl/{output_id}:
    delete:
      tags:
      - Outputs
      summary: Delete Akamai MSL Output
      operationId: DeleteEncodingOutputsAkamaiMslByOutputId
      parameters:
      - name: output_id
        in: path
        description: Id of the output
        style: simple
        required: true
        schema:
          type: string
          example: 05edf91d-05f3-4ecd-998f-b28f75027b5e
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ResponseEnvelope'
                - properties:
                    data:
                      properties:
                        result:
                          allOf:
                          - $ref: '#/components/schemas/BitmovinResponse'
                          - description: Id of the output
        default:
          description: Error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseError'
  /encoding/outputs/akamai-netstorage/{output_id}:
    delete:
      tags:
      - Outputs
      summary: Delete Akamai NetStorage Output
      operationId: DeleteEncodingOutputsAkamaiNetStorageByOutputId
      parameters:
      - name: output_id
        in: path
        description: Id of the output
        style: simple
        required: true
        schema:
          type: string
          example: 05edf91d-05f3-4ecd-998f-b28f75027b5e
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ResponseEnvelope'
                - properties:
                    data:
                      properties:
                        result:
                          allOf:
                          - $ref: '#/components/schemas/AkamaiNetStorageOutput'
                          - description: Id of the output
        default:
          description: Error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseError'
  /encoding/outputs/azure/{output_id}:
    delete:
      tags:
      - Outputs
      summary: Delete Azure Output
      operationId: DeleteEncodingOutputsAzureByOutputId
      parameters:
      - name: output_id
        in: path
        description: Id of the output
        style: simple
        required: true
        schema:
          type: string
          example: cb90b80c-8867-4e3b-8479-174aa2843f62
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ResponseEnvelope'
                - properties:
                    data:
                      properties:
                        result:
                          allOf:
                          - $ref: '#/components/schemas/AzureOutput'
                          - description: Id of the output
        default:
          description: Error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseError'
  /encoding/outputs/ftp/{output_id}:
    delete:
      tags:
      - Outputs
      summary: Delete FTP Output
      operationId: DeleteEncodingOutputsFtpByOutputId
      parameters:
      - name: output_id
        in: path
        description: Id of the output
        style: simple
        required: true
        schema:
          type: string
          example: cb90b80c-8867-4e3b-8479-174aa2843f62
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ResponseEnvelope'
                - properties:
                    data:
                      properties:
                        result:
                          allOf:
                          - $ref: '#/components/schemas/FtpOutput'
                          - description: Id of the output
        default:
          description: Error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseError'
  /encoding/outputs/gcs/{output_id}:
    delete:
      tags:
      - Outputs
      summary: Delete GCS Output
      operationId: DeleteEncodingOutputsGcsByOutputId
      parameters:
      - name: output_id
        in: path
        description: Id of the output
        style: simple
        required: true
        schema:
          type: string
          example: cb90b80c-8867-4e3b-8479-174aa2843f62
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ResponseEnvelope'
                - properties:
                    data:
                      properties:
                        result:
                          allOf:
                          - $ref: '#/components/schemas/GcsOutput'
                          - description: Id of the output
        default:
          description: Error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseError'
  /encoding/outputs/gcs-service-account/{output_id}:
    delete:
      tags:
      - Outputs
      summary: Delete Service Account based GCS Output
      operationId: DeleteEncodingOutputsGcsServiceAccountByOutputId
      parameters:
      - name: output_id
        in: path
        description: Id of the output
        style: simple
        required: true
        schema:
          type: string
          example: cb90b80c-8867-4e3b-8479-174aa2843f62
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ResponseEnvelope'
                - properties:
                    data:
                      properties:
                        result:
                          allOf:
                          - $ref: '#/components/schemas/GcsServiceAccountOutput'
                          - description: Id of the output
        default:
          description: Error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseError'
  /encoding/outputs/generic-s3/{output_id}:
    delete:
      tags:
      - Outputs
      summary: Delete Generic S3 Output
      operationId: DeleteEncodingOutputsGenericS3ByOutputId
      parameters:
      - name: output_id
        in: path
        description: Id of the output
        style: simple
        required: true
        schema:
          type: string
          example: 1a56e6d6-69e9-4e4d-a004-1f85a2b8cc92
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ResponseEnvelope'
                - properties:
                    data:
                      properties:
                        result:
                          allOf:
                          - $ref: '#/components/schemas/GenericS3Output'
                          - description: Id of the output
        default:
          description: Error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseError'
  /encoding/outputs/akamai-msl:
    post:
      tags:
      - Outputs
      summary: Create Akamai MSL Output
      operationId: PostEncodingOutputsAkamaiMsl
      requestBody:
        description: The Akamai MSL output to be created
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AkamaiMslOutput'
      responses:
        '201':
          description: Successful response.
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ResponseEnvelope'
                - properties:
                    data:
                      properties:
                        result:
                          allOf:
                          - $ref: '#/components/schemas/AkamaiMslOutput'
                          - description: Akamai MSL output
        default:
          description: Error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseError'
  /encoding/outputs/akamai-netstorage:
    post:
      tags:
      - Outputs
      summary: Create Akamai NetStorage Output
      operationId: PostEncodingOutputsAkamaiNetStorage
      requestBody:
        description: The Akamai NetStorage output to be created
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AkamaiNetStorageOutput'
      responses:
        '201':
          description: Successful response.
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ResponseEnvelope'
                - properties:
                    data:
                      properties:
                        result:
                          allOf:
                          - $ref: '#/components/schemas/AkamaiNetStorageOutput'
                          - description: Akamai NetStorage output
        default:
          description: Error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseError'
  /encoding/outputs/azure:
    post:
      tags:
      - Outputs
      summary: Create Azure Output
      operationId: PostEncodingOutputsAzure
      requestBody:
        description: The Azure output to be created
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AzureOutput'
      responses:
        '201':
          description: Successful response.
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ResponseEnvelope'
                - properties:
                    data:
                      properties:
                        result:
                          allOf:
                          - $ref: '#/components/schemas/AzureOutput'
                          - description: Azure output
        default:
          description: Error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseError'
  /encoding/outputs/{output_id}/check-permissions:
    post:
      tags:
      - Outputs
      summary: Check output permissions (S3 only)
      operationId: PostEncodingOutputsCheckPermissionsByOutputId
      x-bitmovin:
        isRpc: true
        operationName: checkPermissions
        optionalRequestBody: true
      parameters:
      - name: output_id
        in: path
        description: Id of the output to be checked. Currently limited to S3 outputs. The access credentials that have been provided for this Output still need to be valid, otherwise the request will fail. If they are not valid any more, create a new Output with new credentials (resources are immutable).
        style: simple
        required: true
        schema:
          type: string
          example: 4ae91f43-e78b-44c4-a9e3-890001c4bd07
      requestBody:
        description: Additional parameters for the permissions check
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CheckOutputPermissionsRequest'
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ResponseEnvelope'
                - properties:
                    data:
                      properties:
                        result:
                          allOf:
                          - $ref: '#/components/schemas/CheckOutputPermissionsResponse'
                          - description: Permissions check result
        default:
          description: Error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseError'
  /encoding/outputs/ftp:
    post:
      tags:
      - Outputs
      summary: Create FTP Output
      operationId: PostEncodingOutputsFtp
      requestBody:
        description: The FTP output to be created
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FtpOutput'
      responses:
        '201':
          description: Successful response.
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ResponseEnvelope'
                - properties:
                    data:
                      properties:
                        result:
                          allOf:
                          - $ref: '#/components/schemas/FtpOutput'
                          - description: FTP output
        default:
          description: Error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseError'
  /encoding/outputs/gcs:
    post:
      tags:
      - Outputs
      summary: Create GCS Output
      operationId: PostEncodingOutputsGcs
      requestBody:
        description: The GCS output to be created
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GcsOutput'
      responses:
        '201':
          description: Successful response.
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ResponseEnvelope'
                - properties:
                    data:
                      properties:
                        result:
                          allOf:
                          - $ref: '#/components/schemas/GcsOutput'
                          - description: GCS output
        default:
          description: Error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseError'
  /encoding/outputs/gcs-service-account:
    post:
      tags:
      - Outputs
      summary: Create Service Account based GCS Output
      operationId: PostEncodingOutputsGcsServiceAccount
      requestBody:
        description: The GCS output to be created
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GcsServiceAccountOutput'
      responses:
        '201':
          description: Successful response.
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ResponseEnvelope'
                - properties:
                    data:
                      properties:
                        result:
                          allOf:
                          - $ref: '#/components/schemas/GcsServiceAccountOutput'
                          - description: GCS output
        default:
          description: Error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseError'
  /encoding/outputs/generic-s3:
    post:
      tags:
      - Outputs
      summary: Create Generic S3 Output
      operationId: PostEncodingOutputsGenericS3
      requestBody:
        description: The Generic S3 output to be created
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenericS3Output'
      responses:
        '201':
          description: Successful response.
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ResponseEnvelope'
                - properties:
                    data:
                      properties:
                        result:
                          allOf:
                          - $ref: '#/components/schemas/GenericS3Output'
                          - description: Generic S3 output
        default:
          description: Error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseError'
  /encoding/outputs/live-media-ingest:
    post:
      tags:
      - Outputs
      summary: Create Live Media Ingest Output
      operationId: PostEncodingOutputsLiveMediaIngest
      requestBody:
        description: The Live Media Ingest output to be created
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LiveMediaIngestOutput'
      responses:
        '201':
          description: Successful response.
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ResponseEnvelope'
                - properties:
                    data:
                      properties:
                        result:
                          allOf:
                          - $ref: '#/components/schemas/LiveMediaIngestOutput'
                          - description: Live Media Ingest output
        default:
          description: Error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseError'
  /encoding/outputs/local:
    post:
      tags:
      - Outputs
      summary: Create Local Output
      operationId: PostEncodingOutputsLocal
      requestBody:
        description: The Local output to be created
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LocalOutput'
      responses:
        '201':
          description: Successful response.
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ResponseEnvelope'
                - properties:
                    data:
                      properties:
                        result:
                          allOf:
                          - $ref: '#/components/schemas/LocalOutput'
                          - description: Local output
        default:
          description: Error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseError'
  /encoding/outputs/s3:
    post:
      tags:
      - Outputs
      summary: Create S3 Output
      operationId: PostEncodingOutputsS3
      requestBody:
        description: "The S3 output to be created\n\nThe following permissions are required for S3 output:\n * s3:PutObject\n * s3:PutObjectAcl\n * s3:ListBucket\n * s3:GetBucketLocation\n"
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/S3Output'
      responses:
        '201':
          description: Successful response.
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ResponseEnvelope'
                - properties:
                    data:
                      properties:
                        result:
                          allOf:
                          - $ref: '#/components/schemas/S3Output'
                          - description: S3 output
        default:
          description: Error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseError'
  /encoding/outputs/s3-role-based:
    post:
      tags:
      - Outputs
      summary: Create S3 Role-based Output
      operationId: PostEncodingOutputsS3RoleBased
      requestBody:
        description: "The S3 Role-based output to be created\n\nThe following permissions are required for S3 Role-based output:\n * s3:PutObject\n * s3:PutObjectAcl\n * s3:ListBucket\n * s3:GetBucketLocation\n"
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/S3RoleBasedOutput'
      responses:
        '201':
          description: Successful response.
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ResponseEnvelope'
                - properties:
                    data:
                      properties:
                        result:
                          allOf:
                          - $ref: '#/components/schemas/S3RoleBasedOutput'
                          - description: S3 Role-based Output
        default:
          description: Error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseError'
  /encoding/outputs/sftp:
    post:
      tags:
      - Outputs
      summary: Create SFTP Output
      operationId: PostEncodingOutputsSftp
      requestBody:
        description: The SFTP output to be created.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SftpOutput'
      responses:
        '201':
          description: Successful response.
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ResponseEnvelope'
                - properties:
                    data:
                      properties:
                        result:
                          allOf:
                          - $ref: '#/components/schemas/SftpOutput'
                          - description: SFTP output
        default:
          description: Error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseError'
components:
  schemas:
    ResponseEnvelope:
      title: ResponseEnvelope
      required:
      - requestId
      - status
      - data
      properties:
        requestId:
          type: string
          readOnly: true
          description: Unique correlation id
          example: 6d84e126-d10c-4e52-bbfb-bd4c92bc8333
        status:
          description: Response status information
          readOnly: true
          example: SUCCESS
          allOf:
          - $ref: '#/components/schemas/ResponseStatus'
        data:
          description: Response information
          readOnly: true
          allOf:
          - $ref: '#/components/schemas/ResultWrapper'
        more:
          type: object
          description: Additional endpoint specific information
    CheckOutputPermissionsResponse:
      title: CheckOutputPermissionsResponse
      allOf:
      - properties:
          outputId:
            type: string
            readOnly: true
            description: Id of the output for which permissions were checked
            example: 55354be6-0237-42bb-ae85-a2d4ef1ed19e
          outputType:
            description: The type of the output for which permissions were checked
            readOnly: true
            allOf:
            - $ref: '#/components/schemas/OutputType'
          path:
            type: string
            readOnly: true
            description: The path on the storage for which permissions were checked. In AWS S3 terminology, this corresponds to a "prefix". An empty string corresponds to the root directory.
            example: videos/
          passed:
            type: boolean
            readOnly: true
            description: Indicates if permissions on the storage are configured correctly to be used as output target by the Bitmovin encoder. If "false", *failureReason* will provide additional information.
            example: 'false'
          failureReason:
            type: string
            readOnly: true
            description: Contains nothing if the check succeeded. Otherwise, contains a message explaining why it failed.
            example: 'The following required permissions are not set: PutObject'
    S3SignatureVersion:
      title: S3SignatureVersion
      type: string
      enum:
      - S3_V2
      - S3_V4
      default: S3_V4
    AclPermission:
      title: AclPermission
      type: string
      enum:
      - PUBLIC_READ
      - PRIVATE
    OutputType:
      title: OutputType
      type: string
      enum:
      - AKAMAI_NETSTORAGE
      - AZURE
      - GENERIC_S3
      - GCS
      - FTP
      - LOCAL
      - S3
      - S3_ROLE_BASED
      - SFTP
      - AKAMAI_MSL
      - LIVE_MEDIA_INGEST
      - GCS_SERVICE_ACCOUNT
      - CDN
      x-enum-elements:
      - name: AKAMAI_NETSTORAGE
      - name: AZURE
      - name: GENERIC_S3
      - name: GCS
      - name: FTP
      - name: LOCAL
      - name: S3
      - name: S3_ROLE_BASED
      - name: SFTP
      - name: AKAMAI_MSL
      - name: LIVE_MEDIA_INGEST
      - name: GCS_SERVICE_ACCOUNT
      - name: CDN
    AkamaiMslStreamFormat:
      title: AkamaiMslStreamFormat
      type: string
      enum:
      - DASH
      - HLS
      - CMAF
      default: DASH
    AzureServicePrincipal:
      title: AzureServicePrincipal
      type: object
      description: Azure service principal credentials for Microsoft Entra ID authentication. This authentication method is usable from encoder version 2.273.0 onwards.
      required:
      - tenantId
      - clientId
      oneOf:
      - title: Authenticate with Client Secret
        required:
        - clientSecret
      - title: Authenticate with Client Certificate
        required:
        - clientCertificate
      allOf:
      - properties:
          tenantId:
            type: string
            description: Tenant ID (Directory ID) of the Azure service principal
            writeOnly: true
          clientId:
            type: string
            description: Client ID of the Azure service principal
            writeOnly: true
          clientSecret:
            type: string
            description: Client secret of the Azure service principal
            writeOnly: true
          clientCertificate:
            type: string
            description: PEM-encoded client certificate and private key of the Azure service principal. Newline symbols must be preserved.
            example: '-----BEGIN PRIVATE KEY----- MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDAMn/1SpomwntO ... (truncated) ... Qu6eQUtTE/RCuArarGuOtE0= -----END PRIVATE KEY----- -----BEGIN CERTIFICATE----- MIIDDTCCAfWgAwIBAgIUX5jXOu6RNVC5MAfi9L/PiIhADMQwDQYJKoZIhvcNAQEL ... (truncated) ... 28mdG3XdDAQfClkhhArMktQ= -----END CERTIFICATE-----

              '
            writeOnly: true
    GcsOutput:
      title: GcsOutput
      required:
      - bucketName
      - accessKey
      - secretKey
      allOf:
      - $ref: '#/components/schemas/Output'
      - properties:
          accessKey:
            type: string
            description: GCS access key
            example: GOOGTS7C7FUP3AIRVJTE
            writeOnly: true
          secretKey:
            type: string
            description: GCS secret key
            example: bGoa+V7g/yqDXvKRqq+JTFn4uQZbPiQJo4pf9RzJ
            writeOnly: true
          bucketName:
            type: string
            description: Name of the bucket
            example: video-bucket
          cloudRegion:
            description: The cloud region in which the bucket is located. Is used to determine the ideal location for your encodings automatically.
            allOf:
            - $ref: '#/components/schemas/GoogleCloudRegion'
    AzureOutput:
      title: AzureOutput
      required:
      - container
      - accountName
      oneOf:
      - title: Authenticate with Entra ID Service Principal
        required:
        - servicePrincipal
      - title: Authenticate with Account Key
        required:
        - accountKey
      allOf:
      - $ref: '#/components/schemas/Output'
      - properties:
          accountName:
            type: string
            description: Azure Account Name
            example: devstoreaccount1
            writeOnly: true
          accountKey:
            type: string
            description: Azure Account Key
            example: Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==
            writeOnly: true
            deprecated: true
          servicePrincipal:
            allOf:
            - $ref: '#/components/schemas/AzureServicePrincipal'
          container:
            type: string
            description: Name of the bucket
            example: video-container
    BitmovinResponse:
      title: BitmovinResponse
      required:
      - id
      properties:
        id:
          type: string
          readOnly: true
          description: Id of the resource
          example: cb90b80c-8867-4e3b-8479-174aa2843f62
    S3StorageClass:
      title: S3StorageClass
      type: string
      enum:
      - GLACIER_IR
      - INTELLIGENT_TIERING
      - ONEZONE_IA
      - REDUCED_REDUNDANCY
      - STANDARD
      - STANDARD_IA
      default: STANDARD
    ResponseErrorData:
      title: ResponseErrorData
      required:
      - code
      - message
      - developerMessage
      properties:
        code:
          type: integer
          readOnly: true
          description: 'Contains an error code as defined in https://bitmovin.com/encoding-documentation/bitmovin-api/#/introduction/api-error-codes

            '
          example: 1005
        message:
          type: string
          readOnly: true
          description: General error message
        developerMessage:
          type: string
          readOnly: true
          description: More detailed message meant for developers
        links:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/Link'
          description: collection of links to webpages containing further information on the topic
        details:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/Message'
          description: collection of messages containing more detailed information on the cause of the error
    ExternalIdMode:
      title: ExternalIdMode
      type: string
      enum:
      - CUSTOM
      - GLOBAL
      - GENERATED
      default: CUSTOM
      x-enum-elements:
      - name: CUSTOM
        description: ExternalId can be provided by using the the `externalId` property. This way is not recommend by AWS (https://aws.amazon.com/blogs/security/how-to-use-external-id-when-granting-access-to-your-aws-resources/).
      - name: GLOBAL
        description: The response will include an externalId that's unique and consistent for your organization
      - name: GENERATED
        description: The response will include a random externalId.
    GcsServiceAccountOutput:
      title: GcsServiceAccountOutput
      required:
      - bucketName
      - serviceAccountCredentials
      allOf:
      - $ref: '#/components/schemas/Output'
      - properties:
          serviceAccountCredentials:
            type: string
            description: GCS projectId
            example: "{\n  \"type\": \"service_account\",\n  \"project_id\": \"bitmovin\",\n  \"private_key_id\": \"dfgsgfdsgsgargdf\",\n  \"private_key\": \"-----BEGIN PRIVATE KEY-----\\nOwdXyjRT9F4A==\\n-----END PRIVATE KEY-----\\n\",

# --- truncated at 32 KB (54 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/bitmovin/refs/heads/main/openapi/bitmovin-outputs-api-openapi.yml