openapi-directory
Version:
Building & bundling https://github.com/APIs-guru/openapi-directory for easy use from JS
1 lines • 17.6 kB
JSON
{"openapi":"3.0.0","info":{"version":"2017-09-30","x-release":"v4","title":"Amazon Kinesis Video Streams Media","description":"<p/>","x-logo":{"url":"https://twitter.com/awscloud/profile_image?size=original","backgroundColor":"#FFFFFF"},"termsOfService":"https://aws.amazon.com/service-terms/","contact":{"name":"Mike Ralphson","email":"mike.ralphson@gmail.com","url":"https://github.com/mermade/aws2openapi","x-twitter":"PermittedSoc"},"license":{"name":"Apache 2.0 License","url":"http://www.apache.org/licenses/"},"x-providerName":"amazonaws.com","x-serviceName":"kinesis-video-media","x-origin":[{"contentType":"application/json","url":"https://raw.githubusercontent.com/aws/aws-sdk-js/master/apis/kinesis-video-media-2017-09-30.normal.json","converter":{"url":"https://github.com/mermade/aws2openapi","version":"1.0.0"},"x-apisguru-driver":"external"}],"x-apiClientRegistration":{"url":"https://portal.aws.amazon.com/gp/aws/developer/registration/index.html?nc2=h_ct"},"x-apisguru-categories":["cloud"],"x-preferred":true},"externalDocs":{"description":"Amazon Web Services documentation","url":"https://docs.aws.amazon.com/kinesisvideo/"},"servers":[{"url":"http://kinesisvideo.{region}.amazonaws.com","variables":{"region":{"description":"The AWS region","enum":["us-east-1","us-east-2","us-west-1","us-west-2","us-gov-west-1","us-gov-east-1","ca-central-1","eu-north-1","eu-west-1","eu-west-2","eu-west-3","eu-central-1","eu-south-1","af-south-1","ap-northeast-1","ap-northeast-2","ap-northeast-3","ap-southeast-1","ap-southeast-2","ap-east-1","ap-south-1","sa-east-1","me-south-1"],"default":"us-east-1"}},"description":"The Kinesis Video Media multi-region endpoint"},{"url":"https://kinesisvideo.{region}.amazonaws.com","variables":{"region":{"description":"The AWS region","enum":["us-east-1","us-east-2","us-west-1","us-west-2","us-gov-west-1","us-gov-east-1","ca-central-1","eu-north-1","eu-west-1","eu-west-2","eu-west-3","eu-central-1","eu-south-1","af-south-1","ap-northeast-1","ap-northeast-2","ap-northeast-3","ap-southeast-1","ap-southeast-2","ap-east-1","ap-south-1","sa-east-1","me-south-1"],"default":"us-east-1"}},"description":"The Kinesis Video Media multi-region endpoint"},{"url":"http://kinesisvideo.{region}.amazonaws.com.cn","variables":{"region":{"description":"The AWS region","enum":["cn-north-1","cn-northwest-1"],"default":"cn-north-1"}},"description":"The Kinesis Video Media endpoint for China (Beijing) and China (Ningxia)"},{"url":"https://kinesisvideo.{region}.amazonaws.com.cn","variables":{"region":{"description":"The AWS region","enum":["cn-north-1","cn-northwest-1"],"default":"cn-north-1"}},"description":"The Kinesis Video Media endpoint for China (Beijing) and China (Ningxia)"}],"paths":{"/getMedia":{"post":{"operationId":"GetMedia","description":"<p> Use this API to retrieve media content from a Kinesis video stream. In the request, you identify the stream name or stream Amazon Resource Name (ARN), and the starting chunk. Kinesis Video Streams then returns a stream of chunks in order by fragment number.</p> <note> <p>You must first call the <code>GetDataEndpoint</code> API to get an endpoint. Then send the <code>GetMedia</code> requests to this endpoint using the <a href=\"https://docs.aws.amazon.com/cli/latest/reference/\">--endpoint-url parameter</a>. </p> </note> <p>When you put media data (fragments) on a stream, Kinesis Video Streams stores each incoming fragment and related metadata in what is called a \"chunk.\" For more information, see <a href=\"https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_dataplane_PutMedia.html\">PutMedia</a>. The <code>GetMedia</code> API returns a stream of these chunks starting from the chunk that you specify in the request. </p> <p>The following limits apply when using the <code>GetMedia</code> API:</p> <ul> <li> <p>A client can call <code>GetMedia</code> up to five times per second per stream. </p> </li> <li> <p>Kinesis Video Streams sends media data at a rate of up to 25 megabytes per second (or 200 megabits per second) during a <code>GetMedia</code> session. </p> </li> </ul> <note> <p>If an error is thrown after invoking a Kinesis Video Streams media API, in addition to the HTTP status code and the response body, it includes the following pieces of information: </p> <ul> <li> <p> <code>x-amz-ErrorType</code> HTTP header – contains a more specific error type in addition to what the HTTP status code provides. </p> </li> <li> <p> <code>x-amz-RequestId</code> HTTP header – if you want to report an issue to AWS, the support team can better diagnose the problem if given the Request Id.</p> </li> </ul> <p>Both the HTTP status code and the ErrorType header can be utilized to make programmatic decisions about whether errors are retry-able and under what conditions, as well as provide information on what actions the client programmer might need to take in order to successfully try again.</p> <p>For more information, see the <b>Errors</b> section at the bottom of this topic, as well as <a href=\"https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/CommonErrors.html\">Common Errors</a>. </p> </note>","responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetMediaOutput"}}}},"480":{"description":"ResourceNotFoundException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceNotFoundException"}}}},"481":{"description":"NotAuthorizedException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorizedException"}}}},"482":{"description":"InvalidEndpointException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidEndpointException"}}}},"483":{"description":"ClientLimitExceededException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientLimitExceededException"}}}},"484":{"description":"ConnectionLimitExceededException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectionLimitExceededException"}}}},"485":{"description":"InvalidArgumentException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidArgumentException"}}}}},"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["StartSelector"],"properties":{"StreamName":{"description":"The Kinesis video stream name from where you want to get the media content. If you don't specify the <code>streamName</code>, you must specify the <code>streamARN</code>.","type":"string","pattern":"[a-zA-Z0-9_.-]+","minLength":1,"maxLength":256},"StreamARN":{"description":"The ARN of the stream from where you want to get the media content. If you don't specify the <code>streamARN</code>, you must specify the <code>streamName</code>.","type":"string","pattern":"arn:aws:kinesisvideo:[a-z0-9-]+:[0-9]+:[a-z]+/[a-zA-Z0-9_.-]+/[0-9]+","minLength":1,"maxLength":1024},"StartSelector":{"description":"<p>Identifies the chunk on the Kinesis video stream where you want the <code>GetMedia</code> API to start returning media data. You have the following options to identify the starting chunk: </p> <ul> <li> <p>Choose the latest (or oldest) chunk.</p> </li> <li> <p>Identify a specific chunk. You can identify a specific chunk either by providing a fragment number or timestamp (server or producer). </p> </li> <li> <p>Each chunk's metadata includes a continuation token as a Matroska (MKV) tag (<code>AWS_KINESISVIDEO_CONTINUATION_TOKEN</code>). If your previous <code>GetMedia</code> request terminated, you can use this tag value in your next <code>GetMedia</code> request. The API then starts returning chunks starting where the last API ended.</p> </li> </ul>","type":"object","properties":{"StartSelectorType":{"allOf":[{"$ref":"#/components/schemas/StartSelectorType"},{"description":"<p>Identifies the fragment on the Kinesis video stream where you want to start getting the data from.</p> <ul> <li> <p>NOW - Start with the latest chunk on the stream.</p> </li> <li> <p>EARLIEST - Start with earliest available chunk on the stream.</p> </li> <li> <p>FRAGMENT_NUMBER - Start with the chunk after a specific fragment. You must also specify the <code>AfterFragmentNumber</code> parameter.</p> </li> <li> <p>PRODUCER_TIMESTAMP or SERVER_TIMESTAMP - Start with the chunk containing a fragment with the specified producer or server timestamp. You specify the timestamp by adding <code>StartTimestamp</code>.</p> </li> <li> <p> CONTINUATION_TOKEN - Read using the specified continuation token. </p> </li> </ul> <note> <p>If you choose the NOW, EARLIEST, or CONTINUATION_TOKEN as the <code>startSelectorType</code>, you don't provide any additional information in the <code>startSelector</code>.</p> </note>"}]},"AfterFragmentNumber":{"allOf":[{"$ref":"#/components/schemas/FragmentNumberString"},{"description":"Specifies the fragment number from where you want the <code>GetMedia</code> API to start returning the fragments. "}]},"StartTimestamp":{"allOf":[{"$ref":"#/components/schemas/Timestamp"},{"description":"A timestamp value. This value is required if you choose the PRODUCER_TIMESTAMP or the SERVER_TIMESTAMP as the <code>startSelectorType</code>. The <code>GetMedia</code> API then starts with the chunk containing the fragment that has the specified timestamp."}]},"ContinuationToken":{"allOf":[{"$ref":"#/components/schemas/ContinuationToken"},{"description":"Continuation token that Kinesis Video Streams returned in the previous <code>GetMedia</code> response. The <code>GetMedia</code> API then starts with the chunk identified by the continuation token."}]}}}}}}}}},"parameters":[{"$ref":"#/components/parameters/X-Amz-Content-Sha256"},{"$ref":"#/components/parameters/X-Amz-Date"},{"$ref":"#/components/parameters/X-Amz-Algorithm"},{"$ref":"#/components/parameters/X-Amz-Credential"},{"$ref":"#/components/parameters/X-Amz-Security-Token"},{"$ref":"#/components/parameters/X-Amz-Signature"},{"$ref":"#/components/parameters/X-Amz-SignedHeaders"}]}},"components":{"parameters":{"X-Amz-Content-Sha256":{"name":"X-Amz-Content-Sha256","in":"header","schema":{"type":"string"},"required":false},"X-Amz-Date":{"name":"X-Amz-Date","in":"header","schema":{"type":"string"},"required":false},"X-Amz-Algorithm":{"name":"X-Amz-Algorithm","in":"header","schema":{"type":"string"},"required":false},"X-Amz-Credential":{"name":"X-Amz-Credential","in":"header","schema":{"type":"string"},"required":false},"X-Amz-Security-Token":{"name":"X-Amz-Security-Token","in":"header","schema":{"type":"string"},"required":false},"X-Amz-Signature":{"name":"X-Amz-Signature","in":"header","schema":{"type":"string"},"required":false},"X-Amz-SignedHeaders":{"name":"X-Amz-SignedHeaders","in":"header","schema":{"type":"string"},"required":false}},"securitySchemes":{"hmac":{"type":"apiKey","name":"Authorization","in":"header","description":"Amazon Signature authorization v4","x-amazon-apigateway-authtype":"awsSigv4"}},"schemas":{"GetMediaOutput":{"type":"object","properties":{"Payload":{"allOf":[{"$ref":"#/components/schemas/Payload"},{"description":"<p> The payload Kinesis Video Streams returns is a sequence of chunks from the specified stream. For information about the chunks, see . The chunks that Kinesis Video Streams returns in the <code>GetMedia</code> call also include the following additional Matroska (MKV) tags: </p> <ul> <li> <p>AWS_KINESISVIDEO_CONTINUATION_TOKEN (UTF-8 string) - In the event your <code>GetMedia</code> call terminates, you can use this continuation token in your next request to get the next chunk where the last request terminated.</p> </li> <li> <p>AWS_KINESISVIDEO_MILLIS_BEHIND_NOW (UTF-8 string) - Client applications can use this tag value to determine how far behind the chunk returned in the response is from the latest chunk on the stream. </p> </li> <li> <p>AWS_KINESISVIDEO_FRAGMENT_NUMBER - Fragment number returned in the chunk.</p> </li> <li> <p>AWS_KINESISVIDEO_SERVER_TIMESTAMP - Server timestamp of the fragment.</p> </li> <li> <p>AWS_KINESISVIDEO_PRODUCER_TIMESTAMP - Producer timestamp of the fragment.</p> </li> </ul> <p>The following tags will be present if an error occurs:</p> <ul> <li> <p>AWS_KINESISVIDEO_ERROR_CODE - String description of an error that caused GetMedia to stop.</p> </li> <li> <p>AWS_KINESISVIDEO_ERROR_ID: Integer code of the error.</p> </li> </ul> <p>The error codes are as follows:</p> <ul> <li> <p>3002 - Error writing to the stream</p> </li> <li> <p>4000 - Requested fragment is not found</p> </li> <li> <p>4500 - Access denied for the stream's KMS key</p> </li> <li> <p>4501 - Stream's KMS key is disabled</p> </li> <li> <p>4502 - Validation error on the stream's KMS key</p> </li> <li> <p>4503 - KMS key specified in the stream is unavailable</p> </li> <li> <p>4504 - Invalid usage of the KMS key specified in the stream</p> </li> <li> <p>4505 - Invalid state of the KMS key specified in the stream</p> </li> <li> <p>4506 - Unable to find the KMS key specified in the stream</p> </li> <li> <p>5000 - Internal error</p> </li> </ul>"}]}}},"StartSelectorType":{"type":"string","enum":["FRAGMENT_NUMBER","SERVER_TIMESTAMP","PRODUCER_TIMESTAMP","NOW","EARLIEST","CONTINUATION_TOKEN"]},"FragmentNumberString":{"type":"string","pattern":"^[0-9]+$","minLength":1,"maxLength":128},"Timestamp":{"type":"string","format":"date-time"},"ContinuationToken":{"type":"string","pattern":"^[a-zA-Z0-9_\\.\\-]+$","minLength":1,"maxLength":128},"ResourceNotFoundException":{},"NotAuthorizedException":{},"InvalidEndpointException":{},"ClientLimitExceededException":{},"ConnectionLimitExceededException":{},"InvalidArgumentException":{},"ContentType":{"type":"string","pattern":"^[a-zA-Z0-9_\\.\\-]+$","minLength":1,"maxLength":128},"StreamName":{"type":"string","pattern":"[a-zA-Z0-9_.-]+","minLength":1,"maxLength":256},"ResourceARN":{"type":"string","pattern":"arn:aws:kinesisvideo:[a-z0-9-]+:[0-9]+:[a-z]+/[a-zA-Z0-9_.-]+/[0-9]+","minLength":1,"maxLength":1024},"StartSelector":{"type":"object","required":["StartSelectorType"],"properties":{"StartSelectorType":{"allOf":[{"$ref":"#/components/schemas/StartSelectorType"},{"description":"<p>Identifies the fragment on the Kinesis video stream where you want to start getting the data from.</p> <ul> <li> <p>NOW - Start with the latest chunk on the stream.</p> </li> <li> <p>EARLIEST - Start with earliest available chunk on the stream.</p> </li> <li> <p>FRAGMENT_NUMBER - Start with the chunk after a specific fragment. You must also specify the <code>AfterFragmentNumber</code> parameter.</p> </li> <li> <p>PRODUCER_TIMESTAMP or SERVER_TIMESTAMP - Start with the chunk containing a fragment with the specified producer or server timestamp. You specify the timestamp by adding <code>StartTimestamp</code>.</p> </li> <li> <p> CONTINUATION_TOKEN - Read using the specified continuation token. </p> </li> </ul> <note> <p>If you choose the NOW, EARLIEST, or CONTINUATION_TOKEN as the <code>startSelectorType</code>, you don't provide any additional information in the <code>startSelector</code>.</p> </note>"}]},"AfterFragmentNumber":{"allOf":[{"$ref":"#/components/schemas/FragmentNumberString"},{"description":"Specifies the fragment number from where you want the <code>GetMedia</code> API to start returning the fragments. "}]},"StartTimestamp":{"allOf":[{"$ref":"#/components/schemas/Timestamp"},{"description":"A timestamp value. This value is required if you choose the PRODUCER_TIMESTAMP or the SERVER_TIMESTAMP as the <code>startSelectorType</code>. The <code>GetMedia</code> API then starts with the chunk containing the fragment that has the specified timestamp."}]},"ContinuationToken":{"allOf":[{"$ref":"#/components/schemas/ContinuationToken"},{"description":"Continuation token that Kinesis Video Streams returned in the previous <code>GetMedia</code> response. The <code>GetMedia</code> API then starts with the chunk identified by the continuation token."}]}},"description":"<p>Identifies the chunk on the Kinesis video stream where you want the <code>GetMedia</code> API to start returning media data. You have the following options to identify the starting chunk: </p> <ul> <li> <p>Choose the latest (or oldest) chunk.</p> </li> <li> <p>Identify a specific chunk. You can identify a specific chunk either by providing a fragment number or timestamp (server or producer). </p> </li> <li> <p>Each chunk's metadata includes a continuation token as a Matroska (MKV) tag (<code>AWS_KINESISVIDEO_CONTINUATION_TOKEN</code>). If your previous <code>GetMedia</code> request terminated, you can use this tag value in your next <code>GetMedia</code> request. The API then starts returning chunks starting where the last API ended.</p> </li> </ul>"},"GetMediaInput":{"type":"object","required":["StartSelector"],"title":"GetMediaInput","properties":{"StreamName":{"allOf":[{"$ref":"#/components/schemas/StreamName"},{"description":"The Kinesis video stream name from where you want to get the media content. If you don't specify the <code>streamName</code>, you must specify the <code>streamARN</code>."}]},"StreamARN":{"allOf":[{"$ref":"#/components/schemas/ResourceARN"},{"description":"The ARN of the stream from where you want to get the media content. If you don't specify the <code>streamARN</code>, you must specify the <code>streamName</code>."}]},"StartSelector":{"allOf":[{"$ref":"#/components/schemas/StartSelector"},{"description":"Identifies the starting chunk to get from the specified stream. "}]}}},"Payload":{"type":"string"}}},"security":[{"hmac":[]}]}