/* * 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 CreateMountTarget operation. /// Creates a mount target for a file system. You can then mount the file system on EC2 /// instances by using the mount target. /// /// /// /// You can create one mount target in each Availability Zone in your VPC. All EC2 instances /// in a VPC within a given Availability Zone share a single mount target for a given /// file system. If you have multiple subnets in an Availability Zone, you create a mount /// target in one of the subnets. EC2 instances do not need to be in the same subnet as /// the mount target in order to access their file system. /// /// /// /// You can create only one mount target for an EFS file system using One Zone storage /// classes. You must create that mount target in the same Availability Zone in which /// the file system is located. Use the AvailabilityZoneName and AvailabiltyZoneId /// properties in the DescribeFileSystems response object to get this information. /// Use the subnetId associated with the file system's Availability Zone /// when creating the mount target. /// /// /// /// For more information, see Amazon /// EFS: How it Works. /// /// /// /// To create a mount target for a file system, the file system's lifecycle state must /// be available. For more information, see DescribeFileSystems. /// /// /// /// In the request, provide the following: /// /// /// /// After creating the mount target, Amazon EFS returns a response that includes, a MountTargetId /// and an IpAddress. You use this IP address when mounting the file system /// in an EC2 instance. You can also use the mount target's DNS name when mounting the /// file system. The EC2 instance on which you mount the file system by using the mount /// target can resolve the mount target's DNS name to its IP address. For more information, /// see How /// it Works: Implementation Overview. /// /// /// /// Note that you can create mount targets for a file system in only one VPC, and there /// can be only one mount target per Availability Zone. That is, if the file system already /// has one or more mount targets created for it, the subnet specified in the request /// to add another mount target must meet the following requirements: /// /// /// /// If the request satisfies the requirements, Amazon EFS does the following: /// /// /// /// The CreateMountTarget call returns only after creating the network interface, /// but while the mount target state is still creating, you can check the /// mount target creation status by calling the DescribeMountTargets operation, /// which among other things returns the mount target state. /// /// /// /// We recommend that you create a mount target in each of the Availability Zones. There /// are cost considerations for using a file system in an Availability Zone through a /// mount target created in another Availability Zone. For more information, see Amazon /// EFS. In addition, by always using a mount target local to the instance's Availability /// Zone, you eliminate a partial failure scenario. If the Availability Zone in which /// your mount target is created goes down, then you can't access your file system through /// that mount target. /// /// /// /// This operation requires permissions for the following action on the file system: /// /// /// /// This operation also requires permissions for the following Amazon EC2 actions: /// /// /// public partial class CreateMountTargetRequest : AmazonElasticFileSystemRequest { private string _fileSystemId; private string _ipAddress; private List _securityGroups = new List(); private string _subnetId; /// /// Gets and sets the property FileSystemId. /// /// The ID of the file system for which to create the mount target. /// /// [AWSProperty(Required=true, Max=128)] public string FileSystemId { get { return this._fileSystemId; } set { this._fileSystemId = value; } } // Check to see if FileSystemId property is set internal bool IsSetFileSystemId() { return this._fileSystemId != null; } /// /// Gets and sets the property IpAddress. /// /// Valid IPv4 address within the address range of the specified subnet. /// /// [AWSProperty(Min=7, Max=15)] public string IpAddress { get { return this._ipAddress; } set { this._ipAddress = value; } } // Check to see if IpAddress property is set internal bool IsSetIpAddress() { return this._ipAddress != null; } /// /// Gets and sets the property SecurityGroups. /// /// Up to five VPC security group IDs, of the form sg-xxxxxxxx. These must /// be for the same VPC as subnet specified. /// /// [AWSProperty(Max=100)] public List SecurityGroups { get { return this._securityGroups; } set { this._securityGroups = value; } } // Check to see if SecurityGroups property is set internal bool IsSetSecurityGroups() { return this._securityGroups != null && this._securityGroups.Count > 0; } /// /// Gets and sets the property SubnetId. /// /// The ID of the subnet to add the mount target in. For file systems that use One Zone /// storage classes, use the subnet that is associated with the file system's Availability /// Zone. /// /// [AWSProperty(Required=true, Min=15, Max=47)] public string SubnetId { get { return this._subnetId; } set { this._subnetId = value; } } // Check to see if SubnetId property is set internal bool IsSetSubnetId() { return this._subnetId != null; } } }