software.amazon.awssdk.services.snowball.model.CreateJobRequest 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.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.LocationTrait;
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 CreateJobRequest extends SnowballRequest implements
ToCopyableBuilder {
private static final SdkField JOB_TYPE_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("JobType").getter(getter(CreateJobRequest::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(CreateJobRequest::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(CreateJobRequest::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(CreateJobRequest::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(CreateJobRequest::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(CreateJobRequest::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(CreateJobRequest::roleARN)).setter(setter(Builder::roleARN))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("RoleARN").build()).build();
private static final SdkField SNOWBALL_CAPACITY_PREFERENCE_FIELD = SdkField
. builder(MarshallingType.STRING)
.memberName("SnowballCapacityPreference")
.getter(getter(CreateJobRequest::snowballCapacityPreferenceAsString))
.setter(setter(Builder::snowballCapacityPreference))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("SnowballCapacityPreference").build())
.build();
private static final SdkField SHIPPING_OPTION_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("ShippingOption").getter(getter(CreateJobRequest::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(CreateJobRequest::notification)).setter(setter(Builder::notification))
.constructor(Notification::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Notification").build()).build();
private static final SdkField CLUSTER_ID_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("ClusterId").getter(getter(CreateJobRequest::clusterId)).setter(setter(Builder::clusterId))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ClusterId").build()).build();
private static final SdkField SNOWBALL_TYPE_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("SnowballType").getter(getter(CreateJobRequest::snowballTypeAsString))
.setter(setter(Builder::snowballType))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("SnowballType").build()).build();
private static final SdkField FORWARDING_ADDRESS_ID_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("ForwardingAddressId").getter(getter(CreateJobRequest::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(CreateJobRequest::taxDocuments)).setter(setter(Builder::taxDocuments))
.constructor(TaxDocuments::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("TaxDocuments").build()).build();
private static final SdkField DEVICE_CONFIGURATION_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("DeviceConfiguration")
.getter(getter(CreateJobRequest::deviceConfiguration)).setter(setter(Builder::deviceConfiguration))
.constructor(DeviceConfiguration::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("DeviceConfiguration").build())
.build();
private static final SdkField REMOTE_MANAGEMENT_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("RemoteManagement").getter(getter(CreateJobRequest::remoteManagementAsString))
.setter(setter(Builder::remoteManagement))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("RemoteManagement").build()).build();
private static final SdkField LONG_TERM_PRICING_ID_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("LongTermPricingId").getter(getter(CreateJobRequest::longTermPricingId))
.setter(setter(Builder::longTermPricingId))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("LongTermPricingId").build()).build();
private static final SdkField IMPACT_LEVEL_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("ImpactLevel").getter(getter(CreateJobRequest::impactLevelAsString)).setter(setter(Builder::impactLevel))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ImpactLevel").build()).build();
private static final SdkField PICKUP_DETAILS_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("PickupDetails")
.getter(getter(CreateJobRequest::pickupDetails)).setter(setter(Builder::pickupDetails))
.constructor(PickupDetails::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("PickupDetails").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_CAPACITY_PREFERENCE_FIELD, SHIPPING_OPTION_FIELD, NOTIFICATION_FIELD, CLUSTER_ID_FIELD,
SNOWBALL_TYPE_FIELD, FORWARDING_ADDRESS_ID_FIELD, TAX_DOCUMENTS_FIELD, DEVICE_CONFIGURATION_FIELD,
REMOTE_MANAGEMENT_FIELD, LONG_TERM_PRICING_ID_FIELD, IMPACT_LEVEL_FIELD, PICKUP_DETAILS_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 snowballCapacityPreference;
private final String shippingOption;
private final Notification notification;
private final String clusterId;
private final String snowballType;
private final String forwardingAddressId;
private final TaxDocuments taxDocuments;
private final DeviceConfiguration deviceConfiguration;
private final String remoteManagement;
private final String longTermPricingId;
private final String impactLevel;
private final PickupDetails pickupDetails;
private CreateJobRequest(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.snowballCapacityPreference = builder.snowballCapacityPreference;
this.shippingOption = builder.shippingOption;
this.notification = builder.notification;
this.clusterId = builder.clusterId;
this.snowballType = builder.snowballType;
this.forwardingAddressId = builder.forwardingAddressId;
this.taxDocuments = builder.taxDocuments;
this.deviceConfiguration = builder.deviceConfiguration;
this.remoteManagement = builder.remoteManagement;
this.longTermPricingId = builder.longTermPricingId;
this.impactLevel = builder.impactLevel;
this.pickupDetails = builder.pickupDetails;
}
/**
*
* Defines the type of job that you're creating.
*
*
* 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 Defines the type of job that you're creating.
* @see JobType
*/
public final JobType jobType() {
return JobType.fromValue(jobType);
}
/**
*
* Defines the type of job that you're creating.
*
*
* 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 Defines the type of job that you're creating.
* @see JobType
*/
public final String jobTypeAsString() {
return jobType;
}
/**
*
* Defines the Amazon S3 buckets associated with this job.
*
*
* With IMPORT
jobs, you specify the bucket or buckets that your transferred data will be imported
* into.
*
*
* With EXPORT
jobs, you specify the bucket or buckets that your transferred data will be exported
* from. Optionally, you can also specify a KeyRange
value. If you choose to export a range, you define
* the length of the range by providing either an inclusive BeginMarker
value, an inclusive
* EndMarker
value, or both. Ranges are UTF-8 binary sorted.
*
*
* @return Defines the Amazon S3 buckets associated with this job.
*
* With IMPORT
jobs, you specify the bucket or buckets that your transferred data will be
* imported into.
*
*
* With EXPORT
jobs, you specify the bucket or buckets that your transferred data will be
* exported from. Optionally, you can also specify a KeyRange
value. If you choose to export a
* range, you define the length of the range by providing either an inclusive BeginMarker
* value, an inclusive EndMarker
value, or both. Ranges are UTF-8 binary sorted.
*/
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 supports Amazon S3 and NFS (Network File System) and the Amazon
* Web Services Storage Gateway service Tape Gateway type.
*
*
* @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 supports Amazon S3 and NFS (Network File System)
* and the Amazon Web Services Storage Gateway service Tape Gateway type.
*/
public final OnDeviceServiceConfiguration onDeviceServiceConfiguration() {
return onDeviceServiceConfiguration;
}
/**
*
* Defines an optional description of this specific job, for example Important Photos 2016-08-11
.
*
*
* @return Defines an optional description of this specific job, for example
* Important Photos 2016-08-11
.
*/
public final String description() {
return description;
}
/**
*
* The ID for the address that you want the Snow device shipped to.
*
*
* @return The ID for the address that you want the Snow device shipped to.
*/
public final String addressId() {
return addressId;
}
/**
*
* The KmsKeyARN
that you want to associate with this job. KmsKeyARN
s are created using
* the CreateKey Key Management
* Service (KMS) API action.
*
*
* @return The KmsKeyARN
that you want to associate with this job. KmsKeyARN
s are created
* using the CreateKey
* Key Management Service (KMS) API action.
*/
public final String kmsKeyARN() {
return kmsKeyARN;
}
/**
*
* The RoleARN
that you want to associate with this job. RoleArn
s are created using the CreateRole Identity and Access
* Management (IAM) API action.
*
*
* @return The RoleARN
that you want to associate with this job. RoleArn
s are created
* using the CreateRole Identity
* and Access Management (IAM) API action.
*/
public final String roleARN() {
return roleARN;
}
/**
*
* 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;
}
/**
*
* The shipping speed for this job. This speed doesn't dictate how soon you'll get the Snow device, rather it
* represents how quickly the Snow 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 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 this job. This speed doesn't dictate how soon you'll get the Snow device, rather
* it represents how quickly the Snow 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 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 this job. This speed doesn't dictate how soon you'll get the Snow device, rather it
* represents how quickly the Snow 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 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 this job. This speed doesn't dictate how soon you'll get the Snow device, rather
* it represents how quickly the Snow 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 US, you have access to one-day shipping and two-day shipping.
*
*
* @see ShippingOption
*/
public final String shippingOptionAsString() {
return shippingOption;
}
/**
*
* Defines the Amazon Simple Notification Service (Amazon SNS) notification settings for this job.
*
*
* @return Defines the Amazon Simple Notification Service (Amazon SNS) notification settings for this job.
*/
public final Notification notification() {
return notification;
}
/**
*
* The ID of a cluster. If you're creating a job for a node in a cluster, you need to provide only this
* clusterId
value. The other job attributes are inherited from the cluster.
*
*
* @return The ID of a cluster. If you're creating a job for a node in a cluster, you need to provide only this
* clusterId
value. The other job attributes are inherited from the cluster.
*/
public final String clusterId() {
return clusterId;
}
/**
*
* The type of Snow Family devices to use for this job.
*
*
*
* For cluster jobs, Amazon Web Services Snow Family currently supports only the EDGE
device type.
*
*
*
* The type of Amazon Web Services Snow device to use for this job. Currently, the only supported device type for
* cluster jobs is EDGE
.
*
*
* For more information, see Snowball Edge Device
* Options in the Snowball Edge Developer Guide.
*
*
* 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 job.
*
* For cluster jobs, Amazon Web Services Snow Family currently supports only the EDGE
device
* type.
*
*
*
* The type of Amazon Web Services Snow device to use for this job. Currently, the only supported device
* type for cluster jobs is EDGE
.
*
*
* For more information, see Snowball Edge
* Device Options in the Snowball Edge Developer Guide.
*
*
* 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 job.
*
*
*
* For cluster jobs, Amazon Web Services Snow Family currently supports only the EDGE
device type.
*
*
*
* The type of Amazon Web Services Snow device to use for this job. Currently, the only supported device type for
* cluster jobs is EDGE
.
*
*
* For more information, see Snowball Edge Device
* Options in the Snowball Edge Developer Guide.
*
*
* 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 job.
*
* For cluster jobs, Amazon Web Services Snow Family currently supports only the EDGE
device
* type.
*
*
*
* The type of Amazon Web Services Snow device to use for this job. Currently, the only supported device
* type for cluster jobs is EDGE
.
*
*
* For more information, see Snowball Edge
* Device Options in the Snowball Edge Developer Guide.
*
*
* 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 forwarding address ID for a job. This field is not supported in most Regions.
*
*
* @return The forwarding address ID for a job. 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;
}
/**
*
* Defines the device configuration for an Snowcone job.
*
*
* 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 Defines the device configuration for an Snowcone job.
*
* 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.
*/
public final DeviceConfiguration deviceConfiguration() {
return deviceConfiguration;
}
/**
*
* Allows you to securely operate and manage Snowcone devices 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 Edge client to manage the device. When set to
* NOT_INSTALLED
, remote management will not be available on 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 Snowcone devices 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 Edge client to manage
* the device. When set to NOT_INSTALLED
, remote management will not be available on the
* device.
* @see RemoteManagement
*/
public final RemoteManagement remoteManagement() {
return RemoteManagement.fromValue(remoteManagement);
}
/**
*
* Allows you to securely operate and manage Snowcone devices 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 Edge client to manage the device. When set to
* NOT_INSTALLED
, remote management will not be available on 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 Snowcone devices 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 Edge client to manage
* the device. When set to NOT_INSTALLED
, remote management will not be available on the
* device.
* @see RemoteManagement
*/
public final String remoteManagementAsString() {
return remoteManagement;
}
/**
*
* The ID of the long-term pricing type for the device.
*
*
* @return The ID of the long-term pricing type for the device.
*/
public final String longTermPricingId() {
return longTermPricingId;
}
/**
*
* The highest impact level of data that will be stored or processed on the device, provided at job creation.
*
*
* If the service returns an enum value that is not available in the current SDK version, {@link #impactLevel} will
* return {@link ImpactLevel#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available from
* {@link #impactLevelAsString}.
*
*
* @return The highest impact level of data that will be stored or processed on the device, provided at job
* creation.
* @see ImpactLevel
*/
public final ImpactLevel impactLevel() {
return ImpactLevel.fromValue(impactLevel);
}
/**
*
* The highest impact level of data that will be stored or processed on the device, provided at job creation.
*
*
* If the service returns an enum value that is not available in the current SDK version, {@link #impactLevel} will
* return {@link ImpactLevel#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available from
* {@link #impactLevelAsString}.
*
*
* @return The highest impact level of data that will be stored or processed on the device, provided at job
* creation.
* @see ImpactLevel
*/
public final String impactLevelAsString() {
return impactLevel;
}
/**
*
* Information identifying the person picking up the device.
*
*
* @return Information identifying the person picking up the device.
*/
public final PickupDetails pickupDetails() {
return pickupDetails;
}
@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(snowballCapacityPreferenceAsString());
hashCode = 31 * hashCode + Objects.hashCode(shippingOptionAsString());
hashCode = 31 * hashCode + Objects.hashCode(notification());
hashCode = 31 * hashCode + Objects.hashCode(clusterId());
hashCode = 31 * hashCode + Objects.hashCode(snowballTypeAsString());
hashCode = 31 * hashCode + Objects.hashCode(forwardingAddressId());
hashCode = 31 * hashCode + Objects.hashCode(taxDocuments());
hashCode = 31 * hashCode + Objects.hashCode(deviceConfiguration());
hashCode = 31 * hashCode + Objects.hashCode(remoteManagementAsString());
hashCode = 31 * hashCode + Objects.hashCode(longTermPricingId());
hashCode = 31 * hashCode + Objects.hashCode(impactLevelAsString());
hashCode = 31 * hashCode + Objects.hashCode(pickupDetails());
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 CreateJobRequest)) {
return false;
}
CreateJobRequest other = (CreateJobRequest) 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(snowballCapacityPreferenceAsString(), other.snowballCapacityPreferenceAsString())
&& Objects.equals(shippingOptionAsString(), other.shippingOptionAsString())
&& Objects.equals(notification(), other.notification()) && Objects.equals(clusterId(), other.clusterId())
&& Objects.equals(snowballTypeAsString(), other.snowballTypeAsString())
&& Objects.equals(forwardingAddressId(), other.forwardingAddressId())
&& Objects.equals(taxDocuments(), other.taxDocuments())
&& Objects.equals(deviceConfiguration(), other.deviceConfiguration())
&& Objects.equals(remoteManagementAsString(), other.remoteManagementAsString())
&& Objects.equals(longTermPricingId(), other.longTermPricingId())
&& Objects.equals(impactLevelAsString(), other.impactLevelAsString())
&& Objects.equals(pickupDetails(), other.pickupDetails());
}
/**
* 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("CreateJobRequest").add("JobType", jobTypeAsString()).add("Resources", resources())
.add("OnDeviceServiceConfiguration", onDeviceServiceConfiguration()).add("Description", description())
.add("AddressId", addressId()).add("KmsKeyARN", kmsKeyARN()).add("RoleARN", roleARN())
.add("SnowballCapacityPreference", snowballCapacityPreferenceAsString())
.add("ShippingOption", shippingOptionAsString()).add("Notification", notification())
.add("ClusterId", clusterId()).add("SnowballType", snowballTypeAsString())
.add("ForwardingAddressId", forwardingAddressId()).add("TaxDocuments", taxDocuments())
.add("DeviceConfiguration", deviceConfiguration()).add("RemoteManagement", remoteManagementAsString())
.add("LongTermPricingId", longTermPricingId()).add("ImpactLevel", impactLevelAsString())
.add("PickupDetails", pickupDetails()).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 "SnowballCapacityPreference":
return Optional.ofNullable(clazz.cast(snowballCapacityPreferenceAsString()));
case "ShippingOption":
return Optional.ofNullable(clazz.cast(shippingOptionAsString()));
case "Notification":
return Optional.ofNullable(clazz.cast(notification()));
case "ClusterId":
return Optional.ofNullable(clazz.cast(clusterId()));
case "SnowballType":
return Optional.ofNullable(clazz.cast(snowballTypeAsString()));
case "ForwardingAddressId":
return Optional.ofNullable(clazz.cast(forwardingAddressId()));
case "TaxDocuments":
return Optional.ofNullable(clazz.cast(taxDocuments()));
case "DeviceConfiguration":
return Optional.ofNullable(clazz.cast(deviceConfiguration()));
case "RemoteManagement":
return Optional.ofNullable(clazz.cast(remoteManagementAsString()));
case "LongTermPricingId":
return Optional.ofNullable(clazz.cast(longTermPricingId()));
case "ImpactLevel":
return Optional.ofNullable(clazz.cast(impactLevelAsString()));
case "PickupDetails":
return Optional.ofNullable(clazz.cast(pickupDetails()));
default:
return Optional.empty();
}
}
@Override
public final List> sdkFields() {
return SDK_FIELDS;
}
private static Function