/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace ElasticTranscoder { namespace Model { /** *

The PlayReady DRM settings, if any, that you want Elastic Transcoder to apply * to the output files associated with this playlist.

PlayReady DRM encrypts * your media files using aes-ctr encryption.

If you use DRM * for an HLSv3 playlist, your outputs must have a master * playlist.

See Also:

AWS * API Reference

*/ class PlayReadyDrm { public: AWS_ELASTICTRANSCODER_API PlayReadyDrm(); AWS_ELASTICTRANSCODER_API PlayReadyDrm(Aws::Utils::Json::JsonView jsonValue); AWS_ELASTICTRANSCODER_API PlayReadyDrm& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_ELASTICTRANSCODER_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The type of DRM, if any, that you want Elastic Transcoder to apply to the * output files associated with this playlist.

*/ inline const Aws::String& GetFormat() const{ return m_format; } /** *

The type of DRM, if any, that you want Elastic Transcoder to apply to the * output files associated with this playlist.

*/ inline bool FormatHasBeenSet() const { return m_formatHasBeenSet; } /** *

The type of DRM, if any, that you want Elastic Transcoder to apply to the * output files associated with this playlist.

*/ inline void SetFormat(const Aws::String& value) { m_formatHasBeenSet = true; m_format = value; } /** *

The type of DRM, if any, that you want Elastic Transcoder to apply to the * output files associated with this playlist.

*/ inline void SetFormat(Aws::String&& value) { m_formatHasBeenSet = true; m_format = std::move(value); } /** *

The type of DRM, if any, that you want Elastic Transcoder to apply to the * output files associated with this playlist.

*/ inline void SetFormat(const char* value) { m_formatHasBeenSet = true; m_format.assign(value); } /** *

The type of DRM, if any, that you want Elastic Transcoder to apply to the * output files associated with this playlist.

*/ inline PlayReadyDrm& WithFormat(const Aws::String& value) { SetFormat(value); return *this;} /** *

The type of DRM, if any, that you want Elastic Transcoder to apply to the * output files associated with this playlist.

*/ inline PlayReadyDrm& WithFormat(Aws::String&& value) { SetFormat(std::move(value)); return *this;} /** *

The type of DRM, if any, that you want Elastic Transcoder to apply to the * output files associated with this playlist.

*/ inline PlayReadyDrm& WithFormat(const char* value) { SetFormat(value); return *this;} /** *

The DRM key for your file, provided by your DRM license provider. The key * must be base64-encoded, and it must be one of the following bit lengths before * being base64-encoded:

128, 192, or * 256.

The key must also be encrypted by using AWS KMS.

*/ inline const Aws::String& GetKey() const{ return m_key; } /** *

The DRM key for your file, provided by your DRM license provider. The key * must be base64-encoded, and it must be one of the following bit lengths before * being base64-encoded:

128, 192, or * 256.

The key must also be encrypted by using AWS KMS.

*/ inline bool KeyHasBeenSet() const { return m_keyHasBeenSet; } /** *

The DRM key for your file, provided by your DRM license provider. The key * must be base64-encoded, and it must be one of the following bit lengths before * being base64-encoded:

128, 192, or * 256.

The key must also be encrypted by using AWS KMS.

*/ inline void SetKey(const Aws::String& value) { m_keyHasBeenSet = true; m_key = value; } /** *

The DRM key for your file, provided by your DRM license provider. The key * must be base64-encoded, and it must be one of the following bit lengths before * being base64-encoded:

128, 192, or * 256.

The key must also be encrypted by using AWS KMS.

*/ inline void SetKey(Aws::String&& value) { m_keyHasBeenSet = true; m_key = std::move(value); } /** *

The DRM key for your file, provided by your DRM license provider. The key * must be base64-encoded, and it must be one of the following bit lengths before * being base64-encoded:

128, 192, or * 256.

The key must also be encrypted by using AWS KMS.

*/ inline void SetKey(const char* value) { m_keyHasBeenSet = true; m_key.assign(value); } /** *

The DRM key for your file, provided by your DRM license provider. The key * must be base64-encoded, and it must be one of the following bit lengths before * being base64-encoded:

128, 192, or * 256.

The key must also be encrypted by using AWS KMS.

*/ inline PlayReadyDrm& WithKey(const Aws::String& value) { SetKey(value); return *this;} /** *

The DRM key for your file, provided by your DRM license provider. The key * must be base64-encoded, and it must be one of the following bit lengths before * being base64-encoded:

128, 192, or * 256.

The key must also be encrypted by using AWS KMS.

*/ inline PlayReadyDrm& WithKey(Aws::String&& value) { SetKey(std::move(value)); return *this;} /** *

The DRM key for your file, provided by your DRM license provider. The key * must be base64-encoded, and it must be one of the following bit lengths before * being base64-encoded:

128, 192, or * 256.

The key must also be encrypted by using AWS KMS.

*/ inline PlayReadyDrm& WithKey(const char* value) { SetKey(value); return *this;} /** *

The MD5 digest of the key used for DRM on your file, and that you want * Elastic Transcoder to use as a checksum to make sure your key was not corrupted * in transit. The key MD5 must be base64-encoded, and it must be exactly 16 bytes * before being base64-encoded.

*/ inline const Aws::String& GetKeyMd5() const{ return m_keyMd5; } /** *

The MD5 digest of the key used for DRM on your file, and that you want * Elastic Transcoder to use as a checksum to make sure your key was not corrupted * in transit. The key MD5 must be base64-encoded, and it must be exactly 16 bytes * before being base64-encoded.

*/ inline bool KeyMd5HasBeenSet() const { return m_keyMd5HasBeenSet; } /** *

The MD5 digest of the key used for DRM on your file, and that you want * Elastic Transcoder to use as a checksum to make sure your key was not corrupted * in transit. The key MD5 must be base64-encoded, and it must be exactly 16 bytes * before being base64-encoded.

*/ inline void SetKeyMd5(const Aws::String& value) { m_keyMd5HasBeenSet = true; m_keyMd5 = value; } /** *

The MD5 digest of the key used for DRM on your file, and that you want * Elastic Transcoder to use as a checksum to make sure your key was not corrupted * in transit. The key MD5 must be base64-encoded, and it must be exactly 16 bytes * before being base64-encoded.

*/ inline void SetKeyMd5(Aws::String&& value) { m_keyMd5HasBeenSet = true; m_keyMd5 = std::move(value); } /** *

The MD5 digest of the key used for DRM on your file, and that you want * Elastic Transcoder to use as a checksum to make sure your key was not corrupted * in transit. The key MD5 must be base64-encoded, and it must be exactly 16 bytes * before being base64-encoded.

*/ inline void SetKeyMd5(const char* value) { m_keyMd5HasBeenSet = true; m_keyMd5.assign(value); } /** *

The MD5 digest of the key used for DRM on your file, and that you want * Elastic Transcoder to use as a checksum to make sure your key was not corrupted * in transit. The key MD5 must be base64-encoded, and it must be exactly 16 bytes * before being base64-encoded.

*/ inline PlayReadyDrm& WithKeyMd5(const Aws::String& value) { SetKeyMd5(value); return *this;} /** *

The MD5 digest of the key used for DRM on your file, and that you want * Elastic Transcoder to use as a checksum to make sure your key was not corrupted * in transit. The key MD5 must be base64-encoded, and it must be exactly 16 bytes * before being base64-encoded.

*/ inline PlayReadyDrm& WithKeyMd5(Aws::String&& value) { SetKeyMd5(std::move(value)); return *this;} /** *

The MD5 digest of the key used for DRM on your file, and that you want * Elastic Transcoder to use as a checksum to make sure your key was not corrupted * in transit. The key MD5 must be base64-encoded, and it must be exactly 16 bytes * before being base64-encoded.

*/ inline PlayReadyDrm& WithKeyMd5(const char* value) { SetKeyMd5(value); return *this;} /** *

The ID for your DRM key, so that your DRM license provider knows which key to * provide.

The key ID must be provided in big endian, and Elastic * Transcoder converts it to little endian before inserting it into the PlayReady * DRM headers. If you are unsure whether your license server provides your key ID * in big or little endian, check with your DRM provider.

*/ inline const Aws::String& GetKeyId() const{ return m_keyId; } /** *

The ID for your DRM key, so that your DRM license provider knows which key to * provide.

The key ID must be provided in big endian, and Elastic * Transcoder converts it to little endian before inserting it into the PlayReady * DRM headers. If you are unsure whether your license server provides your key ID * in big or little endian, check with your DRM provider.

*/ inline bool KeyIdHasBeenSet() const { return m_keyIdHasBeenSet; } /** *

The ID for your DRM key, so that your DRM license provider knows which key to * provide.

The key ID must be provided in big endian, and Elastic * Transcoder converts it to little endian before inserting it into the PlayReady * DRM headers. If you are unsure whether your license server provides your key ID * in big or little endian, check with your DRM provider.

*/ inline void SetKeyId(const Aws::String& value) { m_keyIdHasBeenSet = true; m_keyId = value; } /** *

The ID for your DRM key, so that your DRM license provider knows which key to * provide.

The key ID must be provided in big endian, and Elastic * Transcoder converts it to little endian before inserting it into the PlayReady * DRM headers. If you are unsure whether your license server provides your key ID * in big or little endian, check with your DRM provider.

*/ inline void SetKeyId(Aws::String&& value) { m_keyIdHasBeenSet = true; m_keyId = std::move(value); } /** *

The ID for your DRM key, so that your DRM license provider knows which key to * provide.

The key ID must be provided in big endian, and Elastic * Transcoder converts it to little endian before inserting it into the PlayReady * DRM headers. If you are unsure whether your license server provides your key ID * in big or little endian, check with your DRM provider.

*/ inline void SetKeyId(const char* value) { m_keyIdHasBeenSet = true; m_keyId.assign(value); } /** *

The ID for your DRM key, so that your DRM license provider knows which key to * provide.

The key ID must be provided in big endian, and Elastic * Transcoder converts it to little endian before inserting it into the PlayReady * DRM headers. If you are unsure whether your license server provides your key ID * in big or little endian, check with your DRM provider.

*/ inline PlayReadyDrm& WithKeyId(const Aws::String& value) { SetKeyId(value); return *this;} /** *

The ID for your DRM key, so that your DRM license provider knows which key to * provide.

The key ID must be provided in big endian, and Elastic * Transcoder converts it to little endian before inserting it into the PlayReady * DRM headers. If you are unsure whether your license server provides your key ID * in big or little endian, check with your DRM provider.

*/ inline PlayReadyDrm& WithKeyId(Aws::String&& value) { SetKeyId(std::move(value)); return *this;} /** *

The ID for your DRM key, so that your DRM license provider knows which key to * provide.

The key ID must be provided in big endian, and Elastic * Transcoder converts it to little endian before inserting it into the PlayReady * DRM headers. If you are unsure whether your license server provides your key ID * in big or little endian, check with your DRM provider.

*/ inline PlayReadyDrm& WithKeyId(const char* value) { SetKeyId(value); return *this;} /** *

The series of random bits created by a random bit generator, unique for every * encryption operation, that you want Elastic Transcoder to use to encrypt your * files. The initialization vector must be base64-encoded, and it must be exactly * 8 bytes long before being base64-encoded. If no initialization vector is * provided, Elastic Transcoder generates one for you.

*/ inline const Aws::String& GetInitializationVector() const{ return m_initializationVector; } /** *

The series of random bits created by a random bit generator, unique for every * encryption operation, that you want Elastic Transcoder to use to encrypt your * files. The initialization vector must be base64-encoded, and it must be exactly * 8 bytes long before being base64-encoded. If no initialization vector is * provided, Elastic Transcoder generates one for you.

*/ inline bool InitializationVectorHasBeenSet() const { return m_initializationVectorHasBeenSet; } /** *

The series of random bits created by a random bit generator, unique for every * encryption operation, that you want Elastic Transcoder to use to encrypt your * files. The initialization vector must be base64-encoded, and it must be exactly * 8 bytes long before being base64-encoded. If no initialization vector is * provided, Elastic Transcoder generates one for you.

*/ inline void SetInitializationVector(const Aws::String& value) { m_initializationVectorHasBeenSet = true; m_initializationVector = value; } /** *

The series of random bits created by a random bit generator, unique for every * encryption operation, that you want Elastic Transcoder to use to encrypt your * files. The initialization vector must be base64-encoded, and it must be exactly * 8 bytes long before being base64-encoded. If no initialization vector is * provided, Elastic Transcoder generates one for you.

*/ inline void SetInitializationVector(Aws::String&& value) { m_initializationVectorHasBeenSet = true; m_initializationVector = std::move(value); } /** *

The series of random bits created by a random bit generator, unique for every * encryption operation, that you want Elastic Transcoder to use to encrypt your * files. The initialization vector must be base64-encoded, and it must be exactly * 8 bytes long before being base64-encoded. If no initialization vector is * provided, Elastic Transcoder generates one for you.

*/ inline void SetInitializationVector(const char* value) { m_initializationVectorHasBeenSet = true; m_initializationVector.assign(value); } /** *

The series of random bits created by a random bit generator, unique for every * encryption operation, that you want Elastic Transcoder to use to encrypt your * files. The initialization vector must be base64-encoded, and it must be exactly * 8 bytes long before being base64-encoded. If no initialization vector is * provided, Elastic Transcoder generates one for you.

*/ inline PlayReadyDrm& WithInitializationVector(const Aws::String& value) { SetInitializationVector(value); return *this;} /** *

The series of random bits created by a random bit generator, unique for every * encryption operation, that you want Elastic Transcoder to use to encrypt your * files. The initialization vector must be base64-encoded, and it must be exactly * 8 bytes long before being base64-encoded. If no initialization vector is * provided, Elastic Transcoder generates one for you.

*/ inline PlayReadyDrm& WithInitializationVector(Aws::String&& value) { SetInitializationVector(std::move(value)); return *this;} /** *

The series of random bits created by a random bit generator, unique for every * encryption operation, that you want Elastic Transcoder to use to encrypt your * files. The initialization vector must be base64-encoded, and it must be exactly * 8 bytes long before being base64-encoded. If no initialization vector is * provided, Elastic Transcoder generates one for you.

*/ inline PlayReadyDrm& WithInitializationVector(const char* value) { SetInitializationVector(value); return *this;} /** *

The location of the license key required to play DRM content. The URL must be * an absolute path, and is referenced by the PlayReady header. The PlayReady * header is referenced in the protection header of the client manifest for Smooth * Streaming outputs, and in the EXT-X-DXDRM and EXT-XDXDRMINFO metadata tags for * HLS playlist outputs. An example URL looks like this: * https://www.example.com/exampleKey/

*/ inline const Aws::String& GetLicenseAcquisitionUrl() const{ return m_licenseAcquisitionUrl; } /** *

The location of the license key required to play DRM content. The URL must be * an absolute path, and is referenced by the PlayReady header. The PlayReady * header is referenced in the protection header of the client manifest for Smooth * Streaming outputs, and in the EXT-X-DXDRM and EXT-XDXDRMINFO metadata tags for * HLS playlist outputs. An example URL looks like this: * https://www.example.com/exampleKey/

*/ inline bool LicenseAcquisitionUrlHasBeenSet() const { return m_licenseAcquisitionUrlHasBeenSet; } /** *

The location of the license key required to play DRM content. The URL must be * an absolute path, and is referenced by the PlayReady header. The PlayReady * header is referenced in the protection header of the client manifest for Smooth * Streaming outputs, and in the EXT-X-DXDRM and EXT-XDXDRMINFO metadata tags for * HLS playlist outputs. An example URL looks like this: * https://www.example.com/exampleKey/

*/ inline void SetLicenseAcquisitionUrl(const Aws::String& value) { m_licenseAcquisitionUrlHasBeenSet = true; m_licenseAcquisitionUrl = value; } /** *

The location of the license key required to play DRM content. The URL must be * an absolute path, and is referenced by the PlayReady header. The PlayReady * header is referenced in the protection header of the client manifest for Smooth * Streaming outputs, and in the EXT-X-DXDRM and EXT-XDXDRMINFO metadata tags for * HLS playlist outputs. An example URL looks like this: * https://www.example.com/exampleKey/

*/ inline void SetLicenseAcquisitionUrl(Aws::String&& value) { m_licenseAcquisitionUrlHasBeenSet = true; m_licenseAcquisitionUrl = std::move(value); } /** *

The location of the license key required to play DRM content. The URL must be * an absolute path, and is referenced by the PlayReady header. The PlayReady * header is referenced in the protection header of the client manifest for Smooth * Streaming outputs, and in the EXT-X-DXDRM and EXT-XDXDRMINFO metadata tags for * HLS playlist outputs. An example URL looks like this: * https://www.example.com/exampleKey/

*/ inline void SetLicenseAcquisitionUrl(const char* value) { m_licenseAcquisitionUrlHasBeenSet = true; m_licenseAcquisitionUrl.assign(value); } /** *

The location of the license key required to play DRM content. The URL must be * an absolute path, and is referenced by the PlayReady header. The PlayReady * header is referenced in the protection header of the client manifest for Smooth * Streaming outputs, and in the EXT-X-DXDRM and EXT-XDXDRMINFO metadata tags for * HLS playlist outputs. An example URL looks like this: * https://www.example.com/exampleKey/

*/ inline PlayReadyDrm& WithLicenseAcquisitionUrl(const Aws::String& value) { SetLicenseAcquisitionUrl(value); return *this;} /** *

The location of the license key required to play DRM content. The URL must be * an absolute path, and is referenced by the PlayReady header. The PlayReady * header is referenced in the protection header of the client manifest for Smooth * Streaming outputs, and in the EXT-X-DXDRM and EXT-XDXDRMINFO metadata tags for * HLS playlist outputs. An example URL looks like this: * https://www.example.com/exampleKey/

*/ inline PlayReadyDrm& WithLicenseAcquisitionUrl(Aws::String&& value) { SetLicenseAcquisitionUrl(std::move(value)); return *this;} /** *

The location of the license key required to play DRM content. The URL must be * an absolute path, and is referenced by the PlayReady header. The PlayReady * header is referenced in the protection header of the client manifest for Smooth * Streaming outputs, and in the EXT-X-DXDRM and EXT-XDXDRMINFO metadata tags for * HLS playlist outputs. An example URL looks like this: * https://www.example.com/exampleKey/

*/ inline PlayReadyDrm& WithLicenseAcquisitionUrl(const char* value) { SetLicenseAcquisitionUrl(value); return *this;} private: Aws::String m_format; bool m_formatHasBeenSet = false; Aws::String m_key; bool m_keyHasBeenSet = false; Aws::String m_keyMd5; bool m_keyMd5HasBeenSet = false; Aws::String m_keyId; bool m_keyIdHasBeenSet = false; Aws::String m_initializationVector; bool m_initializationVectorHasBeenSet = false; Aws::String m_licenseAcquisitionUrl; bool m_licenseAcquisitionUrlHasBeenSet = false; }; } // namespace Model } // namespace ElasticTranscoder } // namespace Aws