Skip to content

Commit e5738ab

Browse files
author
awstools
committed
feat(client-efs): Added support for Internet Protocol Version 6 (IPv6) on EFS Service APIs and mount targets.
1 parent c04afc4 commit e5738ab

18 files changed

+860
-937
lines changed

clients/client-efs/README.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,12 @@ AWS SDK for JavaScript EFS Client for Node.js, Browser and React Native.
99
<fullname>Amazon Elastic File System</fullname>
1010

1111
<p>Amazon Elastic File System (Amazon EFS) provides simple, scalable file storage for
12-
use with Amazon EC2 Linux and Mac instances in the Amazon Web Services Cloud. With Amazon EFS, storage capacity is elastic, growing and shrinking automatically as you add and
13-
remove files, so that your applications have the storage they need, when they need it. For
14-
more information, see the <a href="https://docs.aws.amazon.com/efs/latest/ug/api-reference.html">Amazon Elastic File System API Reference</a> and the <a href="https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html">Amazon Elastic File System User Guide</a>.</p>
12+
use with Amazon EC2 Linux and Mac instances in the Amazon Web Services Cloud. With
13+
Amazon EFS, storage capacity is elastic, growing and shrinking automatically as you
14+
add and remove files, so that your applications have the storage they need, when they need it.
15+
For more information, see the <a href="https://docs.aws.amazon.com/efs/latest/ug/api-reference.html">Amazon Elastic File System API Reference</a> and
16+
the <a href="https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html">Amazon Elastic File System
17+
User Guide</a>.</p>
1518

1619
## Installing
1720

