/** * 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 Xml { class XmlNode; } // namespace Xml } // namespace Utils namespace Route53 { namespace Model { /** *

A key-signing key (KSK) is a complex type that represents a public/private * key pair. The private key is used to generate a digital signature for the zone * signing key (ZSK). The public key is stored in the DNS and is used to * authenticate the ZSK. A KSK is always associated with a hosted zone; it cannot * exist by itself.

See Also:

AWS * API Reference

*/ class KeySigningKey { public: AWS_ROUTE53_API KeySigningKey(); AWS_ROUTE53_API KeySigningKey(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_ROUTE53_API KeySigningKey& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_ROUTE53_API void AddToNode(Aws::Utils::Xml::XmlNode& parentNode) const; /** *

A string used to identify a key-signing key (KSK). Name can * include numbers, letters, and underscores (_). Name must be unique * for each key-signing key in the same hosted zone.

*/ inline const Aws::String& GetName() const{ return m_name; } /** *

A string used to identify a key-signing key (KSK). Name can * include numbers, letters, and underscores (_). Name must be unique * for each key-signing key in the same hosted zone.

*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *

A string used to identify a key-signing key (KSK). Name can * include numbers, letters, and underscores (_). Name must be unique * for each key-signing key in the same hosted zone.

*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *

A string used to identify a key-signing key (KSK). Name can * include numbers, letters, and underscores (_). Name must be unique * for each key-signing key in the same hosted zone.

*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *

A string used to identify a key-signing key (KSK). Name can * include numbers, letters, and underscores (_). Name must be unique * for each key-signing key in the same hosted zone.

*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *

A string used to identify a key-signing key (KSK). Name can * include numbers, letters, and underscores (_). Name must be unique * for each key-signing key in the same hosted zone.

*/ inline KeySigningKey& WithName(const Aws::String& value) { SetName(value); return *this;} /** *

A string used to identify a key-signing key (KSK). Name can * include numbers, letters, and underscores (_). Name must be unique * for each key-signing key in the same hosted zone.

*/ inline KeySigningKey& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *

A string used to identify a key-signing key (KSK). Name can * include numbers, letters, and underscores (_). Name must be unique * for each key-signing key in the same hosted zone.

*/ inline KeySigningKey& WithName(const char* value) { SetName(value); return *this;} /** *

The Amazon resource name (ARN) used to identify the customer managed key in * Key Management Service (KMS). The KmsArn must be unique for each * key-signing key (KSK) in a single hosted zone.

You must configure the * customer managed key as follows:

Status

Enabled

*
Key spec

ECC_NIST_P256

Key usage
*

Sign and verify

Key policy

The key policy must * give permission for the following actions:

  • DescribeKey

    *
  • GetPublicKey

  • Sign

The key * policy must also include the Amazon Route 53 service in the principal for your * account. Specify the following:

  • "Service": * "dnssec-route53.amazonaws.com"

For more * information about working with the customer managed key in KMS, see Key * Management Service concepts.

*/ inline const Aws::String& GetKmsArn() const{ return m_kmsArn; } /** *

The Amazon resource name (ARN) used to identify the customer managed key in * Key Management Service (KMS). The KmsArn must be unique for each * key-signing key (KSK) in a single hosted zone.

You must configure the * customer managed key as follows:

Status

Enabled

*
Key spec

ECC_NIST_P256

Key usage
*

Sign and verify

Key policy

The key policy must * give permission for the following actions:

  • DescribeKey

    *
  • GetPublicKey

  • Sign

The key * policy must also include the Amazon Route 53 service in the principal for your * account. Specify the following:

  • "Service": * "dnssec-route53.amazonaws.com"

For more * information about working with the customer managed key in KMS, see Key * Management Service concepts.

*/ inline bool KmsArnHasBeenSet() const { return m_kmsArnHasBeenSet; } /** *

The Amazon resource name (ARN) used to identify the customer managed key in * Key Management Service (KMS). The KmsArn must be unique for each * key-signing key (KSK) in a single hosted zone.

You must configure the * customer managed key as follows:

Status

Enabled

*
Key spec

ECC_NIST_P256

Key usage
*

Sign and verify

Key policy

The key policy must * give permission for the following actions:

  • DescribeKey

    *
  • GetPublicKey

  • Sign

The key * policy must also include the Amazon Route 53 service in the principal for your * account. Specify the following:

  • "Service": * "dnssec-route53.amazonaws.com"

For more * information about working with the customer managed key in KMS, see Key * Management Service concepts.

*/ inline void SetKmsArn(const Aws::String& value) { m_kmsArnHasBeenSet = true; m_kmsArn = value; } /** *

The Amazon resource name (ARN) used to identify the customer managed key in * Key Management Service (KMS). The KmsArn must be unique for each * key-signing key (KSK) in a single hosted zone.

You must configure the * customer managed key as follows:

Status

Enabled

*
Key spec

ECC_NIST_P256

Key usage
*

Sign and verify

Key policy

The key policy must * give permission for the following actions:

  • DescribeKey

    *
  • GetPublicKey

  • Sign

The key * policy must also include the Amazon Route 53 service in the principal for your * account. Specify the following:

  • "Service": * "dnssec-route53.amazonaws.com"

For more * information about working with the customer managed key in KMS, see Key * Management Service concepts.

*/ inline void SetKmsArn(Aws::String&& value) { m_kmsArnHasBeenSet = true; m_kmsArn = std::move(value); } /** *

The Amazon resource name (ARN) used to identify the customer managed key in * Key Management Service (KMS). The KmsArn must be unique for each * key-signing key (KSK) in a single hosted zone.

You must configure the * customer managed key as follows:

Status

Enabled

*
Key spec

ECC_NIST_P256

Key usage
*

Sign and verify

Key policy

The key policy must * give permission for the following actions:

  • DescribeKey

    *
  • GetPublicKey

  • Sign

The key * policy must also include the Amazon Route 53 service in the principal for your * account. Specify the following:

  • "Service": * "dnssec-route53.amazonaws.com"

For more * information about working with the customer managed key in KMS, see Key * Management Service concepts.

*/ inline void SetKmsArn(const char* value) { m_kmsArnHasBeenSet = true; m_kmsArn.assign(value); } /** *

The Amazon resource name (ARN) used to identify the customer managed key in * Key Management Service (KMS). The KmsArn must be unique for each * key-signing key (KSK) in a single hosted zone.

You must configure the * customer managed key as follows:

Status

Enabled

*
Key spec

ECC_NIST_P256

Key usage
*

Sign and verify

Key policy

The key policy must * give permission for the following actions:

  • DescribeKey

    *
  • GetPublicKey

  • Sign

The key * policy must also include the Amazon Route 53 service in the principal for your * account. Specify the following:

  • "Service": * "dnssec-route53.amazonaws.com"

For more * information about working with the customer managed key in KMS, see Key * Management Service concepts.

*/ inline KeySigningKey& WithKmsArn(const Aws::String& value) { SetKmsArn(value); return *this;} /** *

The Amazon resource name (ARN) used to identify the customer managed key in * Key Management Service (KMS). The KmsArn must be unique for each * key-signing key (KSK) in a single hosted zone.

You must configure the * customer managed key as follows:

Status

Enabled

*
Key spec

ECC_NIST_P256

Key usage
*

Sign and verify

Key policy

The key policy must * give permission for the following actions:

  • DescribeKey

    *
  • GetPublicKey

  • Sign

The key * policy must also include the Amazon Route 53 service in the principal for your * account. Specify the following:

  • "Service": * "dnssec-route53.amazonaws.com"

For more * information about working with the customer managed key in KMS, see Key * Management Service concepts.

*/ inline KeySigningKey& WithKmsArn(Aws::String&& value) { SetKmsArn(std::move(value)); return *this;} /** *

The Amazon resource name (ARN) used to identify the customer managed key in * Key Management Service (KMS). The KmsArn must be unique for each * key-signing key (KSK) in a single hosted zone.

You must configure the * customer managed key as follows:

Status

Enabled

*
Key spec

ECC_NIST_P256

Key usage
*

Sign and verify

Key policy

The key policy must * give permission for the following actions:

  • DescribeKey

    *
  • GetPublicKey

  • Sign

The key * policy must also include the Amazon Route 53 service in the principal for your * account. Specify the following:

  • "Service": * "dnssec-route53.amazonaws.com"

For more * information about working with the customer managed key in KMS, see Key * Management Service concepts.

*/ inline KeySigningKey& WithKmsArn(const char* value) { SetKmsArn(value); return *this;} /** *

An integer that specifies how the key is used. For key-signing key (KSK), * this value is always 257.

*/ inline int GetFlag() const{ return m_flag; } /** *

An integer that specifies how the key is used. For key-signing key (KSK), * this value is always 257.

*/ inline bool FlagHasBeenSet() const { return m_flagHasBeenSet; } /** *

An integer that specifies how the key is used. For key-signing key (KSK), * this value is always 257.

*/ inline void SetFlag(int value) { m_flagHasBeenSet = true; m_flag = value; } /** *

An integer that specifies how the key is used. For key-signing key (KSK), * this value is always 257.

*/ inline KeySigningKey& WithFlag(int value) { SetFlag(value); return *this;} /** *

A string used to represent the signing algorithm. This value must follow the * guidelines provided by RFC-8624 Section 3.1. *

*/ inline const Aws::String& GetSigningAlgorithmMnemonic() const{ return m_signingAlgorithmMnemonic; } /** *

A string used to represent the signing algorithm. This value must follow the * guidelines provided by RFC-8624 Section 3.1. *

*/ inline bool SigningAlgorithmMnemonicHasBeenSet() const { return m_signingAlgorithmMnemonicHasBeenSet; } /** *

A string used to represent the signing algorithm. This value must follow the * guidelines provided by RFC-8624 Section 3.1. *

*/ inline void SetSigningAlgorithmMnemonic(const Aws::String& value) { m_signingAlgorithmMnemonicHasBeenSet = true; m_signingAlgorithmMnemonic = value; } /** *

A string used to represent the signing algorithm. This value must follow the * guidelines provided by RFC-8624 Section 3.1. *

*/ inline void SetSigningAlgorithmMnemonic(Aws::String&& value) { m_signingAlgorithmMnemonicHasBeenSet = true; m_signingAlgorithmMnemonic = std::move(value); } /** *

A string used to represent the signing algorithm. This value must follow the * guidelines provided by RFC-8624 Section 3.1. *

*/ inline void SetSigningAlgorithmMnemonic(const char* value) { m_signingAlgorithmMnemonicHasBeenSet = true; m_signingAlgorithmMnemonic.assign(value); } /** *

A string used to represent the signing algorithm. This value must follow the * guidelines provided by RFC-8624 Section 3.1. *

*/ inline KeySigningKey& WithSigningAlgorithmMnemonic(const Aws::String& value) { SetSigningAlgorithmMnemonic(value); return *this;} /** *

A string used to represent the signing algorithm. This value must follow the * guidelines provided by RFC-8624 Section 3.1. *

*/ inline KeySigningKey& WithSigningAlgorithmMnemonic(Aws::String&& value) { SetSigningAlgorithmMnemonic(std::move(value)); return *this;} /** *

A string used to represent the signing algorithm. This value must follow the * guidelines provided by RFC-8624 Section 3.1. *

*/ inline KeySigningKey& WithSigningAlgorithmMnemonic(const char* value) { SetSigningAlgorithmMnemonic(value); return *this;} /** *

An integer used to represent the signing algorithm. This value must follow * the guidelines provided by RFC-8624 Section 3.1. *

*/ inline int GetSigningAlgorithmType() const{ return m_signingAlgorithmType; } /** *

An integer used to represent the signing algorithm. This value must follow * the guidelines provided by RFC-8624 Section 3.1. *

*/ inline bool SigningAlgorithmTypeHasBeenSet() const { return m_signingAlgorithmTypeHasBeenSet; } /** *

An integer used to represent the signing algorithm. This value must follow * the guidelines provided by RFC-8624 Section 3.1. *

*/ inline void SetSigningAlgorithmType(int value) { m_signingAlgorithmTypeHasBeenSet = true; m_signingAlgorithmType = value; } /** *

An integer used to represent the signing algorithm. This value must follow * the guidelines provided by RFC-8624 Section 3.1. *

*/ inline KeySigningKey& WithSigningAlgorithmType(int value) { SetSigningAlgorithmType(value); return *this;} /** *

A string used to represent the delegation signer digest algorithm. This value * must follow the guidelines provided by RFC-8624 Section 3.3. *

*/ inline const Aws::String& GetDigestAlgorithmMnemonic() const{ return m_digestAlgorithmMnemonic; } /** *

A string used to represent the delegation signer digest algorithm. This value * must follow the guidelines provided by RFC-8624 Section 3.3. *

*/ inline bool DigestAlgorithmMnemonicHasBeenSet() const { return m_digestAlgorithmMnemonicHasBeenSet; } /** *

A string used to represent the delegation signer digest algorithm. This value * must follow the guidelines provided by RFC-8624 Section 3.3. *

*/ inline void SetDigestAlgorithmMnemonic(const Aws::String& value) { m_digestAlgorithmMnemonicHasBeenSet = true; m_digestAlgorithmMnemonic = value; } /** *

A string used to represent the delegation signer digest algorithm. This value * must follow the guidelines provided by RFC-8624 Section 3.3. *

*/ inline void SetDigestAlgorithmMnemonic(Aws::String&& value) { m_digestAlgorithmMnemonicHasBeenSet = true; m_digestAlgorithmMnemonic = std::move(value); } /** *

A string used to represent the delegation signer digest algorithm. This value * must follow the guidelines provided by RFC-8624 Section 3.3. *

*/ inline void SetDigestAlgorithmMnemonic(const char* value) { m_digestAlgorithmMnemonicHasBeenSet = true; m_digestAlgorithmMnemonic.assign(value); } /** *

A string used to represent the delegation signer digest algorithm. This value * must follow the guidelines provided by RFC-8624 Section 3.3. *

*/ inline KeySigningKey& WithDigestAlgorithmMnemonic(const Aws::String& value) { SetDigestAlgorithmMnemonic(value); return *this;} /** *

A string used to represent the delegation signer digest algorithm. This value * must follow the guidelines provided by RFC-8624 Section 3.3. *

*/ inline KeySigningKey& WithDigestAlgorithmMnemonic(Aws::String&& value) { SetDigestAlgorithmMnemonic(std::move(value)); return *this;} /** *

A string used to represent the delegation signer digest algorithm. This value * must follow the guidelines provided by RFC-8624 Section 3.3. *

*/ inline KeySigningKey& WithDigestAlgorithmMnemonic(const char* value) { SetDigestAlgorithmMnemonic(value); return *this;} /** *

An integer used to represent the delegation signer digest algorithm. This * value must follow the guidelines provided by RFC-8624 Section * 3.3.

*/ inline int GetDigestAlgorithmType() const{ return m_digestAlgorithmType; } /** *

An integer used to represent the delegation signer digest algorithm. This * value must follow the guidelines provided by RFC-8624 Section * 3.3.

*/ inline bool DigestAlgorithmTypeHasBeenSet() const { return m_digestAlgorithmTypeHasBeenSet; } /** *

An integer used to represent the delegation signer digest algorithm. This * value must follow the guidelines provided by RFC-8624 Section * 3.3.

*/ inline void SetDigestAlgorithmType(int value) { m_digestAlgorithmTypeHasBeenSet = true; m_digestAlgorithmType = value; } /** *

An integer used to represent the delegation signer digest algorithm. This * value must follow the guidelines provided by RFC-8624 Section * 3.3.

*/ inline KeySigningKey& WithDigestAlgorithmType(int value) { SetDigestAlgorithmType(value); return *this;} /** *

An integer used to identify the DNSSEC record for the domain name. The * process used to calculate the value is described in RFC-4034 Appendix B.

*/ inline int GetKeyTag() const{ return m_keyTag; } /** *

An integer used to identify the DNSSEC record for the domain name. The * process used to calculate the value is described in RFC-4034 Appendix B.

*/ inline bool KeyTagHasBeenSet() const { return m_keyTagHasBeenSet; } /** *

An integer used to identify the DNSSEC record for the domain name. The * process used to calculate the value is described in RFC-4034 Appendix B.

*/ inline void SetKeyTag(int value) { m_keyTagHasBeenSet = true; m_keyTag = value; } /** *

An integer used to identify the DNSSEC record for the domain name. The * process used to calculate the value is described in RFC-4034 Appendix B.

*/ inline KeySigningKey& WithKeyTag(int value) { SetKeyTag(value); return *this;} /** *

A cryptographic digest of a DNSKEY resource record (RR). DNSKEY records are * used to publish the public key that resolvers can use to verify DNSSEC * signatures that are used to secure certain kinds of information provided by the * DNS system.

*/ inline const Aws::String& GetDigestValue() const{ return m_digestValue; } /** *

A cryptographic digest of a DNSKEY resource record (RR). DNSKEY records are * used to publish the public key that resolvers can use to verify DNSSEC * signatures that are used to secure certain kinds of information provided by the * DNS system.

*/ inline bool DigestValueHasBeenSet() const { return m_digestValueHasBeenSet; } /** *

A cryptographic digest of a DNSKEY resource record (RR). DNSKEY records are * used to publish the public key that resolvers can use to verify DNSSEC * signatures that are used to secure certain kinds of information provided by the * DNS system.

*/ inline void SetDigestValue(const Aws::String& value) { m_digestValueHasBeenSet = true; m_digestValue = value; } /** *

A cryptographic digest of a DNSKEY resource record (RR). DNSKEY records are * used to publish the public key that resolvers can use to verify DNSSEC * signatures that are used to secure certain kinds of information provided by the * DNS system.

*/ inline void SetDigestValue(Aws::String&& value) { m_digestValueHasBeenSet = true; m_digestValue = std::move(value); } /** *

A cryptographic digest of a DNSKEY resource record (RR). DNSKEY records are * used to publish the public key that resolvers can use to verify DNSSEC * signatures that are used to secure certain kinds of information provided by the * DNS system.

*/ inline void SetDigestValue(const char* value) { m_digestValueHasBeenSet = true; m_digestValue.assign(value); } /** *

A cryptographic digest of a DNSKEY resource record (RR). DNSKEY records are * used to publish the public key that resolvers can use to verify DNSSEC * signatures that are used to secure certain kinds of information provided by the * DNS system.

*/ inline KeySigningKey& WithDigestValue(const Aws::String& value) { SetDigestValue(value); return *this;} /** *

A cryptographic digest of a DNSKEY resource record (RR). DNSKEY records are * used to publish the public key that resolvers can use to verify DNSSEC * signatures that are used to secure certain kinds of information provided by the * DNS system.

*/ inline KeySigningKey& WithDigestValue(Aws::String&& value) { SetDigestValue(std::move(value)); return *this;} /** *

A cryptographic digest of a DNSKEY resource record (RR). DNSKEY records are * used to publish the public key that resolvers can use to verify DNSSEC * signatures that are used to secure certain kinds of information provided by the * DNS system.

*/ inline KeySigningKey& WithDigestValue(const char* value) { SetDigestValue(value); return *this;} /** *

The public key, represented as a Base64 encoding, as required by RFC-4034 Page 5.

*/ inline const Aws::String& GetPublicKey() const{ return m_publicKey; } /** *

The public key, represented as a Base64 encoding, as required by RFC-4034 Page 5.

*/ inline bool PublicKeyHasBeenSet() const { return m_publicKeyHasBeenSet; } /** *

The public key, represented as a Base64 encoding, as required by RFC-4034 Page 5.

*/ inline void SetPublicKey(const Aws::String& value) { m_publicKeyHasBeenSet = true; m_publicKey = value; } /** *

The public key, represented as a Base64 encoding, as required by RFC-4034 Page 5.

*/ inline void SetPublicKey(Aws::String&& value) { m_publicKeyHasBeenSet = true; m_publicKey = std::move(value); } /** *

The public key, represented as a Base64 encoding, as required by RFC-4034 Page 5.

*/ inline void SetPublicKey(const char* value) { m_publicKeyHasBeenSet = true; m_publicKey.assign(value); } /** *

The public key, represented as a Base64 encoding, as required by RFC-4034 Page 5.

*/ inline KeySigningKey& WithPublicKey(const Aws::String& value) { SetPublicKey(value); return *this;} /** *

The public key, represented as a Base64 encoding, as required by RFC-4034 Page 5.

*/ inline KeySigningKey& WithPublicKey(Aws::String&& value) { SetPublicKey(std::move(value)); return *this;} /** *

The public key, represented as a Base64 encoding, as required by RFC-4034 Page 5.

*/ inline KeySigningKey& WithPublicKey(const char* value) { SetPublicKey(value); return *this;} /** *

A string that represents a delegation signer (DS) record.

*/ inline const Aws::String& GetDSRecord() const{ return m_dSRecord; } /** *

A string that represents a delegation signer (DS) record.

*/ inline bool DSRecordHasBeenSet() const { return m_dSRecordHasBeenSet; } /** *

A string that represents a delegation signer (DS) record.

*/ inline void SetDSRecord(const Aws::String& value) { m_dSRecordHasBeenSet = true; m_dSRecord = value; } /** *

A string that represents a delegation signer (DS) record.

*/ inline void SetDSRecord(Aws::String&& value) { m_dSRecordHasBeenSet = true; m_dSRecord = std::move(value); } /** *

A string that represents a delegation signer (DS) record.

*/ inline void SetDSRecord(const char* value) { m_dSRecordHasBeenSet = true; m_dSRecord.assign(value); } /** *

A string that represents a delegation signer (DS) record.

*/ inline KeySigningKey& WithDSRecord(const Aws::String& value) { SetDSRecord(value); return *this;} /** *

A string that represents a delegation signer (DS) record.

*/ inline KeySigningKey& WithDSRecord(Aws::String&& value) { SetDSRecord(std::move(value)); return *this;} /** *

A string that represents a delegation signer (DS) record.

*/ inline KeySigningKey& WithDSRecord(const char* value) { SetDSRecord(value); return *this;} /** *

A string that represents a DNSKEY record.

*/ inline const Aws::String& GetDNSKEYRecord() const{ return m_dNSKEYRecord; } /** *

A string that represents a DNSKEY record.

*/ inline bool DNSKEYRecordHasBeenSet() const { return m_dNSKEYRecordHasBeenSet; } /** *

A string that represents a DNSKEY record.

*/ inline void SetDNSKEYRecord(const Aws::String& value) { m_dNSKEYRecordHasBeenSet = true; m_dNSKEYRecord = value; } /** *

A string that represents a DNSKEY record.

*/ inline void SetDNSKEYRecord(Aws::String&& value) { m_dNSKEYRecordHasBeenSet = true; m_dNSKEYRecord = std::move(value); } /** *

A string that represents a DNSKEY record.

*/ inline void SetDNSKEYRecord(const char* value) { m_dNSKEYRecordHasBeenSet = true; m_dNSKEYRecord.assign(value); } /** *

A string that represents a DNSKEY record.

*/ inline KeySigningKey& WithDNSKEYRecord(const Aws::String& value) { SetDNSKEYRecord(value); return *this;} /** *

A string that represents a DNSKEY record.

*/ inline KeySigningKey& WithDNSKEYRecord(Aws::String&& value) { SetDNSKEYRecord(std::move(value)); return *this;} /** *

A string that represents a DNSKEY record.

*/ inline KeySigningKey& WithDNSKEYRecord(const char* value) { SetDNSKEYRecord(value); return *this;} /** *

A string that represents the current key-signing key (KSK) status.

*

Status can have one of the following values:

ACTIVE
*

The KSK is being used for signing.

INACTIVE

The * KSK is not being used for signing.

DELETING

The KSK * is in the process of being deleted.

ACTION_NEEDED
*

There is a problem with the KSK that requires you to take action to resolve. * For example, the customer managed key might have been deleted, or the * permissions for the customer managed key might have been changed.

*
INTERNAL_FAILURE

There was an error during a request. Before * you can continue to work with DNSSEC signing, including actions that involve * this KSK, you must correct the problem. For example, you may need to activate or * deactivate the KSK.

*/ inline const Aws::String& GetStatus() const{ return m_status; } /** *

A string that represents the current key-signing key (KSK) status.

*

Status can have one of the following values:

ACTIVE
*

The KSK is being used for signing.

INACTIVE

The * KSK is not being used for signing.

DELETING

The KSK * is in the process of being deleted.

ACTION_NEEDED
*

There is a problem with the KSK that requires you to take action to resolve. * For example, the customer managed key might have been deleted, or the * permissions for the customer managed key might have been changed.

*
INTERNAL_FAILURE

There was an error during a request. Before * you can continue to work with DNSSEC signing, including actions that involve * this KSK, you must correct the problem. For example, you may need to activate or * deactivate the KSK.

*/ inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; } /** *

A string that represents the current key-signing key (KSK) status.

*

Status can have one of the following values:

ACTIVE
*

The KSK is being used for signing.

INACTIVE

The * KSK is not being used for signing.

DELETING

The KSK * is in the process of being deleted.

ACTION_NEEDED
*

There is a problem with the KSK that requires you to take action to resolve. * For example, the customer managed key might have been deleted, or the * permissions for the customer managed key might have been changed.

*
INTERNAL_FAILURE

There was an error during a request. Before * you can continue to work with DNSSEC signing, including actions that involve * this KSK, you must correct the problem. For example, you may need to activate or * deactivate the KSK.

*/ inline void SetStatus(const Aws::String& value) { m_statusHasBeenSet = true; m_status = value; } /** *

A string that represents the current key-signing key (KSK) status.

*

Status can have one of the following values:

ACTIVE
*

The KSK is being used for signing.

INACTIVE

The * KSK is not being used for signing.

DELETING

The KSK * is in the process of being deleted.

ACTION_NEEDED
*

There is a problem with the KSK that requires you to take action to resolve. * For example, the customer managed key might have been deleted, or the * permissions for the customer managed key might have been changed.

*
INTERNAL_FAILURE

There was an error during a request. Before * you can continue to work with DNSSEC signing, including actions that involve * this KSK, you must correct the problem. For example, you may need to activate or * deactivate the KSK.

*/ inline void SetStatus(Aws::String&& value) { m_statusHasBeenSet = true; m_status = std::move(value); } /** *

A string that represents the current key-signing key (KSK) status.

*

Status can have one of the following values:

ACTIVE
*

The KSK is being used for signing.

INACTIVE

The * KSK is not being used for signing.

DELETING

The KSK * is in the process of being deleted.

ACTION_NEEDED
*

There is a problem with the KSK that requires you to take action to resolve. * For example, the customer managed key might have been deleted, or the * permissions for the customer managed key might have been changed.

*
INTERNAL_FAILURE

There was an error during a request. Before * you can continue to work with DNSSEC signing, including actions that involve * this KSK, you must correct the problem. For example, you may need to activate or * deactivate the KSK.

*/ inline void SetStatus(const char* value) { m_statusHasBeenSet = true; m_status.assign(value); } /** *

A string that represents the current key-signing key (KSK) status.

*

Status can have one of the following values:

ACTIVE
*

The KSK is being used for signing.

INACTIVE

The * KSK is not being used for signing.

DELETING

The KSK * is in the process of being deleted.

ACTION_NEEDED
*

There is a problem with the KSK that requires you to take action to resolve. * For example, the customer managed key might have been deleted, or the * permissions for the customer managed key might have been changed.

*
INTERNAL_FAILURE

There was an error during a request. Before * you can continue to work with DNSSEC signing, including actions that involve * this KSK, you must correct the problem. For example, you may need to activate or * deactivate the KSK.

*/ inline KeySigningKey& WithStatus(const Aws::String& value) { SetStatus(value); return *this;} /** *

A string that represents the current key-signing key (KSK) status.

*

Status can have one of the following values:

ACTIVE
*

The KSK is being used for signing.

INACTIVE

The * KSK is not being used for signing.

DELETING

The KSK * is in the process of being deleted.

ACTION_NEEDED
*

There is a problem with the KSK that requires you to take action to resolve. * For example, the customer managed key might have been deleted, or the * permissions for the customer managed key might have been changed.

*
INTERNAL_FAILURE

There was an error during a request. Before * you can continue to work with DNSSEC signing, including actions that involve * this KSK, you must correct the problem. For example, you may need to activate or * deactivate the KSK.

*/ inline KeySigningKey& WithStatus(Aws::String&& value) { SetStatus(std::move(value)); return *this;} /** *

A string that represents the current key-signing key (KSK) status.

*

Status can have one of the following values:

ACTIVE
*

The KSK is being used for signing.

INACTIVE

The * KSK is not being used for signing.

DELETING

The KSK * is in the process of being deleted.

ACTION_NEEDED
*

There is a problem with the KSK that requires you to take action to resolve. * For example, the customer managed key might have been deleted, or the * permissions for the customer managed key might have been changed.

*
INTERNAL_FAILURE

There was an error during a request. Before * you can continue to work with DNSSEC signing, including actions that involve * this KSK, you must correct the problem. For example, you may need to activate or * deactivate the KSK.

*/ inline KeySigningKey& WithStatus(const char* value) { SetStatus(value); return *this;} /** *

The status message provided for the following key-signing key (KSK) statuses: * ACTION_NEEDED or INTERNAL_FAILURE. The status message * includes information about what the problem might be and steps that you can take * to correct the issue.

*/ inline const Aws::String& GetStatusMessage() const{ return m_statusMessage; } /** *

The status message provided for the following key-signing key (KSK) statuses: * ACTION_NEEDED or INTERNAL_FAILURE. The status message * includes information about what the problem might be and steps that you can take * to correct the issue.

*/ inline bool StatusMessageHasBeenSet() const { return m_statusMessageHasBeenSet; } /** *

The status message provided for the following key-signing key (KSK) statuses: * ACTION_NEEDED or INTERNAL_FAILURE. The status message * includes information about what the problem might be and steps that you can take * to correct the issue.

*/ inline void SetStatusMessage(const Aws::String& value) { m_statusMessageHasBeenSet = true; m_statusMessage = value; } /** *

The status message provided for the following key-signing key (KSK) statuses: * ACTION_NEEDED or INTERNAL_FAILURE. The status message * includes information about what the problem might be and steps that you can take * to correct the issue.

*/ inline void SetStatusMessage(Aws::String&& value) { m_statusMessageHasBeenSet = true; m_statusMessage = std::move(value); } /** *

The status message provided for the following key-signing key (KSK) statuses: * ACTION_NEEDED or INTERNAL_FAILURE. The status message * includes information about what the problem might be and steps that you can take * to correct the issue.

*/ inline void SetStatusMessage(const char* value) { m_statusMessageHasBeenSet = true; m_statusMessage.assign(value); } /** *

The status message provided for the following key-signing key (KSK) statuses: * ACTION_NEEDED or INTERNAL_FAILURE. The status message * includes information about what the problem might be and steps that you can take * to correct the issue.

*/ inline KeySigningKey& WithStatusMessage(const Aws::String& value) { SetStatusMessage(value); return *this;} /** *

The status message provided for the following key-signing key (KSK) statuses: * ACTION_NEEDED or INTERNAL_FAILURE. The status message * includes information about what the problem might be and steps that you can take * to correct the issue.

*/ inline KeySigningKey& WithStatusMessage(Aws::String&& value) { SetStatusMessage(std::move(value)); return *this;} /** *

The status message provided for the following key-signing key (KSK) statuses: * ACTION_NEEDED or INTERNAL_FAILURE. The status message * includes information about what the problem might be and steps that you can take * to correct the issue.

*/ inline KeySigningKey& WithStatusMessage(const char* value) { SetStatusMessage(value); return *this;} /** *

The date when the key-signing key (KSK) was created.

*/ inline const Aws::Utils::DateTime& GetCreatedDate() const{ return m_createdDate; } /** *

The date when the key-signing key (KSK) was created.

*/ inline bool CreatedDateHasBeenSet() const { return m_createdDateHasBeenSet; } /** *

The date when the key-signing key (KSK) was created.

*/ inline void SetCreatedDate(const Aws::Utils::DateTime& value) { m_createdDateHasBeenSet = true; m_createdDate = value; } /** *

The date when the key-signing key (KSK) was created.

*/ inline void SetCreatedDate(Aws::Utils::DateTime&& value) { m_createdDateHasBeenSet = true; m_createdDate = std::move(value); } /** *

The date when the key-signing key (KSK) was created.

*/ inline KeySigningKey& WithCreatedDate(const Aws::Utils::DateTime& value) { SetCreatedDate(value); return *this;} /** *

The date when the key-signing key (KSK) was created.

*/ inline KeySigningKey& WithCreatedDate(Aws::Utils::DateTime&& value) { SetCreatedDate(std::move(value)); return *this;} /** *

The last time that the key-signing key (KSK) was changed.

*/ inline const Aws::Utils::DateTime& GetLastModifiedDate() const{ return m_lastModifiedDate; } /** *

The last time that the key-signing key (KSK) was changed.

*/ inline bool LastModifiedDateHasBeenSet() const { return m_lastModifiedDateHasBeenSet; } /** *

The last time that the key-signing key (KSK) was changed.

*/ inline void SetLastModifiedDate(const Aws::Utils::DateTime& value) { m_lastModifiedDateHasBeenSet = true; m_lastModifiedDate = value; } /** *

The last time that the key-signing key (KSK) was changed.

*/ inline void SetLastModifiedDate(Aws::Utils::DateTime&& value) { m_lastModifiedDateHasBeenSet = true; m_lastModifiedDate = std::move(value); } /** *

The last time that the key-signing key (KSK) was changed.

*/ inline KeySigningKey& WithLastModifiedDate(const Aws::Utils::DateTime& value) { SetLastModifiedDate(value); return *this;} /** *

The last time that the key-signing key (KSK) was changed.

*/ inline KeySigningKey& WithLastModifiedDate(Aws::Utils::DateTime&& value) { SetLastModifiedDate(std::move(value)); return *this;} private: Aws::String m_name; bool m_nameHasBeenSet = false; Aws::String m_kmsArn; bool m_kmsArnHasBeenSet = false; int m_flag; bool m_flagHasBeenSet = false; Aws::String m_signingAlgorithmMnemonic; bool m_signingAlgorithmMnemonicHasBeenSet = false; int m_signingAlgorithmType; bool m_signingAlgorithmTypeHasBeenSet = false; Aws::String m_digestAlgorithmMnemonic; bool m_digestAlgorithmMnemonicHasBeenSet = false; int m_digestAlgorithmType; bool m_digestAlgorithmTypeHasBeenSet = false; int m_keyTag; bool m_keyTagHasBeenSet = false; Aws::String m_digestValue; bool m_digestValueHasBeenSet = false; Aws::String m_publicKey; bool m_publicKeyHasBeenSet = false; Aws::String m_dSRecord; bool m_dSRecordHasBeenSet = false; Aws::String m_dNSKEYRecord; bool m_dNSKEYRecordHasBeenSet = false; Aws::String m_status; bool m_statusHasBeenSet = false; Aws::String m_statusMessage; bool m_statusMessageHasBeenSet = false; Aws::Utils::DateTime m_createdDate; bool m_createdDateHasBeenSet = false; Aws::Utils::DateTime m_lastModifiedDate; bool m_lastModifiedDateHasBeenSet = false; }; } // namespace Model } // namespace Route53 } // namespace Aws