/*
* 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.
*/
/*
* Do not modify this file. This file is generated from the snowball-2016-06-30.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.Snowball.Model
{
///
/// Container for the parameters to the CreateCluster operation.
/// Creates an empty cluster. Each cluster supports five nodes. You use the CreateJob
/// action separately to create the jobs for each of these nodes. The cluster does not
/// ship until these five node jobs have been created.
///
public partial class CreateClusterRequest : AmazonSnowballRequest
{
private string _addressId;
private string _description;
private bool? _forceCreateJobs;
private string _forwardingAddressId;
private int? _initialClusterSize;
private JobType _jobType;
private string _kmsKeyARN;
private List _longTermPricingIds = new List();
private Notification _notification;
private OnDeviceServiceConfiguration _onDeviceServiceConfiguration;
private RemoteManagement _remoteManagement;
private JobResource _resources;
private string _roleARN;
private ShippingOption _shippingOption;
private SnowballCapacity _snowballCapacityPreference;
private SnowballType _snowballType;
private TaxDocuments _taxDocuments;
///
/// Gets and sets the property AddressId.
///
/// The ID for the address that you want the cluster shipped to.
///
///
[AWSProperty(Required=true, Min=40, Max=40)]
public string AddressId
{
get { return this._addressId; }
set { this._addressId = value; }
}
// Check to see if AddressId property is set
internal bool IsSetAddressId()
{
return this._addressId != null;
}
///
/// Gets and sets the property Description.
///
/// An optional description of this specific cluster, for example Environmental
/// Data Cluster-01
.
///
///
[AWSProperty(Min=1, Max=1024)]
public string Description
{
get { return this._description; }
set { this._description = value; }
}
// Check to see if Description property is set
internal bool IsSetDescription()
{
return this._description != null;
}
///
/// Gets and sets the property 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
.
///
///
public bool ForceCreateJobs
{
get { return this._forceCreateJobs.GetValueOrDefault(); }
set { this._forceCreateJobs = value; }
}
// Check to see if ForceCreateJobs property is set
internal bool IsSetForceCreateJobs()
{
return this._forceCreateJobs.HasValue;
}
///
/// Gets and sets the property ForwardingAddressId.
///
/// The forwarding address ID for a cluster. This field is not supported in most regions.
///
///
[AWSProperty(Min=40, Max=40)]
public string ForwardingAddressId
{
get { return this._forwardingAddressId; }
set { this._forwardingAddressId = value; }
}
// Check to see if ForwardingAddressId property is set
internal bool IsSetForwardingAddressId()
{
return this._forwardingAddressId != null;
}
///
/// Gets and sets the property InitialClusterSize.
///
/// If provided, each job will be automatically created and associated with the new cluster.
/// If not provided, will be treated as 0.
///
///
[AWSProperty(Min=0, Max=16)]
public int InitialClusterSize
{
get { return this._initialClusterSize.GetValueOrDefault(); }
set { this._initialClusterSize = value; }
}
// Check to see if InitialClusterSize property is set
internal bool IsSetInitialClusterSize()
{
return this._initialClusterSize.HasValue;
}
///
/// Gets and sets the property 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.
///
///
[AWSProperty(Required=true)]
public JobType JobType
{
get { return this._jobType; }
set { this._jobType = value; }
}
// Check to see if JobType property is set
internal bool IsSetJobType()
{
return this._jobType != null;
}
///
/// Gets and sets the property 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).
///
///
[AWSProperty(Max=255)]
public string KmsKeyARN
{
get { return this._kmsKeyARN; }
set { this._kmsKeyARN = value; }
}
// Check to see if KmsKeyARN property is set
internal bool IsSetKmsKeyARN()
{
return this._kmsKeyARN != null;
}
///
/// Gets and sets the property LongTermPricingIds.
///
/// Lists long-term pricing id that will be used to associate with jobs automatically
/// created for the new cluster.
///
///
public List LongTermPricingIds
{
get { return this._longTermPricingIds; }
set { this._longTermPricingIds = value; }
}
// Check to see if LongTermPricingIds property is set
internal bool IsSetLongTermPricingIds()
{
return this._longTermPricingIds != null && this._longTermPricingIds.Count > 0;
}
///
/// Gets and sets the property Notification.
///
/// The Amazon Simple Notification Service (Amazon SNS) notification settings for this
/// cluster.
///
///
public Notification Notification
{
get { return this._notification; }
set { this._notification = value; }
}
// Check to see if Notification property is set
internal bool IsSetNotification()
{
return this._notification != null;
}
///
/// Gets and sets the property OnDeviceServiceConfiguration.
///
/// Specifies the service or services on the Snow Family device that your transferred
/// data will be exported from or imported into. Amazon Web Services Snow Family device
/// clusters support Amazon S3 and NFS (Network File System).
///
///
public OnDeviceServiceConfiguration OnDeviceServiceConfiguration
{
get { return this._onDeviceServiceConfiguration; }
set { this._onDeviceServiceConfiguration = value; }
}
// Check to see if OnDeviceServiceConfiguration property is set
internal bool IsSetOnDeviceServiceConfiguration()
{
return this._onDeviceServiceConfiguration != null;
}
///
/// Gets and sets the property 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.
///
///
public RemoteManagement RemoteManagement
{
get { return this._remoteManagement; }
set { this._remoteManagement = value; }
}
// Check to see if RemoteManagement property is set
internal bool IsSetRemoteManagement()
{
return this._remoteManagement != null;
}
///
/// Gets and sets the property Resources.
///
/// The resources associated with the cluster job. These resources include Amazon S3 buckets
/// and optional Lambda functions written in the Python language.
///
///
public JobResource Resources
{
get { return this._resources; }
set { this._resources = value; }
}
// Check to see if Resources property is set
internal bool IsSetResources()
{
return this._resources != null;
}
///
/// Gets and sets the property 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).
///
///
[AWSProperty(Max=255)]
public string RoleARN
{
get { return this._roleARN; }
set { this._roleARN = value; }
}
// Check to see if RoleARN property is set
internal bool IsSetRoleARN()
{
return this._roleARN != null;
}
///
/// Gets and sets the property 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.
///
///
///
[AWSProperty(Required=true)]
public ShippingOption ShippingOption
{
get { return this._shippingOption; }
set { this._shippingOption = value; }
}
// Check to see if ShippingOption property is set
internal bool IsSetShippingOption()
{
return this._shippingOption != null;
}
///
/// Gets and sets the property 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.
///
///
public SnowballCapacity SnowballCapacityPreference
{
get { return this._snowballCapacityPreference; }
set { this._snowballCapacityPreference = value; }
}
// Check to see if SnowballCapacityPreference property is set
internal bool IsSetSnowballCapacityPreference()
{
return this._snowballCapacityPreference != null;
}
///
/// Gets and sets the property 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.
///
///
[AWSProperty(Required=true)]
public SnowballType SnowballType
{
get { return this._snowballType; }
set { this._snowballType = value; }
}
// Check to see if SnowballType property is set
internal bool IsSetSnowballType()
{
return this._snowballType != null;
}
///
/// Gets and sets the property TaxDocuments.
///
/// The tax documents required in your Amazon Web Services Region.
///
///
public TaxDocuments TaxDocuments
{
get { return this._taxDocuments; }
set { this._taxDocuments = value; }
}
// Check to see if TaxDocuments property is set
internal bool IsSetTaxDocuments()
{
return this._taxDocuments != null;
}
}
}