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

The encryption configuration for the repository. This determines how the * contents of your repository are encrypted at rest.

By default, when no * encryption configuration is set or the AES256 encryption type is * used, Amazon ECR uses server-side encryption with Amazon S3-managed encryption * keys which encrypts your data at rest using an AES-256 encryption algorithm. * This does not require any action on your part.

For more control over the * encryption of the contents of your repository, you can use server-side * encryption with Key Management Service key stored in Key Management Service * (KMS) to encrypt your images. For more information, see Amazon * ECR encryption at rest in the Amazon Elastic Container Registry User * Guide.

See Also:

AWS * API Reference

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

The encryption type to use.

If you use the KMS encryption * type, the contents of the repository will be encrypted using server-side * encryption with Key Management Service key stored in KMS. When you use KMS to * encrypt your data, you can either use the default Amazon Web Services managed * KMS key for Amazon ECR, or specify your own KMS key, which you already created. * For more information, see Protecting * data using server-side encryption with an KMS key stored in Key Management * Service (SSE-KMS) in the Amazon Simple Storage Service Console Developer * Guide.

If you use the AES256 encryption type, Amazon ECR * uses server-side encryption with Amazon S3-managed encryption keys which * encrypts the images in the repository using an AES-256 encryption algorithm. For * more information, see Protecting * data using server-side encryption with Amazon S3-managed encryption keys * (SSE-S3) in the Amazon Simple Storage Service Console Developer * Guide.

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

The encryption type to use.

If you use the KMS encryption * type, the contents of the repository will be encrypted using server-side * encryption with Key Management Service key stored in KMS. When you use KMS to * encrypt your data, you can either use the default Amazon Web Services managed * KMS key for Amazon ECR, or specify your own KMS key, which you already created. * For more information, see Protecting * data using server-side encryption with an KMS key stored in Key Management * Service (SSE-KMS) in the Amazon Simple Storage Service Console Developer * Guide.

If you use the AES256 encryption type, Amazon ECR * uses server-side encryption with Amazon S3-managed encryption keys which * encrypts the images in the repository using an AES-256 encryption algorithm. For * more information, see Protecting * data using server-side encryption with Amazon S3-managed encryption keys * (SSE-S3) in the Amazon Simple Storage Service Console Developer * Guide.

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

The encryption type to use.

If you use the KMS encryption * type, the contents of the repository will be encrypted using server-side * encryption with Key Management Service key stored in KMS. When you use KMS to * encrypt your data, you can either use the default Amazon Web Services managed * KMS key for Amazon ECR, or specify your own KMS key, which you already created. * For more information, see Protecting * data using server-side encryption with an KMS key stored in Key Management * Service (SSE-KMS) in the Amazon Simple Storage Service Console Developer * Guide.

If you use the AES256 encryption type, Amazon ECR * uses server-side encryption with Amazon S3-managed encryption keys which * encrypts the images in the repository using an AES-256 encryption algorithm. For * more information, see Protecting * data using server-side encryption with Amazon S3-managed encryption keys * (SSE-S3) in the Amazon Simple Storage Service Console Developer * Guide.

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

The encryption type to use.

If you use the KMS encryption * type, the contents of the repository will be encrypted using server-side * encryption with Key Management Service key stored in KMS. When you use KMS to * encrypt your data, you can either use the default Amazon Web Services managed * KMS key for Amazon ECR, or specify your own KMS key, which you already created. * For more information, see Protecting * data using server-side encryption with an KMS key stored in Key Management * Service (SSE-KMS) in the Amazon Simple Storage Service Console Developer * Guide.

If you use the AES256 encryption type, Amazon ECR * uses server-side encryption with Amazon S3-managed encryption keys which * encrypts the images in the repository using an AES-256 encryption algorithm. For * more information, see Protecting * data using server-side encryption with Amazon S3-managed encryption keys * (SSE-S3) in the Amazon Simple Storage Service Console Developer * Guide.

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

The encryption type to use.

If you use the KMS encryption * type, the contents of the repository will be encrypted using server-side * encryption with Key Management Service key stored in KMS. When you use KMS to * encrypt your data, you can either use the default Amazon Web Services managed * KMS key for Amazon ECR, or specify your own KMS key, which you already created. * For more information, see Protecting * data using server-side encryption with an KMS key stored in Key Management * Service (SSE-KMS) in the Amazon Simple Storage Service Console Developer * Guide.

