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

Configure one or more content encryption keys for your endpoints that use * SPEKE Version 2.0. The encryption contract defines which content keys are used * to encrypt the audio and video tracks in your stream. To configure the * encryption contract, specify which audio and video encryption presets to * use.

See Also:

AWS * API Reference

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

A collection of audio encryption presets.

Value description:

    *
  • PRESET-AUDIO-1 - Use one content key to encrypt all of the audio tracks * in your stream.

  • PRESET-AUDIO-2 - Use one content key to * encrypt all of the stereo audio tracks and one content key to encrypt all of the * multichannel audio tracks.

  • PRESET-AUDIO-3 - Use one content * key to encrypt all of the stereo audio tracks, one content key to encrypt all of * the multichannel audio tracks with 3 to 6 channels, and one content key to * encrypt all of the multichannel audio tracks with more than 6 channels.

    *
  • SHARED - Use the same content key for all of the audio and video * tracks in your stream.

  • UNENCRYPTED - Don't encrypt any of the * audio tracks in your stream.

*/ inline const PresetSpeke20Audio& GetPresetSpeke20Audio() const{ return m_presetSpeke20Audio; } /** *

A collection of audio encryption presets.

Value description:

    *
  • PRESET-AUDIO-1 - Use one content key to encrypt all of the audio tracks * in your stream.

  • PRESET-AUDIO-2 - Use one content key to * encrypt all of the stereo audio tracks and one content key to encrypt all of the * multichannel audio tracks.

  • PRESET-AUDIO-3 - Use one content * key to encrypt all of the stereo audio tracks, one content key to encrypt all of * the multichannel audio tracks with 3 to 6 channels, and one content key to * encrypt all of the multichannel audio tracks with more than 6 channels.

    *
  • SHARED - Use the same content key for all of the audio and video * tracks in your stream.

  • UNENCRYPTED - Don't encrypt any of the * audio tracks in your stream.

*/ inline bool PresetSpeke20AudioHasBeenSet() const { return m_presetSpeke20AudioHasBeenSet; } /** *

A collection of audio encryption presets.

Value description:

    *
  • PRESET-AUDIO-1 - Use one content key to encrypt all of the audio tracks * in your stream.

  • PRESET-AUDIO-2 - Use one content key to * encrypt all of the stereo audio tracks and one content key to encrypt all of the * multichannel audio tracks.

  • PRESET-AUDIO-3 - Use one content * key to encrypt all of the stereo audio tracks, one content key to encrypt all of * the multichannel audio tracks with 3 to 6 channels, and one content key to * encrypt all of the multichannel audio tracks with more than 6 channels.

    *
  • SHARED - Use the same content key for all of the audio and video * tracks in your stream.

  • UNENCRYPTED - Don't encrypt any of the * audio tracks in your stream.

*/ inline void SetPresetSpeke20Audio(const PresetSpeke20Audio& value) { m_presetSpeke20AudioHasBeenSet = true; m_presetSpeke20Audio = value; } /** *

A collection of audio encryption presets.

Value description:

    *
  • PRESET-AUDIO-1 - Use one content key to encrypt all of the audio tracks * in your stream.

  • PRESET-AUDIO-2 - Use one content key to * encrypt all of the stereo audio tracks and one content key to encrypt all of the * multichannel audio tracks.

  • PRESET-AUDIO-3 - Use one content * key to encrypt all of the stereo audio tracks, one content key to encrypt all of * the multichannel audio tracks with 3 to 6 channels, and one content key to * encrypt all of the multichannel audio tracks with more than 6 channels.

    *
  • SHARED - Use the same content key for all of the audio and video * tracks in your stream.

  • UNENCRYPTED - Don't encrypt any of the * audio tracks in your stream.

*/ inline void SetPresetSpeke20Audio(PresetSpeke20Audio&& value) { m_presetSpeke20AudioHasBeenSet = true; m_presetSpeke20Audio = std::move(value); } /** *

A collection of audio encryption presets.

Value description:

    *
  • PRESET-AUDIO-1 - Use one content key to encrypt all of the audio tracks * in your stream.

  • PRESET-AUDIO-2 - Use one content key to * encrypt all of the stereo audio tracks and one content key to encrypt all of the * multichannel audio tracks.

  • PRESET-AUDIO-3 - Use one content * key to encrypt all of the stereo audio tracks, one content key to encrypt all of * the multichannel audio tracks with 3 to 6 channels, and one content key to * encrypt all of the multichannel audio tracks with more than 6 channels.

    *
  • SHARED - Use the same content key for all of the audio and video * tracks in your stream.

  • UNENCRYPTED - Don't encrypt any of the * audio tracks in your stream.

*/ inline EncryptionContractConfiguration& WithPresetSpeke20Audio(const PresetSpeke20Audio& value) { SetPresetSpeke20Audio(value); return *this;} /** *

A collection of audio encryption presets.

Value description:

    *
  • PRESET-AUDIO-1 - Use one content key to encrypt all of the audio tracks * in your stream.

  • PRESET-AUDIO-2 - Use one content key to * encrypt all of the stereo audio tracks and one content key to encrypt all of the * multichannel audio tracks.

  • PRESET-AUDIO-3 - Use one content * key to encrypt all of the stereo audio tracks, one content key to encrypt all of * the multichannel audio tracks with 3 to 6 channels, and one content key to * encrypt all of the multichannel audio tracks with more than 6 channels.

    *
  • SHARED - Use the same content key for all of the audio and video * tracks in your stream.

  • UNENCRYPTED - Don't encrypt any of the * audio tracks in your stream.

*/ inline EncryptionContractConfiguration& WithPresetSpeke20Audio(PresetSpeke20Audio&& value) { SetPresetSpeke20Audio(std::move(value)); return *this;} /** *

A collection of video encryption presets.

Value description:

    *
  • PRESET-VIDEO-1 - Use one content key to encrypt all of the video tracks * in your stream.

  • PRESET-VIDEO-2 - Use one content key to * encrypt all of the SD video tracks and one content key for all HD and higher * resolutions video tracks.

  • PRESET-VIDEO-3 - Use one content key * to encrypt all of the SD video tracks, one content key for HD video tracks and * one content key for all UHD video tracks.

  • PRESET-VIDEO-4 - Use * one content key to encrypt all of the SD video tracks, one content key for HD * video tracks, one content key for all UHD1 video tracks and one content key for * all UHD2 video tracks.

  • PRESET-VIDEO-5 - Use one content key to * encrypt all of the SD video tracks, one content key for HD1 video tracks, one * content key for HD2 video tracks, one content key for all UHD1 video tracks and * one content key for all UHD2 video tracks.

  • PRESET-VIDEO-6 - * Use one content key to encrypt all of the SD video tracks, one content key for * HD1 video tracks, one content key for HD2 video tracks and one content key for * all UHD video tracks.

  • PRESET-VIDEO-7 - Use one content key to * encrypt all of the SD+HD1 video tracks, one content key for HD2 video tracks and * one content key for all UHD video tracks.

  • PRESET-VIDEO-8 - Use * one content key to encrypt all of the SD+HD1 video tracks, one content key for * HD2 video tracks, one content key for all UHD1 video tracks and one content key * for all UHD2 video tracks.

  • SHARED - Use the same content key * for all of the video and audio tracks in your stream.

  • *

    UNENCRYPTED - Don't encrypt any of the video tracks in your stream.

  • *
*/ inline const PresetSpeke20Video& GetPresetSpeke20Video() const{ return m_presetSpeke20Video; } /** *

A collection of video encryption presets.

Value description:

    *
  • PRESET-VIDEO-1 - Use one content key to encrypt all of the video tracks * in your stream.

  • PRESET-VIDEO-2 - Use one content key to * encrypt all of the SD video tracks and one content key for all HD and higher * resolutions video tracks.

  • PRESET-VIDEO-3 - Use one content key * to encrypt all of the SD video tracks, one content key for HD video tracks and * one content key for all UHD video tracks.

  • PRESET-VIDEO-4 - Use * one content key to encrypt all of the SD video tracks, one content key for HD * video tracks, one content key for all UHD1 video tracks and one content key for * all UHD2 video tracks.

  • PRESET-VIDEO-5 - Use one content key to * encrypt all of the SD video tracks, one content key for HD1 video tracks, one * content key for HD2 video tracks, one content key for all UHD1 video tracks and * one content key for all UHD2 video tracks.

  • PRESET-VIDEO-6 - * Use one content key to encrypt all of the SD video tracks, one content key for * HD1 video tracks, one content key for HD2 video tracks and one content key for * all UHD video tracks.

  • PRESET-VIDEO-7 - Use one content key to * encrypt all of the SD+HD1 video tracks, one content key for HD2 video tracks and * one content key for all UHD video tracks.

  • PRESET-VIDEO-8 - Use * one content key to encrypt all of the SD+HD1 video tracks, one content key for * HD2 video tracks, one content key for all UHD1 video tracks and one content key * for all UHD2 video tracks.

  • SHARED - Use the same content key * for all of the video and audio tracks in your stream.

  • *

    UNENCRYPTED - Don't encrypt any of the video tracks in your stream.

  • *
*/ inline bool PresetSpeke20VideoHasBeenSet() const { return m_presetSpeke20VideoHasBeenSet; } /** *

A collection of video encryption presets.

Value description:

    *
  • PRESET-VIDEO-1 - Use one content key to encrypt all of the video tracks * in your stream.

  • PRESET-VIDEO-2 - Use one content key to * encrypt all of the SD video tracks and one content key for all HD and higher * resolutions video tracks.

  • PRESET-VIDEO-3 - Use one content key * to encrypt all of the SD video tracks, one content key for HD video tracks and * one content key for all UHD video tracks.

  • PRESET-VIDEO-4 - Use * one content key to encrypt all of the SD video tracks, one content key for HD * video tracks, one content key for all UHD1 video tracks and one content key for * all UHD2 video tracks.

  • PRESET-VIDEO-5 - Use one content key to * encrypt all of the SD video tracks, one content key for HD1 video tracks, one * content key for HD2 video tracks, one content key for all UHD1 video tracks and * one content key for all UHD2 video tracks.

  • PRESET-VIDEO-6 - * Use one content key to encrypt all of the SD video tracks, one content key for * HD1 video tracks, one content key for HD2 video tracks and one content key for * all UHD video tracks.

  • PRESET-VIDEO-7 - Use one content key to * encrypt all of the SD+HD1 video tracks, one content key for HD2 video tracks and * one content key for all UHD video tracks.

  • PRESET-VIDEO-8 - Use * one content key to encrypt all of the SD+HD1 video tracks, one content key for * HD2 video tracks, one content key for all UHD1 video tracks and one content key * for all UHD2 video tracks.

  • SHARED - Use the same content key * for all of the video and audio tracks in your stream.

  • *

    UNENCRYPTED - Don't encrypt any of the video tracks in your stream.

  • *
*/ inline void SetPresetSpeke20Video(const PresetSpeke20Video& value) { m_presetSpeke20VideoHasBeenSet = true; m_presetSpeke20Video = value; } /** *

A collection of video encryption presets.

Value description:

    *
  • PRESET-VIDEO-1 - Use one content key to encrypt all of the video tracks * in your stream.

  • PRESET-VIDEO-2 - Use one content key to * encrypt all of the SD video tracks and one content key for all HD and higher * resolutions video tracks.

  • PRESET-VIDEO-3 - Use one content key * to encrypt all of the SD video tracks, one content key for HD video tracks and * one content key for all UHD video tracks.

  • PRESET-VIDEO-4 - Use * one content key to encrypt all of the SD video tracks, one content key for HD * video tracks, one content key for all UHD1 video tracks and one content key for * all UHD2 video tracks.

  • PRESET-VIDEO-5 - Use one content key to * encrypt all of the SD video tracks, one content key for HD1 video tracks, one * content key for HD2 video tracks, one content key for all UHD1 video tracks and * one content key for all UHD2 video tracks.

  • PRESET-VIDEO-6 - * Use one content key to encrypt all of the SD video tracks, one content key for * HD1 video tracks, one content key for HD2 video tracks and one content key for * all UHD video tracks.

  • PRESET-VIDEO-7 - Use one content key to * encrypt all of the SD+HD1 video tracks, one content key for HD2 video tracks and * one content key for all UHD video tracks.

  • PRESET-VIDEO-8 - Use * one content key to encrypt all of the SD+HD1 video tracks, one content key for * HD2 video tracks, one content key for all UHD1 video tracks and one content key * for all UHD2 video tracks.

  • SHARED - Use the same content key * for all of the video and audio tracks in your stream.

  • *

    UNENCRYPTED - Don't encrypt any of the video tracks in your stream.

  • *
*/ inline void SetPresetSpeke20Video(PresetSpeke20Video&& value) { m_presetSpeke20VideoHasBeenSet = true; m_presetSpeke20Video = std::move(value); } /** *

A collection of video encryption presets.

Value description:

    *
  • PRESET-VIDEO-1 - Use one content key to encrypt all of the video tracks * in your stream.

  • PRESET-VIDEO-2 - Use one content key to * encrypt all of the SD video tracks and one content key for all HD and higher * resolutions video tracks.

  • PRESET-VIDEO-3 - Use one content key * to encrypt all of the SD video tracks, one content key for HD video tracks and * one content key for all UHD video tracks.

  • PRESET-VIDEO-4 - Use * one content key to encrypt all of the SD video tracks, one content key for HD * video tracks, one content key for all UHD1 video tracks and one content key for * all UHD2 video tracks.

  • PRESET-VIDEO-5 - Use one content key to * encrypt all of the SD video tracks, one content key for HD1 video tracks, one * content key for HD2 video tracks, one content key for all UHD1 video tracks and * one content key for all UHD2 video tracks.

  • PRESET-VIDEO-6 - * Use one content key to encrypt all of the SD video tracks, one content key for * HD1 video tracks, one content key for HD2 video tracks and one content key for * all UHD video tracks.

  • PRESET-VIDEO-7 - Use one content key to * encrypt all of the SD+HD1 video tracks, one content key for HD2 video tracks and * one content key for all UHD video tracks.

  • PRESET-VIDEO-8 - Use * one content key to encrypt all of the SD+HD1 video tracks, one content key for * HD2 video tracks, one content key for all UHD1 video tracks and one content key * for all UHD2 video tracks.

  • SHARED - Use the same content key * for all of the video and audio tracks in your stream.

  • *

    UNENCRYPTED - Don't encrypt any of the video tracks in your stream.

  • *
*/ inline EncryptionContractConfiguration& WithPresetSpeke20Video(const PresetSpeke20Video& value) { SetPresetSpeke20Video(value); return *this;} /** *

A collection of video encryption presets.

Value description:

    *
  • PRESET-VIDEO-1 - Use one content key to encrypt all of the video tracks * in your stream.

  • PRESET-VIDEO-2 - Use one content key to * encrypt all of the SD video tracks and one content key for all HD and higher * resolutions video tracks.

  • PRESET-VIDEO-3 - Use one content key * to encrypt all of the SD video tracks, one content key for HD video tracks and * one content key for all UHD video tracks.

  • PRESET-VIDEO-4 - Use * one content key to encrypt all of the SD video tracks, one content key for HD * video tracks, one content key for all UHD1 video tracks and one content key for * all UHD2 video tracks.

  • PRESET-VIDEO-5 - Use one content key to * encrypt all of the SD video tracks, one content key for HD1 video tracks, one * content key for HD2 video tracks, one content key for all UHD1 video tracks and * one content key for all UHD2 video tracks.

  • PRESET-VIDEO-6 - * Use one content key to encrypt all of the SD video tracks, one content key for * HD1 video tracks, one content key for HD2 video tracks and one content key for * all UHD video tracks.

  • PRESET-VIDEO-7 - Use one content key to * encrypt all of the SD+HD1 video tracks, one content key for HD2 video tracks and * one content key for all UHD video tracks.

  • PRESET-VIDEO-8 - Use * one content key to encrypt all of the SD+HD1 video tracks, one content key for * HD2 video tracks, one content key for all UHD1 video tracks and one content key * for all UHD2 video tracks.

  • SHARED - Use the same content key * for all of the video and audio tracks in your stream.

  • *

    UNENCRYPTED - Don't encrypt any of the video tracks in your stream.

  • *
*/ inline EncryptionContractConfiguration& WithPresetSpeke20Video(PresetSpeke20Video&& value) { SetPresetSpeke20Video(std::move(value)); return *this;} private: PresetSpeke20Audio m_presetSpeke20Audio; bool m_presetSpeke20AudioHasBeenSet = false; PresetSpeke20Video m_presetSpeke20Video; bool m_presetSpeke20VideoHasBeenSet = false; }; } // namespace Model } // namespace mediapackagev2 } // namespace Aws