/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include namespace Aws { template class AmazonWebServiceResult; namespace KinesisVideoMedia { namespace Model { class GetMediaResult { public: AWS_KINESISVIDEOMEDIA_API GetMediaResult(); //We have to define these because Microsoft doesn't auto generate them AWS_KINESISVIDEOMEDIA_API GetMediaResult(GetMediaResult&&); AWS_KINESISVIDEOMEDIA_API GetMediaResult& operator=(GetMediaResult&&); //we delete these because Microsoft doesn't handle move generation correctly //and we therefore don't trust them to get it right here either. GetMediaResult(const GetMediaResult&) = delete; GetMediaResult& operator=(const GetMediaResult&) = delete; AWS_KINESISVIDEOMEDIA_API GetMediaResult(Aws::AmazonWebServiceResult&& result); AWS_KINESISVIDEOMEDIA_API GetMediaResult& operator=(Aws::AmazonWebServiceResult&& result); /** *

The content type of the requested media.

*/ inline const Aws::String& GetContentType() const{ return m_contentType; } /** *

The content type of the requested media.

*/ inline void SetContentType(const Aws::String& value) { m_contentType = value; } /** *

The content type of the requested media.

*/ inline void SetContentType(Aws::String&& value) { m_contentType = std::move(value); } /** *

The content type of the requested media.

*/ inline void SetContentType(const char* value) { m_contentType.assign(value); } /** *

The content type of the requested media.

*/ inline GetMediaResult& WithContentType(const Aws::String& value) { SetContentType(value); return *this;} /** *

The content type of the requested media.

*/ inline GetMediaResult& WithContentType(Aws::String&& value) { SetContentType(std::move(value)); return *this;} /** *

The content type of the requested media.

*/ inline GetMediaResult& WithContentType(const char* value) { SetContentType(value); return *this;} /** *

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 GetMedia call also include the * following additional Matroska (MKV) tags:

  • *

    AWS_KINESISVIDEO_CONTINUATION_TOKEN (UTF-8 string) - In the event your * GetMedia call terminates, you can use this continuation token in * your next request to get the next chunk where the last request terminated.

    *
  • 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.

  • *

    AWS_KINESISVIDEO_FRAGMENT_NUMBER - Fragment number returned in the chunk.

    *
  • AWS_KINESISVIDEO_SERVER_TIMESTAMP - Server timestamp of the * fragment.

  • AWS_KINESISVIDEO_PRODUCER_TIMESTAMP - Producer * timestamp of the fragment.

The following tags will be present * if an error occurs:

  • AWS_KINESISVIDEO_ERROR_CODE - String * description of an error that caused GetMedia to stop.

  • *

    AWS_KINESISVIDEO_ERROR_ID: Integer code of the error.

The * error codes are as follows:

  • 3002 - Error writing to the * stream

  • 4000 - Requested fragment is not found

  • *

    4500 - Access denied for the stream's KMS key

  • 4501 - * Stream's KMS key is disabled

  • 4502 - Validation error on the * stream's KMS key

  • 4503 - KMS key specified in the stream is * unavailable

  • 4504 - Invalid usage of the KMS key specified in * the stream

  • 4505 - Invalid state of the KMS key specified in * the stream

  • 4506 - Unable to find the KMS key specified in the * stream

  • 5000 - Internal error

*/ inline Aws::IOStream& GetPayload() const { return m_payload.GetUnderlyingStream(); } /** *

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 GetMedia call also include the * following additional Matroska (MKV) tags:

  • *

    AWS_KINESISVIDEO_CONTINUATION_TOKEN (UTF-8 string) - In the event your * GetMedia call terminates, you can use this continuation token in * your next request to get the next chunk where the last request terminated.

    *
  • 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.

  • *

    AWS_KINESISVIDEO_FRAGMENT_NUMBER - Fragment number returned in the chunk.

    *
  • AWS_KINESISVIDEO_SERVER_TIMESTAMP - Server timestamp of the * fragment.

  • AWS_KINESISVIDEO_PRODUCER_TIMESTAMP - Producer * timestamp of the fragment.

The following tags will be present * if an error occurs:

  • AWS_KINESISVIDEO_ERROR_CODE - String * description of an error that caused GetMedia to stop.

  • *

    AWS_KINESISVIDEO_ERROR_ID: Integer code of the error.

The * error codes are as follows:

  • 3002 - Error writing to the * stream

  • 4000 - Requested fragment is not found

  • *

    4500 - Access denied for the stream's KMS key

  • 4501 - * Stream's KMS key is disabled

  • 4502 - Validation error on the * stream's KMS key

  • 4503 - KMS key specified in the stream is * unavailable

  • 4504 - Invalid usage of the KMS key specified in * the stream

  • 4505 - Invalid state of the KMS key specified in * the stream

  • 4506 - Unable to find the KMS key specified in the * stream

  • 5000 - Internal error

*/ inline void ReplaceBody(Aws::IOStream* body) { m_payload = Aws::Utils::Stream::ResponseStream(body); } inline const Aws::String& GetRequestId() const{ return m_requestId; } inline void SetRequestId(const Aws::String& value) { m_requestId = value; } inline void SetRequestId(Aws::String&& value) { m_requestId = std::move(value); } inline void SetRequestId(const char* value) { m_requestId.assign(value); } inline GetMediaResult& WithRequestId(const Aws::String& value) { SetRequestId(value); return *this;} inline GetMediaResult& WithRequestId(Aws::String&& value) { SetRequestId(std::move(value)); return *this;} inline GetMediaResult& WithRequestId(const char* value) { SetRequestId(value); return *this;} private: Aws::String m_contentType; Aws::Utils::Stream::ResponseStream m_payload; Aws::String m_requestId; }; } // namespace Model } // namespace KinesisVideoMedia } // namespace Aws