If you use the AES256 encryption type, Amazon ECR * uses server-side encryption with Amazon S3-managed encryption keys which * encrypts the images in the repository using an AES-256 encryption algorithm. For * more information, see Protecting * data using server-side encryption with Amazon S3-managed encryption keys * (SSE-S3) in the Amazon Simple Storage Service Console Developer * Guide.

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

The encryption type to use.

If you use the KMS encryption * type, the contents of the repository will be encrypted using server-side * encryption with Key Management Service key stored in KMS. When you use KMS to * encrypt your data, you can either use the default Amazon Web Services managed * KMS key for Amazon ECR, or specify your own KMS key, which you already created. * For more information, see Protecting * data using server-side encryption with an KMS key stored in Key Management * Service (SSE-KMS) in the Amazon Simple Storage Service Console Developer * Guide.

If you use the AES256 encryption type, Amazon ECR * uses server-side encryption with Amazon S3-managed encryption keys which * encrypts the images in the repository using an AES-256 encryption algorithm. For * more information, see Protecting * data using server-side encryption with Amazon S3-managed encryption keys * (SSE-S3) in the Amazon Simple Storage Service Console Developer * Guide.

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

If you use the KMS encryption type, specify the KMS key to use * for encryption. The alias, key ID, or full ARN of the KMS key can be specified. * The key must exist in the same Region as the repository. If no key is specified, * the default Amazon Web Services managed KMS key for Amazon ECR will be used.

*/ inline const Aws::String& GetKmsKey() const{ return m_kmsKey; } /** *

If you use the KMS encryption type, specify the KMS key to use * for encryption. The alias, key ID, or full ARN of the KMS key can be specified. * The key must exist in the same Region as the repository. If no key is specified, * the default Amazon Web Services managed KMS key for Amazon ECR will be used.

*/ inline bool KmsKeyHasBeenSet() const { return m_kmsKeyHasBeenSet; } /** *

If you use the KMS encryption type, specify the KMS key to use * for encryption. The alias, key ID, or full ARN of the KMS key can be specified. * The key must exist in the same Region as the repository. If no key is specified, * the default Amazon Web Services managed KMS key for Amazon ECR will be used.

*/ inline void SetKmsKey(const Aws::String& value) { m_kmsKeyHasBeenSet = true; m_kmsKey = value; } /** *

If you use the KMS encryption type, specify the KMS key to use * for encryption. The alias, key ID, or full ARN of the KMS key can be specified. * The key must exist in the same Region as the repository. If no key is specified, * the default Amazon Web Services managed KMS key for Amazon ECR will be used.

*/ inline void SetKmsKey(Aws::String&& value) { m_kmsKeyHasBeenSet = true; m_kmsKey = std::move(value); } /** *

If you use the KMS encryption type, specify the KMS key to use * for encryption. The alias, key ID, or full ARN of the KMS key can be specified. * The key must exist in the same Region as the repository. If no key is specified, * the default Amazon Web Services managed KMS key for Amazon ECR will be used.

*/ inline void SetKmsKey(const char* value) { m_kmsKeyHasBeenSet = true; m_kmsKey.assign(value); } /** *

If you use the KMS encryption type, specify the KMS key to use * for encryption. The alias, key ID, or full ARN of the KMS key can be specified. * The key must exist in the same Region as the repository. If no key is specified, * the default Amazon Web Services managed KMS key for Amazon ECR will be used.

*/ inline EncryptionConfiguration& WithKmsKey(const Aws::String& value) { SetKmsKey(value); return *this;} /** *

If you use the KMS encryption type, specify the KMS key to use * for encryption. The alias, key ID, or full ARN of the KMS key can be specified. * The key must exist in the same Region as the repository. If no key is specified, * the default Amazon Web Services managed KMS key for Amazon ECR will be used.

*/ inline EncryptionConfiguration& WithKmsKey(Aws::String&& value) { SetKmsKey(std::move(value)); return *this;} /** *

If you use the KMS encryption type, specify the KMS key to use * for encryption. The alias, key ID, or full ARN of the KMS key can be specified. * The key must exist in the same Region as the repository. If no key is specified, * the default Amazon Web Services managed KMS key for Amazon ECR will be used.

*/ inline EncryptionConfiguration& WithKmsKey(const char* value) { SetKmsKey(value); return *this;} private: EncryptionType m_encryptionType; bool m_encryptionTypeHasBeenSet = false; Aws::String m_kmsKey; bool m_kmsKeyHasBeenSet = false; }; } // namespace Model } // namespace ECR } // namespace Aws