/** * 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 customer master keys (CMKs) stored in AWS Key Management Service * (AWS 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 AWS_ECR_API EncryptionConfiguration { public: EncryptionConfiguration(); EncryptionConfiguration(Aws::Utils::Json::JsonView jsonValue); EncryptionConfiguration& operator=(Aws::Utils::Json::JsonView jsonValue); 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 customer master keys (CMKs) stored in AWS KMS. When you use AWS * KMS to encrypt your data, you can either use the default AWS managed CMK for * Amazon ECR, or specify your own CMK, which you already created. For more * information, see Protecting * Data Using Server-Side Encryption with CMKs Stored in AWS 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 customer master keys (CMKs) stored in AWS KMS. When you use AWS * KMS to encrypt your data, you can either use the default AWS managed CMK for * Amazon ECR, or specify your own CMK, which you already created. For more * information, see Protecting * Data Using Server-Side Encryption with CMKs Stored in AWS 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 customer master keys (CMKs) stored in AWS KMS. When you use AWS * KMS to encrypt your data, you can either use the default AWS managed CMK for * Amazon ECR, or specify your own CMK, which you already created. For more * information, see Protecting * Data Using Server-Side Encryption with CMKs Stored in AWS 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 customer master keys (CMKs) stored in AWS KMS. When you use AWS * KMS to encrypt your data, you can either use the default AWS managed CMK for * Amazon ECR, or specify your own CMK, which you already created. For more * information, see Protecting * Data Using Server-Side Encryption with CMKs Stored in AWS 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 customer master keys (CMKs) stored in AWS KMS. When you use AWS * KMS to encrypt your data, you can either use the default AWS managed CMK for * Amazon ECR, or specify your own CMK, which you already created. For more * information, see Protecting * Data Using Server-Side Encryption with CMKs Stored in AWS 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 customer master keys (CMKs) stored in AWS KMS. When you use AWS * KMS to encrypt your data, you can either use the default AWS managed CMK for * Amazon ECR, or specify your own CMK, which you already created. For more * information, see Protecting * Data Using Server-Side Encryption with CMKs Stored in AWS 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 CMK to use for * encryption. The alias, key ID, or full ARN of the CMK can be specified. The key * must exist in the same Region as the repository. If no key is specified, the * default AWS managed CMK for Amazon ECR will be used.

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

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

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

If you use the KMS encryption type, specify the CMK to use for * encryption. The alias, key ID, or full ARN of the CMK can be specified. The key * must exist in the same Region as the repository. If no key is specified, the * default AWS managed CMK 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 CMK to use for * encryption. The alias, key ID, or full ARN of the CMK can be specified. The key * must exist in the same Region as the repository. If no key is specified, the * default AWS managed CMK 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 CMK to use for * encryption. The alias, key ID, or full ARN of the CMK can be specified. The key * must exist in the same Region as the repository. If no key is specified, the * default AWS managed CMK 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 CMK to use for * encryption. The alias, key ID, or full ARN of the CMK can be specified. The key * must exist in the same Region as the repository. If no key is specified, the * default AWS managed CMK 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 CMK to use for * encryption. The alias, key ID, or full ARN of the CMK can be specified. The key * must exist in the same Region as the repository. If no key is specified, the * default AWS managed CMK 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 CMK to use for * encryption. The alias, key ID, or full ARN of the CMK can be specified. The key * must exist in the same Region as the repository. If no key is specified, the * default AWS managed CMK for Amazon ECR will be used.

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