openapi: 3.0.3
x-bc-implicit-head: true
x-bc-implicit-options: true
x-bc-upstream: 'https://backend_server'
info:
title: Delivery System API Reference
description: |-
Reference for the Delivery System API, used to manage and deploy a group of files, called a repository. These files are managed through REST APIs and through git. These files are delivered, on every git push, to players.brightcove.com. To test API requests, you can use our API Testing Tools
For additional in-depth guides to features of the API, see the **[general documentation](/delivery-system/index.html)**.
**Base URL**: https://repos.api.brightcove.com/v1
version: '1.0.0'
x-bc-access: public
servers:
- url: https://repos.api.brightcove.com/v1
variables: {}
tags:
- name: Files
description: 'Operations for managing files in a repository'
- name: Repositories
description: >-
Operations for managing respositories
paths:
/accounts/{{account_id}}/repos/{repo_name}/files/{filename}:
put:
tags:
- Files
summary: Add or Update File in Repository
description: |-
This will add or update a file. The wanted file name is at the end of the endpoint. The form contents can be a file name, including relative path, or any string. If the file has a .json extension, it will be checked for valid JSON format.
A multi-part form with a `contents` key must be used to PUT a repo file. Note that you should add files using this endpoint and CURL rather than using git commands. Here is a CURL example:
curl \
--user $EMAIL \
--form contents=@first-plugin.js \
--request PUT \
https://repos.api.brightcove.com/v1/accounts/{{account_id}}/repos/firstRepo/files/first-plugin.js
operationId: AccountsReposFilesFilenameByaccount_idAndrepo_namePut
security:
- BC_OAuth2:
- video-cloud/player/all
parameters:
- $ref: '#/components/parameters/account_id'
- $ref: '#/components/parameters/repo_name'
- $ref: '#/components/parameters/filename'
- $ref: '#/components/parameters/Authorization'
responses:
200:
description: '200'
content:
application/json:
schema:
$ref: '#/components/schemas/AddUpdateFileResponse'
401:
description: 'UNAUTHORIZED: Authentication failed; check to make sure your client credentials were correct for the access token'
404:
description: 'RESOURCE_NOT_FOUND: The api couldn't find the resource you requested'
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
delete:
tags:
- Files
summary: Delete File in Repository
description: 'Deletes a file in a repo. '
operationId: AccountsReposFilesFilenameByaccount_idAndrepo_nameDelete
security:
- BC_OAuth2:
- video-cloud/player/all
parameters:
- $ref: '#/components/parameters/account_id'
- $ref: '#/components/parameters/repo_name'
- $ref: '#/components/parameters/filename'
- $ref: '#/components/parameters/Authorization'
responses:
200:
description: '200'
401:
description: 'UNAUTHORIZED: Authentication failed; check to make sure your client credentials were correct for the access token'
404:
description: 'RESOURCE_NOT_FOUND: The api couldn't find the resource you requested'
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/accounts/{{account_id}}/repos/{repo_name}/files:
get:
tags:
- Files
summary: List Repositories
description: 'Lists all the files in a repo. '
operationId: AccountsReposFilesByaccount_idAndrepo_nameGet
security:
- BC_OAuth2:
- video-cloud/player/read
parameters:
- $ref: '#/components/parameters/account_id'
- $ref: '#/components/parameters/repo_name'
- $ref: '#/components/parameters/Authorization'
responses:
200:
description: '200'
401:
description: 'UNAUTHORIZED: Authentication failed; check to make sure your client credentials were correct for the access token'
404:
description: 'RESOURCE_NOT_FOUND: The api couldn't find the resource you requested'
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/accounts/{{account_id}}/repos/{repo_name}:
get:
tags:
- Repositories
summary: Get Repository Details
description: 'This will retrieve the details for a Repositories. '
operationId: AccountsReposByaccount_idAndrepo_nameGet
security:
- BC_OAuth2:
- video-cloud/player/read
parameters:
- $ref: '#/components/parameters/account_id'
- $ref: '#/components/parameters/repo_name'
- $ref: '#/components/parameters/Content-Type'
- $ref: '#/components/parameters/Authorization'
responses:
200:
description: '200'
content:
application/json:
schema:
description: '200'
$ref: '#/components/schemas/GetRepositoryResponse'
401:
description: 'UNAUTHORIZED: Authentication failed; check to make sure your client credentials were correct for the access token'
404:
description: 'RESOURCE_NOT_FOUND: The api couldn't find the resource you requested'
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
put:
tags:
- Repositories
summary: Create or Update Repository
description: This will create a Repository, if it does not exist. A response of 200 means the repository already existed. A response of 201 means repository was successfully created.
operationId: AccountsReposByaccount_idAndrepo_namePut
security:
- BC_OAuth2:
- video-cloud/player/all
parameters:
- $ref: '#/components/parameters/account_id'
- $ref: '#/components/parameters/repo_name'
- $ref: '#/components/parameters/Content-Type'
- $ref: '#/components/parameters/Authorization'
responses:
200:
description: '200 - (repo already exists)'
content:
application/json:
schema:
$ref: '#/components/schemas/CreateRepositoryResponse'
201:
description: '201 (repo created)'
content:
application/json:
schema:
$ref: '#/components/schemas/CreateRepositoryResponse'
401:
description: 'UNAUTHORIZED: Authentication failed; check to make sure your client credentials were correct for the access token'
404:
description: 'RESOURCE_NOT_FOUND: The api couldn't find the resource you requested'
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
delete:
tags:
- Repositories
summary: Delete Repository
description: 'This will delete a Repositories. '
operationId: AccountsReposByaccount_idAndrepo_nameDelete
security:
- BC_OAuth2:
- video-cloud/player/all
parameters:
- $ref: '#/components/parameters/account_id'
- $ref: '#/components/parameters/repo_name'
- $ref: '#/components/parameters/Content-Type'
- $ref: '#/components/parameters/Authorization'
responses:
200:
description: '200'
content:
application/json:
schema:
$ref: '#/components/schemas/DeleteRepositoryResponse'
401:
description: 'UNAUTHORIZED: Authentication failed; check to make sure your client credentials were correct for the access token'
404:
description: 'RESOURCE_NOT_FOUND: The api couldn't find the resource you requested'
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/accounts/{{account_id}}/repos:
get:
tags:
- Repositories
summary: List All Repositories in Account
description: 'This will list the details for all repositories in an account. '
operationId: AccountsReposByaccount_idGet
security:
- BC_OAuth2:
- video-cloud/player/read
parameters:
- $ref: '#/components/parameters/account_id'
- $ref: '#/components/parameters/Content-Type'
- $ref: '#/components/parameters/Authorization'
responses:
200:
description: '200'
content:
application/json:
schema:
description: '200'
$ref: '#/components/schemas/GetAllRepositoriesResponse'
401:
description: 'UNAUTHORIZED: Authentication failed; check to make sure your client credentials were correct for the access token'
404:
description: 'RESOURCE_NOT_FOUND: The api couldn't find the resource you requested'
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
components:
parameters:
account_id:
name: account_id
in: path
description: Video Cloud account ID.
required: true
style: simple
explode: false
schema:
type: string
repo_name:
name: repo_name
in: path
description: The name of the repo.
required: true
style: simple
explode: false
schema:
type: string
filename:
name: filename
in: path
description: The name of the file in the repo to add or update.
required: true
style: simple
explode: false
schema:
type: string
Authorization:
name: Authorization
in: header
description: 'Authorization: Bearer access_token (see Getting Access Tokens)'
required: true
style: simple
explode: false
schema:
type: string
Content-Type:
name: Content-Type
in: header
description: 'Content-Type: application/json'
required: true
style: simple
explode: false
schema:
type: string
schemas:
AddUpdateFileResponse:
title: Add or Update File Response
required:
- name
- public_url
type: object
properties:
name:
type: string
description: Destination filename
public_url:
type: string
description: URL to use for referencing the file (contrasted to the repo URL)
CreateRepositoryResponse:
title: Create Repository Response
type: object
properties:
name:
type: string
description: repo name
public_url:
type: string
description: URL for the public player
repo_url:
type: string
description: URL for the repository
DeleteRepositoryResponse:
title: Delete Repository Response
required:
- name
type: object
properties:
name:
type: string
description: repo name
GetRepositoryResponse:
title: Get Repository Response
required:
- name
- public_url
- repo_url
type: object
properties:
name:
type: string
description: repo name
public_url:
type: string
description: URL for the public player
repo_url:
type: string
description: URL for the repository
GetAllRepositoriesResponse:
title: Get All Repositories Response
required:
- items
type: object
properties:
items:
type: array
items:
type: string
description: array of items
Items:
title: items
required:
- name
- public_url
- repo_url
type: object
properties:
name:
type: string
description: repo name
public_url:
type: string
description: URL for the public player
repo_url:
type: string
description: URL for the repository
securitySchemes:
BC_OAuth2:
type: oauth2
description: >-
Brightcove OAuth API. See the [support documentation](/oauth/index.html) or [Getting Access Tokens](/oauth/code-samples/oauth-api-sample-get-access-token.html) to learn more
flows:
clientCredentials:
tokenUrl: 'https://oauth.brightcove.com/v4/access_token'
scopes:
video-cloud/player/read: Read player data
video-cloud/player/all: Read/write player data