software.amazon.awssdk.services.snowball.model.CreateClusterRequest Maven / Gradle / Ivy
Show all versions of snowball Show documentation
/*
* Copyright 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 software.amazon.awssdk.services.snowball.model;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.function.BiConsumer;
import java.util.function.Consumer;
import java.util.function.Function;
import software.amazon.awssdk.annotations.Generated;
import software.amazon.awssdk.awscore.AwsRequestOverrideConfiguration;
import software.amazon.awssdk.core.SdkField;
import software.amazon.awssdk.core.SdkPojo;
import software.amazon.awssdk.core.protocol.MarshallLocation;
import software.amazon.awssdk.core.protocol.MarshallingType;
import software.amazon.awssdk.core.traits.ListTrait;
import software.amazon.awssdk.core.traits.LocationTrait;
import software.amazon.awssdk.core.util.DefaultSdkAutoConstructList;
import software.amazon.awssdk.core.util.SdkAutoConstructList;
import software.amazon.awssdk.utils.ToString;
import software.amazon.awssdk.utils.builder.CopyableBuilder;
import software.amazon.awssdk.utils.builder.ToCopyableBuilder;
/**
*/
@Generated("software.amazon.awssdk:codegen")
public final class CreateClusterRequest extends SnowballRequest implements
ToCopyableBuilder {
private static final SdkField JOB_TYPE_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("JobType").getter(getter(CreateClusterRequest::jobTypeAsString)).setter(setter(Builder::jobType))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("JobType").build()).build();
private static final SdkField RESOURCES_FIELD = SdkField. builder(MarshallingType.SDK_POJO)
.memberName("Resources").getter(getter(CreateClusterRequest::resources)).setter(setter(Builder::resources))
.constructor(JobResource::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Resources").build()).build();
private static final SdkField ON_DEVICE_SERVICE_CONFIGURATION_FIELD = SdkField
. builder(MarshallingType.SDK_POJO)
.memberName("OnDeviceServiceConfiguration")
.getter(getter(CreateClusterRequest::onDeviceServiceConfiguration))
.setter(setter(Builder::onDeviceServiceConfiguration))
.constructor(OnDeviceServiceConfiguration::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("OnDeviceServiceConfiguration")
.build()).build();
private static final SdkField DESCRIPTION_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("Description").getter(getter(CreateClusterRequest::description)).setter(setter(Builder::description))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Description").build()).build();
private static final SdkField ADDRESS_ID_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("AddressId").getter(getter(CreateClusterRequest::addressId)).setter(setter(Builder::addressId))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("AddressId").build()).build();
private static final SdkField KMS_KEY_ARN_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("KmsKeyARN").getter(getter(CreateClusterRequest::kmsKeyARN)).setter(setter(Builder::kmsKeyARN))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("KmsKeyARN").build()).build();
private static final SdkField ROLE_ARN_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("RoleARN").getter(getter(CreateClusterRequest::roleARN)).setter(setter(Builder::roleARN))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("RoleARN").build()).build();
private static final SdkField SNOWBALL_TYPE_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("SnowballType").getter(getter(CreateClusterRequest::snowballTypeAsString))
.setter(setter(Builder::snowballType))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("SnowballType").build()).build();
private static final SdkField SHIPPING_OPTION_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("ShippingOption").getter(getter(CreateClusterRequest::shippingOptionAsString))
.setter(setter(Builder::shippingOption))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ShippingOption").build()).build();
private static final SdkField NOTIFICATION_FIELD = SdkField. builder(MarshallingType.SDK_POJO)
.memberName("Notification").getter(getter(CreateClusterRequest::notification)).setter(setter(Builder::notification))
.constructor(Notification::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Notification").build()).build();
private static final SdkField FORWARDING_ADDRESS_ID_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("ForwardingAddressId").getter(getter(CreateClusterRequest::forwardingAddressId))
.setter(setter(Builder::forwardingAddressId))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ForwardingAddressId").build())
.build();
private static final SdkField TAX_DOCUMENTS_FIELD = SdkField. builder(MarshallingType.SDK_POJO)
.memberName("TaxDocuments").getter(getter(CreateClusterRequest::taxDocuments)).setter(setter(Builder::taxDocuments))
.constructor(TaxDocuments::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("TaxDocuments").build()).build();
private static final SdkField REMOTE_MANAGEMENT_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("RemoteManagement").getter(getter(CreateClusterRequest::remoteManagementAsString))
.setter(setter(Builder::remoteManagement))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("RemoteManagement").build()).build();
private static final SdkField INITIAL_CLUSTER_SIZE_FIELD = SdkField. builder(MarshallingType.INTEGER)
.memberName("InitialClusterSize").getter(getter(CreateClusterRequest::initialClusterSize))
.setter(setter(Builder::initialClusterSize))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("InitialClusterSize").build())
.build();
private static final SdkField FORCE_CREATE_JOBS_FIELD = SdkField. builder(MarshallingType.BOOLEAN)
.memberName("ForceCreateJobs").getter(getter(CreateClusterRequest::forceCreateJobs))
.setter(setter(Builder::forceCreateJobs))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ForceCreateJobs").build()).build();
private static final SdkField> LONG_TERM_PRICING_IDS_FIELD = SdkField
.> builder(MarshallingType.LIST)
.memberName("LongTermPricingIds")
.getter(getter(CreateClusterRequest::longTermPricingIds))
.setter(setter(Builder::longTermPricingIds))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("LongTermPricingIds").build(),
ListTrait
.builder()
.memberLocationName(null)
.memberFieldInfo(
SdkField. builder(MarshallingType.STRING)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
.locationName("member").build()).build()).build()).build();
private static final SdkField SNOWBALL_CAPACITY_PREFERENCE_FIELD = SdkField
. builder(MarshallingType.STRING)
.memberName("SnowballCapacityPreference")
.getter(getter(CreateClusterRequest::snowballCapacityPreferenceAsString))
.setter(setter(Builder::snowballCapacityPreference))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("SnowballCapacityPreference").build())
.build();
private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(JOB_TYPE_FIELD,
RESOURCES_FIELD, ON_DEVICE_SERVICE_CONFIGURATION_FIELD, DESCRIPTION_FIELD, ADDRESS_ID_FIELD, KMS_KEY_ARN_FIELD,
ROLE_ARN_FIELD, SNOWBALL_TYPE_FIELD, SHIPPING_OPTION_FIELD, NOTIFICATION_FIELD, FORWARDING_ADDRESS_ID_FIELD,
TAX_DOCUMENTS_FIELD, REMOTE_MANAGEMENT_FIELD, INITIAL_CLUSTER_SIZE_FIELD, FORCE_CREATE_JOBS_FIELD,
LONG_TERM_PRICING_IDS_FIELD, SNOWBALL_CAPACITY_PREFERENCE_FIELD));
private final String jobType;
private final JobResource resources;
private final OnDeviceServiceConfiguration onDeviceServiceConfiguration;
private final String description;
private final String addressId;
private final String kmsKeyARN;
private final String roleARN;
private final String snowballType;
private final String shippingOption;
private final Notification notification;
private final String forwardingAddressId;
private final TaxDocuments taxDocuments;
private final String remoteManagement;
private final Integer initialClusterSize;
private final Boolean forceCreateJobs;
private final List longTermPricingIds;
private final String snowballCapacityPreference;
private CreateClusterRequest(BuilderImpl builder) {
super(builder);
this.jobType = builder.jobType;
this.resources = builder.resources;
this.onDeviceServiceConfiguration = builder.onDeviceServiceConfiguration;
this.description = builder.description;
this.addressId = builder.addressId;
this.kmsKeyARN = builder.kmsKeyARN;
this.roleARN = builder.roleARN;
this.snowballType = builder.snowballType;
this.shippingOption = builder.shippingOption;
this.notification = builder.notification;
this.forwardingAddressId = builder.forwardingAddressId;
this.taxDocuments = builder.taxDocuments;
this.remoteManagement = builder.remoteManagement;
this.initialClusterSize = builder.initialClusterSize;
this.forceCreateJobs = builder.forceCreateJobs;
this.longTermPricingIds = builder.longTermPricingIds;
this.snowballCapacityPreference = builder.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.
*
*
* If the service returns an enum value that is not available in the current SDK version, {@link #jobType} will
* return {@link JobType#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available from
* {@link #jobTypeAsString}.
*
*
* @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 final JobType jobType() {
return JobType.fromValue(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.
*
*
* If the service returns an enum value that is not available in the current SDK version, {@link #jobType} will
* return {@link JobType#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available from
* {@link #jobTypeAsString}.
*
*
* @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 final String jobTypeAsString() {
return jobType;
}
/**
*
* 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 final JobResource resources() {
return 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).
*
*
* @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 final OnDeviceServiceConfiguration onDeviceServiceConfiguration() {
return onDeviceServiceConfiguration;
}
/**
*
* 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 final String description() {
return description;
}
/**
*
* 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 final String addressId() {
return 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).
*
*
* @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 final String kmsKeyARN() {
return 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).
*
*
* @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 final String roleARN() {
return 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.
*
*
* If the service returns an enum value that is not available in the current SDK version, {@link #snowballType} will
* return {@link SnowballType#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available from
* {@link #snowballTypeAsString}.
*
*
* @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 final SnowballType snowballType() {
return SnowballType.fromValue(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.
*
*
* If the service returns an enum value that is not available in the current SDK version, {@link #snowballType} will
* return {@link SnowballType#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available from
* {@link #snowballTypeAsString}.
*
*
* @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 final String snowballTypeAsString() {
return 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:
*
*
* -
*
* 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.
*
*
*
*
* If the service returns an enum value that is not available in the current SDK version, {@link #shippingOption}
* will return {@link ShippingOption#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available
* from {@link #shippingOptionAsString}.
*
*
* @return 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.
*
*
* @see ShippingOption
*/
public final ShippingOption shippingOption() {
return ShippingOption.fromValue(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.
*
*
*
*
* If the service returns an enum value that is not available in the current SDK version, {@link #shippingOption}
* will return {@link ShippingOption#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available
* from {@link #shippingOptionAsString}.
*
*
* @return 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.
*
*
* @see ShippingOption
*/
public final String shippingOptionAsString() {
return shippingOption;
}
/**
*
* The Amazon Simple Notification Service (Amazon SNS) notification settings for this cluster.
*
*
* @return The Amazon Simple Notification Service (Amazon SNS) notification settings for this cluster.
*/
public final Notification notification() {
return notification;
}
/**
*
* The forwarding address ID for a cluster. This field is not supported in most regions.
*
*
* @return The forwarding address ID for a cluster. This field is not supported in most regions.
*/
public final String forwardingAddressId() {
return forwardingAddressId;
}
/**
*
* The tax documents required in your Amazon Web Services Region.
*
*
* @return The tax documents required in your Amazon Web Services Region.
*/
public final TaxDocuments taxDocuments() {
return 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.
*
*
* If the service returns an enum value that is not available in the current SDK version, {@link #remoteManagement}
* will return {@link RemoteManagement#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available
* from {@link #remoteManagementAsString}.
*
*
* @return 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.
* @see RemoteManagement
*/
public final RemoteManagement remoteManagement() {
return RemoteManagement.fromValue(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.
*
*
* If the service returns an enum value that is not available in the current SDK version, {@link #remoteManagement}
* will return {@link RemoteManagement#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available
* from {@link #remoteManagementAsString}.
*
*
* @return 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.
* @see RemoteManagement
*/
public final String remoteManagementAsString() {
return remoteManagement;
}
/**
*
* If provided, each job will be automatically created and associated with the new cluster. If not provided, will be
* treated as 0.
*
*
* @return If provided, each job will be automatically created and associated with the new cluster. If not provided,
* will be treated as 0.
*/
public final Integer initialClusterSize() {
return 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
.
*
*
* @return 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
.
*/
public final Boolean forceCreateJobs() {
return forceCreateJobs;
}
/**
* For responses, this returns true if the service returned a value for the LongTermPricingIds property. This DOES
* NOT check that the value is non-empty (for which, you should check the {@code isEmpty()} method on the property).
* This is useful because the SDK will never return a null collection or map, but you may need to differentiate
* between the service returning nothing (or null) and the service returning an empty collection or map. For
* requests, this returns true if a value for the property was specified in the request builder, and false if a
* value was not specified.
*/
public final boolean hasLongTermPricingIds() {
return longTermPricingIds != null && !(longTermPricingIds instanceof SdkAutoConstructList);
}
/**
*
* Lists long-term pricing id that will be used to associate with jobs automatically created for the new cluster.
*
*
* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
*
*
* This method will never return null. If you would like to know whether the service returned this field (so that
* you can differentiate between null and empty), you can use the {@link #hasLongTermPricingIds} method.
*
*
* @return Lists long-term pricing id that will be used to associate with jobs automatically created for the new
* cluster.
*/
public final List longTermPricingIds() {
return 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.
*
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #snowballCapacityPreference} will return {@link SnowballCapacity#UNKNOWN_TO_SDK_VERSION}. The raw value
* returned by the service is available from {@link #snowballCapacityPreferenceAsString}.
*
*
* @return 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.
* @see SnowballCapacity
*/
public final SnowballCapacity snowballCapacityPreference() {
return SnowballCapacity.fromValue(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.
*
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #snowballCapacityPreference} will return {@link SnowballCapacity#UNKNOWN_TO_SDK_VERSION}. The raw value
* returned by the service is available from {@link #snowballCapacityPreferenceAsString}.
*
*
* @return 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.
* @see SnowballCapacity
*/
public final String snowballCapacityPreferenceAsString() {
return snowballCapacityPreference;
}
@Override
public Builder toBuilder() {
return new BuilderImpl(this);
}
public static Builder builder() {
return new BuilderImpl();
}
public static Class extends Builder> serializableBuilderClass() {
return BuilderImpl.class;
}
@Override
public final int hashCode() {
int hashCode = 1;
hashCode = 31 * hashCode + super.hashCode();
hashCode = 31 * hashCode + Objects.hashCode(jobTypeAsString());
hashCode = 31 * hashCode + Objects.hashCode(resources());
hashCode = 31 * hashCode + Objects.hashCode(onDeviceServiceConfiguration());
hashCode = 31 * hashCode + Objects.hashCode(description());
hashCode = 31 * hashCode + Objects.hashCode(addressId());
hashCode = 31 * hashCode + Objects.hashCode(kmsKeyARN());
hashCode = 31 * hashCode + Objects.hashCode(roleARN());
hashCode = 31 * hashCode + Objects.hashCode(snowballTypeAsString());
hashCode = 31 * hashCode + Objects.hashCode(shippingOptionAsString());
hashCode = 31 * hashCode + Objects.hashCode(notification());
hashCode = 31 * hashCode + Objects.hashCode(forwardingAddressId());
hashCode = 31 * hashCode + Objects.hashCode(taxDocuments());
hashCode = 31 * hashCode + Objects.hashCode(remoteManagementAsString());
hashCode = 31 * hashCode + Objects.hashCode(initialClusterSize());
hashCode = 31 * hashCode + Objects.hashCode(forceCreateJobs());
hashCode = 31 * hashCode + Objects.hashCode(hasLongTermPricingIds() ? longTermPricingIds() : null);
hashCode = 31 * hashCode + Objects.hashCode(snowballCapacityPreferenceAsString());
return hashCode;
}
@Override
public final boolean equals(Object obj) {
return super.equals(obj) && equalsBySdkFields(obj);
}
@Override
public final boolean equalsBySdkFields(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (!(obj instanceof CreateClusterRequest)) {
return false;
}
CreateClusterRequest other = (CreateClusterRequest) obj;
return Objects.equals(jobTypeAsString(), other.jobTypeAsString()) && Objects.equals(resources(), other.resources())
&& Objects.equals(onDeviceServiceConfiguration(), other.onDeviceServiceConfiguration())
&& Objects.equals(description(), other.description()) && Objects.equals(addressId(), other.addressId())
&& Objects.equals(kmsKeyARN(), other.kmsKeyARN()) && Objects.equals(roleARN(), other.roleARN())
&& Objects.equals(snowballTypeAsString(), other.snowballTypeAsString())
&& Objects.equals(shippingOptionAsString(), other.shippingOptionAsString())
&& Objects.equals(notification(), other.notification())
&& Objects.equals(forwardingAddressId(), other.forwardingAddressId())
&& Objects.equals(taxDocuments(), other.taxDocuments())
&& Objects.equals(remoteManagementAsString(), other.remoteManagementAsString())
&& Objects.equals(initialClusterSize(), other.initialClusterSize())
&& Objects.equals(forceCreateJobs(), other.forceCreateJobs())
&& hasLongTermPricingIds() == other.hasLongTermPricingIds()
&& Objects.equals(longTermPricingIds(), other.longTermPricingIds())
&& Objects.equals(snowballCapacityPreferenceAsString(), other.snowballCapacityPreferenceAsString());
}
/**
* Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be
* redacted from this string using a placeholder value.
*/
@Override
public final String toString() {
return ToString.builder("CreateClusterRequest").add("JobType", jobTypeAsString()).add("Resources", resources())
.add("OnDeviceServiceConfiguration", onDeviceServiceConfiguration()).add("Description", description())
.add("AddressId", addressId()).add("KmsKeyARN", kmsKeyARN()).add("RoleARN", roleARN())
.add("SnowballType", snowballTypeAsString()).add("ShippingOption", shippingOptionAsString())
.add("Notification", notification()).add("ForwardingAddressId", forwardingAddressId())
.add("TaxDocuments", taxDocuments()).add("RemoteManagement", remoteManagementAsString())
.add("InitialClusterSize", initialClusterSize()).add("ForceCreateJobs", forceCreateJobs())
.add("LongTermPricingIds", hasLongTermPricingIds() ? longTermPricingIds() : null)
.add("SnowballCapacityPreference", snowballCapacityPreferenceAsString()).build();
}
public final Optional getValueForField(String fieldName, Class clazz) {
switch (fieldName) {
case "JobType":
return Optional.ofNullable(clazz.cast(jobTypeAsString()));
case "Resources":
return Optional.ofNullable(clazz.cast(resources()));
case "OnDeviceServiceConfiguration":
return Optional.ofNullable(clazz.cast(onDeviceServiceConfiguration()));
case "Description":
return Optional.ofNullable(clazz.cast(description()));
case "AddressId":
return Optional.ofNullable(clazz.cast(addressId()));
case "KmsKeyARN":
return Optional.ofNullable(clazz.cast(kmsKeyARN()));
case "RoleARN":
return Optional.ofNullable(clazz.cast(roleARN()));
case "SnowballType":
return Optional.ofNullable(clazz.cast(snowballTypeAsString()));
case "ShippingOption":
return Optional.ofNullable(clazz.cast(shippingOptionAsString()));
case "Notification":
return Optional.ofNullable(clazz.cast(notification()));
case "ForwardingAddressId":
return Optional.ofNullable(clazz.cast(forwardingAddressId()));
case "TaxDocuments":
return Optional.ofNullable(clazz.cast(taxDocuments()));
case "RemoteManagement":
return Optional.ofNullable(clazz.cast(remoteManagementAsString()));
case "InitialClusterSize":
return Optional.ofNullable(clazz.cast(initialClusterSize()));
case "ForceCreateJobs":
return Optional.ofNullable(clazz.cast(forceCreateJobs()));
case "LongTermPricingIds":
return Optional.ofNullable(clazz.cast(longTermPricingIds()));
case "SnowballCapacityPreference":
return Optional.ofNullable(clazz.cast(snowballCapacityPreferenceAsString()));
default:
return Optional.empty();
}
}
@Override
public final List> sdkFields() {
return SDK_FIELDS;
}
private static Function
*
* 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
* @return Returns a reference to this object so that method calls can be chained together.
* @see JobType
*/
Builder jobType(String 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.
* @see JobType
* @return Returns a reference to this object so that method calls can be chained together.
* @see JobType
*/
Builder jobType(JobType jobType);
/**
*
* 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.
*/
Builder resources(JobResource resources);
/**
*
* The resources associated with the cluster job. These resources include Amazon S3 buckets and optional Lambda
* functions written in the Python language.
*
* This is a convenience method that creates an instance of the {@link JobResource.Builder} avoiding the need to
* create one manually via {@link JobResource#builder()}.
*
*
* When the {@link Consumer} completes, {@link JobResource.Builder#build()} is called immediately and its result
* is passed to {@link #resources(JobResource)}.
*
* @param resources
* a consumer that will call methods on {@link JobResource.Builder}
* @return Returns a reference to this object so that method calls can be chained together.
* @see #resources(JobResource)
*/
default Builder resources(Consumer resources) {
return resources(JobResource.builder().applyMutation(resources).build());
}
/**
*
* 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.
*/
Builder onDeviceServiceConfiguration(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).
*
* This is a convenience method that creates an instance of the {@link OnDeviceServiceConfiguration.Builder}
* avoiding the need to create one manually via {@link OnDeviceServiceConfiguration#builder()}.
*
*
* When the {@link Consumer} completes, {@link OnDeviceServiceConfiguration.Builder#build()} is called
* immediately and its result is passed to {@link #onDeviceServiceConfiguration(OnDeviceServiceConfiguration)}.
*
* @param onDeviceServiceConfiguration
* a consumer that will call methods on {@link OnDeviceServiceConfiguration.Builder}
* @return Returns a reference to this object so that method calls can be chained together.
* @see #onDeviceServiceConfiguration(OnDeviceServiceConfiguration)
*/
default Builder onDeviceServiceConfiguration(Consumer onDeviceServiceConfiguration) {
return onDeviceServiceConfiguration(OnDeviceServiceConfiguration.builder()
.applyMutation(onDeviceServiceConfiguration).build());
}
/**
*
* 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.
*/
Builder description(String description);
/**
*
* 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.
*/
Builder addressId(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).
*
*
* @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.
*/
Builder kmsKeyARN(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).
*
*
* @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.
*/
Builder roleARN(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.
*
*
* @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
* @return Returns a reference to this object so that method calls can be chained together.
* @see SnowballType
*/
Builder snowballType(String 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.
* @see SnowballType
* @return Returns a reference to this object so that method calls can be chained together.
* @see SnowballType
*/
Builder snowballType(SnowballType 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:
*
*
* -
*
* 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.
*
*
*
*
* @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:
*
* -
*
* 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.
*
*
* @see ShippingOption
* @return Returns a reference to this object so that method calls can be chained together.
* @see ShippingOption
*/
Builder shippingOption(String 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.
*
*
*
*
* @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:
*
* -
*
* 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.
*
*
* @see ShippingOption
* @return Returns a reference to this object so that method calls can be chained together.
* @see ShippingOption
*/
Builder shippingOption(ShippingOption shippingOption);
/**
*
* The Amazon Simple Notification Service (Amazon SNS) notification settings for this cluster.
*
*
* @param notification
* The Amazon Simple Notification Service (Amazon SNS) notification settings for this cluster.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder notification(Notification notification);
/**
*
* The Amazon Simple Notification Service (Amazon SNS) notification settings for this cluster.
*
* This is a convenience method that creates an instance of the {@link Notification.Builder} avoiding the need
* to create one manually via {@link Notification#builder()}.
*
*
* When the {@link Consumer} completes, {@link Notification.Builder#build()} is called immediately and its
* result is passed to {@link #notification(Notification)}.
*
* @param notification
* a consumer that will call methods on {@link Notification.Builder}
* @return Returns a reference to this object so that method calls can be chained together.
* @see #notification(Notification)
*/
default Builder notification(Consumer notification) {
return notification(Notification.builder().applyMutation(notification).build());
}
/**
*
* The forwarding address ID for a cluster. This field is not supported in most regions.
*
*
* @param forwardingAddressId
* The forwarding address ID for a cluster. This field is not supported in most regions.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder forwardingAddressId(String forwardingAddressId);
/**
*
* The tax documents required in your Amazon Web Services Region.
*
*
* @param taxDocuments
* The tax documents required in your Amazon Web Services Region.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder taxDocuments(TaxDocuments taxDocuments);
/**
*
* The tax documents required in your Amazon Web Services Region.
*
* This is a convenience method that creates an instance of the {@link TaxDocuments.Builder} avoiding the need
* to create one manually via {@link TaxDocuments#builder()}.
*
*
* When the {@link Consumer} completes, {@link TaxDocuments.Builder#build()} is called immediately and its
* result is passed to {@link #taxDocuments(TaxDocuments)}.
*
* @param taxDocuments
* a consumer that will call methods on {@link TaxDocuments.Builder}
* @return Returns a reference to this object so that method calls can be chained together.
* @see #taxDocuments(TaxDocuments)
*/
default Builder taxDocuments(Consumer taxDocuments) {
return taxDocuments(TaxDocuments.builder().applyMutation(taxDocuments).build());
}
/**
*
* 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.
*
*
* @param 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.
* @see RemoteManagement
* @return Returns a reference to this object so that method calls can be chained together.
* @see RemoteManagement
*/
Builder remoteManagement(String 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.
*
*
* @param 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.
* @see RemoteManagement
* @return Returns a reference to this object so that method calls can be chained together.
* @see RemoteManagement
*/
Builder remoteManagement(RemoteManagement remoteManagement);
/**
*
* If provided, each job will be automatically created and associated with the new cluster. If not provided,
* will be treated as 0.
*
*
* @param initialClusterSize
* If provided, each job will be automatically created and associated with the new cluster. If not
* provided, will be treated as 0.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder initialClusterSize(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
.
*
*
* @param 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
.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder forceCreateJobs(Boolean forceCreateJobs);
/**
*
* Lists long-term pricing id that will be used to associate with jobs automatically created for the new
* cluster.
*
*
* @param longTermPricingIds
* Lists long-term pricing id that will be used to associate with jobs automatically created for the new
* cluster.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder longTermPricingIds(Collection longTermPricingIds);
/**
*
* Lists long-term pricing id that will be used to associate with jobs automatically created for the new
* cluster.
*
*
* @param longTermPricingIds
* Lists long-term pricing id that will be used to associate with jobs automatically created for the new
* cluster.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder longTermPricingIds(String... 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.
*
*
* @param 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.
* @see SnowballCapacity
* @return Returns a reference to this object so that method calls can be chained together.
* @see SnowballCapacity
*/
Builder snowballCapacityPreference(String 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.
*
*
* @param 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.
* @see SnowballCapacity
* @return Returns a reference to this object so that method calls can be chained together.
* @see SnowballCapacity
*/
Builder snowballCapacityPreference(SnowballCapacity snowballCapacityPreference);
@Override
Builder overrideConfiguration(AwsRequestOverrideConfiguration overrideConfiguration);
@Override
Builder overrideConfiguration(Consumer builderConsumer);
}
static final class BuilderImpl extends SnowballRequest.BuilderImpl implements Builder {
private String jobType;
private JobResource resources;
private OnDeviceServiceConfiguration onDeviceServiceConfiguration;
private String description;
private String addressId;
private String kmsKeyARN;
private String roleARN;
private String snowballType;
private String shippingOption;
private Notification notification;
private String forwardingAddressId;
private TaxDocuments taxDocuments;
private String remoteManagement;
private Integer initialClusterSize;
private Boolean forceCreateJobs;
private List longTermPricingIds = DefaultSdkAutoConstructList.getInstance();
private String snowballCapacityPreference;
private BuilderImpl() {
}
private BuilderImpl(CreateClusterRequest model) {
super(model);
jobType(model.jobType);
resources(model.resources);
onDeviceServiceConfiguration(model.onDeviceServiceConfiguration);
description(model.description);
addressId(model.addressId);
kmsKeyARN(model.kmsKeyARN);
roleARN(model.roleARN);
snowballType(model.snowballType);
shippingOption(model.shippingOption);
notification(model.notification);
forwardingAddressId(model.forwardingAddressId);
taxDocuments(model.taxDocuments);
remoteManagement(model.remoteManagement);
initialClusterSize(model.initialClusterSize);
forceCreateJobs(model.forceCreateJobs);
longTermPricingIds(model.longTermPricingIds);
snowballCapacityPreference(model.snowballCapacityPreference);
}
public final String getJobType() {
return jobType;
}
public final void setJobType(String jobType) {
this.jobType = jobType;
}
@Override
public final Builder jobType(String jobType) {
this.jobType = jobType;
return this;
}
@Override
public final Builder jobType(JobType jobType) {
this.jobType(jobType == null ? null : jobType.toString());
return this;
}
public final JobResource.Builder getResources() {
return resources != null ? resources.toBuilder() : null;
}
public final void setResources(JobResource.BuilderImpl resources) {
this.resources = resources != null ? resources.build() : null;
}
@Override
public final Builder resources(JobResource resources) {
this.resources = resources;
return this;
}
public final OnDeviceServiceConfiguration.Builder getOnDeviceServiceConfiguration() {
return onDeviceServiceConfiguration != null ? onDeviceServiceConfiguration.toBuilder() : null;
}
public final void setOnDeviceServiceConfiguration(OnDeviceServiceConfiguration.BuilderImpl onDeviceServiceConfiguration) {
this.onDeviceServiceConfiguration = onDeviceServiceConfiguration != null ? onDeviceServiceConfiguration.build()
: null;
}
@Override
public final Builder onDeviceServiceConfiguration(OnDeviceServiceConfiguration onDeviceServiceConfiguration) {
this.onDeviceServiceConfiguration = onDeviceServiceConfiguration;
return this;
}
public final String getDescription() {
return description;
}
public final void setDescription(String description) {
this.description = description;
}
@Override
public final Builder description(String description) {
this.description = description;
return this;
}
public final String getAddressId() {
return addressId;
}
public final void setAddressId(String addressId) {
this.addressId = addressId;
}
@Override
public final Builder addressId(String addressId) {
this.addressId = addressId;
return this;
}
public final String getKmsKeyARN() {
return kmsKeyARN;
}
public final void setKmsKeyARN(String kmsKeyARN) {
this.kmsKeyARN = kmsKeyARN;
}
@Override
public final Builder kmsKeyARN(String kmsKeyARN) {
this.kmsKeyARN = kmsKeyARN;
return this;
}
public final String getRoleARN() {
return roleARN;
}
public final void setRoleARN(String roleARN) {
this.roleARN = roleARN;
}
@Override
public final Builder roleARN(String roleARN) {
this.roleARN = roleARN;
return this;
}
public final String getSnowballType() {
return snowballType;
}
public final void setSnowballType(String snowballType) {
this.snowballType = snowballType;
}
@Override
public final Builder snowballType(String snowballType) {
this.snowballType = snowballType;
return this;
}
@Override
public final Builder snowballType(SnowballType snowballType) {
this.snowballType(snowballType == null ? null : snowballType.toString());
return this;
}
public final String getShippingOption() {
return shippingOption;
}
public final void setShippingOption(String shippingOption) {
this.shippingOption = shippingOption;
}
@Override
public final Builder shippingOption(String shippingOption) {
this.shippingOption = shippingOption;
return this;
}
@Override
public final Builder shippingOption(ShippingOption shippingOption) {
this.shippingOption(shippingOption == null ? null : shippingOption.toString());
return this;
}
public final Notification.Builder getNotification() {
return notification != null ? notification.toBuilder() : null;
}
public final void setNotification(Notification.BuilderImpl notification) {
this.notification = notification != null ? notification.build() : null;
}
@Override
public final Builder notification(Notification notification) {
this.notification = notification;
return this;
}
public final String getForwardingAddressId() {
return forwardingAddressId;
}
public final void setForwardingAddressId(String forwardingAddressId) {
this.forwardingAddressId = forwardingAddressId;
}
@Override
public final Builder forwardingAddressId(String forwardingAddressId) {
this.forwardingAddressId = forwardingAddressId;
return this;
}
public final TaxDocuments.Builder getTaxDocuments() {
return taxDocuments != null ? taxDocuments.toBuilder() : null;
}
public final void setTaxDocuments(TaxDocuments.BuilderImpl taxDocuments) {
this.taxDocuments = taxDocuments != null ? taxDocuments.build() : null;
}
@Override
public final Builder taxDocuments(TaxDocuments taxDocuments) {
this.taxDocuments = taxDocuments;
return this;
}
public final String getRemoteManagement() {
return remoteManagement;
}
public final void setRemoteManagement(String remoteManagement) {
this.remoteManagement = remoteManagement;
}
@Override
public final Builder remoteManagement(String remoteManagement) {
this.remoteManagement = remoteManagement;
return this;
}
@Override
public final Builder remoteManagement(RemoteManagement remoteManagement) {
this.remoteManagement(remoteManagement == null ? null : remoteManagement.toString());
return this;
}
public final Integer getInitialClusterSize() {
return initialClusterSize;
}
public final void setInitialClusterSize(Integer initialClusterSize) {
this.initialClusterSize = initialClusterSize;
}
@Override
public final Builder initialClusterSize(Integer initialClusterSize) {
this.initialClusterSize = initialClusterSize;
return this;
}
public final Boolean getForceCreateJobs() {
return forceCreateJobs;
}
public final void setForceCreateJobs(Boolean forceCreateJobs) {
this.forceCreateJobs = forceCreateJobs;
}
@Override
public final Builder forceCreateJobs(Boolean forceCreateJobs) {
this.forceCreateJobs = forceCreateJobs;
return this;
}
public final Collection getLongTermPricingIds() {
if (longTermPricingIds instanceof SdkAutoConstructList) {
return null;
}
return longTermPricingIds;
}
public final void setLongTermPricingIds(Collection longTermPricingIds) {
this.longTermPricingIds = LongTermPricingIdListCopier.copy(longTermPricingIds);
}
@Override
public final Builder longTermPricingIds(Collection longTermPricingIds) {
this.longTermPricingIds = LongTermPricingIdListCopier.copy(longTermPricingIds);
return this;
}
@Override
@SafeVarargs
public final Builder longTermPricingIds(String... longTermPricingIds) {
longTermPricingIds(Arrays.asList(longTermPricingIds));
return this;
}
public final String getSnowballCapacityPreference() {
return snowballCapacityPreference;
}
public final void setSnowballCapacityPreference(String snowballCapacityPreference) {
this.snowballCapacityPreference = snowballCapacityPreference;
}
@Override
public final Builder snowballCapacityPreference(String snowballCapacityPreference) {
this.snowballCapacityPreference = snowballCapacityPreference;
return this;
}
@Override
public final Builder snowballCapacityPreference(SnowballCapacity snowballCapacityPreference) {
this.snowballCapacityPreference(snowballCapacityPreference == null ? null : snowballCapacityPreference.toString());
return this;
}
@Override
public Builder overrideConfiguration(AwsRequestOverrideConfiguration overrideConfiguration) {
super.overrideConfiguration(overrideConfiguration);
return this;
}
@Override
public Builder overrideConfiguration(Consumer builderConsumer) {
super.overrideConfiguration(builderConsumer);
return this;
}
@Override
public CreateClusterRequest build() {
return new CreateClusterRequest(this);
}
@Override
public List> sdkFields() {
return SDK_FIELDS;
}
}
}