/** * 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 { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace MediaPackageVod { namespace Model { /** * A configuration for accessing an external Secure Packager and Encoder Key * Exchange (SPEKE) service that will provide encryption keys.

See Also:

* AWS * API Reference

*/ class SpekeKeyProvider { public: AWS_MEDIAPACKAGEVOD_API SpekeKeyProvider(); AWS_MEDIAPACKAGEVOD_API SpekeKeyProvider(Aws::Utils::Json::JsonView jsonValue); AWS_MEDIAPACKAGEVOD_API SpekeKeyProvider& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_MEDIAPACKAGEVOD_API Aws::Utils::Json::JsonValue Jsonize() const; inline const EncryptionContractConfiguration& GetEncryptionContractConfiguration() const{ return m_encryptionContractConfiguration; } inline bool EncryptionContractConfigurationHasBeenSet() const { return m_encryptionContractConfigurationHasBeenSet; } inline void SetEncryptionContractConfiguration(const EncryptionContractConfiguration& value) { m_encryptionContractConfigurationHasBeenSet = true; m_encryptionContractConfiguration = value; } inline void SetEncryptionContractConfiguration(EncryptionContractConfiguration&& value) { m_encryptionContractConfigurationHasBeenSet = true; m_encryptionContractConfiguration = std::move(value); } inline SpekeKeyProvider& WithEncryptionContractConfiguration(const EncryptionContractConfiguration& value) { SetEncryptionContractConfiguration(value); return *this;} inline SpekeKeyProvider& WithEncryptionContractConfiguration(EncryptionContractConfiguration&& value) { SetEncryptionContractConfiguration(std::move(value)); return *this;} /** * An Amazon Resource Name (ARN) of an IAM role that AWS Elemental MediaPackage * will assume when accessing the key provider service. */ inline const Aws::String& GetRoleArn() const{ return m_roleArn; } /** * An Amazon Resource Name (ARN) of an IAM role that AWS Elemental MediaPackage * will assume when accessing the key provider service. */ inline bool RoleArnHasBeenSet() const { return m_roleArnHasBeenSet; } /** * An Amazon Resource Name (ARN) of an IAM role that AWS Elemental MediaPackage * will assume when accessing the key provider service. */ inline void SetRoleArn(const Aws::String& value) { m_roleArnHasBeenSet = true; m_roleArn = value; } /** * An Amazon Resource Name (ARN) of an IAM role that AWS Elemental MediaPackage * will assume when accessing the key provider service. */ inline void SetRoleArn(Aws::String&& value) { m_roleArnHasBeenSet = true; m_roleArn = std::move(value); } /** * An Amazon Resource Name (ARN) of an IAM role that AWS Elemental MediaPackage * will assume when accessing the key provider service. */ inline void SetRoleArn(const char* value) { m_roleArnHasBeenSet = true; m_roleArn.assign(value); } /** * An Amazon Resource Name (ARN) of an IAM role that AWS Elemental MediaPackage * will assume when accessing the key provider service. */ inline SpekeKeyProvider& WithRoleArn(const Aws::String& value) { SetRoleArn(value); return *this;} /** * An Amazon Resource Name (ARN) of an IAM role that AWS Elemental MediaPackage * will assume when accessing the key provider service. */ inline SpekeKeyProvider& WithRoleArn(Aws::String&& value) { SetRoleArn(std::move(value)); return *this;} /** * An Amazon Resource Name (ARN) of an IAM role that AWS Elemental MediaPackage * will assume when accessing the key provider service. */ inline SpekeKeyProvider& WithRoleArn(const char* value) { SetRoleArn(value); return *this;} /** * The system IDs to include in key requests. */ inline const Aws::Vector& GetSystemIds() const{ return m_systemIds; } /** * The system IDs to include in key requests. */ inline bool SystemIdsHasBeenSet() const { return m_systemIdsHasBeenSet; } /** * The system IDs to include in key requests. */ inline void SetSystemIds(const Aws::Vector& value) { m_systemIdsHasBeenSet = true; m_systemIds = value; } /** * The system IDs to include in key requests. */ inline void SetSystemIds(Aws::Vector&& value) { m_systemIdsHasBeenSet = true; m_systemIds = std::move(value); } /** * The system IDs to include in key requests. */ inline SpekeKeyProvider& WithSystemIds(const Aws::Vector& value) { SetSystemIds(value); return *this;} /** * The system IDs to include in key requests. */ inline SpekeKeyProvider& WithSystemIds(Aws::Vector&& value) { SetSystemIds(std::move(value)); return *this;} /** * The system IDs to include in key requests. */ inline SpekeKeyProvider& AddSystemIds(const Aws::String& value) { m_systemIdsHasBeenSet = true; m_systemIds.push_back(value); return *this; } /** * The system IDs to include in key requests. */ inline SpekeKeyProvider& AddSystemIds(Aws::String&& value) { m_systemIdsHasBeenSet = true; m_systemIds.push_back(std::move(value)); return *this; } /** * The system IDs to include in key requests. */ inline SpekeKeyProvider& AddSystemIds(const char* value) { m_systemIdsHasBeenSet = true; m_systemIds.push_back(value); return *this; } /** * The URL of the external key provider service. */ inline const Aws::String& GetUrl() const{ return m_url; } /** * The URL of the external key provider service. */ inline bool UrlHasBeenSet() const { return m_urlHasBeenSet; } /** * The URL of the external key provider service. */ inline void SetUrl(const Aws::String& value) { m_urlHasBeenSet = true; m_url = value; } /** * The URL of the external key provider service. */ inline void SetUrl(Aws::String&& value) { m_urlHasBeenSet = true; m_url = std::move(value); } /** * The URL of the external key provider service. */ inline void SetUrl(const char* value) { m_urlHasBeenSet = true; m_url.assign(value); } /** * The URL of the external key provider service. */ inline SpekeKeyProvider& WithUrl(const Aws::String& value) { SetUrl(value); return *this;} /** * The URL of the external key provider service. */ inline SpekeKeyProvider& WithUrl(Aws::String&& value) { SetUrl(std::move(value)); return *this;} /** * The URL of the external key provider service. */ inline SpekeKeyProvider& WithUrl(const char* value) { SetUrl(value); return *this;} private: EncryptionContractConfiguration m_encryptionContractConfiguration; bool m_encryptionContractConfigurationHasBeenSet = false; Aws::String m_roleArn; bool m_roleArnHasBeenSet = false; Aws::Vector m_systemIds; bool m_systemIdsHasBeenSet = false; Aws::String m_url; bool m_urlHasBeenSet = false; }; } // namespace Model } // namespace MediaPackageVod } // namespace Aws