/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include Information about whether DevOps Guru is configured to encrypt server-side
* data using KMS. See Also:
AWS
* API Reference
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 KMSServerSideEncryptionIntegrationConfig& 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 KMSServerSideEncryptionIntegrationConfig& 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 KMSServerSideEncryptionIntegrationConfig& WithKMSKeyId(const char* value) { SetKMSKeyId(value); return *this;} /** *Specifies if DevOps Guru is enabled for KMS integration.
*/ inline const OptInStatus& GetOptInStatus() const{ return m_optInStatus; } /** *Specifies if DevOps Guru is enabled for KMS integration.
*/ inline bool OptInStatusHasBeenSet() const { return m_optInStatusHasBeenSet; } /** *Specifies if DevOps Guru is enabled for KMS integration.
*/ inline void SetOptInStatus(const OptInStatus& value) { m_optInStatusHasBeenSet = true; m_optInStatus = value; } /** *Specifies if DevOps Guru is enabled for KMS integration.
*/ inline void SetOptInStatus(OptInStatus&& value) { m_optInStatusHasBeenSet = true; m_optInStatus = std::move(value); } /** *Specifies if DevOps Guru is enabled for KMS integration.
*/ inline KMSServerSideEncryptionIntegrationConfig& WithOptInStatus(const OptInStatus& value) { SetOptInStatus(value); return *this;} /** *Specifies if DevOps Guru is enabled for KMS integration.
*/ inline KMSServerSideEncryptionIntegrationConfig& 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 KMSServerSideEncryptionIntegrationConfig& 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 KMSServerSideEncryptionIntegrationConfig& 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