Lightstream ProjectService API

The Project Service operates on a Project.

Operations 10

POST /collection/{collectionId}/project Create Project #
GET /collection/{collectionId}/project/{projectId} Get Project #
DELETE /collection/{collectionId}/project/{projectId} Delete Project #
PATCH /collection/{collectionId}/project/{projectId} Update Project #
GET /collection/{collectionId}/project/{projectId}/broadcast/snapshot Get Snapshot #
PUT /collection/{collectionId}/project/{projectId}/broadcast/start Start Broadcast #
GET /collection/{collectionId}/project/{projectId}/broadcast/status Get Broadcast Status #
PUT /collection/{collectionId}/project/{projectId}/broadcast/stop Stop Broadcast #
PUT /collection/{collectionId}/project/{projectId}/webrtc/start Start WebRTC #
PUT /collection/{collectionId}/project/{projectId}/webrtc/stop Stop WebRTC #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/lightstream-projectservice-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

lightstream-projectservice-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Event AuthenticationService Project Service API
  version: '2.0'
  description: The Authentication Service provides token services for clients
servers:
- url: https://live.api.stream/event/v2
tags:
- name: ProjectService
  description: The Project Service operates on a Project.
paths:
  /collection/{collectionId}/project:
    post:
      summary: Create Project
      description: Create a new project
      operationId: ProjectService_CreateProject
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v21CreateProjectResponse'
        '401':
          description: The access token provided is not valid
          content:
            application/json:
              schema: {}
        '403':
          description: The access token provided does not have access to specified resource
          content:
            application/json:
              schema: {}
        '404':
          description: The specified resource was not found
          content:
            application/json:
              schema: {}
        '429':
          description: The specified service is busy; please use an exponential backoff on subsequent requests.
          content:
            application/json:
              schema: {}
        '500':
          description: The specified service is unavailable; please try again later
          content:
            application/json:
              schema: {}
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: collectionId
        description: collection which will own this project
        in: path
        required: true
        schema:
          type: string
      tags:
      - ProjectService
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                metadata:
                  type: object
                  example:
                    createdBy: Eddie Current
                  title: arbitrary metadata to associate with this project
                rendering:
                  $ref: '#/components/schemas/v21Rendering'
                  default: '{}'
                  title: composition parameters
                encoding:
                  $ref: '#/components/schemas/v21Encoding'
                  default: '{}'
                  title: encoding parameters
                composition:
                  $ref: '#/components/schemas/v21Composition'
                  title: composition/layout source of the broadcast
                maxDuration:
                  type: integer
                  format: int64
                  example: 172800000
                  default: '172800000'
                  title: maximum duration of project broadcasts (ms)
                  maximum: 604800000
                webrtc:
                  $ref: '#/components/schemas/v21WebRtc'
                  title: request webrtc services
                location:
                  $ref: '#/components/schemas/v21LatLong'
                  title: optimal broadcast location (for routing and delay)
        required: true
  /collection/{collectionId}/project/{projectId}:
    get:
      summary: Get Project
      description: Get an existing project
      operationId: ProjectService_GetProject
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v21GetProjectResponse'
        '401':
          description: The access token provided is not valid
          content:
            application/json:
              schema: {}
        '403':
          description: The access token provided does not have access to specified resource
          content:
            application/json:
              schema: {}
        '404':
          description: The specified resource was not found
          content:
            application/json:
              schema: {}
        '429':
          description: The specified service is busy; please use an exponential backoff on subsequent requests.
          content:
            application/json:
              schema: {}
        '500':
          description: The specified service is unavailable; please try again later
          content:
            application/json:
              schema: {}
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: collectionId
        description: collection which owns the project
        in: path
        required: true
        schema:
          type: string
      - name: projectId
        description: project id
        in: path
        required: true
        schema:
          type: string
      - name: status
        description: also query project broadcast status.
        in: query
        required: false
        schema:
          type: boolean
          default: 'false'
      tags:
      - ProjectService
    delete:
      summary: Delete Project
      description: Delete a project
      operationId: ProjectService_DeleteProject
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v21DeleteProjectResponse'
        '401':
          description: The access token provided is not valid
          content:
            application/json:
              schema: {}
        '403':
          description: The access token provided does not have access to specified resource
          content:
            application/json:
              schema: {}
        '404':
          description: The specified resource was not found
          content:
            application/json:
              schema: {}
        '429':
          description: The specified service is busy; please use an exponential backoff on subsequent requests.
          content:
            application/json:
              schema: {}
        '500':
          description: The specified service is unavailable; please try again later
          content:
            application/json:
              schema: {}
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: collectionId
        description: collection which owns the project
        in: path
        required: true
        schema:
          type: string
      - name: projectId
        description: project id
        in: path
        required: true
        schema:
          type: string
      - name: force
        description: forcibly end broadcast in progress.
        in: query
        required: false
        schema:
          type: boolean
          default: 'false'
      tags:
      - ProjectService
    patch:
      summary: Update Project
      description: Updates a project
      operationId: ProjectService_UpdateProject
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v21UpdateProjectResponse'
        '401':
          description: The access token provided is not valid
          content:
            application/json:
              schema: {}
        '403':
          description: The access token provided does not have access to specified resource
          content:
            application/json:
              schema: {}
        '404':
          description: The specified resource was not found
          content:
            application/json:
              schema: {}
        '429':
          description: The specified service is busy; please use an exponential backoff on subsequent requests.
          content:
            application/json:
              schema: {}
        '500':
          description: The specified service is unavailable; please try again later
          content:
            application/json:
              schema: {}
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: collectionId
        description: collection which owns the project
        in: path
        required: true
        schema:
          type: string
      - name: projectId
        description: project id
        in: path
        required: true
        schema:
          type: string
      tags:
      - ProjectService
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                updateMask:
                  type: string
                  example: metadata, maxDuration, rendering.video.frameRate
                  title: fields to update
                  required:
                  - update_mask
                metadata:
                  type: object
                  example:
                    createdBy: Eddie Current
                  title: arbitrary metadata to associate with this project
                rendering:
                  $ref: '#/components/schemas/v21Rendering'
                  title: composition parameters
                encoding:
                  $ref: '#/components/schemas/v21Encoding'
                  title: encoding parameters
                composition:
                  $ref: '#/components/schemas/v21Composition'
                  title: composition/layout source of the broadcast
                maxDuration:
                  type: integer
                  format: int64
                  example: 172800000
                  title: maximum duration of project broadcasts (ms)
                  maximum: 604800000
                webrtc:
                  $ref: '#/components/schemas/v21WebRtc'
                  title: configuration for webrtc services (if requested)
                location:
                  $ref: '#/components/schemas/v21LatLong'
                  title: optimal broadcast location (for routing and delay)
              required:
              - updateMask
        required: true
  /collection/{collectionId}/project/{projectId}/broadcast/snapshot:
    get:
      summary: Get Snapshot
      description: Get a snapshot of the current output frame of the broadcast
      operationId: ProjectService_GetProjectBroadcastSnapshot
      responses:
        '200':
          description: A successful response.
          content:
            image/jpeg:
              schema:
                $ref: '#/components/schemas/v21GetProjectBroadcastSnapshotResponse'
        '401':
          description: The access token provided is not valid
          content:
            image/jpeg:
              schema: {}
        '403':
          description: The access token provided does not have access to specified resource
          content:
            image/jpeg:
              schema: {}
        '404':
          description: The specified resource was not found
          content:
            image/jpeg:
              schema: {}
        '429':
          description: The specified service is busy; please use an exponential backoff on subsequent requests.
          content:
            image/jpeg:
              schema: {}
        '500':
          description: The specified service is unavailable; please try again later
          content:
            image/jpeg:
              schema: {}
        default:
          description: An unexpected error response.
          content:
            image/jpeg:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: collectionId
        description: collection which owns the project
        in: path
        required: true
        schema:
          type: string
      - name: projectId
        description: project id
        in: path
        required: true
        schema:
          type: string
      - name: format
        description: snapshot binary format.
        in: query
        required: false
        schema:
          type: string
          enum:
          - IMAGE_FORMAT_JPEG
      tags:
      - ProjectService
  /collection/{collectionId}/project/{projectId}/broadcast/start:
    put:
      summary: Start Broadcast
      description: Start broadcasting a project
      operationId: ProjectService_StartProjectBroadcast
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v21StartProjectBroadcastResponse'
        '401':
          description: The access token provided is not valid
          content:
            application/json:
              schema: {}
        '403':
          description: The access token provided does not have access to specified resource
          content:
            application/json:
              schema: {}
        '404':
          description: The specified resource was not found
          content:
            application/json:
              schema: {}
        '429':
          description: The specified service is busy; please use an exponential backoff on subsequent requests.
          content:
            application/json:
              schema: {}
        '500':
          description: The specified service is unavailable; please try again later
          content:
            application/json:
              schema: {}
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: collectionId
        description: collection which owns the project
        in: path
        required: true
        schema:
          type: string
      - name: projectId
        description: project id
        in: path
        required: true
        schema:
          type: string
      - name: webrtcStart
        description: also start webrtc room.
        in: query
        required: false
        schema:
          type: boolean
          default: 'false'
      tags:
      - ProjectService
  /collection/{collectionId}/project/{projectId}/broadcast/status:
    get:
      summary: Get Broadcast Status
      description: Get the broadcast status of the project
      operationId: ProjectService_GetProjectBroadcastStatus
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v21GetProjectBroadcastStatusResponse'
        '401':
          description: The access token provided is not valid
          content:
            application/json:
              schema: {}
        '403':
          description: The access token provided does not have access to specified resource
          content:
            application/json:
              schema: {}
        '404':
          description: The specified resource was not found
          content:
            application/json:
              schema: {}
        '429':
          description: The specified service is busy; please use an exponential backoff on subsequent requests.
          content:
            application/json:
              schema: {}
        '500':
          description: The specified service is unavailable; please try again later
          content:
            application/json:
              schema: {}
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: collectionId
        description: collection which owns the project
        in: path
        required: true
        schema:
          type: string
      - name: projectId
        description: project id
        in: path
        required: true
        schema:
          type: string
      tags:
      - ProjectService
  /collection/{collectionId}/project/{projectId}/broadcast/stop:
    put:
      summary: Stop Broadcast
      description: Stop broadcasting a project
      operationId: ProjectService_StopProjectBroadcast
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v21StopProjectBroadcastResponse'
        '401':
          description: The access token provided is not valid
          content:
            application/json:
              schema: {}
        '403':
          description: The access token provided does not have access to specified resource
          content:
            application/json:
              schema: {}
        '404':
          description: The specified resource was not found
          content:
            application/json:
              schema: {}
        '429':
          description: The specified service is busy; please use an exponential backoff on subsequent requests.
          content:
            application/json:
              schema: {}
        '500':
          description: The specified service is unavailable; please try again later
          content:
            application/json:
              schema: {}
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: collectionId
        description: collection which owns the project
        in: path
        required: true
        schema:
          type: string
      - name: projectId
        description: project id
        in: path
        required: true
        schema:
          type: string
      - name: webrtcStop
        description: stop the associated webrtc room,.
        in: query
        required: false
        schema:
          type: boolean
          default: 'false'
      tags:
      - ProjectService
  /collection/{collectionId}/project/{projectId}/webrtc/start:
    put:
      summary: Start WebRTC
      description: Start WebRTC services
      operationId: ProjectService_StartProjectWebRtc
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v21StartProjectWebRtcResponse'
        '401':
          description: The access token provided is not valid
          content:
            application/json:
              schema: {}
        '403':
          description: The access token provided does not have access to specified resource
          content:
            application/json:
              schema: {}
        '404':
          description: The specified resource was not found
          content:
            application/json:
              schema: {}
        '429':
          description: The specified service is busy; please use an exponential backoff on subsequent requests.
          content:
            application/json:
              schema: {}
        '500':
          description: The specified service is unavailable; please try again later
          content:
            application/json:
              schema: {}
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: collectionId
        description: collection which owns the project
        in: path
        required: true
        schema:
          type: string
      - name: projectId
        description: project id
        in: path
        required: true
        schema:
          type: string
      tags:
      - ProjectService
  /collection/{collectionId}/project/{projectId}/webrtc/stop:
    put:
      summary: Stop WebRTC
      description: Stop WebRTC services
      operationId: ProjectService_StopProjectWebRtc
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v21StopProjectWebRtcResponse'
        '401':
          description: The access token provided is not valid
          content:
            application/json:
              schema: {}
        '403':
          description: The access token provided does not have access to specified resource
          content:
            application/json:
              schema: {}
        '404':
          description: The specified resource was not found
          content:
            application/json:
              schema: {}
        '429':
          description: The specified service is busy; please use an exponential backoff on subsequent requests.
          content:
            application/json:
              schema: {}
        '500':
          description: The specified service is unavailable; please try again later
          content:
            application/json:
              schema: {}
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: collectionId
        description: collection which owns the project
        in: path
        required: true
        schema:
          type: string
      - name: projectId
        description: project id
        in: path
        required: true
        schema:
          type: string
      tags:
      - ProjectService
