/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace EFS { namespace Model { /** *

Describes the destination file system to create in the replication * configuration.

See Also:

AWS * API Reference

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

To create a file system that uses Regional storage, specify the Amazon Web * Services Region in which to create the destination file system.

*/ inline const Aws::String& GetRegion() const{ return m_region; } /** *

To create a file system that uses Regional storage, specify the Amazon Web * Services Region in which to create the destination file system.

*/ inline bool RegionHasBeenSet() const { return m_regionHasBeenSet; } /** *

To create a file system that uses Regional storage, specify the Amazon Web * Services Region in which to create the destination file system.

*/ inline void SetRegion(const Aws::String& value) { m_regionHasBeenSet = true; m_region = value; } /** *

To create a file system that uses Regional storage, specify the Amazon Web * Services Region in which to create the destination file system.

*/ inline void SetRegion(Aws::String&& value) { m_regionHasBeenSet = true; m_region = std::move(value); } /** *

To create a file system that uses Regional storage, specify the Amazon Web * Services Region in which to create the destination file system.

*/ inline void SetRegion(const char* value) { m_regionHasBeenSet = true; m_region.assign(value); } /** *

To create a file system that uses Regional storage, specify the Amazon Web * Services Region in which to create the destination file system.

*/ inline DestinationToCreate& WithRegion(const Aws::String& value) { SetRegion(value); return *this;} /** *

To create a file system that uses Regional storage, specify the Amazon Web * Services Region in which to create the destination file system.

*/ inline DestinationToCreate& WithRegion(Aws::String&& value) { SetRegion(std::move(value)); return *this;} /** *

To create a file system that uses Regional storage, specify the Amazon Web * Services Region in which to create the destination file system.

*/ inline DestinationToCreate& WithRegion(const char* value) { SetRegion(value); return *this;} /** *

To create a file system that uses EFS One Zone storage, specify the name of * the Availability Zone in which to create the destination file system.

*/ inline const Aws::String& GetAvailabilityZoneName() const{ return m_availabilityZoneName; } /** *

To create a file system that uses EFS One Zone storage, specify the name of * the Availability Zone in which to create the destination file system.

*/ inline bool AvailabilityZoneNameHasBeenSet() const { return m_availabilityZoneNameHasBeenSet; } /** *

To create a file system that uses EFS One Zone storage, specify the name of * the Availability Zone in which to create the destination file system.

*/ inline void SetAvailabilityZoneName(const Aws::String& value) { m_availabilityZoneNameHasBeenSet = true; m_availabilityZoneName = value; } /** *

To create a file system that uses EFS One Zone storage, specify the name of * the Availability Zone in which to create the destination file system.

*/ inline void SetAvailabilityZoneName(Aws::String&& value) { m_availabilityZoneNameHasBeenSet = true; m_availabilityZoneName = std::move(value); } /** *

To create a file system that uses EFS One Zone storage, specify the name of * the Availability Zone in which to create the destination file system.

*/ inline void SetAvailabilityZoneName(const char* value) { m_availabilityZoneNameHasBeenSet = true; m_availabilityZoneName.assign(value); } /** *

To create a file system that uses EFS One Zone storage, specify the name of * the Availability Zone in which to create the destination file system.

*/ inline DestinationToCreate& WithAvailabilityZoneName(const Aws::String& value) { SetAvailabilityZoneName(value); return *this;} /** *

To create a file system that uses EFS One Zone storage, specify the name of * the Availability Zone in which to create the destination file system.

*/ inline DestinationToCreate& WithAvailabilityZoneName(Aws::String&& value) { SetAvailabilityZoneName(std::move(value)); return *this;} /** *

To create a file system that uses EFS One Zone storage, specify the name of * the Availability Zone in which to create the destination file system.

*/ inline DestinationToCreate& WithAvailabilityZoneName(const char* value) { SetAvailabilityZoneName(value); return *this;} /** *

Specifies the Key Management Service (KMS) key that you want to use to * encrypt the destination file system. If you do not specify a KMS key, Amazon EFS * uses your default KMS key for Amazon EFS, /aws/elasticfilesystem. * This ID can be in one of the following formats:

  • Key ID - The * unique identifier of the key, for example * 1234abcd-12ab-34cd-56ef-1234567890ab.

  • ARN - The * Amazon Resource Name (ARN) for the key, for example * arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    *
  • Key alias - A previously created display name for a key, for * example alias/projectKey1.

  • Key alias ARN - The * ARN for a key alias, for example * arn:aws:kms:us-west-2:444455556666:alias/projectKey1.

  • *
*/ inline const Aws::String& GetKmsKeyId() const{ return m_kmsKeyId; } /** *

Specifies the Key Management Service (KMS) key that you want to use to * encrypt the destination file system. If you do not specify a KMS key, Amazon EFS * uses your default KMS key for Amazon EFS, /aws/elasticfilesystem. * This ID can be in one of the following formats:

  • Key ID - The * unique identifier of the key, for example * 1234abcd-12ab-34cd-56ef-1234567890ab.

  • ARN - The * Amazon Resource Name (ARN) for the key, for example * arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    *
  • Key alias - A previously created display name for a key, for * example alias/projectKey1.

  • Key alias ARN - The * ARN for a key alias, for example * arn:aws:kms:us-west-2:444455556666:alias/projectKey1.

  • *
*/ inline bool KmsKeyIdHasBeenSet() const { return m_kmsKeyIdHasBeenSet; } /** *

Specifies the Key Management Service (KMS) key that you want to use to * encrypt the destination file system. If you do not specify a KMS key, Amazon EFS * uses your default KMS key for Amazon EFS, /aws/elasticfilesystem. * This ID can be in one of the following formats:

  • Key ID - The * unique identifier of the key, for example * 1234abcd-12ab-34cd-56ef-1234567890ab.

  • ARN - The * Amazon Resource Name (ARN) for the key, for example * arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    *
  • Key alias - A previously created display name for a key, for * example alias/projectKey1.

  • Key alias ARN - The * ARN for a key alias, for example * arn:aws:kms:us-west-2:444455556666:alias/projectKey1.

  • *
*/ inline void SetKmsKeyId(const Aws::String& value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId = value; } /** *

Specifies the Key Management Service (KMS) key that you want to use to * encrypt the destination file system. If you do not specify a KMS key, Amazon EFS * uses your default KMS key for Amazon EFS, /aws/elasticfilesystem. * This ID can be in one of the following formats:

  • Key ID - The * unique identifier of the key, for example * 1234abcd-12ab-34cd-56ef-1234567890ab.

  • ARN - The * Amazon Resource Name (ARN) for the key, for example * arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    *
  • Key alias - A previously created display name for a key, for * example alias/projectKey1.

  • Key alias ARN - The * ARN for a key alias, for example * arn:aws:kms:us-west-2:444455556666:alias/projectKey1.

  • *
*/ inline void SetKmsKeyId(Aws::String&& value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId = std::move(value); } /** *

Specifies the Key Management Service (KMS) key that you want to use to * encrypt the destination file system. If you do not specify a KMS key, Amazon EFS * uses your default KMS key for Amazon EFS, /aws/elasticfilesystem. * This ID can be in one of the following formats:

  • Key ID - The * unique identifier of the key, for example * 1234abcd-12ab-34cd-56ef-1234567890ab.

  • ARN - The * Amazon Resource Name (ARN) for the key, for example * arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    *
  • Key alias - A previously created display name for a key, for * example alias/projectKey1.

  • Key alias ARN - The * ARN for a key alias, for example * arn:aws:kms:us-west-2:444455556666:alias/projectKey1.

  • *
*/ inline void SetKmsKeyId(const char* value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId.assign(value); } /** *

Specifies the Key Management Service (KMS) key that you want to use to * encrypt the destination file system. If you do not specify a KMS key, Amazon EFS * uses your default KMS key for Amazon EFS, /aws/elasticfilesystem. * This ID can be in one of the following formats:

  • Key ID - The * unique identifier of the key, for example * 1234abcd-12ab-34cd-56ef-1234567890ab.

  • ARN - The * Amazon Resource Name (ARN) for the key, for example * arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    *
  • Key alias - A previously created display name for a key, for * example alias/projectKey1.

  • Key alias ARN - The * ARN for a key alias, for example * arn:aws:kms:us-west-2:444455556666:alias/projectKey1.

  • *
*/ inline DestinationToCreate& WithKmsKeyId(const Aws::String& value) { SetKmsKeyId(value); return *this;} /** *

Specifies the Key Management Service (KMS) key that you want to use to * encrypt the destination file system. If you do not specify a KMS key, Amazon EFS * uses your default KMS key for Amazon EFS, /aws/elasticfilesystem. * This ID can be in one of the following formats:

  • Key ID - The * unique identifier of the key, for example * 1234abcd-12ab-34cd-56ef-1234567890ab.

  • ARN - The * Amazon Resource Name (ARN) for the key, for example * arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    *
  • Key alias - A previously created display name for a key, for * example alias/projectKey1.

  • Key alias ARN - The * ARN for a key alias, for example * arn:aws:kms:us-west-2:444455556666:alias/projectKey1.

  • *
*/ inline DestinationToCreate& WithKmsKeyId(Aws::String&& value) { SetKmsKeyId(std::move(value)); return *this;} /** *

Specifies the Key Management Service (KMS) key that you want to use to * encrypt the destination file system. If you do not specify a KMS key, Amazon EFS * uses your default KMS key for Amazon EFS, /aws/elasticfilesystem. * This ID can be in one of the following formats:

  • Key ID - The * unique identifier of the key, for example * 1234abcd-12ab-34cd-56ef-1234567890ab.

  • ARN - The * Amazon Resource Name (ARN) for the key, for example * arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    *
  • Key alias - A previously created display name for a key, for * example alias/projectKey1.

  • Key alias ARN - The * ARN for a key alias, for example * arn:aws:kms:us-west-2:444455556666:alias/projectKey1.

  • *
*/ inline DestinationToCreate& WithKmsKeyId(const char* value) { SetKmsKeyId(value); return *this;} private: Aws::String m_region; bool m_regionHasBeenSet = false; Aws::String m_availabilityZoneName; bool m_availabilityZoneNameHasBeenSet = false; Aws::String m_kmsKeyId; bool m_kmsKeyIdHasBeenSet = false; }; } // namespace Model } // namespace EFS } // namespace Aws