openapi: 3.0.2
x-explorer-enabled: false
x-samples-languages:
- curl
- node
- java
- javascript
- python
- go
info:
title: Digital - Signed Media
description: Media store is used for storing media exchanged during chat or messaging. Different types of media like audio
files, video files, images, documents, and spreadsheets can be exchanged. Signed URI APIs help clients to upload and download
media without the need of account based access tokens.
contact:
name: Avaya API Team
url: https://developers.avayacloud.com/onecloud-ccaas
email: apiteam@avaya.com
license:
name: Avaya Software Development Kit (SDK) Software License Terms
url: http://support.avaya.com/css/P8/documents/101038288
version: 1.0.1
servers:
- url: '{protocol}://{server}{basePath}'
description: Open API
variables:
protocol:
enum:
- https
default: https
server:
default: HOST-REGION.api.avayacloud.com
basePath:
default: /api/media-store/v1
- url: '{protocol}://{server}:{port}'
description: Internal API
variables:
protocol:
enum:
- http
- https
default: http
server:
default: umr
port:
enum:
- '80'
- '443'
default: '80'
tags:
- name: Media
description: This tag is used to upload or download media using signed URI.
paths:
/media/{mediaId}:
post:
tags:
- Media
summary: Upload Media
description: Upload media file using the signed URI.
operationId: uploadSignedMedia
parameters:
- $ref: '#/components/parameters/mediaId'
- $ref: '#/components/parameters/ttl'
- $ref: '#/components/parameters/signature'
requestBody:
content:
multipart/form-data:
schema:
$ref: '#/components/schemas/MediaFile'
required: true
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/schemas/UploadMediaResponse'
examples:
Upload media response:
$ref: '#/components/examples/UploadMediaResponse'
'400':
$ref: '#/components/responses/BadRequest'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
deprecated: false
get:
tags:
- Media
summary: Get Media
description: Get media file using the signed URI.
operationId: getSignedMedia
parameters:
- $ref: '#/components/parameters/mediaId'
- $ref: '#/components/parameters/ttl'
- $ref: '#/components/parameters/signature'
responses:
'200':
description: OK
content:
application/octet-stream:
schema:
$ref: '#/components/schemas/Media'
examples:
Media File:
$ref: '#/components/examples/MediaFile'
'204':
description: No Content
'400':
$ref: '#/components/responses/BadRequest'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
deprecated: false
components:
parameters:
mediaId:
in: path
name: mediaId
description: The unique 36 character internal id that represents the media
required: true
schema:
type: string
minLength: 36
maxLength: 36
pattern: ^[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}$
example: 6e232c4b-b0fe-4901-8b81-288ec7de9e4c
ttl:
in: query
name: ttl
description: The time to live for the signature
required: true
schema:
type: integer
format: int64
minimum: 0
example: 1672511400000
signature:
in: query
name: signature
description: The signature key
required: true
schema:
type: string
maxLength: 128
minLength: 124
example: CB3BE6D4898600CE3923D808D781028835891012014E902A90C1780DDD54F8E5EC626832E104E4F20167DA2F029B4672D708915E9CDC12F20AC24319FAC6
responses:
BadRequest:
description: Bad Request
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
examples:
default:
$ref: '#/components/examples/ErrorConstraintViolation'
invalid-media-id:
$ref: '#/components/examples/ErrorConstraintViolationForMediaId'
NotFound:
description: Not Found
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
examples:
default:
$ref: '#/components/examples/ErrorNotFound'
InternalServerError:
description: Internal Server Error
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
examples:
default:
$ref: '#/components/examples/ErrorInternalServerError'
schemas:
Problem:
type: object
description: 'Problem Detail as a way to carry machine-readable details of errors in a HTTP response to avoid
the need to define new error response formats for HTTP APIs RFC 7807
'
properties:
type:
type: string
format: uri
description: 'An absolute URI that identifies the problem type. When dereferenced, it SHOULD provide human-readable
documentation for the problem type (e.g., using HTML).
'
default: about:blank
example: https://developers.avayacloud.com/onecloud-ccaas/docs/error-handling#constraint-violation
title:
type: string
description: 'A short, summary of the problem type. Written in english and readable for engineers (usually not suited
for non technical stakeholders and not localized).
'
example: Service Unavailable
nullable: true
status:
type: integer
format: int32
description: 'The HTTP status code generated by the origin server for this occurrence of the problem.
'
minimum: 100
maximum: 600
exclusiveMaximum: true
example: 503
nullable: true
detail:
type: string
description: 'A human readable explanation specific to this occurrence of the problem.
'
example: Connection to database timed out
nullable: true
instance:
type: string
format: uri
description: 'An absolute URI that identifies the specific occurrence of the problem. It may or may not yield further
information if dereferenced.
'
nullable: true
violations:
type: array
description: 'A list of violations that occurred as a result of invalid data provided as part of a request.
'
nullable: true
items:
type: object
properties:
field:
type: string
description: 'The name of the field in the request that caused the violation. This can be the name of a path
parameter, query parameter, or a field within the request body.
'
example: accountId
message:
type: string
description: 'A human readable explanation specific to this occurrence of the violation.
'
example: must match "^[a-zA-Z]{6}$"
code:
type: integer
format: int32
description: 'The violation code generated by the server for this occurrence of the violation. Use this code
when implementing any error handling logic instead of the message, as the message can change.
'
example: 20006
example:
- field: emailAddress
message: must not be null
code: 20002
- field: accountId
message: must match "^[a-zA-Z]{6}$"
code: 20006
Media:
title: Media
type: string
format: binary
description: octet-stream of media file
UploadMediaResponse:
title: UploadMediaResponse
type: object
description: Information returned after the creation of media inclusive of basic information and associated metadata
properties:
mediaId:
type: string
description: The unique 36 character internal id that represents the media
example: b03976ea-7e8b-11ea-bc55-0242ac130003
mediaName:
type: string
example: myFile.png
MediaFile:
type: object
required:
- mediaFile
properties:
mediaFile:
type: string
format: binary
description: Media attachment for a message
examples:
UploadMediaResponse:
value:
mediaId: 6e232c4b-b0fe-4901-8b81-288ec7de9e4c
mediaName: myFile.png
MediaFile:
value: media file binary content
ErrorConstraintViolation:
description: Constraint Violation
value:
type: https://developers.avayacloud.com/onecloud-ccaas/docs/error-handling#constraint-violation
title: Constraint Violation
status: 400
detail: A problem that indicates a syntactically correct, yet semantically illegal request. The Server can not process
this request until the client resolves the semantic errors described in the violations section.
violations:
- field: mediaId
message: must not be null
ErrorConstraintViolationForMediaId:
description: Constraint Violation
value:
type: https://developers.avayacloud.com/onecloud-ccaas/docs/error-handling#constraint-violation
title: Constraint Violation
status: 400
detail: A problem that indicates a syntactically correct, yet semantically illegal request. The Server can not process
this request until the client resolves the semantic errors described in the violations section.
violations:
- field: mediaId
message: is not valid
ErrorNotFound:
description: Not Found
value:
type: https://developers.avayacloud.com/onecloud-ccaas/docs/error-handling#internal-error
title: Internal Server Error
status: 404
detail: No data found for given Id
ErrorInternalServerError:
description: Internal Server Error
value:
type: https://developers.avayacloud.com/onecloud-ccaas/docs/error-handling#internal-error
title: Internal Server Error
status: 500
detail: An internal server error was encountered.