components:
  schemas:
    v21VideoCodecRateControlMode:
      type: string
      enum:
      - VIDEO_CODEC_RATE_CONTROL_MODE_CBR
      description: '- VIDEO_CODEC_RATE_CONTROL_MODE_CBR: constant bit rate encoding'
      title: video encoding rate control mode
    v21HlsLifecycleLive:
      type: object
      properties:
        playlistCount:
          type: integer
          format: int32
          example: 5
          default: '5'
          title: number of entries to advertise in playlist file
          minimum: 2
        fileCount:
          type: integer
          format: int32
          example: 10
          default: '10'
          title: number of files to keep on disk
          minimum: 4
      title: live hls lifecycle management
    v21AudioCodec:
      type: string
      enum:
      - AUDIO_CODEC_AAC
      title: audio encoding codec
    v21Project:
      type: object
      properties:
        collectionId:
          type: string
          example: 7132b004-61e8-49c1-8dc8-4bb3269ce6f
          title: collection which owns the project
        projectId:
          type: string
          example: 7132b004-61e8-49c1-8dc8-4bb3269ce6f
          title: project id
        metadata:
          type: object
          example:
            createdBy: Eddie Current
          title: arbitrary metadata associated with this project
        rendering:
          $ref: '#/components/schemas/v21Rendering'
          default: '{}'
          title: composition parameters
        encoding:
          $ref: '#/components/schemas/v21Encoding'
          default: '{}'
          title: encoding parameters
        sources:
          type: array
          items:
            $ref: '#/components/schemas/v21Source'
          title: collection live sources added to this project
        destinations:
          type: array
          items:
            $ref: '#/components/schemas/v21Destination'
          title: destinations associated with this project
        composition:
          $ref: '#/components/schemas/v21Composition'
          default: '{}'
          title: composition/layout source of the broadcast
        maxDuration:
          type: integer
          format: int64
          example: 172800000
          default: '172800000'
          title: maximum duration (ms) of project broadcasts
          maximum: 604800000
        webrtc:
          $ref: '#/components/schemas/v21WebRtc'
          title: configuration for webrtc services (if requested)
        triggers:
          type: array
          items:
            $ref: '#/components/schemas/v21ProjectTrigger'
          title: external triggers to start and stop this broadcast
        location:
          $ref: '#/components/schemas/v21LatLong'
          title: optional optimal location to start broadcast
        guestCodes:
          type: array
          items:
            $ref: '#/components/schemas/v21GuestCode'
          title: guest codes associated with this project
          readOnly: true
      title: project which owns a broadcast, sources, and destinations
    v21GuestCode:
      type: object
      properties:
        collectionId:
          type: string
          example: 7132b004-61e8-49c1-8dc8-4bb3269ce6f
          title: collection which owns the project
        projectId:
          type: string
          example: 7132b004-61e8-49c1-8dc8-4bb3269ce6f
          title: project id
        code:
          type: string
          title: the short url code
        url:
          type: string
          title: the short url
        autoDelete:
          type: string
          format: date-time
          title: auto-delete after time
    v21SourceTrigger:
      type: object
      properties:
        sourceId:
          type: string
          example: 7132b004-61e8-49c1-8dc8-4bb3269ce6f
          title: the id of the source
          required:
          - source_id
        start:
          $ref: '#/components/schemas/v21SourceTriggerAction'
          example: SOURCE_TRIGGER_ACTION_OR
          default: SOURCE_TRIGGER_ACTION_IGNORE
          title: source should trigger project(s) to start
        stop:
          $ref: '#/components/schemas/v21SourceTriggerAction'
          example: SOURCE_TRIGGER_ACTION_OR
          default: SOURCE_TRIGGER_ACTION_IGNORE
          title: source should trigger project(s) to stop
      title: triggers to indicate what actions to take on the project for a given Source
      required:
      - sourceId
    v21UpdateProjectResponse:
      type: object
      properties:
        project:
          $ref: '#/components/schemas/v21Project'
          title: updated project
        broadcastUpdated:
          type: boolean
          example: true
          title: indicates whether the broadcast was updated as a function of this request
    v21VideoCodec:
      type: string
      enum:
      - VIDEO_CODEC_H264
      title: video encoding codec
    v21SrtPushAddress:
      type: object
      properties:
        enabled:
          type: boolean
          example: true
          default: 'true'
          title: enable source srt push address
        streamId:
          type: string
          example: 7132b004-61e8-49c1-8dc8-4bb3269ce6f
          title: assigned srt streamid
          readOnly: true
        url:
          type: string
          example: srt://ingest.api.stream?streamid=7132b004-61e8-49c1-8dc8-4bb3269ce6f/7132b004-61e8-49c1-8dc8-4bb3269ce6f
          title: assigned srt destination url
          readOnly: true
        baseUrl:
          type: string
          example: srt://ingest.api.stream
          title: base_url without streamid
          readOnly: true
      title: srt push addressing
    v21AudioEncoding:
      type: object
      properties:
        codec:
          $ref: '#/components/schemas/v21AudioCodec'
          example: AUDIO_CODEC_AAC
          default: AUDIO_CODEC_AAC
          title: audio encoding codec
      title: encoding audio parameters
    v21VideoEncoding:
      type: object
      properties:
        codec:
          $ref: '#/components/schemas/v21VideoCodec'
          example: VIDEO_CODEC_H264
          default: VIDEO_CODEC_H264
          title: video encoding codec
        rateControl:
          $ref: '#/components/schemas/v21VideoCodecRateControl'
          default: '{}'
          title: video encoding rate control
        profile:
          $ref: '#/components/schemas/v21VideoCodecProfile'
          example: VIDEO_CODEC_PROFILE_HIGH
          default: VIDEO_CODEC_PROFILE_HIGH
          title: video encoding codec profile
      title: encoding video parameters
    v21ProjectBroadcastStatus:
      type: object
      properties:
        collectionId:
          type: string
          example: 7132b004-61e8-49c1-8dc8-4bb3269ce6f
          title: collection which owns the project which owns the broadcast
        projectId:
          type: string
          example: 7132b004-61e8-49c1-8dc8-4bb3269ce6f
          title: project which owns the broadcast
        broadcastId:
          type: string
          example: 7132b004-61e8-49c1-8dc8-4bb3269ce6f
        duration:
          type: integer
          format: int64
          example: 300000
          title: broadcast duration (ms)
        start:
          type: string
          format: date-time
          example: '1981-08-01T00:01:00Z'
          title: broadcast start timestamp (ISO8601 UTC)
        stop:
          type: string
          format: date-time
          example: '1981-08-01T00:04:21Z'
          title: broadcast stop timestamp (ISO8601 UTC)
        phase:
          $ref: '#/components/schemas/v21ProjectBroadcastPhase'
          example: PROJECT_BROADCAST_PHASE_UNSPECIFIED
          title: broadcast phase
        region:
          $ref: '#/components/schemas/v21Region'
          example: REGION_US_EAST
          title: region broadcast is located
        datacenter:
          type: string
          example: nyc1
          title: datacenter broadcast is located
      title: broadcast status
    v21AudioChannelLayout:
      type: string
      enum:
      - AUDIO_CHANNEL_LAYOUT_STEREO
      title: audio channel layout
    v21ImageFormat:
      type: string
      enum:
      - IMAGE_FORMAT_JPEG
      title: image binary format
    v21LatLong:
      type: object
      properties:
        latitude:
          type: number
          format: double
        longitude:
          type: number
          format: double
      title: optimal location of broadcast (to optimize routing and delay)
    v21SceneComposition:
      type: object
      properties:
        rendererUrl:
          type: string
          example: https://rainmaker.gg/overlay/e67cfd6ad57560962fddcf63611d2834/1
          title: the url to pass to the studiosdk
        selectedLayoutId:
          type: string
          example: e67cfd6ad57560962fddcf63611d2835
          title: the active "scene" to render
        debug:
          type: boolean
          example: false
          default: 'false'
      title: compose scenes using the browser-based compositor
    v21S3StorageAddress:
      type: object
      properties:
        region:
          type: string
          example: us-west-1
          title: cloud region
          required:
          - region
        bucket:
          type: string
          example: company
          title: cloud bucket
          required:
          - bucket
        prefix:
          type: string
          example: app
          title: cloud bucket prefix
        accessKey:
          type: string
          title: cloud access key
          required:
          - access_key
        secretKey:
          type: string
          title: cloud secret key
          required:
          - secret_key
        token:
          type: string
          title: token based auth
        tokenDuration:
          type: integer
          format: int32
          title: token duration in ms
        acl:
          $ref: '#/components/schemas/v21S3ACL'
          example: S3ACL_PUBLIC_READ
          title: access control list
        endpoint:
          type: string
          example: fra1.digitaloceanspaces.com
          title: endpoint for non aws s3 destinations
        packaging:
          $ref: '#/components/schemas/v21ObjectStoragePackaging'
          default: '{}'
          title: the format of the files to be written
      required:
      - region
      - bucket
      - accessKey
      - secretKey
    v21GetProjectBroadcastStatusResponse:
      type: object
      properties:
        status:
          $ref: '#/components/schemas/v21Project

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