This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
pxz-hos-client-cpp-module/support/aws-sdk-cpp-master/aws-cpp-sdk-mediaconvert/include/aws/mediaconvert/model/S3EncryptionSettings.h

233 lines
12 KiB
C++

/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include <aws/mediaconvert/MediaConvert_EXPORTS.h>
#include <aws/mediaconvert/model/S3ServerSideEncryptionType.h>
#include <aws/core/utils/memory/stl/AWSString.h>
#include <utility>
namespace Aws
{
namespace Utils
{
namespace Json
{
class JsonValue;
class JsonView;
} // namespace Json
} // namespace Utils
namespace MediaConvert
{
namespace Model
{
/**
* Settings for how your job outputs are encrypted as they are uploaded to Amazon
* S3.<p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/S3EncryptionSettings">AWS
* API Reference</a></p>
*/
class AWS_MEDIACONVERT_API S3EncryptionSettings
{
public:
S3EncryptionSettings();
S3EncryptionSettings(Aws::Utils::Json::JsonView jsonValue);
S3EncryptionSettings& operator=(Aws::Utils::Json::JsonView jsonValue);
Aws::Utils::Json::JsonValue Jsonize() const;
/**
* Specify how you want your data keys managed. AWS uses data keys to encrypt your
* content. AWS also encrypts the data keys themselves, using a customer master key
* (CMK), and then stores the encrypted data keys alongside your encrypted content.
* Use this setting to specify which AWS service manages the CMK. For simplest set
* up, choose Amazon S3 (SERVER_SIDE_ENCRYPTION_S3). If you want your master key to
* be managed by AWS Key Management Service (KMS), choose AWS KMS
* (SERVER_SIDE_ENCRYPTION_KMS). By default, when you choose AWS KMS, KMS uses the
* AWS managed customer master key (CMK) associated with Amazon S3 to encrypt your
* data keys. You can optionally choose to specify a different, customer managed
* CMK. Do so by specifying the Amazon Resource Name (ARN) of the key for the
* setting KMS ARN (kmsKeyArn).
*/
inline const S3ServerSideEncryptionType& GetEncryptionType() const{ return m_encryptionType; }
/**
* Specify how you want your data keys managed. AWS uses data keys to encrypt your
* content. AWS also encrypts the data keys themselves, using a customer master key
* (CMK), and then stores the encrypted data keys alongside your encrypted content.
* Use this setting to specify which AWS service manages the CMK. For simplest set
* up, choose Amazon S3 (SERVER_SIDE_ENCRYPTION_S3). If you want your master key to
* be managed by AWS Key Management Service (KMS), choose AWS KMS
* (SERVER_SIDE_ENCRYPTION_KMS). By default, when you choose AWS KMS, KMS uses the
* AWS managed customer master key (CMK) associated with Amazon S3 to encrypt your
* data keys. You can optionally choose to specify a different, customer managed
* CMK. Do so by specifying the Amazon Resource Name (ARN) of the key for the
* setting KMS ARN (kmsKeyArn).
*/
inline bool EncryptionTypeHasBeenSet() const { return m_encryptionTypeHasBeenSet; }
/**
* Specify how you want your data keys managed. AWS uses data keys to encrypt your
* content. AWS also encrypts the data keys themselves, using a customer master key
* (CMK), and then stores the encrypted data keys alongside your encrypted content.
* Use this setting to specify which AWS service manages the CMK. For simplest set
* up, choose Amazon S3 (SERVER_SIDE_ENCRYPTION_S3). If you want your master key to
* be managed by AWS Key Management Service (KMS), choose AWS KMS
* (SERVER_SIDE_ENCRYPTION_KMS). By default, when you choose AWS KMS, KMS uses the
* AWS managed customer master key (CMK) associated with Amazon S3 to encrypt your
* data keys. You can optionally choose to specify a different, customer managed
* CMK. Do so by specifying the Amazon Resource Name (ARN) of the key for the
* setting KMS ARN (kmsKeyArn).
*/
inline void SetEncryptionType(const S3ServerSideEncryptionType& value) { m_encryptionTypeHasBeenSet = true; m_encryptionType = value; }
/**
* Specify how you want your data keys managed. AWS uses data keys to encrypt your
* content. AWS also encrypts the data keys themselves, using a customer master key
* (CMK), and then stores the encrypted data keys alongside your encrypted content.
* Use this setting to specify which AWS service manages the CMK. For simplest set
* up, choose Amazon S3 (SERVER_SIDE_ENCRYPTION_S3). If you want your master key to
* be managed by AWS Key Management Service (KMS), choose AWS KMS
* (SERVER_SIDE_ENCRYPTION_KMS). By default, when you choose AWS KMS, KMS uses the
* AWS managed customer master key (CMK) associated with Amazon S3 to encrypt your
* data keys. You can optionally choose to specify a different, customer managed
* CMK. Do so by specifying the Amazon Resource Name (ARN) of the key for the
* setting KMS ARN (kmsKeyArn).
*/
inline void SetEncryptionType(S3ServerSideEncryptionType&& value) { m_encryptionTypeHasBeenSet = true; m_encryptionType = std::move(value); }
/**
* Specify how you want your data keys managed. AWS uses data keys to encrypt your
* content. AWS also encrypts the data keys themselves, using a customer master key
* (CMK), and then stores the encrypted data keys alongside your encrypted content.
* Use this setting to specify which AWS service manages the CMK. For simplest set
* up, choose Amazon S3 (SERVER_SIDE_ENCRYPTION_S3). If you want your master key to
* be managed by AWS Key Management Service (KMS), choose AWS KMS
* (SERVER_SIDE_ENCRYPTION_KMS). By default, when you choose AWS KMS, KMS uses the
* AWS managed customer master key (CMK) associated with Amazon S3 to encrypt your
* data keys. You can optionally choose to specify a different, customer managed
* CMK. Do so by specifying the Amazon Resource Name (ARN) of the key for the
* setting KMS ARN (kmsKeyArn).
*/
inline S3EncryptionSettings& WithEncryptionType(const S3ServerSideEncryptionType& value) { SetEncryptionType(value); return *this;}
/**
* Specify how you want your data keys managed. AWS uses data keys to encrypt your
* content. AWS also encrypts the data keys themselves, using a customer master key
* (CMK), and then stores the encrypted data keys alongside your encrypted content.
* Use this setting to specify which AWS service manages the CMK. For simplest set
* up, choose Amazon S3 (SERVER_SIDE_ENCRYPTION_S3). If you want your master key to
* be managed by AWS Key Management Service (KMS), choose AWS KMS
* (SERVER_SIDE_ENCRYPTION_KMS). By default, when you choose AWS KMS, KMS uses the
* AWS managed customer master key (CMK) associated with Amazon S3 to encrypt your
* data keys. You can optionally choose to specify a different, customer managed
* CMK. Do so by specifying the Amazon Resource Name (ARN) of the key for the
* setting KMS ARN (kmsKeyArn).
*/
inline S3EncryptionSettings& WithEncryptionType(S3ServerSideEncryptionType&& value) { SetEncryptionType(std::move(value)); return *this;}
/**
* Optionally, specify the customer master key (CMK) that you want to use to
* encrypt the data key that AWS uses to encrypt your output content. Enter the
* Amazon Resource Name (ARN) of the CMK. To use this setting, you must also set
* Server-side encryption (S3ServerSideEncryptionType) to AWS KMS
* (SERVER_SIDE_ENCRYPTION_KMS). If you set Server-side encryption to AWS KMS but
* don't specify a CMK here, AWS uses the AWS managed CMK associated with Amazon
* S3.
*/
inline const Aws::String& GetKmsKeyArn() const{ return m_kmsKeyArn; }
/**
* Optionally, specify the customer master key (CMK) that you want to use to
* encrypt the data key that AWS uses to encrypt your output content. Enter the
* Amazon Resource Name (ARN) of the CMK. To use this setting, you must also set
* Server-side encryption (S3ServerSideEncryptionType) to AWS KMS
* (SERVER_SIDE_ENCRYPTION_KMS). If you set Server-side encryption to AWS KMS but
* don't specify a CMK here, AWS uses the AWS managed CMK associated with Amazon
* S3.
*/
inline bool KmsKeyArnHasBeenSet() const { return m_kmsKeyArnHasBeenSet; }
/**
* Optionally, specify the customer master key (CMK) that you want to use to
* encrypt the data key that AWS uses to encrypt your output content. Enter the
* Amazon Resource Name (ARN) of the CMK. To use this setting, you must also set
* Server-side encryption (S3ServerSideEncryptionType) to AWS KMS
* (SERVER_SIDE_ENCRYPTION_KMS). If you set Server-side encryption to AWS KMS but
* don't specify a CMK here, AWS uses the AWS managed CMK associated with Amazon
* S3.
*/
inline void SetKmsKeyArn(const Aws::String& value) { m_kmsKeyArnHasBeenSet = true; m_kmsKeyArn = value; }
/**
* Optionally, specify the customer master key (CMK) that you want to use to
* encrypt the data key that AWS uses to encrypt your output content. Enter the
* Amazon Resource Name (ARN) of the CMK. To use this setting, you must also set
* Server-side encryption (S3ServerSideEncryptionType) to AWS KMS
* (SERVER_SIDE_ENCRYPTION_KMS). If you set Server-side encryption to AWS KMS but
* don't specify a CMK here, AWS uses the AWS managed CMK associated with Amazon
* S3.
*/
inline void SetKmsKeyArn(Aws::String&& value) { m_kmsKeyArnHasBeenSet = true; m_kmsKeyArn = std::move(value); }
/**
* Optionally, specify the customer master key (CMK) that you want to use to
* encrypt the data key that AWS uses to encrypt your output content. Enter the
* Amazon Resource Name (ARN) of the CMK. To use this setting, you must also set
* Server-side encryption (S3ServerSideEncryptionType) to AWS KMS
* (SERVER_SIDE_ENCRYPTION_KMS). If you set Server-side encryption to AWS KMS but
* don't specify a CMK here, AWS uses the AWS managed CMK associated with Amazon
* S3.
*/
inline void SetKmsKeyArn(const char* value) { m_kmsKeyArnHasBeenSet = true; m_kmsKeyArn.assign(value); }
/**
* Optionally, specify the customer master key (CMK) that you want to use to
* encrypt the data key that AWS uses to encrypt your output content. Enter the
* Amazon Resource Name (ARN) of the CMK. To use this setting, you must also set
* Server-side encryption (S3ServerSideEncryptionType) to AWS KMS
* (SERVER_SIDE_ENCRYPTION_KMS). If you set Server-side encryption to AWS KMS but
* don't specify a CMK here, AWS uses the AWS managed CMK associated with Amazon
* S3.
*/
inline S3EncryptionSettings& WithKmsKeyArn(const Aws::String& value) { SetKmsKeyArn(value); return *this;}
/**
* Optionally, specify the customer master key (CMK) that you want to use to
* encrypt the data key that AWS uses to encrypt your output content. Enter the
* Amazon Resource Name (ARN) of the CMK. To use this setting, you must also set
* Server-side encryption (S3ServerSideEncryptionType) to AWS KMS
* (SERVER_SIDE_ENCRYPTION_KMS). If you set Server-side encryption to AWS KMS but
* don't specify a CMK here, AWS uses the AWS managed CMK associated with Amazon
* S3.
*/
inline S3EncryptionSettings& WithKmsKeyArn(Aws::String&& value) { SetKmsKeyArn(std::move(value)); return *this;}
/**
* Optionally, specify the customer master key (CMK) that you want to use to
* encrypt the data key that AWS uses to encrypt your output content. Enter the
* Amazon Resource Name (ARN) of the CMK. To use this setting, you must also set
* Server-side encryption (S3ServerSideEncryptionType) to AWS KMS
* (SERVER_SIDE_ENCRYPTION_KMS). If you set Server-side encryption to AWS KMS but
* don't specify a CMK here, AWS uses the AWS managed CMK associated with Amazon
* S3.
*/
inline S3EncryptionSettings& WithKmsKeyArn(const char* value) { SetKmsKeyArn(value); return *this;}
private:
S3ServerSideEncryptionType m_encryptionType;
bool m_encryptionTypeHasBeenSet;
Aws::String m_kmsKeyArn;
bool m_kmsKeyArnHasBeenSet;
};
} // namespace Model
} // namespace MediaConvert
} // namespace Aws