/** * 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 Glacier { namespace Model { /** *

Contains information about the encryption used to store the job results in * Amazon S3.

See Also:

AWS * API Reference

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

The server-side encryption algorithm used when storing job results in Amazon * S3, for example AES256 or aws:kms.

*/ inline const EncryptionType& GetEncryptionType() const{ return m_encryptionType; } /** *

The server-side encryption algorithm used when storing job results in Amazon * S3, for example AES256 or aws:kms.

*/ inline bool EncryptionTypeHasBeenSet() const { return m_encryptionTypeHasBeenSet; } /** *

The server-side encryption algorithm used when storing job results in Amazon * S3, for example AES256 or aws:kms.

*/ inline void SetEncryptionType(const EncryptionType& value) { m_encryptionTypeHasBeenSet = true; m_encryptionType = value; } /** *

The server-side encryption algorithm used when storing job results in Amazon * S3, for example AES256 or aws:kms.

*/ inline void SetEncryptionType(EncryptionType&& value) { m_encryptionTypeHasBeenSet = true; m_encryptionType = std::move(value); } /** *

The server-side encryption algorithm used when storing job results in Amazon * S3, for example AES256 or aws:kms.

*/ inline Encryption& WithEncryptionType(const EncryptionType& value) { SetEncryptionType(value); return *this;} /** *

The server-side encryption algorithm used when storing job results in Amazon * S3, for example AES256 or aws:kms.

*/ inline Encryption& WithEncryptionType(EncryptionType&& value) { SetEncryptionType(std::move(value)); return *this;} /** *

The AWS KMS key ID to use for object encryption. All GET and PUT requests for * an object protected by AWS KMS fail if not made by using Secure Sockets Layer * (SSL) or Signature Version 4.

*/ inline const Aws::String& GetKMSKeyId() const{ return m_kMSKeyId; } /** *

The AWS KMS key ID to use for object encryption. All GET and PUT requests for * an object protected by AWS KMS fail if not made by using Secure Sockets Layer * (SSL) or Signature Version 4.

*/ inline bool KMSKeyIdHasBeenSet() const { return m_kMSKeyIdHasBeenSet; } /** *

The AWS KMS key ID to use for object encryption. All GET and PUT requests for * an object protected by AWS KMS fail if not made by using Secure Sockets Layer * (SSL) or Signature Version 4.

*/ inline void SetKMSKeyId(const Aws::String& value) { m_kMSKeyIdHasBeenSet = true; m_kMSKeyId = value; } /** *

The AWS KMS key ID to use for object encryption. All GET and PUT requests for * an object protected by AWS KMS fail if not made by using Secure Sockets Layer * (SSL) or Signature Version 4.

*/ inline void SetKMSKeyId(Aws::String&& value) { m_kMSKeyIdHasBeenSet = true; m_kMSKeyId = std::move(value); } /** *

The AWS KMS key ID to use for object encryption. All GET and PUT requests for * an object protected by AWS KMS fail if not made by using Secure Sockets Layer * (SSL) or Signature Version 4.

*/ inline void SetKMSKeyId(const char* value) { m_kMSKeyIdHasBeenSet = true; m_kMSKeyId.assign(value); } /** *

The AWS KMS key ID to use for object encryption. All GET and PUT requests for * an object protected by AWS KMS fail if not made by using Secure Sockets Layer * (SSL) or Signature Version 4.

*/ inline Encryption& WithKMSKeyId(const Aws::String& value) { SetKMSKeyId(value); return *this;} /** *

The AWS KMS key ID to use for object encryption. All GET and PUT requests for * an object protected by AWS KMS fail if not made by using Secure Sockets Layer * (SSL) or Signature Version 4.

*/ inline Encryption& WithKMSKeyId(Aws::String&& value) { SetKMSKeyId(std::move(value)); return *this;} /** *

The AWS KMS key ID to use for object encryption. All GET and PUT requests for * an object protected by AWS KMS fail if not made by using Secure Sockets Layer * (SSL) or Signature Version 4.

*/ inline Encryption& WithKMSKeyId(const char* value) { SetKMSKeyId(value); return *this;} /** *

Optional. If the encryption type is aws:kms, you can use this * value to specify the encryption context for the job results.

*/ inline const Aws::String& GetKMSContext() const{ return m_kMSContext; } /** *

Optional. If the encryption type is aws:kms, you can use this * value to specify the encryption context for the job results.

*/ inline bool KMSContextHasBeenSet() const { return m_kMSContextHasBeenSet; } /** *

Optional. If the encryption type is aws:kms, you can use this * value to specify the encryption context for the job results.

*/ inline void SetKMSContext(const Aws::String& value) { m_kMSContextHasBeenSet = true; m_kMSContext = value; } /** *

Optional. If the encryption type is aws:kms, you can use this * value to specify the encryption context for the job results.

*/ inline void SetKMSContext(Aws::String&& value) { m_kMSContextHasBeenSet = true; m_kMSContext = std::move(value); } /** *

Optional. If the encryption type is aws:kms, you can use this * value to specify the encryption context for the job results.

*/ inline void SetKMSContext(const char* value) { m_kMSContextHasBeenSet = true; m_kMSContext.assign(value); } /** *

Optional. If the encryption type is aws:kms, you can use this * value to specify the encryption context for the job results.

*/ inline Encryption& WithKMSContext(const Aws::String& value) { SetKMSContext(value); return *this;} /** *

Optional. If the encryption type is aws:kms, you can use this * value to specify the encryption context for the job results.

*/ inline Encryption& WithKMSContext(Aws::String&& value) { SetKMSContext(std::move(value)); return *this;} /** *

Optional. If the encryption type is aws:kms, you can use this * value to specify the encryption context for the job results.

*/ inline Encryption& WithKMSContext(const char* value) { SetKMSContext(value); return *this;} private: EncryptionType m_encryptionType; bool m_encryptionTypeHasBeenSet = false; Aws::String m_kMSKeyId; bool m_kMSKeyIdHasBeenSet = false; Aws::String m_kMSContext; bool m_kMSContextHasBeenSet = false; }; } // namespace Model } // namespace Glacier } // namespace Aws