/* * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.snowball.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.AmazonWebServiceRequest; /** * * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class CreateClusterRequest extends com.amazonaws.AmazonWebServiceRequest implements Serializable, Cloneable { /** *

* 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. *

*/ private String jobType; /** *

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

*/ private JobResource resources; /** *

* 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). *

*/ private OnDeviceServiceConfiguration onDeviceServiceConfiguration; /** *

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

*/ private String description; /** *

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

*/ private String addressId; /** *

* 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). *

*/ private String kmsKeyARN; /** *

* 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). *

*/ private String roleARN; /** *

* 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. *

*/ private String snowballType; /** *

* 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: *

* * */ private String shippingOption; /** *

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

*/ private Notification notification; /** *

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

*/ private String forwardingAddressId; /** *

* The tax documents required in your Amazon Web Services Region. *

*/ private TaxDocuments taxDocuments; /** *

* 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. *

*/ private String remoteManagement; /** *

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

*/ private Integer initialClusterSize; /** *

* 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. *

*/ private Boolean forceCreateJobs; /** *

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

*/ private java.util.List longTermPricingIds; /** *

* 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. *

*/ private String snowballCapacityPreference; /** *

* 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. *

* * @param 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. * @see JobType */ public void setJobType(String jobType) { this.jobType = 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. *

* * @return 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. * @see JobType */ public String getJobType() { return this.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. *

* * @param 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. * @return Returns a reference to this object so that method calls can be chained together. * @see JobType */ public CreateClusterRequest withJobType(String jobType) { setJobType(jobType); 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. *

* * @param 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. * @see JobType */ public void setJobType(JobType jobType) { withJobType(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. *

* * @param 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. * @return Returns a reference to this object so that method calls can be chained together. * @see JobType */ public CreateClusterRequest withJobType(JobType jobType) { this.jobType = jobType.toString(); return this; } /** *

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

* * @param resources * The resources associated with the cluster job. These resources include Amazon S3 buckets and optional * Lambda functions written in the Python language. */ public void setResources(JobResource resources) { this.resources = resources; } /** *

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

* * @return The resources associated with the cluster job. These resources include Amazon S3 buckets and optional * Lambda functions written in the Python language. */ public JobResource getResources() { return this.resources; } /** *

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

* * @param resources * The resources associated with the cluster job. These resources include Amazon S3 buckets and optional * Lambda functions written in the Python language. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateClusterRequest withResources(JobResource resources) { setResources(resources); 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). *

* * @param 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). */ public void setOnDeviceServiceConfiguration(OnDeviceServiceConfiguration onDeviceServiceConfiguration) { this.onDeviceServiceConfiguration = 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). *

* * @return 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). */ public OnDeviceServiceConfiguration getOnDeviceServiceConfiguration() { return this.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). *

* * @param 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). * @return Returns a reference to this object so that method calls can be chained together. */ public CreateClusterRequest withOnDeviceServiceConfiguration(OnDeviceServiceConfiguration onDeviceServiceConfiguration) { setOnDeviceServiceConfiguration(onDeviceServiceConfiguration); return this; } /** *

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

* * @param description * An optional description of this specific cluster, for example Environmental Data Cluster-01. */ public void setDescription(String description) { this.description = description; } /** *

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

* * @return An optional description of this specific cluster, for example Environmental Data Cluster-01. */ public String getDescription() { return this.description; } /** *

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

* * @param description * An optional description of this specific cluster, for example Environmental Data Cluster-01. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateClusterRequest withDescription(String description) { setDescription(description); return this; } /** *

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

* * @param addressId * The ID for the address that you want the cluster shipped to. */ public void setAddressId(String addressId) { this.addressId = addressId; } /** *

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

* * @return The ID for the address that you want the cluster shipped to. */ public String getAddressId() { return this.addressId; } /** *

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

* * @param addressId * The ID for the address that you want the cluster shipped to. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateClusterRequest withAddressId(String addressId) { setAddressId(addressId); 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). *

* * @param 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). */ public void setKmsKeyARN(String kmsKeyARN) { this.kmsKeyARN = 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). *

* * @return 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). */ public String getKmsKeyARN() { return this.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). *

* * @param 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). * @return Returns a reference to this object so that method calls can be chained together. */ public CreateClusterRequest withKmsKeyARN(String kmsKeyARN) { setKmsKeyARN(kmsKeyARN); 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). *

* * @param 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). */ public void setRoleARN(String roleARN) { this.roleARN = 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). *

* * @return 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). */ public String getRoleARN() { return this.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). *

* * @param 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). * @return Returns a reference to this object so that method calls can be chained together. */ public CreateClusterRequest withRoleARN(String roleARN) { setRoleARN(roleARN); 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. *

* * @param 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. * @see SnowballType */ public void setSnowballType(String snowballType) { this.snowballType = 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. *

* * @return 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. * @see SnowballType */ public String getSnowballType() { return this.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. *

* * @param 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. * @return Returns a reference to this object so that method calls can be chained together. * @see SnowballType */ public CreateClusterRequest withSnowballType(String snowballType) { setSnowballType(snowballType); 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. *

* * @param 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. * @see SnowballType */ public void setSnowballType(SnowballType snowballType) { withSnowballType(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. *

* * @param 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. * @return Returns a reference to this object so that method calls can be chained together. * @see SnowballType */ public CreateClusterRequest withSnowballType(SnowballType snowballType) { this.snowballType = snowballType.toString(); 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: *

* * * * @param 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:

* *