/* * 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 storagegateway-2013-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.StorageGateway.Model { /// /// Container for the parameters to the CreateCachediSCSIVolume operation. /// Creates a cached volume on a specified cached volume gateway. This operation is only /// supported in the cached volume gateway type. /// /// /// /// Cache storage must be allocated to the gateway before you can create a cached volume. /// Use the AddCache operation to add cache storage to a gateway. /// /// /// /// In the request, you must specify the gateway, size of the volume in bytes, the iSCSI /// target name, an IP address on which to expose the target, and a unique client token. /// In response, the gateway creates the volume and returns information about it. This /// information includes the volume Amazon Resource Name (ARN), its size, and the iSCSI /// target ARN that initiators can use to connect to the volume target. /// /// /// /// Optionally, you can provide the ARN for an existing volume as the SourceVolumeARN /// for this cached volume, which creates an exact copy of the existing volume’s latest /// recovery point. The VolumeSizeInBytes value must be equal to or larger /// than the size of the copied volume, in bytes. /// /// public partial class CreateCachediSCSIVolumeRequest : AmazonStorageGatewayRequest { private string _clientToken; private string _gatewayARN; private bool? _kmsEncrypted; private string _kmsKey; private string _networkInterfaceId; private string _snapshotId; private string _sourceVolumeARN; private List _tags = new List(); private string _targetName; private long? _volumeSizeInBytes; /// /// Gets and sets the property ClientToken. /// /// A unique identifier that you use to retry a request. If you retry a request, use the /// same ClientToken you specified in the initial request. /// /// [AWSProperty(Required=true, Min=5, Max=100)] public string ClientToken { get { return this._clientToken; } set { this._clientToken = value; } } // Check to see if ClientToken property is set internal bool IsSetClientToken() { return this._clientToken != null; } /// /// Gets and sets the property GatewayARN. /// [AWSProperty(Required=true, Min=50, Max=500)] public string GatewayARN { get { return this._gatewayARN; } set { this._gatewayARN = value; } } // Check to see if GatewayARN property is set internal bool IsSetGatewayARN() { return this._gatewayARN != null; } /// /// Gets and sets the property KMSEncrypted. /// /// Set to true to use Amazon S3 server-side encryption with your own KMS /// key, or false to use a key managed by Amazon S3. Optional. /// /// /// /// Valid Values: true | false /// /// public bool KMSEncrypted { get { return this._kmsEncrypted.GetValueOrDefault(); } set { this._kmsEncrypted = value; } } // Check to see if KMSEncrypted property is set internal bool IsSetKMSEncrypted() { return this._kmsEncrypted.HasValue; } /// /// Gets and sets the property KMSKey. /// /// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for Amazon /// S3 server-side encryption. Storage Gateway does not support asymmetric CMKs. This /// value can only be set when KMSEncrypted is true. Optional. /// /// [AWSProperty(Min=7, Max=2048)] public string KMSKey { get { return this._kmsKey; } set { this._kmsKey = value; } } // Check to see if KMSKey property is set internal bool IsSetKMSKey() { return this._kmsKey != null; } /// /// Gets and sets the property NetworkInterfaceId. /// /// The network interface of the gateway on which to expose the iSCSI target. Only IPv4 /// addresses are accepted. Use DescribeGatewayInformation to get a list of the /// network interfaces available on a gateway. /// /// /// /// Valid Values: A valid IP address. /// /// [AWSProperty(Required=true)] public string NetworkInterfaceId { get { return this._networkInterfaceId; } set { this._networkInterfaceId = value; } } // Check to see if NetworkInterfaceId property is set internal bool IsSetNetworkInterfaceId() { return this._networkInterfaceId != null; } /// /// Gets and sets the property SnapshotId. /// /// The snapshot ID (e.g. "snap-1122aabb") of the snapshot to restore as the new cached /// volume. Specify this field if you want to create the iSCSI storage volume from a snapshot; /// otherwise, do not include this field. To list snapshots for your account use DescribeSnapshots /// in the Amazon Elastic Compute Cloud API Reference. /// /// public string SnapshotId { get { return this._snapshotId; } set { this._snapshotId = value; } } // Check to see if SnapshotId property is set internal bool IsSetSnapshotId() { return this._snapshotId != null; } /// /// Gets and sets the property SourceVolumeARN. /// /// The ARN for an existing volume. Specifying this ARN makes the new volume into an exact /// copy of the specified existing volume's latest recovery point. The VolumeSizeInBytes /// value for this new volume must be equal to or larger than the size of the existing /// volume, in bytes. /// /// [AWSProperty(Min=50, Max=500)] public string SourceVolumeARN { get { return this._sourceVolumeARN; } set { this._sourceVolumeARN = value; } } // Check to see if SourceVolumeARN property is set internal bool IsSetSourceVolumeARN() { return this._sourceVolumeARN != null; } /// /// Gets and sets the property Tags. /// /// A list of up to 50 tags that you can assign to a cached volume. Each tag is a key-value /// pair. /// /// /// /// Valid characters for key and value are letters, spaces, and numbers that you can represent /// in UTF-8 format, and the following special characters: + - = . _ : / @. The maximum /// length of a tag's key is 128 characters, and the maximum length for a tag's value /// is 256 characters. /// /// /// public List Tags { get { return this._tags; } set { this._tags = value; } } // Check to see if Tags property is set internal bool IsSetTags() { return this._tags != null && this._tags.Count > 0; } /// /// Gets and sets the property TargetName. /// /// The name of the iSCSI target used by an initiator to connect to a volume and used /// as a suffix for the target ARN. For example, specifying TargetName as /// myvolume results in the target ARN of arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:myvolume. /// The target name must be unique across all volumes on a gateway. /// /// /// /// If you don't specify a value, Storage Gateway uses the value that was previously used /// for this volume as the new target name. /// /// [AWSProperty(Required=true, Min=1, Max=200)] public string TargetName { get { return this._targetName; } set { this._targetName = value; } } // Check to see if TargetName property is set internal bool IsSetTargetName() { return this._targetName != null; } /// /// Gets and sets the property VolumeSizeInBytes. /// /// The size of the volume in bytes. /// /// [AWSProperty(Required=true)] public long VolumeSizeInBytes { get { return this._volumeSizeInBytes.GetValueOrDefault(); } set { this._volumeSizeInBytes = value; } } // Check to see if VolumeSizeInBytes property is set internal bool IsSetVolumeSizeInBytes() { return this._volumeSizeInBytes.HasValue; } } }