/** * 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 Route53 { namespace Model { /** */ class CreateKeySigningKeyRequest : public Route53Request { public: AWS_ROUTE53_API CreateKeySigningKeyRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "CreateKeySigningKey"; } AWS_ROUTE53_API Aws::String SerializePayload() const override; /** *

A unique string that identifies the request.

*/ inline const Aws::String& GetCallerReference() const{ return m_callerReference; } /** *

A unique string that identifies the request.

*/ inline bool CallerReferenceHasBeenSet() const { return m_callerReferenceHasBeenSet; } /** *

A unique string that identifies the request.

*/ inline void SetCallerReference(const Aws::String& value) { m_callerReferenceHasBeenSet = true; m_callerReference = value; } /** *

A unique string that identifies the request.

*/ inline void SetCallerReference(Aws::String&& value) { m_callerReferenceHasBeenSet = true; m_callerReference = std::move(value); } /** *

A unique string that identifies the request.

*/ inline void SetCallerReference(const char* value) { m_callerReferenceHasBeenSet = true; m_callerReference.assign(value); } /** *

A unique string that identifies the request.

*/ inline CreateKeySigningKeyRequest& WithCallerReference(const Aws::String& value) { SetCallerReference(value); return *this;} /** *

A unique string that identifies the request.

*/ inline CreateKeySigningKeyRequest& WithCallerReference(Aws::String&& value) { SetCallerReference(std::move(value)); return *this;} /** *

A unique string that identifies the request.

*/ inline CreateKeySigningKeyRequest& WithCallerReference(const char* value) { SetCallerReference(value); return *this;} /** *

The unique string (ID) used to identify a hosted zone.

*/ inline const Aws::String& GetHostedZoneId() const{ return m_hostedZoneId; } /** *

The unique string (ID) used to identify a hosted zone.

*/ inline bool HostedZoneIdHasBeenSet() const { return m_hostedZoneIdHasBeenSet; } /** *

The unique string (ID) used to identify a hosted zone.

*/ inline void SetHostedZoneId(const Aws::String& value) { m_hostedZoneIdHasBeenSet = true; m_hostedZoneId = value; } /** *

The unique string (ID) used to identify a hosted zone.

*/ inline void SetHostedZoneId(Aws::String&& value) { m_hostedZoneIdHasBeenSet = true; m_hostedZoneId = std::move(value); } /** *

The unique string (ID) used to identify a hosted zone.

*/ inline void SetHostedZoneId(const char* value) { m_hostedZoneIdHasBeenSet = true; m_hostedZoneId.assign(value); } /** *

The unique string (ID) used to identify a hosted zone.

*/ inline CreateKeySigningKeyRequest& WithHostedZoneId(const Aws::String& value) { SetHostedZoneId(value); return *this;} /** *

The unique string (ID) used to identify a hosted zone.

*/ inline CreateKeySigningKeyRequest& WithHostedZoneId(Aws::String&& value) { SetHostedZoneId(std::move(value)); return *this;} /** *

The unique string (ID) used to identify a hosted zone.

*/ inline CreateKeySigningKeyRequest& WithHostedZoneId(const char* value) { SetHostedZoneId(value); return *this;} /** *

The Amazon resource name (ARN) for a customer managed key in Key Management * Service (KMS). The KeyManagementServiceArn must be unique for each * key-signing key (KSK) in a single hosted zone. To see an example of * KeyManagementServiceArn that grants the correct permissions for * DNSSEC, scroll down to Example.

You must configure the customer * managed 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 a customer managed key in KMS, * see Key * Management Service concepts.

*/ inline const Aws::String& GetKeyManagementServiceArn() const{ return m_keyManagementServiceArn; } /** *

The Amazon resource name (ARN) for a customer managed key in Key Management * Service (KMS). The KeyManagementServiceArn must be unique for each * key-signing key (KSK) in a single hosted zone. To see an example of * KeyManagementServiceArn that grants the correct permissions for * DNSSEC, scroll down to Example.

You must configure the customer * managed 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 a customer managed key in KMS, * see Key * Management Service concepts.

*/ inline bool KeyManagementServiceArnHasBeenSet() const { return m_keyManagementServiceArnHasBeenSet; } /** *

The Amazon resource name (ARN) for a customer managed key in Key Management * Service (KMS). The KeyManagementServiceArn must be unique for each * key-signing key (KSK) in a single hosted zone. To see an example of * KeyManagementServiceArn that grants the correct permissions for * DNSSEC, scroll down to Example.

You must configure the customer * managed 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 a customer managed key in KMS, * see Key * Management Service concepts.

*/ inline void SetKeyManagementServiceArn(const Aws::String& value) { m_keyManagementServiceArnHasBeenSet = true; m_keyManagementServiceArn = value; } /** *

The Amazon resource name (ARN) for a customer managed key in Key Management * Service (KMS). The KeyManagementServiceArn must be unique for each * key-signing key (KSK) in a single hosted zone. To see an example of * KeyManagementServiceArn that grants the correct permissions for * DNSSEC, scroll down to Example.

You must configure the customer * managed 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 a customer managed key in KMS, * see Key * Management Service concepts.

*/ inline void SetKeyManagementServiceArn(Aws::String&& value) { m_keyManagementServiceArnHasBeenSet = true; m_keyManagementServiceArn = std::move(value); } /** *

The Amazon resource name (ARN) for a customer managed key in Key Management * Service (KMS). The KeyManagementServiceArn must be unique for each * key-signing key (KSK) in a single hosted zone. To see an example of * KeyManagementServiceArn that grants the correct permissions for * DNSSEC, scroll down to Example.

You must configure the customer * managed 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 a customer managed key in KMS, * see Key * Management Service concepts.

*/ inline void SetKeyManagementServiceArn(const char* value) { m_keyManagementServiceArnHasBeenSet = true; m_keyManagementServiceArn.assign(value); } /** *

The Amazon resource name (ARN) for a customer managed key in Key Management * Service (KMS). The KeyManagementServiceArn must be unique for each * key-signing key (KSK) in a single hosted zone. To see an example of * KeyManagementServiceArn that grants the correct permissions for * DNSSEC, scroll down to Example.

You must configure the customer * managed 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 a customer managed key in KMS, * see Key * Management Service concepts.

*/ inline CreateKeySigningKeyRequest& WithKeyManagementServiceArn(const Aws::String& value) { SetKeyManagementServiceArn(value); return *this;} /** *

The Amazon resource name (ARN) for a customer managed key in Key Management * Service (KMS). The KeyManagementServiceArn must be unique for each * key-signing key (KSK) in a single hosted zone. To see an example of * KeyManagementServiceArn that grants the correct permissions for * DNSSEC, scroll down to Example.

You must configure the customer * managed 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 a customer managed key in KMS, * see Key * Management Service concepts.

*/ inline CreateKeySigningKeyRequest& WithKeyManagementServiceArn(Aws::String&& value) { SetKeyManagementServiceArn(std::move(value)); return *this;} /** *

The Amazon resource name (ARN) for a customer managed key in Key Management * Service (KMS). The KeyManagementServiceArn must be unique for each * key-signing key (KSK) in a single hosted zone. To see an example of * KeyManagementServiceArn that grants the correct permissions for * DNSSEC, scroll down to Example.

You must configure the customer * managed 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 a customer managed key in KMS, * see Key * Management Service concepts.

*/ inline CreateKeySigningKeyRequest& WithKeyManagementServiceArn(const char* value) { SetKeyManagementServiceArn(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 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 CreateKeySigningKeyRequest& 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 CreateKeySigningKeyRequest& 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 CreateKeySigningKeyRequest& WithName(const char* value) { SetName(value); return *this;} /** *

A string specifying the initial status of the key-signing key (KSK). You can * set the value to ACTIVE or INACTIVE.

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

A string specifying the initial status of the key-signing key (KSK). You can * set the value to ACTIVE or INACTIVE.

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

A string specifying the initial status of the key-signing key (KSK). You can * set the value to ACTIVE or INACTIVE.

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

A string specifying the initial status of the key-signing key (KSK). You can * set the value to ACTIVE or INACTIVE.

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

A string specifying the initial status of the key-signing key (KSK). You can * set the value to ACTIVE or INACTIVE.

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

A string specifying the initial status of the key-signing key (KSK). You can * set the value to ACTIVE or INACTIVE.

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

A string specifying the initial status of the key-signing key (KSK). You can * set the value to ACTIVE or INACTIVE.

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

A string specifying the initial status of the key-signing key (KSK). You can * set the value to ACTIVE or INACTIVE.

*/ inline CreateKeySigningKeyRequest& WithStatus(const char* value) { SetStatus(value); return *this;} private: Aws::String m_callerReference; bool m_callerReferenceHasBeenSet = false; Aws::String m_hostedZoneId; bool m_hostedZoneIdHasBeenSet = false; Aws::String m_keyManagementServiceArn; bool m_keyManagementServiceArnHasBeenSet = false; Aws::String m_name; bool m_nameHasBeenSet = false; Aws::String m_status; bool m_statusHasBeenSet = false; }; } // namespace Model } // namespace Route53 } // namespace Aws