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

* Defines the type of job that you're creating. *

*/ private String 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. *

*/ private JobResource resources; /** *

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

*/ private OnDeviceServiceConfiguration onDeviceServiceConfiguration; /** *

* Defines an optional description of this specific job, for example Important Photos 2016-08-11. *

*/ private String description; /** *

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

*/ private String addressId; /** *

* The KmsKeyARN that you want to associate with this job. KmsKeyARNs are created using * the CreateKey Key Management * Service (KMS) API action. *

*/ private String kmsKeyARN; /** *

* The RoleARN that you want to associate with this job. RoleArns are created using the CreateRole Identity and Access * Management (IAM) API action. *

*/ private String 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. *

*/ private String 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: *

* */ private String shippingOption; /** *

* Defines the Amazon Simple Notification Service (Amazon SNS) notification settings for this job. *

*/ private Notification 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. *

*/ private String 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. *

*/ private String snowballType; /** *

* The forwarding address ID for a job. This field is not supported in most Regions. *

*/ private String forwardingAddressId; /** *

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

*/ private TaxDocuments 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. *

*/ private DeviceConfiguration 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. *

*/ private String remoteManagement; /** *

* The ID of the long-term pricing type for the device. *

*/ private String longTermPricingId; /** *

* The highest impact level of data that will be stored or processed on the device, provided at job creation. *

*/ private String impactLevel; /** *

* Information identifying the person picking up the device. *

*/ private PickupDetails pickupDetails; /** *

* Defines the type of job that you're creating. *

* * @param jobType * Defines the type of job that you're creating. * @see JobType */ public void setJobType(String jobType) { this.jobType = jobType; } /** *

* Defines the type of job that you're creating. *

* * @return Defines the type of job that you're creating. * @see JobType */ public String getJobType() { return this.jobType; } /** *

* Defines the type of job that you're creating. *

* * @param jobType * Defines the type of job that you're creating. * @return Returns a reference to this object so that method calls can be chained together. * @see JobType */ public CreateJobRequest withJobType(String jobType) { setJobType(jobType); return this; } /** *

* Defines the type of job that you're creating. *

* * @param jobType * Defines the type of job that you're creating. * @see JobType */ public void setJobType(JobType jobType) { withJobType(jobType); } /** *

* Defines the type of job that you're creating. *

* * @param jobType * Defines the type of job that you're creating. * @return Returns a reference to this object so that method calls can be chained together. * @see JobType */ public CreateJobRequest withJobType(JobType jobType) { this.jobType = jobType.toString(); return this; } /** *

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

* * @param resources * 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 void setResources(JobResource resources) { this.resources = resources; } /** *

* 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 JobResource getResources() { return this.resources; } /** *

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

* * @param resources * 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 Returns a reference to this object so that method calls can be chained together. */ public CreateJobRequest withResources(JobResource resources) { setResources(resources); return this; } /** *

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

* * @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 supports Amazon S3 and NFS (Network File System) * and the Amazon Web Services Storage Gateway service Tape Gateway type. */ public void setOnDeviceServiceConfiguration(OnDeviceServiceConfiguration onDeviceServiceConfiguration) { this.onDeviceServiceConfiguration = onDeviceServiceConfiguration; } /** *

* Specifies the service or services on the Snow Family device that your transferred data will be exported from or * imported into. Amazon Web Services Snow Family 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 OnDeviceServiceConfiguration getOnDeviceServiceConfiguration() { return this.onDeviceServiceConfiguration; } /** *

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

* * @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 supports Amazon S3 and NFS (Network File System) * and the Amazon Web Services Storage Gateway service Tape Gateway type. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateJobRequest withOnDeviceServiceConfiguration(OnDeviceServiceConfiguration onDeviceServiceConfiguration) { setOnDeviceServiceConfiguration(onDeviceServiceConfiguration); return this; } /** *

* Defines an optional description of this specific job, for example Important Photos 2016-08-11. *

* * @param description * Defines an optional description of this specific job, for example Important Photos 2016-08-11 * . */ public void setDescription(String description) { this.description = description; } /** *

* 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 String getDescription() { return this.description; } /** *

* Defines an optional description of this specific job, for example Important Photos 2016-08-11. *

* * @param description * Defines an optional description of this specific job, for example Important Photos 2016-08-11 * . * @return Returns a reference to this object so that method calls can be chained together. */ public CreateJobRequest withDescription(String description) { setDescription(description); return this; } /** *

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

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

* 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 String getAddressId() { return this.addressId; } /** *

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

* * @param addressId * The ID for the address that you want the Snow device shipped to. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateJobRequest withAddressId(String addressId) { setAddressId(addressId); return this; } /** *

* The KmsKeyARN that you want to associate with this job. KmsKeyARNs are created using * the CreateKey Key Management * Service (KMS) API action. *

* * @param kmsKeyARN * The KmsKeyARN that you want to associate with this job. KmsKeyARNs are created * using the CreateKey * Key Management Service (KMS) API action. */ public void setKmsKeyARN(String kmsKeyARN) { this.kmsKeyARN = kmsKeyARN; } /** *

* The KmsKeyARN that you want to associate with this job. KmsKeyARNs are created using * the CreateKey Key Management * Service (KMS) API action. *

* * @return The KmsKeyARN that you want to associate with this job. KmsKeyARNs are created * using the CreateKey * Key Management Service (KMS) API action. */ public String getKmsKeyARN() { return this.kmsKeyARN; } /** *

* The KmsKeyARN that you want to associate with this job. KmsKeyARNs are created using * the CreateKey Key Management * Service (KMS) API action. *

* * @param kmsKeyARN * The KmsKeyARN that you want to associate with this job. KmsKeyARNs are created * using the CreateKey * Key Management Service (KMS) API action. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateJobRequest withKmsKeyARN(String kmsKeyARN) { setKmsKeyARN(kmsKeyARN); return this; } /** *

* The RoleARN that you want to associate with this job. RoleArns are created using the CreateRole Identity and Access * Management (IAM) API action. *

* * @param roleARN * The RoleARN that you want to associate with this job. RoleArns are created using * the CreateRole * Identity and Access Management (IAM) API action. */ public void setRoleARN(String roleARN) { this.roleARN = roleARN; } /** *

* The RoleARN that you want to associate with this job. RoleArns are created using the CreateRole Identity and Access * Management (IAM) API action. *

* * @return The RoleARN that you want to associate with this job. RoleArns are created * using the CreateRole Identity * and Access Management (IAM) API action. */ public String getRoleARN() { return this.roleARN; } /** *

* The RoleARN that you want to associate with this job. RoleArns are created using the CreateRole Identity and Access * Management (IAM) API action. *

* * @param roleARN * The RoleARN that you want to associate with this job. RoleArns are created using * the CreateRole * Identity and Access Management (IAM) API action. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateJobRequest withRoleARN(String roleARN) { setRoleARN(roleARN); return this; } /** *

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

*

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

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

* * @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 String getSnowballCapacityPreference() { return this.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. * @return Returns a reference to this object so that method calls can be chained together. * @see SnowballCapacity */ public CreateJobRequest withSnowballCapacityPreference(String snowballCapacityPreference) { setSnowballCapacityPreference(snowballCapacityPreference); return this; } /** *

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

*

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

* * @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 */ public void setSnowballCapacityPreference(SnowballCapacity snowballCapacityPreference) { withSnowballCapacityPreference(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. * @return Returns a reference to this object so that method calls can be chained together. * @see SnowballCapacity */ public CreateJobRequest withSnowballCapacityPreference(SnowballCapacity snowballCapacityPreference) { this.snowballCapacityPreference = snowballCapacityPreference.toString(); return this; } /** *

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

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

*