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

Information about the KMS encryption used with DevOps Guru.

See * Also:

AWS * API Reference

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

Describes the specified KMS key.

To specify a KMS key, use its key * ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with * "alias/". If you specify a predefined Amazon Web Services alias (an Amazon Web * Services alias with no key ID), Amazon Web Services KMS associates the alias * with an Amazon Web Services managed key and returns its KeyId and Arn in the * response. To specify a KMS key in a different Amazon Web Services account, you * must use the key ARN or alias ARN.

For example:

Key ID: * 1234abcd-12ab-34cd-56ef-1234567890ab

Key ARN: * arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

*

Alias name: alias/ExampleAlias

Alias ARN: * arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias

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

Describes the specified KMS key.

To specify a KMS key, use its key * ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with * "alias/". If you specify a predefined Amazon Web Services alias (an Amazon Web * Services alias with no key ID), Amazon Web Services KMS associates the alias * with an Amazon Web Services managed key and returns its KeyId and Arn in the * response. To specify a KMS key in a different Amazon Web Services account, you * must use the key ARN or alias ARN.

For example:

Key ID: * 1234abcd-12ab-34cd-56ef-1234567890ab

Key ARN: * arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

*

Alias name: alias/ExampleAlias

Alias ARN: * arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias

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

Describes the specified KMS key.

To specify a KMS key, use its key * ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with * "alias/". If you specify a predefined Amazon Web Services alias (an Amazon Web * Services alias with no key ID), Amazon Web Services KMS associates the alias * with an Amazon Web Services managed key and returns its KeyId and Arn in the * response. To specify a KMS key in a different Amazon Web Services account, you * must use the key ARN or alias ARN.

For example:

Key ID: * 1234abcd-12ab-34cd-56ef-1234567890ab

Key ARN: * arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

*

Alias name: alias/ExampleAlias

Alias ARN: * arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias

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

Describes the specified KMS key.

To specify a KMS key, use its key * ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with * "alias/". If you specify a predefined Amazon Web Services alias (an Amazon Web * Services alias with no key ID), Amazon Web Services KMS associates the alias * with an Amazon Web Services managed key and returns its KeyId and Arn in the * response. To specify a KMS key in a different Amazon Web Services account, you * must use the key ARN or alias ARN.

For example:

Key ID: * 1234abcd-12ab-34cd-56ef-1234567890ab

Key ARN: * arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

*

Alias name: alias/ExampleAlias

Alias ARN: * arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias

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

Describes the specified KMS key.

To specify a KMS key, use its key * ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with * "alias/". If you specify a predefined Amazon Web Services alias (an Amazon Web * Services alias with no key ID), Amazon Web Services KMS associates the alias * with an Amazon Web Services managed key and returns its KeyId and Arn in the * response. To specify a KMS key in a different Amazon Web Services account, you * must use the key ARN or alias ARN.

For example:

Key ID: * 1234abcd-12ab-34cd-56ef-1234567890ab

Key ARN: * arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

*

Alias name: alias/ExampleAlias

Alias ARN: * arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias

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

Describes the specified KMS key.

To specify a KMS key, use its key * ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with * "alias/". If you specify a predefined Amazon Web Services alias (an Amazon Web * Services alias with no key ID), Amazon Web Services KMS associates the alias * with an Amazon Web Services managed key and returns its KeyId and Arn in the * response. To specify a KMS key in a different Amazon Web Services account, you * must use the key ARN or alias ARN.

For example:

Key ID: * 1234abcd-12ab-34cd-56ef-1234567890ab

Key ARN: * arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

*

Alias name: alias/ExampleAlias

Alias ARN: * arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias

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

Describes the specified KMS key.

To specify a KMS key, use its key * ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with * "alias/". If you specify a predefined Amazon Web Services alias (an Amazon Web * Services alias with no key ID), Amazon Web Services KMS associates the alias * with an Amazon Web Services managed key and returns its KeyId and Arn in the * response. To specify a KMS key in a different Amazon Web Services account, you * must use the key ARN or alias ARN.