clients/client-efs/src/EFS.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -685,9 +685,12 @@ export interface EFS {
685685
/**
686686
* <fullname>Amazon Elastic File System</fullname>
687687
* <p>Amazon Elastic File System (Amazon EFS) provides simple, scalable file storage for
688-
* use with Amazon EC2 Linux and Mac instances in the Amazon Web Services Cloud. With Amazon EFS, storage capacity is elastic, growing and shrinking automatically as you add and
689-
* remove files, so that your applications have the storage they need, when they need it. For
690-
* more information, see the <a href="https://docs.aws.amazon.com/efs/latest/ug/api-reference.html">Amazon Elastic File System API Reference</a> and the <a href="https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html">Amazon Elastic File System User Guide</a>.</p>
688+
* use with Amazon EC2 Linux and Mac instances in the Amazon Web Services Cloud. With
689+
* Amazon EFS, storage capacity is elastic, growing and shrinking automatically as you
690+
* add and remove files, so that your applications have the storage they need, when they need it.
691+
* For more information, see the <a href="https://docs.aws.amazon.com/efs/latest/ug/api-reference.html">Amazon Elastic File System API Reference</a> and
692+
* the <a href="https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html">Amazon Elastic File System
693+
* User Guide</a>.</p>
691694
* @public
692695
*/
693696
export class EFS extends EFSClient implements EFS {}

clients/client-efs/src/EFSClient.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -414,9 +414,12 @@ export interface EFSClientResolvedConfig extends EFSClientResolvedConfigType {}
414414
/**
415415
* <fullname>Amazon Elastic File System</fullname>
416416
* <p>Amazon Elastic File System (Amazon EFS) provides simple, scalable file storage for
417-
* use with Amazon EC2 Linux and Mac instances in the Amazon Web Services Cloud. With Amazon EFS, storage capacity is elastic, growing and shrinking automatically as you add and
418-
* remove files, so that your applications have the storage they need, when they need it. For
419-
* more information, see the <a href="https://docs.aws.amazon.com/efs/latest/ug/api-reference.html">Amazon Elastic File System API Reference</a> and the <a href="https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html">Amazon Elastic File System User Guide</a>.</p>
417+
* use with Amazon EC2 Linux and Mac instances in the Amazon Web Services Cloud. With
418+
* Amazon EFS, storage capacity is elastic, growing and shrinking automatically as you
419+
* add and remove files, so that your applications have the storage they need, when they need it.
420+
* For more information, see the <a href="https://docs.aws.amazon.com/efs/latest/ug/api-reference.html">Amazon Elastic File System API Reference</a> and
421+
* the <a href="https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html">Amazon Elastic File System
422+
* User Guide</a>.</p>
420423
* @public
421424
*/
422425
export class EFSClient extends __Client<

clients/client-efs/src/commands/CreateAccessPointCommand.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,14 @@ export interface CreateAccessPointCommandOutput extends AccessPointDescription,
3333
* system path, to any file system request made through the access point. The operating system
3434
* user and group override any identity information provided by the NFS client. The file system
3535
* path is exposed as the access point's root directory. Applications using the access point can
36-
* only access data in the application's own directory and any subdirectories. To learn more, see
36+
* only access data in the application's own directory and any subdirectories. A file system can
37+
* have a maximum of 10,000 access points unless you request an increase. To learn more, see
3738
* <a href="https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html">Mounting a file
3839
* system using EFS access points</a>.</p>
3940
* <note>
4041
* <p>If multiple requests to create access points on the same file system are sent in quick
41-
* succession, and the file system is near the limit of 1,000 access points, you may experience
42-
* a throttling response for these requests. This is to ensure that the file system does not
42+
* succession, and the file system is near the limit of access points, you may experience a
43+
* throttling response for these requests. This is to ensure that the file system does not
4344
* exceed the stated access point limit.</p>
4445
* </note>
4546
* <p>This operation requires permissions for the <code>elasticfilesystem:CreateAccessPoint</code> action.</p>

clients/client-efs/src/commands/CreateFileSystemCommand.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,9 @@ export interface CreateFileSystemCommandOutput extends FileSystemDescription, __
7676
* parameter.</p>
7777
* <p>After the file system is fully created, Amazon EFS sets its lifecycle state to
7878
* <code>available</code>, at which point you can create one or more mount targets for the file
79-
* system in your VPC. For more information, see <a>CreateMountTarget</a>. You mount your Amazon EFS file system on an EC2 instances in
80-
* your VPC by using the mount target. For more information, see <a href="https://docs.aws.amazon.com/efs/latest/ug/how-it-works.html">Amazon EFS: How it Works</a>. </p>
79+
* system in your VPC. For more information, see <a>CreateMountTarget</a>. You mount
80+
* your Amazon EFS file system on an EC2 instances in your VPC by using the mount
81+
* target. For more information, see <a href="https://docs.aws.amazon.com/efs/latest/ug/how-it-works.html">Amazon EFS: How it Works</a>. </p>
8182
* <p>This operation requires permissions for the
8283
* <code>elasticfilesystem:CreateFileSystem</code> action. </p>
8384
* <p>File systems can be tagged on creation. If tags are specified in the creation action, IAM

clients/client-efs/src/commands/CreateMountTargetCommand.ts

Lines changed: 45 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -30,17 +30,16 @@ export interface CreateMountTargetCommandOutput extends MountTargetDescription,
3030
/**
3131
* <p>Creates a mount target for a file system. You can then mount the file system on EC2
3232
* instances by using the mount target.</p>
33-
* <p>You can create one mount target in each Availability Zone in your VPC. All EC2
34-
* instances in a VPC within a given Availability Zone share a single mount target for a given
35-
* file system. If you have multiple subnets in an Availability Zone, you create a mount target
36-
* in one of the subnets. EC2 instances do not need to be in the same subnet as the mount target
37-
* in order to access their file system.</p>
38-
* <p>You can create only one mount target for a One Zone file system.
39-
* You must create that mount target in the same Availability Zone in which the file system is
40-
* located. Use the <code>AvailabilityZoneName</code> and <code>AvailabiltyZoneId</code>
41-
* properties in the <a>DescribeFileSystems</a> response object to get this
42-
* information. Use the <code>subnetId</code> associated with the file system's Availability Zone
43-
* when creating the mount target.</p>
33+
* <p>You can create one mount target in each Availability Zone in your VPC. All EC2 instances
34+
* in a VPC within a given Availability Zone share a single mount target for a given file system. If
35+
* you have multiple subnets in an Availability Zone, you create a mount target in one of the subnets.
36+
* EC2 instances do not need to be in the same subnet as the mount target in order to
37+
* access their file system.</p>
38+
* <p>You can create only one mount target for a One Zone file system. You must
39+
* create that mount target in the same Availability Zone in which the file system is located. Use the
40+
* <code>AvailabilityZoneName</code> and <code>AvailabiltyZoneId</code> properties in the <a>DescribeFileSystems</a> response object to get this information. Use the
41+
* <code>subnetId</code> associated with the file system's Availability Zone when creating the mount
42+
* target.</p>
4443
* <p>For more information, see <a href="https://docs.aws.amazon.com/efs/latest/ug/how-it-works.html">Amazon EFS: How it Works</a>. </p>
4544
* <p>To create a mount target for a file system, the file system's lifecycle state must be
4645
* <code>available</code>. For more information, see <a>DescribeFileSystems</a>.</p>
@@ -68,22 +67,22 @@ export interface CreateMountTargetCommandOutput extends MountTargetDescription,
6867
* </ul>
6968
* <p>After creating the mount target, Amazon EFS returns a response that includes, a
7069
* <code>MountTargetId</code> and an <code>IpAddress</code>. You use this IP address when
71-
* mounting the file system in an EC2 instance. You can also use the mount target's DNS name
72-
* when mounting the file system. The EC2 instance on which you mount the file system by using
73-
* the mount target can resolve the mount target's DNS name to its IP address. For more
74-
* information, see <a href="https://docs.aws.amazon.com/efs/latest/ug/how-it-works.html#how-it-works-implementation">How it Works:
70+
* mounting the file system in an EC2 instance. You can also use the mount target's
71+
* DNS name when mounting the file system. The EC2 instance on which you mount the file
72+
* system by using the mount target can resolve the mount target's DNS name to its IP
73+
* address. For more information, see <a href="https://docs.aws.amazon.com/efs/latest/ug/how-it-works.html#how-it-works-implementation">How it Works:
7574
* Implementation Overview</a>. </p>
76-
* <p>Note that you can create mount targets for a file system in only one VPC, and there can
77-
* be only one mount target per Availability Zone. That is, if the file system already has one or
78-
* more mount targets created for it, the subnet specified in the request to add another mount
79-
* target must meet the following requirements:</p>
75+
* <p>Note that you can create mount targets for a file system in only one VPC, and there can be
76+
* only one mount target per Availability Zone. That is, if the file system already has one or more
77+
* mount targets created for it, the subnet specified in the request to add another mount target
78+
* must meet the following requirements:</p>
8079
* <ul>
8180
* <li>
8281
* <p>Must belong to the same VPC as the subnets of the existing mount targets</p>
8382
* </li>
8483
* <li>
85-
* <p>Must not be in the same Availability Zone as any of the subnets of the existing
86-
* mount targets</p>
84+
* <p>Must not be in the same Availability Zone as any of the subnets of the existing mount
85+
* targets</p>
8786
* </li>
8887
* </ul>
8988
* <p>If the request satisfies the requirements, Amazon EFS does the following:</p>
@@ -95,10 +94,11 @@ export interface CreateMountTargetCommandOutput extends MountTargetDescription,
9594
* <p>Also creates a new network interface in the subnet as follows:</p>
9695
* <ul>
9796
* <li>
98-
* <p>If the request provides an <code>IpAddress</code>, Amazon EFS assigns that IP
99-
* address to the network interface. Otherwise, Amazon EFS assigns a free address in the
100-
* subnet (in the same way that the Amazon EC2 <code>CreateNetworkInterface</code> call
101-
* does when a request does not specify a primary private IP address).</p>
97+
* <p>If the request provides an <code>IpAddress</code>, Amazon EFS assigns that
98+
* IP address to the network interface. Otherwise, Amazon EFS assigns a free
99+
* address in the subnet (in the same way that the Amazon EC2
100+
* <code>CreateNetworkInterface</code> call does when a request does not specify a
101+
* primary private IP address).</p>
102102
* </li>
103103
* <li>
104104
* <p>If the request provides <code>SecurityGroups</code>, this network interface is
@@ -120,10 +120,10 @@ export interface CreateMountTargetCommandOutput extends MountTargetDescription,
120120
* <code>EFS</code>.</p>
121121
* </li>
122122
* </ul>
123-
* <p>Each Amazon EFS mount target has one corresponding requester-managed EC2 network
124-
* interface. After the network interface is created, Amazon EFS sets the
125-
* <code>NetworkInterfaceId</code> field in the mount target's description to the
126-
* network interface ID, and the <code>IpAddress</code> field to its address. If network
123+
* <p>Each Amazon EFS mount target has one corresponding requester-managed
124+
* EC2 network interface. After the network interface is created, Amazon EFS
125+
* sets the <code>NetworkInterfaceId</code> field in the mount target's description to
126+
* the network interface ID, and the <code>IpAddress</code> field to its address. If network
127127
* interface creation fails, the entire <code>CreateMountTarget</code> operation
128128
* fails.</p>
129129
* </li>
@@ -134,12 +134,12 @@ export interface CreateMountTargetCommandOutput extends MountTargetDescription,
134134
* the mount target creation status by calling the <a>DescribeMountTargets</a> operation, which among other things returns the mount
135135
* target state.</p>
136136
* </note>
137-
* <p>We recommend that you create a mount target in each of the Availability Zones. There
138-
* are cost considerations for using a file system in an Availability Zone through a mount target
139-
* created in another Availability Zone. For more information, see <a href="http://aws.amazon.com/efs/">Amazon EFS</a>. In addition, by always using a mount target local to the
140-
* instance's Availability Zone, you eliminate a partial failure scenario. If the
141-
* Availability Zone in which your mount target is created goes down, then you can't access
142-
* your file system through that mount target. </p>
137+
* <p>We recommend that you create a mount target in each of the Availability Zones. There are cost
138+
* considerations for using a file system in an Availability Zone through a mount target created in
139+
* another Availability Zone. For more information, see <a href="http://aws.amazon.com/efs/pricing/">Amazon EFS pricing</a>. In addition, by always using a mount target local to the
140+
* instance's Availability Zone, you eliminate a partial failure scenario. If the Availability Zone in
141+
* which your mount target is created goes down, then you can't access your file system
142+
* through that mount target. </p>
143143
* <p>This operation requires permissions for the following action on the file
144144
* system:</p>
145145
* <ul>
@@ -178,6 +178,8 @@ export interface CreateMountTargetCommandOutput extends MountTargetDescription,
178178
* FileSystemId: "STRING_VALUE", // required
179179
* SubnetId: "STRING_VALUE", // required
180180
* IpAddress: "STRING_VALUE",
181+
* Ipv6Address: "STRING_VALUE",
182+
* IpAddressType: "IPV4_ONLY" || "IPV6_ONLY" || "DUAL_STACK",
181183
* SecurityGroups: [ // SecurityGroups
182184
* "STRING_VALUE",
183185
* ],
@@ -191,6 +193,7 @@ export interface CreateMountTargetCommandOutput extends MountTargetDescription,
191193
* // SubnetId: "STRING_VALUE", // required
192194
* // LifeCycleState: "creating" || "available" || "updating" || "deleting" || "deleted" || "error", // required
193195
* // IpAddress: "STRING_VALUE",
196+
* // Ipv6Address: "STRING_VALUE",
194197
* // NetworkInterfaceId: "STRING_VALUE",
195198
* // AvailabilityZoneId: "STRING_VALUE",
196199
* // AvailabilityZoneName: "STRING_VALUE",
@@ -235,7 +238,7 @@ export interface CreateMountTargetCommandOutput extends MountTargetDescription,
235238
* @throws {@link NetworkInterfaceLimitExceeded} (client fault)
236239
* <p>The calling account has reached the limit for elastic network interfaces for the
237240
* specific Amazon Web Services Region. Either delete some network interfaces or request
238-
* that the account quota be raised. For more information, see <a href="https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Appendix_Limits.html">Amazon VPC Quotas</a>
241+
* that the account quota be raised. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html">Amazon VPC Quotas</a>
239242
* in the <i>Amazon VPC User Guide</i> (see the <b>Network
240243
* interfaces per Region</b> entry in the <b>Network
241244
* interfaces</b> table). </p>
@@ -245,8 +248,12 @@ export interface CreateMountTargetCommandOutput extends MountTargetDescription,
245248
* no free IP addresses in the subnet.</p>
246249
*
247250
* @throws {@link SecurityGroupLimitExceeded} (client fault)
248-
* <p>Returned if the size of <code>SecurityGroups</code> specified in the request is
249-
* greater than five.</p>
251+
* <p>Returned if the number of <code>SecurityGroups</code> specified in the request is
252+
* greater than the limit, which is based on account quota. Either delete some security groups
253+
* or request that the account quota be raised. For more information, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html">Amazon VPC Quotas</a>
254+
* in the <i>Amazon VPC User Guide</i> (see the <b>Security Groups</b>
255+
* table).
256+
* </p>
250257
*
251258
* @throws {@link SecurityGroupNotFound} (client fault)
252259
* <p>Returned if one of the specified security groups doesn't exist in the subnet's

clients/client-efs/src/commands/DeleteMountTargetCommand.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ export interface DeleteMountTargetCommandOutput extends __MetadataBearer {}
3434
* avoid applications getting cut off abruptly, you might consider unmounting any mounts of the
3535
* mount target, if feasible. The operation also deletes the associated network interface.
3636
* Uncommitted writes might be lost, but breaking a mount target using this operation does not
37-
* corrupt the file system itself. The file system you created remains. You can mount an EC2
38-
* instance in your VPC by using another mount target.</p>
37+
* corrupt the file system itself. The file system you created remains. You can mount an
38+
* EC2 instance in your VPC by using another mount target.</p>
3939
* <p>This operation requires permissions for the following action on the file
4040
* system:</p>
4141
* <ul>

clients/client-efs/src/commands/DescribeBackupPolicyCommand.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ export interface DescribeBackupPolicyCommandOutput extends BackupPolicyDescripti
6666
* <p>Returned if an error occurred on the server side.</p>
6767
*
6868
* @throws {@link PolicyNotFound} (client fault)
69-
* <p>Returned if the default file system policy is in effect for the EFS file system specified.</p>
69+
* <p>Returned if <code>no backup</code> is specified for a One Zone EFS file system.</p>
7070
*
7171
* @throws {@link ValidationException} (client fault)
7272
* <p>Returned if the Backup service is not available in the Amazon Web Services Region in which the request was made.</p>

0 commit comments

Comments
 (0)