/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace Snowball { namespace Model { /** */ class CreateClusterRequest : public SnowballRequest { public: AWS_SNOWBALL_API CreateClusterRequest(); // 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 "CreateCluster"; } AWS_SNOWBALL_API Aws::String SerializePayload() const override; AWS_SNOWBALL_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

The type of job for this cluster. Currently, the only job type supported for * clusters is LOCAL_USE.

For more information, see * "https://docs.aws.amazon.com/snowball/latest/snowcone-guide/snow-device-types.html" * (Snow Family Devices and Capacity) in the Snowcone User Guide or * "https://docs.aws.amazon.com/snowball/latest/developer-guide/snow-device-types.html" * (Snow Family Devices and Capacity) in the Snowcone User Guide.

*/ inline const JobType& GetJobType() const{ return m_jobType; } /** *

The type of job for this cluster. Currently, the only job type supported for * clusters is LOCAL_USE.

For more information, see * "https://docs.aws.amazon.com/snowball/latest/snowcone-guide/snow-device-types.html" * (Snow Family Devices and Capacity) in the Snowcone User Guide or * "https://docs.aws.amazon.com/snowball/latest/developer-guide/snow-device-types.html" * (Snow Family Devices and Capacity) in the Snowcone User Guide.

*/ inline bool JobTypeHasBeenSet() const { return m_jobTypeHasBeenSet; } /** *

The type of job for this cluster. Currently, the only job type supported for * clusters is LOCAL_USE.

For more information, see * "https://docs.aws.amazon.com/snowball/latest/snowcone-guide/snow-device-types.html" * (Snow Family Devices and Capacity) in the Snowcone User Guide or * "https://docs.aws.amazon.com/snowball/latest/developer-guide/snow-device-types.html" * (Snow Family Devices and Capacity) in the Snowcone User Guide.

*/ inline void SetJobType(const JobType& value) { m_jobTypeHasBeenSet = true; m_jobType = value; } /** *

The type of job for this cluster. Currently, the only job type supported for * clusters is LOCAL_USE.

For more information, see * "https://docs.aws.amazon.com/snowball/latest/snowcone-guide/snow-device-types.html" * (Snow Family Devices and Capacity) in the Snowcone User Guide or * "https://docs.aws.amazon.com/snowball/latest/developer-guide/snow-device-types.html" * (Snow Family Devices and Capacity) in the Snowcone User Guide.

*/ inline void SetJobType(JobType&& value) { m_jobTypeHasBeenSet = true; m_jobType = std::move(value); } /** *

The type of job for this cluster. Currently, the only job type supported for * clusters is LOCAL_USE.

For more information, see * "https://docs.aws.amazon.com/snowball/latest/snowcone-guide/snow-device-types.html" * (Snow Family Devices and Capacity) in the Snowcone User Guide or * "https://docs.aws.amazon.com/snowball/latest/developer-guide/snow-device-types.html" * (Snow Family Devices and Capacity) in the Snowcone User Guide.

*/ inline CreateClusterRequest& WithJobType(const JobType& value) { SetJobType(value); return *this;} /** *

The type of job for this cluster. Currently, the only job type supported for * clusters is LOCAL_USE.

For more information, see * "https://docs.aws.amazon.com/snowball/latest/snowcone-guide/snow-device-types.html" * (Snow Family Devices and Capacity) in the Snowcone User Guide or * "https://docs.aws.amazon.com/snowball/latest/developer-guide/snow-device-types.html" * (Snow Family Devices and Capacity) in the Snowcone User Guide.

*/ inline CreateClusterRequest& WithJobType(JobType&& value) { SetJobType(std::move(value)); return *this;} /** *

The resources associated with the cluster job. These resources include Amazon * S3 buckets and optional Lambda functions written in the Python language.

*/ inline const JobResource& GetResources() const{ return m_resources; } /** *

The resources associated with the cluster job. These resources include Amazon * S3 buckets and optional Lambda functions written in the Python language.

*/ inline bool ResourcesHasBeenSet() const { return m_resourcesHasBeenSet; } /** *

The resources associated with the cluster job. These resources include Amazon * S3 buckets and optional Lambda functions written in the Python language.

*/ inline void SetResources(const JobResource& value) { m_resourcesHasBeenSet = true; m_resources = value; } /** *

The resources associated with the cluster job. These resources include Amazon * S3 buckets and optional Lambda functions written in the Python language.

*/ inline void SetResources(JobResource&& value) { m_resourcesHasBeenSet = true; m_resources = std::move(value); } /** *

The resources associated with the cluster job. These resources include Amazon * S3 buckets and optional Lambda functions written in the Python language.

*/ inline CreateClusterRequest& WithResources(const JobResource& value) { SetResources(value); return *this;} /** *

The resources associated with the cluster job. These resources include Amazon * S3 buckets and optional Lambda functions written in the Python language.

*/ inline CreateClusterRequest& WithResources(JobResource&& value) { SetResources(std::move(value)); return *this;} /** *

Specifies the service or services on the Snow Family device that your * transferred data will be exported from or imported into. Amazon Web Services * Snow Family device clusters support Amazon S3 and NFS (Network File System).

*/ inline const OnDeviceServiceConfiguration& GetOnDeviceServiceConfiguration() const{ return m_onDeviceServiceConfiguration; } /** *

Specifies the service or services on the Snow Family device that your * transferred data will be exported from or imported into. Amazon Web Services * Snow Family device clusters support Amazon S3 and NFS (Network File System).

*/ inline bool OnDeviceServiceConfigurationHasBeenSet() const { return m_onDeviceServiceConfigurationHasBeenSet; } /** *

Specifies the service or services on the Snow Family device that your * transferred data will be exported from or imported into. Amazon Web Services * Snow Family device clusters support Amazon S3 and NFS (Network File System).

*/ inline void SetOnDeviceServiceConfiguration(const OnDeviceServiceConfiguration& value) { m_onDeviceServiceConfigurationHasBeenSet = true; m_onDeviceServiceConfiguration = value; } /** *

Specifies the service or services on the Snow Family device that your * transferred data will be exported from or imported into. Amazon Web Services * Snow Family device clusters support Amazon S3 and NFS (Network File System).

*/ inline void SetOnDeviceServiceConfiguration(OnDeviceServiceConfiguration&& value) { m_onDeviceServiceConfigurationHasBeenSet = true; m_onDeviceServiceConfiguration = std::move(value); } /** *

Specifies the service or services on the Snow Family device that your * transferred data will be exported from or imported into. Amazon Web Services * Snow Family device clusters support Amazon S3 and NFS (Network File System).

*/ inline CreateClusterRequest& WithOnDeviceServiceConfiguration(const OnDeviceServiceConfiguration& value) { SetOnDeviceServiceConfiguration(value); return *this;} /** *

Specifies the service or services on the Snow Family device that your * transferred data will be exported from or imported into. Amazon Web Services * Snow Family device clusters support Amazon S3 and NFS (Network File System).

*/ inline CreateClusterRequest& WithOnDeviceServiceConfiguration(OnDeviceServiceConfiguration&& value) { SetOnDeviceServiceConfiguration(std::move(value)); return *this;} /** *

An optional description of this specific cluster, for example * Environmental Data Cluster-01.

*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *

An optional description of this specific cluster, for example * Environmental Data Cluster-01.

*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *

An optional description of this specific cluster, for example * Environmental Data Cluster-01.

*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *

An optional description of this specific cluster, for example * Environmental Data Cluster-01.

*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *

An optional description of this specific cluster, for example * Environmental Data Cluster-01.

*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *

An optional description of this specific cluster, for example * Environmental Data Cluster-01.

*/ inline CreateClusterRequest& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

An optional description of this specific cluster, for example * Environmental Data Cluster-01.

*/ inline CreateClusterRequest& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *

An optional description of this specific cluster, for example * Environmental Data Cluster-01.

*/ inline CreateClusterRequest& WithDescription(const char* value) { SetDescription(value); return *this;} /** *

The ID for the address that you want the cluster shipped to.

*/ inline const Aws::String& GetAddressId() const{ return m_addressId; } /** *

The ID for the address that you want the cluster shipped to.

*/ inline bool AddressIdHasBeenSet() const { return m_addressIdHasBeenSet; } /** *

The ID for the address that you want the cluster shipped to.

*/ inline void SetAddressId(const Aws::String& value) { m_addressIdHasBeenSet = true; m_addressId = value; } /** *

The ID for the address that you want the cluster shipped to.

*/ inline void SetAddressId(Aws::String&& value) { m_addressIdHasBeenSet = true; m_addressId = std::move(value); } /** *

The ID for the address that you want the cluster shipped to.

*/ inline void SetAddressId(const char* value) { m_addressIdHasBeenSet = true; m_addressId.assign(value); } /** *

The ID for the address that you want the cluster shipped to.

*/ inline CreateClusterRequest& WithAddressId(const Aws::String& value) { SetAddressId(value); return *this;} /** *

The ID for the address that you want the cluster shipped to.

*/ inline CreateClusterRequest& WithAddressId(Aws::String&& value) { SetAddressId(std::move(value)); return *this;} /** *

The ID for the address that you want the cluster shipped to.

*/ inline CreateClusterRequest& WithAddressId(const char* value) { SetAddressId(value); return *this;} /** *

The KmsKeyARN value that you want to associate with this * cluster. KmsKeyARN values are created by using the CreateKey * API action in Key Management Service (KMS).

*/ inline const Aws::String& GetKmsKeyARN() const{ return m_kmsKeyARN; } /** *

The KmsKeyARN value that you want to associate with this * cluster. KmsKeyARN values are created by using the CreateKey * API action in Key Management Service (KMS).

*/ inline bool KmsKeyARNHasBeenSet() const { return m_kmsKeyARNHasBeenSet; } /** *

The KmsKeyARN value that you want to associate with this * cluster. KmsKeyARN values are created by using the CreateKey * API action in Key Management Service (KMS).

*/ inline void SetKmsKeyARN(const Aws::String& value) { m_kmsKeyARNHasBeenSet = true; m_kmsKeyARN = value; } /** *

The KmsKeyARN value that you want to associate with this * cluster. KmsKeyARN values are created by using the CreateKey * API action in Key Management Service (KMS).

*/ inline void SetKmsKeyARN(Aws::String&& value) { m_kmsKeyARNHasBeenSet = true; m_kmsKeyARN = std::move(value); } /** *

The KmsKeyARN value that you want to associate with this * cluster. KmsKeyARN values are created by using the CreateKey * API action in Key Management Service (KMS).

*/ inline void SetKmsKeyARN(const char* value) { m_kmsKeyARNHasBeenSet = true; m_kmsKeyARN.assign(value); } /** *

The KmsKeyARN value that you want to associate with this * cluster. KmsKeyARN values are created by using the CreateKey * API action in Key Management Service (KMS).

*/ inline CreateClusterRequest& WithKmsKeyARN(const Aws::String& value) { SetKmsKeyARN(value); return *this;} /** *

The KmsKeyARN value that you want to associate with this * cluster. KmsKeyARN values are created by using the CreateKey * API action in Key Management Service (KMS).

*/ inline CreateClusterRequest& WithKmsKeyARN(Aws::String&& value) { SetKmsKeyARN(std::move(value)); return *this;} /** *

The KmsKeyARN value that you want to associate with this * cluster. KmsKeyARN values are created by using the CreateKey * API action in Key Management Service (KMS).

*/ inline CreateClusterRequest& WithKmsKeyARN(const char* value) { SetKmsKeyARN(value); return *this;} /** *

The RoleARN that you want to associate with this cluster. * RoleArn values are created by using the CreateRole * API action in Identity and Access Management (IAM).

*/ inline const Aws::String& GetRoleARN() const{ return m_roleARN; } /** *

The RoleARN that you want to associate with this cluster. * RoleArn values are created by using the CreateRole * API action in Identity and Access Management (IAM).

*/ inline bool RoleARNHasBeenSet() const { return m_roleARNHasBeenSet; } /** *

The RoleARN that you want to associate with this cluster. * RoleArn values are created by using the CreateRole * API action in Identity and Access Management (IAM).

*/ inline void SetRoleARN(const Aws::String& value) { m_roleARNHasBeenSet = true; m_roleARN = value; } /** *

The RoleARN that you want to associate with this cluster. * RoleArn values are created by using the CreateRole * API action in Identity and Access Management (IAM).

*/ inline void SetRoleARN(Aws::String&& value) { m_roleARNHasBeenSet = true; m_roleARN = std::move(value); } /** *

The RoleARN that you want to associate with this cluster. * RoleArn values are created by using the CreateRole * API action in Identity and Access Management (IAM).

*/ inline void SetRoleARN(const char* value) { m_roleARNHasBeenSet = true; m_roleARN.assign(value); } /** *

The RoleARN that you want to associate with this cluster. * RoleArn values are created by using the CreateRole * API action in Identity and Access Management (IAM).

*/ inline CreateClusterRequest& WithRoleARN(const Aws::String& value) { SetRoleARN(value); return *this;} /** *

The RoleARN that you want to associate with this cluster. * RoleArn values are created by using the CreateRole * API action in Identity and Access Management (IAM).

*/ inline CreateClusterRequest& WithRoleARN(Aws::String&& value) { SetRoleARN(std::move(value)); return *this;} /** *

The RoleARN that you want to associate with this cluster. * RoleArn values are created by using the CreateRole * API action in Identity and Access Management (IAM).

*/ inline CreateClusterRequest& WithRoleARN(const char* value) { SetRoleARN(value); return *this;} /** *

The type of Snow Family devices to use for this cluster.

For * cluster jobs, Amazon Web Services Snow Family currently supports only the * EDGE device type.

For more information, see * "https://docs.aws.amazon.com/snowball/latest/snowcone-guide/snow-device-types.html" * (Snow Family Devices and Capacity) in the Snowcone User Guide or * "https://docs.aws.amazon.com/snowball/latest/developer-guide/snow-device-types.html" * (Snow Family Devices and Capacity) in the Snowcone User Guide.

*/ inline const SnowballType& GetSnowballType() const{ return m_snowballType; } /** *

The type of Snow Family devices to use for this cluster.

For * cluster jobs, Amazon Web Services Snow Family currently supports only the * EDGE device type.

For more information, see * "https://docs.aws.amazon.com/snowball/latest/snowcone-guide/snow-device-types.html" * (Snow Family Devices and Capacity) in the Snowcone User Guide or * "https://docs.aws.amazon.com/snowball/latest/developer-guide/snow-device-types.html" * (Snow Family Devices and Capacity) in the Snowcone User Guide.

*/ inline bool SnowballTypeHasBeenSet() const { return m_snowballTypeHasBeenSet; } /** *

The type of Snow Family devices to use for this cluster.

For * cluster jobs, Amazon Web Services Snow Family currently supports only the * EDGE device type.

For more information, see * "https://docs.aws.amazon.com/snowball/latest/snowcone-guide/snow-device-types.html" * (Snow Family Devices and Capacity) in the Snowcone User Guide or * "https://docs.aws.amazon.com/snowball/latest/developer-guide/snow-device-types.html" * (Snow Family Devices and Capacity) in the Snowcone User Guide.

*/ inline void SetSnowballType(const SnowballType& value) { m_snowballTypeHasBeenSet = true; m_snowballType = value; } /** *

The type of Snow Family devices to use for this cluster.

For * cluster jobs, Amazon Web Services Snow Family currently supports only the * EDGE device type.

For more information, see * "https://docs.aws.amazon.com/snowball/latest/snowcone-guide/snow-device-types.html" * (Snow Family Devices and Capacity) in the Snowcone User Guide or * "https://docs.aws.amazon.com/snowball/latest/developer-guide/snow-device-types.html" * (Snow Family Devices and Capacity) in the Snowcone User Guide.

*/ inline void SetSnowballType(SnowballType&& value) { m_snowballTypeHasBeenSet = true; m_snowballType = std::move(value); } /** *

The type of Snow Family devices to use for this cluster.

For * cluster jobs, Amazon Web Services Snow Family currently supports only the * EDGE device type.

For more information, see * "https://docs.aws.amazon.com/snowball/latest/snowcone-guide/snow-device-types.html" * (Snow Family Devices and Capacity) in the Snowcone User Guide or * "https://docs.aws.amazon.com/snowball/latest/developer-guide/snow-device-types.html" * (Snow Family Devices and Capacity) in the Snowcone User Guide.

*/ inline CreateClusterRequest& WithSnowballType(const SnowballType& value) { SetSnowballType(value); return *this;} /** *

The type of Snow Family devices to use for this cluster.

For * cluster jobs, Amazon Web Services Snow Family currently supports only the * EDGE device type.

For more information, see * "https://docs.aws.amazon.com/snowball/latest/snowcone-guide/snow-device-types.html" * (Snow Family Devices and Capacity) in the Snowcone User Guide or * "https://docs.aws.amazon.com/snowball/latest/developer-guide/snow-device-types.html" * (Snow Family Devices and Capacity) in the Snowcone User Guide.

*/ inline CreateClusterRequest& WithSnowballType(SnowballType&& value) { SetSnowballType(std::move(value)); return *this;} /** *

The shipping speed for each node in this cluster. This speed doesn't dictate * how soon you'll get each Snowball Edge device, rather it represents how quickly * each device moves to its destination while in transit. Regional shipping speeds * are as follows:

  • In Australia, you have access to express * shipping. Typically, Snow devices shipped express are delivered in about a * day.

  • In the European Union (EU), you have access to express * shipping. Typically, Snow devices shipped express are delivered in about a day. * In addition, most countries in the EU have access to standard shipping, which * typically takes less than a week, one way.

  • In India, Snow * devices are delivered in one to seven days.

  • In the United * States of America (US), you have access to one-day shipping and two-day * shipping.

  • In Australia, you have access to express * shipping. Typically, devices shipped express are delivered in about a day.

    *
  • In the European Union (EU), you have access to express shipping. * Typically, Snow devices shipped express are delivered in about a day. In * addition, most countries in the EU have access to standard shipping, which * typically takes less than a week, one way.

  • In India, Snow * devices are delivered in one to seven days.

  • In the US, you * have access to one-day shipping and two-day shipping.

*/ inline const ShippingOption& GetShippingOption() const{ return m_shippingOption; } /** *

The shipping speed for each node in this cluster. This speed doesn't dictate * how soon you'll get each Snowball Edge device, rather it represents how quickly * each device moves to its destination while in transit. Regional shipping speeds * are as follows:

  • In Australia, you have access to express * shipping. Typically, Snow devices shipped express are delivered in about a * day.

  • In the European Union (EU), you have access to express * shipping. Typically, Snow devices shipped express are delivered in about a day. * In addition, most countries in the EU have access to standard shipping, which * typically takes less than a week, one way.

  • In India, Snow * devices are delivered in one to seven days.

  • In the United * States of America (US), you have access to one-day shipping and two-day * shipping.

  • In Australia, you have access to express * shipping. Typically, devices shipped express are delivered in about a day.

    *
  • In the European Union (EU), you have access to express shipping. * Typically, Snow devices shipped express are delivered in about a day. In * addition, most countries in the EU have access to standard shipping, which * typically takes less than a week, one way.

  • In India, Snow * devices are delivered in one to seven days.

  • In the US, you * have access to one-day shipping and two-day shipping.

*/ inline bool ShippingOptionHasBeenSet() const { return m_shippingOptionHasBeenSet; } /** *

The shipping speed for each node in this cluster. This speed doesn't dictate * how soon you'll get each Snowball Edge device, rather it represents how quickly * each device moves to its destination while in transit. Regional shipping speeds * are as follows:

  • In Australia, you have access to express * shipping. Typically, Snow devices shipped express are delivered in about a * day.

  • In the European Union (EU), you have access to express * shipping. Typically, Snow devices shipped express are delivered in about a day. * In addition, most countries in the EU have access to standard shipping, which * typically takes less than a week, one way.

  • In India, Snow * devices are delivered in one to seven days.

  • In the United * States of America (US), you have access to one-day shipping and two-day * shipping.

  • In Australia, you have access to express * shipping. Typically, devices shipped express are delivered in about a day.

    *
  • In the European Union (EU), you have access to express shipping. * Typically, Snow devices shipped express are delivered in about a day. In * addition, most countries in the EU have access to standard shipping, which * typically takes less than a week, one way.

  • In India, Snow * devices are delivered in one to seven days.

  • In the US, you * have access to one-day shipping and two-day shipping.

*/ inline void SetShippingOption(const ShippingOption& value) { m_shippingOptionHasBeenSet = true; m_shippingOption = value; } /** *

The shipping speed for each node in this cluster. This speed doesn't dictate * how soon you'll get each Snowball Edge device, rather it represents how quickly * each device moves to its destination while in transit. Regional shipping speeds * are as follows:

  • In Australia, you have access to express * shipping. Typically, Snow devices shipped express are delivered in about a * day.

  • In the European Union (EU), you have access to express * shipping. Typically, Snow devices shipped express are delivered in about a day. * In addition, most countries in the EU have access to standard shipping, which * typically takes less than a week, one way.

  • In India, Snow * devices are delivered in one to seven days.

  • In the United * States of America (US), you have access to one-day shipping and two-day * shipping.

  • In Australia, you have access to express * shipping. Typically, devices shipped express are delivered in about a day.

    *
  • In the European Union (EU), you have access to express shipping. * Typically, Snow devices shipped express are delivered in about a day. In * addition, most countries in the EU have access to standard shipping, which * typically takes less than a week, one way.

  • In India, Snow * devices are delivered in one to seven days.

  • In the US, you * have access to one-day shipping and two-day shipping.

*/ inline void SetShippingOption(ShippingOption&& value) { m_shippingOptionHasBeenSet = true; m_shippingOption = std::move(value); } /** *

The shipping speed for each node in this cluster. This speed doesn't dictate * how soon you'll get each Snowball Edge device, rather it represents how quickly * each device moves to its destination while in transit. Regional shipping speeds * are as follows:

  • In Australia, you have access to express * shipping. Typically, Snow devices shipped express are delivered in about a * day.

  • In the European Union (EU), you have access to express * shipping. Typically, Snow devices shipped express are delivered in about a day. * In addition, most countries in the EU have access to standard shipping, which * typically takes less than a week, one way.

  • In India, Snow * devices are delivered in one to seven days.

  • In the United * States of America (US), you have access to one-day shipping and two-day * shipping.

  • In Australia, you have access to express * shipping. Typically, devices shipped express are delivered in about a day.

    *
  • In the European Union (EU), you have access to express shipping. * Typically, Snow devices shipped express are delivered in about a day. In * addition, most countries in the EU have access to standard shipping, which * typically takes less than a week, one way.

  • In India, Snow * devices are delivered in one to seven days.

  • In the US, you * have access to one-day shipping and two-day shipping.

*/ inline CreateClusterRequest& WithShippingOption(const ShippingOption& value) { SetShippingOption(value); return *this;} /** *

The shipping speed for each node in this cluster. This speed doesn't dictate * how soon you'll get each Snowball Edge device, rather it represents how quickly * each device moves to its destination while in transit. Regional shipping speeds * are as follows:

  • In Australia, you have access to express * shipping. Typically, Snow devices shipped express are delivered in about a * day.

  • In the European Union (EU), you have access to express * shipping. Typically, Snow devices shipped express are delivered in about a day. * In addition, most countries in the EU have access to standard shipping, which * typically takes less than a week, one way.

  • In India, Snow * devices are delivered in one to seven days.

  • In the United * States of America (US), you have access to one-day shipping and two-day * shipping.

  • In Australia, you have access to express * shipping. Typically, devices shipped express are delivered in about a day.

    *
  • In the European Union (EU), you have access to express shipping. * Typically, Snow devices shipped express are delivered in about a day. In * addition, most countries in the EU have access to standard shipping, which * typically takes less than a week, one way.

  • In India, Snow * devices are delivered in one to seven days.

  • In the US, you * have access to one-day shipping and two-day shipping.

*/ inline CreateClusterRequest& WithShippingOption(ShippingOption&& value) { SetShippingOption(std::move(value)); return *this;} /** *

The Amazon Simple Notification Service (Amazon SNS) notification settings for * this cluster.

*/ inline const Notification& GetNotification() const{ return m_notification; } /** *

The Amazon Simple Notification Service (Amazon SNS) notification settings for * this cluster.

*/ inline bool NotificationHasBeenSet() const { return m_notificationHasBeenSet; } /** *

The Amazon Simple Notification Service (Amazon SNS) notification settings for * this cluster.

*/ inline void SetNotification(const Notification& value) { m_notificationHasBeenSet = true; m_notification = value; } /** *

The Amazon Simple Notification Service (Amazon SNS) notification settings for * this cluster.

*/ inline void SetNotification(Notification&& value) { m_notificationHasBeenSet = true; m_notification = std::move(value); } /** *

The Amazon Simple Notification Service (Amazon SNS) notification settings for * this cluster.

*/ inline CreateClusterRequest& WithNotification(const Notification& value) { SetNotification(value); return *this;} /** *

The Amazon Simple Notification Service (Amazon SNS) notification settings for * this cluster.

*/ inline CreateClusterRequest& WithNotification(Notification&& value) { SetNotification(std::move(value)); return *this;} /** *

The forwarding address ID for a cluster. This field is not supported in most * regions.

*/ inline const Aws::String& GetForwardingAddressId() const{ return m_forwardingAddressId; } /** *

The forwarding address ID for a cluster. This field is not supported in most * regions.

*/ inline bool ForwardingAddressIdHasBeenSet() const { return m_forwardingAddressIdHasBeenSet; } /** *

The forwarding address ID for a cluster. This field is not supported in most * regions.

*/ inline void SetForwardingAddressId(const Aws::String& value) { m_forwardingAddressIdHasBeenSet = true; m_forwardingAddressId = value; } /** *

The forwarding address ID for a cluster. This field is not supported in most * regions.

*/ inline void SetForwardingAddressId(Aws::String&& value) { m_forwardingAddressIdHasBeenSet = true; m_forwardingAddressId = std::move(value); } /** *

The forwarding address ID for a cluster. This field is not supported in most * regions.

*/ inline void SetForwardingAddressId(const char* value) { m_forwardingAddressIdHasBeenSet = true; m_forwardingAddressId.assign(value); } /** *

The forwarding address ID for a cluster. This field is not supported in most * regions.

*/ inline CreateClusterRequest& WithForwardingAddressId(const Aws::String& value) { SetForwardingAddressId(value); return *this;} /** *

The forwarding address ID for a cluster. This field is not supported in most * regions.

*/ inline CreateClusterRequest& WithForwardingAddressId(Aws::String&& value) { SetForwardingAddressId(std::move(value)); return *this;} /** *

The forwarding address ID for a cluster. This field is not supported in most * regions.

*/ inline CreateClusterRequest& WithForwardingAddressId(const char* value) { SetForwardingAddressId(value); return *this;} /** *

The tax documents required in your Amazon Web Services Region.

*/ inline const TaxDocuments& GetTaxDocuments() const{ return m_taxDocuments; } /** *

The tax documents required in your Amazon Web Services Region.

*/ inline bool TaxDocumentsHasBeenSet() const { return m_taxDocumentsHasBeenSet; } /** *

The tax documents required in your Amazon Web Services Region.

*/ inline void SetTaxDocuments(const TaxDocuments& value) { m_taxDocumentsHasBeenSet = true; m_taxDocuments = value; } /** *

The tax documents required in your Amazon Web Services Region.

*/ inline void SetTaxDocuments(TaxDocuments&& value) { m_taxDocumentsHasBeenSet = true; m_taxDocuments = std::move(value); } /** *

The tax documents required in your Amazon Web Services Region.

*/ inline CreateClusterRequest& WithTaxDocuments(const TaxDocuments& value) { SetTaxDocuments(value); return *this;} /** *

The tax documents required in your Amazon Web Services Region.

*/ inline CreateClusterRequest& WithTaxDocuments(TaxDocuments&& value) { SetTaxDocuments(std::move(value)); return *this;} /** *

Allows you to securely operate and manage Snow devices in a cluster remotely * from outside of your internal network. When set to * INSTALLED_AUTOSTART, remote management will automatically be * available when the device arrives at your location. Otherwise, you need to use * the Snowball Client to manage the device.

*/ inline const RemoteManagement& GetRemoteManagement() const{ return m_remoteManagement; } /** *

Allows you to securely operate and manage Snow devices in a cluster remotely * from outside of your internal network. When set to * INSTALLED_AUTOSTART, remote management will automatically be * available when the device arrives at your location. Otherwise, you need to use * the Snowball Client to manage the device.

*/ inline bool RemoteManagementHasBeenSet() const { return m_remoteManagementHasBeenSet; } /** *

Allows you to securely operate and manage Snow devices in a cluster remotely * from outside of your internal network. When set to * INSTALLED_AUTOSTART, remote management will automatically be * available when the device arrives at your location. Otherwise, you need to use * the Snowball Client to manage the device.

*/ inline void SetRemoteManagement(const RemoteManagement& value) { m_remoteManagementHasBeenSet = true; m_remoteManagement = value; } /** *

Allows you to securely operate and manage Snow devices in a cluster remotely * from outside of your internal network. When set to * INSTALLED_AUTOSTART, remote management will automatically be * available when the device arrives at your location. Otherwise, you need to use * the Snowball Client to manage the device.

*/ inline void SetRemoteManagement(RemoteManagement&& value) { m_remoteManagementHasBeenSet = true; m_remoteManagement = std::move(value); } /** *

Allows you to securely operate and manage Snow devices in a cluster remotely * from outside of your internal network. When set to * INSTALLED_AUTOSTART, remote management will automatically be * available when the device arrives at your location. Otherwise, you need to use * the Snowball Client to manage the device.

*/ inline CreateClusterRequest& WithRemoteManagement(const RemoteManagement& value) { SetRemoteManagement(value); return *this;} /** *

Allows you to securely operate and manage Snow devices in a cluster remotely * from outside of your internal network. When set to * INSTALLED_AUTOSTART, remote management will automatically be * available when the device arrives at your location. Otherwise, you need to use * the Snowball Client to manage the device.

*/ inline CreateClusterRequest& WithRemoteManagement(RemoteManagement&& value) { SetRemoteManagement(std::move(value)); return *this;} /** *

If provided, each job will be automatically created and associated with the * new cluster. If not provided, will be treated as 0.

*/ inline int GetInitialClusterSize() const{ return m_initialClusterSize; } /** *

If provided, each job will be automatically created and associated with the * new cluster. If not provided, will be treated as 0.

*/ inline bool InitialClusterSizeHasBeenSet() const { return m_initialClusterSizeHasBeenSet; } /** *

If provided, each job will be automatically created and associated with the * new cluster. If not provided, will be treated as 0.

*/ inline void SetInitialClusterSize(int value) { m_initialClusterSizeHasBeenSet = true; m_initialClusterSize = value; } /** *

If provided, each job will be automatically created and associated with the * new cluster. If not provided, will be treated as 0.

*/ inline CreateClusterRequest& WithInitialClusterSize(int value) { SetInitialClusterSize(value); return *this;} /** *

Force to create cluster when user attempts to overprovision or underprovision * a cluster. A cluster is overprovisioned or underprovisioned if the initial size * of the cluster is more (overprovisioned) or less (underprovisioned) than what * needed to meet capacity requirement specified with * OnDeviceServiceConfiguration.

*/ inline bool GetForceCreateJobs() const{ return m_forceCreateJobs; } /** *

Force to create cluster when user attempts to overprovision or underprovision * a cluster. A cluster is overprovisioned or underprovisioned if the initial size * of the cluster is more (overprovisioned) or less (underprovisioned) than what * needed to meet capacity requirement specified with * OnDeviceServiceConfiguration.

*/ inline bool ForceCreateJobsHasBeenSet() const { return m_forceCreateJobsHasBeenSet; } /** *

Force to create cluster when user attempts to overprovision or underprovision * a cluster. A cluster is overprovisioned or underprovisioned if the initial size * of the cluster is more (overprovisioned) or less (underprovisioned) than what * needed to meet capacity requirement specified with * OnDeviceServiceConfiguration.

*/ inline void SetForceCreateJobs(bool value) { m_forceCreateJobsHasBeenSet = true; m_forceCreateJobs = value; } /** *

Force to create cluster when user attempts to overprovision or underprovision * a cluster. A cluster is overprovisioned or underprovisioned if the initial size * of the cluster is more (overprovisioned) or less (underprovisioned) than what * needed to meet capacity requirement specified with * OnDeviceServiceConfiguration.

*/ inline CreateClusterRequest& WithForceCreateJobs(bool value) { SetForceCreateJobs(value); return *this;} /** *

Lists long-term pricing id that will be used to associate with jobs * automatically created for the new cluster.

*/ inline const Aws::Vector& GetLongTermPricingIds() const{ return m_longTermPricingIds; } /** *

Lists long-term pricing id that will be used to associate with jobs * automatically created for the new cluster.

*/ inline bool LongTermPricingIdsHasBeenSet() const { return m_longTermPricingIdsHasBeenSet; } /** *

Lists long-term pricing id that will be used to associate with jobs * automatically created for the new cluster.

*/ inline void SetLongTermPricingIds(const Aws::Vector& value) { m_longTermPricingIdsHasBeenSet = true; m_longTermPricingIds = value; } /** *

Lists long-term pricing id that will be used to associate with jobs * automatically created for the new cluster.

*/ inline void SetLongTermPricingIds(Aws::Vector&& value) { m_longTermPricingIdsHasBeenSet = true; m_longTermPricingIds = std::move(value); } /** *

Lists long-term pricing id that will be used to associate with jobs * automatically created for the new cluster.

*/ inline CreateClusterRequest& WithLongTermPricingIds(const Aws::Vector& value) { SetLongTermPricingIds(value); return *this;} /** *

Lists long-term pricing id that will be used to associate with jobs * automatically created for the new cluster.

*/ inline CreateClusterRequest& WithLongTermPricingIds(Aws::Vector&& value) { SetLongTermPricingIds(std::move(value)); return *this;} /** *

Lists long-term pricing id that will be used to associate with jobs * automatically created for the new cluster.

*/ inline CreateClusterRequest& AddLongTermPricingIds(const Aws::String& value) { m_longTermPricingIdsHasBeenSet = true; m_longTermPricingIds.push_back(value); return *this; } /** *

Lists long-term pricing id that will be used to associate with jobs * automatically created for the new cluster.

*/ inline CreateClusterRequest& AddLongTermPricingIds(Aws::String&& value) { m_longTermPricingIdsHasBeenSet = true; m_longTermPricingIds.push_back(std::move(value)); return *this; } /** *

Lists long-term pricing id that will be used to associate with jobs * automatically created for the new cluster.

*/ inline CreateClusterRequest& AddLongTermPricingIds(const char* value) { m_longTermPricingIdsHasBeenSet = true; m_longTermPricingIds.push_back(value); return *this; } /** *

If your job is being created in one of the US regions, you have the option of * specifying what size Snow device you'd like for this job. In all other regions, * Snowballs come with 80 TB in storage capacity.

For more information, see * "https://docs.aws.amazon.com/snowball/latest/snowcone-guide/snow-device-types.html" * (Snow Family Devices and Capacity) in the Snowcone User Guide or * "https://docs.aws.amazon.com/snowball/latest/developer-guide/snow-device-types.html" * (Snow Family Devices and Capacity) in the Snowcone User Guide.

*/ inline const SnowballCapacity& GetSnowballCapacityPreference() const{ return m_snowballCapacityPreference; } /** *

If your job is being created in one of the US regions, you have the option of * specifying what size Snow device you'd like for this job. In all other regions, * Snowballs come with 80 TB in storage capacity.

For more information, see * "https://docs.aws.amazon.com/snowball/latest/snowcone-guide/snow-device-types.html" * (Snow Family Devices and Capacity) in the Snowcone User Guide or * "https://docs.aws.amazon.com/snowball/latest/developer-guide/snow-device-types.html" * (Snow Family Devices and Capacity) in the Snowcone User Guide.

*/ inline bool SnowballCapacityPreferenceHasBeenSet() const { return m_snowballCapacityPreferenceHasBeenSet; } /** *

If your job is being created in one of the US regions, you have the option of * specifying what size Snow device you'd like for this job. In all other regions, * Snowballs come with 80 TB in storage capacity.

For more information, see * "https://docs.aws.amazon.com/snowball/latest/snowcone-guide/snow-device-types.html" * (Snow Family Devices and Capacity) in the Snowcone User Guide or * "https://docs.aws.amazon.com/snowball/latest/developer-guide/snow-device-types.html" * (Snow Family Devices and Capacity) in the Snowcone User Guide.

*/ inline void SetSnowballCapacityPreference(const SnowballCapacity& value) { m_snowballCapacityPreferenceHasBeenSet = true; m_snowballCapacityPreference = value; } /** *

If your job is being created in one of the US regions, you have the option of * specifying what size Snow device you'd like for this job. In all other regions, * Snowballs come with 80 TB in storage capacity.

For more information, see * "https://docs.aws.amazon.com/snowball/latest/snowcone-guide/snow-device-types.html" * (Snow Family Devices and Capacity) in the Snowcone User Guide or * "https://docs.aws.amazon.com/snowball/latest/developer-guide/snow-device-types.html" * (Snow Family Devices and Capacity) in the Snowcone User Guide.

*/ inline void SetSnowballCapacityPreference(SnowballCapacity&& value) { m_snowballCapacityPreferenceHasBeenSet = true; m_snowballCapacityPreference = std::move(value); } /** *

If your job is being created in one of the US regions, you have the option of * specifying what size Snow device you'd like for this job. In all other regions, * Snowballs come with 80 TB in storage capacity.

For more information, see * "https://docs.aws.amazon.com/snowball/latest/snowcone-guide/snow-device-types.html" * (Snow Family Devices and Capacity) in the Snowcone User Guide or * "https://docs.aws.amazon.com/snowball/latest/developer-guide/snow-device-types.html" * (Snow Family Devices and Capacity) in the Snowcone User Guide.

*/ inline CreateClusterRequest& WithSnowballCapacityPreference(const SnowballCapacity& value) { SetSnowballCapacityPreference(value); return *this;} /** *

If your job is being created in one of the US regions, you have the option of * specifying what size Snow device you'd like for this job. In all other regions, * Snowballs come with 80 TB in storage capacity.

For more information, see * "https://docs.aws.amazon.com/snowball/latest/snowcone-guide/snow-device-types.html" * (Snow Family Devices and Capacity) in the Snowcone User Guide or * "https://docs.aws.amazon.com/snowball/latest/developer-guide/snow-device-types.html" * (Snow Family Devices and Capacity) in the Snowcone User Guide.

*/ inline CreateClusterRequest& WithSnowballCapacityPreference(SnowballCapacity&& value) { SetSnowballCapacityPreference(std::move(value)); return *this;} private: JobType m_jobType; bool m_jobTypeHasBeenSet = false; JobResource m_resources; bool m_resourcesHasBeenSet = false; OnDeviceServiceConfiguration m_onDeviceServiceConfiguration; bool m_onDeviceServiceConfigurationHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; Aws::String m_addressId; bool m_addressIdHasBeenSet = false; Aws::String m_kmsKeyARN; bool m_kmsKeyARNHasBeenSet = false; Aws::String m_roleARN; bool m_roleARNHasBeenSet = false; SnowballType m_snowballType; bool m_snowballTypeHasBeenSet = false; ShippingOption m_shippingOption; bool m_shippingOptionHasBeenSet = false; Notification m_notification; bool m_notificationHasBeenSet = false; Aws::String m_forwardingAddressId; bool m_forwardingAddressIdHasBeenSet = false; TaxDocuments m_taxDocuments; bool m_taxDocumentsHasBeenSet = false; RemoteManagement m_remoteManagement; bool m_remoteManagementHasBeenSet = false; int m_initialClusterSize; bool m_initialClusterSizeHasBeenSet = false; bool m_forceCreateJobs; bool m_forceCreateJobsHasBeenSet = false; Aws::Vector m_longTermPricingIds; bool m_longTermPricingIdsHasBeenSet = false; SnowballCapacity m_snowballCapacityPreference; bool m_snowballCapacityPreferenceHasBeenSet = false; }; } // namespace Model } // namespace Snowball } // namespace Aws