openapi: 3.0.2
x-explorer-enabled: false
x-samples-languages:
- curl
- node
- java
- javascript
- python
- go
info:
title: Digital - Signed Media URI
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: Signed URI
description: This section is to used to generate signed uri for the respective request.
security:
- {}
- BearerAuth: []
AppKey: []
paths:
/accounts/{accountId}/media/signed-upload-uri:
post:
tags:
- Signed URI
summary: Generate Upload URI
description: Generates a signed URI using which media can be uploaded.
operationId: signedMediaUploadUri
parameters:
- $ref: '#/components/parameters/accountId'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SignedMediaUpload'
examples:
Signed Upload URI:
$ref: '#/components/examples/SignedMediaUploadRequest'
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/SignedMediaUpload'
examples:
Signed Upload URI:
$ref: '#/components/examples/SignedMediaUploadResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'500':
$ref: '#/components/responses/InternalServerError'
deprecated: false
/accounts/{accountId}/media/{mediaId}/signed-download-uri:
get:
tags:
- Signed URI
summary: Get Download URI
description: Gets the signed download URI by media id, using which media can be downloaded
operationId: signedMediaDownloadUri
parameters:
- $ref: '#/components/parameters/accountId'
- $ref: '#/components/parameters/mediaId'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/SignedMediaDownloadResponse'
examples:
Signed Download URI:
$ref: '#/components/examples/SignedMediaDownloadResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalServerError'
deprecated: false
components:
parameters:
accountId:
in: path
name: accountId
required: true
schema:
type: string
minLength: 6
maxLength: 6
pattern: ^[a-zA-Z]{6}$
example: ABCDEF
description: Account ID for which this operation is to be performed.
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
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'
Unauthorized:
description: Unauthorized.
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
examples:
default:
$ref: '#/components/examples/ErrorUnauthorized'
Forbidden:
description: Forbidden.
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
examples:
default:
$ref: '#/components/examples/ErrorForbidden'
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:
SignedMediaInfo:
type: object
required:
- mediaName
- mediaContentType
- mediaSize
properties:
mediaName:
type: string
description: Name of the media file to be uploaded.
minLength: 1
maxLength: 255
example: MyFile.png
mediaContentType:
type: string
description: Content type or media type of the media file to be uploaded.
minLength: 1
maxLength: 255
example: image/png
mediaSize:
type: number
description: Size of the media file to be uploaded in bytes.
format: long
minimum: 1
example: 1000000
mediaId:
readOnly: true
type: string
description: The unique 36 character internal id that represents the media
example: b03976ea-7e8b-11ea-bc55-0242ac130003
title: SignedMediaUpload
description: Signed Medial Upload
SignedMediaUpload:
allOf:
- $ref: '#/components/schemas/SignedMediaInfo'
- type: object
additionalProperties: true
properties:
uploadSignedUri:
readOnly: true
type: string
description: URI to upload media file
example: https://HOST-REGION.api.avayacloud.com/api/media-store/v1/media/b03976ea-7e8b-11ea-bc55-0242ac130003?ttl=1672839427123&signature=8ac27e8f48f997d1a889b4b6111c3ad9fb92974a7efa4913dca92ffa43ac709f
title: SignedMediaUpload
description: Signed Medial Upload
SignedMediaDownloadResponse:
allOf:
- $ref: '#/components/schemas/SignedMediaInfo'
- type: object
additionalProperties: true
properties:
downloadSignedUri:
readOnly: true
type: string
description: URI to download media file
example: https://HOST-REGION.api.avayacloud.com/api/media-store/v1/media/b03976ea-7e8b-11ea-bc55-0242ac130003?ttl=1672839427123&signature=8ac27e8f48f997d1a889b4b6111c3ad9fb92974a7efa4913dca92ffa43ac709f
title: SignedMediaDownloadResponse
description: Signed Media Download Response
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
securitySchemes:
BearerAuth:
type: http
scheme: bearer
description: This API uses Bearer Token Authorization Flow
bearerFormat: JWT
AppKey:
type: apiKey
in: header
name: appkey
description: This API needs an appKey as header
examples:
SignedMediaUploadRequest:
value:
mediaName: MyFile.png
mediaContentType: image/png
mediaSize: 100000
SignedMediaUploadResponse:
value:
mediaName: MyFile.png
mediaContentType: image/png
mediaSize: 100000
mediaId: b03976ea-7e8b-11ea-bc55-0242ac130003
uploadSignedUri: https://HOST-REGION.api.avayacloud.com/api/media-store/v1/media/b03976ea-7e8b-11ea-bc55-0242ac130003?ttl=1672839427123&signature=8ac27e8f48f997d1a889b4b6111c3ad9fb92974a7efa4913dca92ffa43ac709f
SignedMediaDownloadResponse:
value:
mediaName: MyFile.png
mediaContentType: image/png
mediaSize: 100000
mediaId: b03976ea-7e8b-11ea-bc55-0242ac130003
downloadSignedUri: /v1/media/b03976ea-7e8b-11ea-bc55-0242ac130003?ttl=1672839427321&signature=8ac27e8f48f997d1a889b4b6111c3ad9fb92974a7efa4913dca92ffa43ac709f
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
ErrorUnauthorized:
description: Unauthorized
value:
type: https://developers.avayacloud.com/onecloud-ccaas/docs/error-handling#unauthorized
title: Unauthorized
status: 401
detail: This operation requires authentication. See https://developers.avayacloud.com/onecloud-ccaas/docs/how-to-authenticate-with-ccaas-apis
ErrorForbidden:
description: Forbidden
value:
type: https://developers.avayacloud.com/onecloud-ccaas/docs/error-handling#forbidden
title: Forbidden
status: 403
detail: According to the access control policy the current user and/or accountId does not have permission to access
this resource.
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.