/* * 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 elasticfilesystem-2015-02-01.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.ElasticFileSystem.Model { /// /// Container for the parameters to the CreateFileSystem operation. /// Creates a new, empty file system. The operation requires a creation token in the request /// that Amazon EFS uses to ensure idempotent creation (calling the operation with same /// creation token has no effect). If a file system does not currently exist that is owned /// by the caller's Amazon Web Services account with the specified creation token, this /// operation does the following: /// /// /// /// Otherwise, this operation returns a FileSystemAlreadyExists error with /// the ID of the existing file system. /// /// /// /// For basic use cases, you can use a randomly generated UUID for the creation token. /// /// /// /// The idempotent operation allows you to retry a CreateFileSystem call /// without risk of creating an extra file system. This can happen when an initial call /// fails in a way that leaves it uncertain whether or not a file system was actually /// created. An example might be that a transport level timeout occurred or your connection /// was reset. As long as you use the same creation token, if the initial call had succeeded /// in creating a file system, the client can learn of its existence from the FileSystemAlreadyExists /// error. /// /// /// /// For more information, see Creating /// a file system in the Amazon EFS User Guide. /// /// /// /// The CreateFileSystem call returns while the file system's lifecycle state /// is still creating. You can check the file system creation status by calling /// the DescribeFileSystems operation, which among other things returns the file /// system state. /// /// /// /// This operation accepts an optional PerformanceMode parameter that you /// choose for your file system. We recommend generalPurpose performance /// mode for most file systems. File systems using the maxIO performance /// mode can scale to higher levels of aggregate throughput and operations per second /// with a tradeoff of slightly higher latencies for most file operations. The performance /// mode can't be changed after the file system has been created. For more information, /// see Amazon /// EFS performance modes. /// /// /// /// You can set the throughput mode for the file system using the ThroughputMode /// parameter. /// /// /// /// After the file system is fully created, Amazon EFS sets its lifecycle state to available, /// at which point you can create one or more mount targets for the file system in your /// VPC. For more information, see CreateMountTarget. You mount your Amazon EFS /// file system on an EC2 instances in your VPC by using the mount target. For more information, /// see Amazon EFS: /// How it Works. /// /// /// /// This operation requires permissions for the elasticfilesystem:CreateFileSystem /// action. /// /// /// /// File systems can be tagged on creation. If tags are specified in the creation action, /// IAM performs additional authorization on the elasticfilesystem:TagResource /// action to verify if users have permissions to create tags. Therefore, you must grant /// explicit permissions to use the elasticfilesystem:TagResource action. /// For more information, see Granting /// permissions to tag resources during creation. /// /// public partial class CreateFileSystemRequest : AmazonElasticFileSystemRequest { private string _availabilityZoneName; private bool? _backup; private string _creationToken; private bool? _encrypted; private string _kmsKeyId; private PerformanceMode _performanceMode; private double? _provisionedThroughputInMibps; private List _tags = new List(); private ThroughputMode _throughputMode; /// /// Empty constructor used to set properties independently even when a simple constructor is available /// public CreateFileSystemRequest() { } /// /// Instantiates CreateFileSystemRequest with the parameterized properties /// /// A string of up to 64 ASCII characters. Amazon EFS uses this to ensure idempotent creation. public CreateFileSystemRequest(string creationToken) { _creationToken = creationToken; } /// /// Gets and sets the property AvailabilityZoneName. /// /// Used to create a file system that uses One Zone storage classes. It specifies the /// Amazon Web Services Availability Zone in which to create the file system. Use the /// format us-east-1a to specify the Availability Zone. For more information /// about One Zone storage classes, see Using /// EFS storage classes in the Amazon EFS User Guide. /// /// /// /// One Zone storage classes are not available in all Availability Zones in Amazon Web /// Services Regions where Amazon EFS is available. /// /// /// [AWSProperty(Min=1, Max=64)] public string AvailabilityZoneName { get { return this._availabilityZoneName; } set { this._availabilityZoneName = value; } } // Check to see if AvailabilityZoneName property is set internal bool IsSetAvailabilityZoneName() { return this._availabilityZoneName != null; } /// /// Gets and sets the property Backup. /// /// Specifies whether automatic backups are enabled on the file system that you are creating. /// Set the value to true to enable automatic backups. If you are creating /// a file system that uses One Zone storage classes, automatic backups are enabled by /// default. For more information, see Automatic /// backups in the Amazon EFS User Guide. /// /// /// /// Default is false. However, if you specify an AvailabilityZoneName, /// the default is true. /// /// /// /// Backup is not available in all Amazon Web Services Regions where Amazon EFS is available. /// /// /// public bool Backup { get { return this._backup.GetValueOrDefault(); } set { this._backup = value; } } // Check to see if Backup property is set internal bool IsSetBackup() { return this._backup.HasValue; } /// /// Gets and sets the property CreationToken. /// /// A string of up to 64 ASCII characters. Amazon EFS uses this to ensure idempotent creation. /// /// [AWSProperty(Min=1, Max=64)] public string CreationToken { get { return this._creationToken; } set { this._creationToken = value; } } // Check to see if CreationToken property is set internal bool IsSetCreationToken() { return this._creationToken != null; } /// /// Gets and sets the property Encrypted. /// /// A Boolean value that, if true, creates an encrypted file system. When creating an /// encrypted file system, you have the option of specifying an existing Key Management /// Service key (KMS key). If you don't specify a KMS key, then the default KMS key for /// Amazon EFS, /aws/elasticfilesystem, is used to protect the encrypted /// file system. /// /// public bool Encrypted { get { return this._encrypted.GetValueOrDefault(); } set { this._encrypted = value; } } // Check to see if Encrypted property is set internal bool IsSetEncrypted() { return this._encrypted.HasValue; } /// /// Gets and sets the property KmsKeyId. /// /// The ID of the KMS key that you want to use to protect the encrypted file system. This /// parameter is required only if you want to use a non-default KMS key. If this parameter /// is not specified, the default KMS key for Amazon EFS is used. You can specify a KMS /// key ID using the following formats: /// ///
  • /// /// Key ID - A unique identifier of the key, for example 1234abcd-12ab-34cd-56ef-1234567890ab. /// ///
  • /// /// ARN - An Amazon Resource Name (ARN) for the key, for example arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab. /// ///
  • /// /// Key alias - A previously created display name for a key, for example alias/projectKey1. /// ///
  • /// /// Key alias ARN - An ARN for a key alias, for example arn:aws:kms:us-west-2:444455556666:alias/projectKey1. /// ///
/// /// If you use KmsKeyId, you must set the CreateFileSystemRequest$Encrypted /// parameter to true. /// /// /// /// EFS accepts only symmetric KMS keys. You cannot use asymmetric KMS keys with Amazon /// EFS file systems. /// /// ///
[AWSProperty(Max=2048)] public string KmsKeyId { get { return this._kmsKeyId; } set { this._kmsKeyId = value; } } // Check to see if KmsKeyId property is set internal bool IsSetKmsKeyId() { return this._kmsKeyId != null; } /// /// Gets and sets the property PerformanceMode. /// /// The performance mode of the file system. We recommend generalPurpose /// performance mode for most file systems. File systems using the maxIO /// performance mode can scale to higher levels of aggregate throughput and operations /// per second with a tradeoff of slightly higher latencies for most file operations. /// The performance mode can't be changed after the file system has been created. /// /// /// /// The maxIO mode is not supported on file systems using One Zone storage /// classes. /// /// /// public PerformanceMode PerformanceMode { get { return this._performanceMode; } set { this._performanceMode = value; } } // Check to see if PerformanceMode property is set internal bool IsSetPerformanceMode() { return this._performanceMode != null; } /// /// Gets and sets the property ProvisionedThroughputInMibps. /// /// The throughput, measured in MiB/s, that you want to provision for a file system that /// you're creating. Valid values are 1-1024. Required if ThroughputMode /// is set to provisioned. The upper limit for throughput is 1024 MiB/s. /// To increase this limit, contact Amazon Web Services Support. For more information, /// see Amazon /// EFS quotas that you can increase in the Amazon EFS User Guide. /// /// [AWSProperty(Min=1)] public double ProvisionedThroughputInMibps { get { return this._provisionedThroughputInMibps.GetValueOrDefault(); } set { this._provisionedThroughputInMibps = value; } } // Check to see if ProvisionedThroughputInMibps property is set internal bool IsSetProvisionedThroughputInMibps() { return this._provisionedThroughputInMibps.HasValue; } /// /// Gets and sets the property Tags. /// /// Use to create one or more tags associated with the file system. Each tag is a user-defined /// key-value pair. Name your file system on creation by including a "Key":"Name","Value":"{value}" /// key-value pair. Each key must be unique. For more information, see Tagging /// Amazon Web Services resources in the Amazon Web Services General Reference /// Guide. /// /// 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 ThroughputMode. /// /// Specifies the throughput mode for the file system. The mode can be bursting, /// provisioned, or elastic. If you set ThroughputMode /// to provisioned, you must also set a value for ProvisionedThroughputInMibps. /// After you create the file system, you can decrease your file system's throughput in /// Provisioned Throughput mode or change between the throughput modes, with certain time /// restrictions. For more information, see Specifying /// throughput with provisioned mode in the Amazon EFS User Guide. /// /// /// /// Default is bursting. /// /// public ThroughputMode ThroughputMode { get { return this._throughputMode; } set { this._throughputMode = value; } } // Check to see if ThroughputMode property is set internal bool IsSetThroughputMode() { return this._throughputMode != null; } } }