For example:

Key ID: * 1234abcd-12ab-34cd-56ef-1234567890ab

Key ARN: * arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

*

Alias name: alias/ExampleAlias

Alias ARN: * arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias

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

Describes the specified KMS key.

To specify a KMS key, use its key * ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with * "alias/". If you specify a predefined Amazon Web Services alias (an Amazon Web * Services alias with no key ID), Amazon Web Services KMS associates the alias * with an Amazon Web Services managed key and returns its KeyId and Arn in the * response. To specify a KMS key in a different Amazon Web Services account, you * must use the key ARN or alias ARN.

For example:

Key ID: * 1234abcd-12ab-34cd-56ef-1234567890ab

Key ARN: * arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

*

Alias name: alias/ExampleAlias

Alias ARN: * arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias

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

Specifies if DevOps Guru is enabled for customer managed keys.

*/ inline const OptInStatus& GetOptInStatus() const{ return m_optInStatus; } /** *

Specifies if DevOps Guru is enabled for customer managed keys.

*/ inline bool OptInStatusHasBeenSet() const { return m_optInStatusHasBeenSet; } /** *

Specifies if DevOps Guru is enabled for customer managed keys.

*/ inline void SetOptInStatus(const OptInStatus& value) { m_optInStatusHasBeenSet = true; m_optInStatus = value; } /** *

Specifies if DevOps Guru is enabled for customer managed keys.

*/ inline void SetOptInStatus(OptInStatus&& value) { m_optInStatusHasBeenSet = true; m_optInStatus = std::move(value); } /** *

Specifies if DevOps Guru is enabled for customer managed keys.

*/ inline KMSServerSideEncryptionIntegration& WithOptInStatus(const OptInStatus& value) { SetOptInStatus(value); return *this;} /** *

Specifies if DevOps Guru is enabled for customer managed keys.

*/ inline KMSServerSideEncryptionIntegration& WithOptInStatus(OptInStatus&& value) { SetOptInStatus(std::move(value)); return *this;} /** *

The type of KMS key used. Customer managed keys are the KMS keys that you * create. Amazon Web Services owned keys are keys that are owned and managed by * DevOps Guru.

*/ inline const ServerSideEncryptionType& GetType() const{ return m_type; } /** *

The type of KMS key used. Customer managed keys are the KMS keys that you * create. Amazon Web Services owned keys are keys that are owned and managed by * DevOps Guru.

*/ inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; } /** *

The type of KMS key used. Customer managed keys are the KMS keys that you * create. Amazon Web Services owned keys are keys that are owned and managed by * DevOps Guru.

*/ inline void SetType(const ServerSideEncryptionType& value) { m_typeHasBeenSet = true; m_type = value; } /** *

The type of KMS key used. Customer managed keys are the KMS keys that you * create. Amazon Web Services owned keys are keys that are owned and managed by * DevOps Guru.

*/ inline void SetType(ServerSideEncryptionType&& value) { m_typeHasBeenSet = true; m_type = std::move(value); } /** *

The type of KMS key used. Customer managed keys are the KMS keys that you * create. Amazon Web Services owned keys are keys that are owned and managed by * DevOps Guru.

*/ inline KMSServerSideEncryptionIntegration& WithType(const ServerSideEncryptionType& value) { SetType(value); return *this;} /** *

The type of KMS key used. Customer managed keys are the KMS keys that you * create. Amazon Web Services owned keys are keys that are owned and managed by * DevOps Guru.

*/ inline KMSServerSideEncryptionIntegration& WithType(ServerSideEncryptionType&& value) { SetType(std::move(value)); return *this;} private: Aws::String m_kMSKeyId; bool m_kMSKeyIdHasBeenSet = false; OptInStatus m_optInStatus; bool m_optInStatusHasBeenSet = false; ServerSideEncryptionType m_type; bool m_typeHasBeenSet = false; }; } // namespace Model } // namespace DevOpsGuru } // namespace Aws