1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package efs
4
5import (
6	"fmt"
7	"time"
8
9	"github.com/aws/aws-sdk-go/aws"
10	"github.com/aws/aws-sdk-go/aws/awsutil"
11	"github.com/aws/aws-sdk-go/aws/request"
12	"github.com/aws/aws-sdk-go/private/protocol"
13	"github.com/aws/aws-sdk-go/private/protocol/restjson"
14)
15
16const opCreateAccessPoint = "CreateAccessPoint"
17
18// CreateAccessPointRequest generates a "aws/request.Request" representing the
19// client's request for the CreateAccessPoint operation. The "output" return
20// value will be populated with the request's response once the request completes
21// successfully.
22//
23// Use "Send" method on the returned Request to send the API call to the service.
24// the "output" return value is not valid until after Send returns without error.
25//
26// See CreateAccessPoint for more information on using the CreateAccessPoint
27// API call, and error handling.
28//
29// This method is useful when you want to inject custom logic or configuration
30// into the SDK's request lifecycle. Such as custom headers, or retry logic.
31//
32//
33//    // Example sending a request using the CreateAccessPointRequest method.
34//    req, resp := client.CreateAccessPointRequest(params)
35//
36//    err := req.Send()
37//    if err == nil { // resp is now filled
38//        fmt.Println(resp)
39//    }
40//
41// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/CreateAccessPoint
42func (c *EFS) CreateAccessPointRequest(input *CreateAccessPointInput) (req *request.Request, output *CreateAccessPointOutput) {
43	op := &request.Operation{
44		Name:       opCreateAccessPoint,
45		HTTPMethod: "POST",
46		HTTPPath:   "/2015-02-01/access-points",
47	}
48
49	if input == nil {
50		input = &CreateAccessPointInput{}
51	}
52
53	output = &CreateAccessPointOutput{}
54	req = c.newRequest(op, input, output)
55	return
56}
57
58// CreateAccessPoint API operation for Amazon Elastic File System.
59//
60// Creates an EFS access point. An access point is an application-specific view
61// into an EFS file system that applies an operating system user and group,
62// and a file system path, to any file system request made through the access
63// point. The operating system user and group override any identity information
64// provided by the NFS client. The file system path is exposed as the access
65// point's root directory. Applications using the access point can only access
66// data in its own directory and below. To learn more, see Mounting a File System
67// Using EFS Access Points (https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html).
68//
69// This operation requires permissions for the elasticfilesystem:CreateAccessPoint
70// action.
71//
72// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
73// with awserr.Error's Code and Message methods to get detailed information about
74// the error.
75//
76// See the AWS API reference guide for Amazon Elastic File System's
77// API operation CreateAccessPoint for usage and error information.
78//
79// Returned Error Types:
80//   * BadRequest
81//   Returned if the request is malformed or contains an error such as an invalid
82//   parameter value or a missing required parameter.
83//
84//   * AccessPointAlreadyExists
85//   Returned if the access point you are trying to create already exists, with
86//   the creation token you provided in the request.
87//
88//   * InternalServerError
89//   Returned if an error occurred on the server side.
90//
91//   * FileSystemNotFound
92//   Returned if the specified FileSystemId value doesn't exist in the requester's
93//   AWS account.
94//
95//   * AccessPointLimitExceeded
96//   Returned if the AWS account has already created the maximum number of access
97//   points allowed per file system.
98//
99// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/CreateAccessPoint
100func (c *EFS) CreateAccessPoint(input *CreateAccessPointInput) (*CreateAccessPointOutput, error) {
101	req, out := c.CreateAccessPointRequest(input)
102	return out, req.Send()
103}
104
105// CreateAccessPointWithContext is the same as CreateAccessPoint with the addition of
106// the ability to pass a context and additional request options.
107//
108// See CreateAccessPoint for details on how to use this API operation.
109//
110// The context must be non-nil and will be used for request cancellation. If
111// the context is nil a panic will occur. In the future the SDK may create
112// sub-contexts for http.Requests. See https://golang.org/pkg/context/
113// for more information on using Contexts.
114func (c *EFS) CreateAccessPointWithContext(ctx aws.Context, input *CreateAccessPointInput, opts ...request.Option) (*CreateAccessPointOutput, error) {
115	req, out := c.CreateAccessPointRequest(input)
116	req.SetContext(ctx)
117	req.ApplyOptions(opts...)
118	return out, req.Send()
119}
120
121const opCreateFileSystem = "CreateFileSystem"
122
123// CreateFileSystemRequest generates a "aws/request.Request" representing the
124// client's request for the CreateFileSystem operation. The "output" return
125// value will be populated with the request's response once the request completes
126// successfully.
127//
128// Use "Send" method on the returned Request to send the API call to the service.
129// the "output" return value is not valid until after Send returns without error.
130//
131// See CreateFileSystem for more information on using the CreateFileSystem
132// API call, and error handling.
133//
134// This method is useful when you want to inject custom logic or configuration
135// into the SDK's request lifecycle. Such as custom headers, or retry logic.
136//
137//
138//    // Example sending a request using the CreateFileSystemRequest method.
139//    req, resp := client.CreateFileSystemRequest(params)
140//
141//    err := req.Send()
142//    if err == nil { // resp is now filled
143//        fmt.Println(resp)
144//    }
145//
146// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/CreateFileSystem
147func (c *EFS) CreateFileSystemRequest(input *CreateFileSystemInput) (req *request.Request, output *FileSystemDescription) {
148	op := &request.Operation{
149		Name:       opCreateFileSystem,
150		HTTPMethod: "POST",
151		HTTPPath:   "/2015-02-01/file-systems",
152	}
153
154	if input == nil {
155		input = &CreateFileSystemInput{}
156	}
157
158	output = &FileSystemDescription{}
159	req = c.newRequest(op, input, output)
160	return
161}
162
163// CreateFileSystem API operation for Amazon Elastic File System.
164//
165// Creates a new, empty file system. The operation requires a creation token
166// in the request that Amazon EFS uses to ensure idempotent creation (calling
167// the operation with same creation token has no effect). If a file system does
168// not currently exist that is owned by the caller's AWS account with the specified
169// creation token, this operation does the following:
170//
171//    * Creates a new, empty file system. The file system will have an Amazon
172//    EFS assigned ID, and an initial lifecycle state creating.
173//
174//    * Returns with the description of the created file system.
175//
176// Otherwise, this operation returns a FileSystemAlreadyExists error with the
177// ID of the existing file system.
178//
179// For basic use cases, you can use a randomly generated UUID for the creation
180// token.
181//
182// The idempotent operation allows you to retry a CreateFileSystem call without
183// risk of creating an extra file system. This can happen when an initial call
184// fails in a way that leaves it uncertain whether or not a file system was
185// actually created. An example might be that a transport level timeout occurred
186// or your connection was reset. As long as you use the same creation token,
187// if the initial call had succeeded in creating a file system, the client can
188// learn of its existence from the FileSystemAlreadyExists error.
189//
190// The CreateFileSystem call returns while the file system's lifecycle state
191// is still creating. You can check the file system creation status by calling
192// the DescribeFileSystems operation, which among other things returns the file
193// system state.
194//
195// This operation also takes an optional PerformanceMode parameter that you
196// choose for your file system. We recommend generalPurpose performance mode
197// for most file systems. File systems using the maxIO performance mode can
198// scale to higher levels of aggregate throughput and operations per second
199// with a tradeoff of slightly higher latencies for most file operations. The
200// performance mode can't be changed after the file system has been created.
201// For more information, see Amazon EFS: Performance Modes (https://docs.aws.amazon.com/efs/latest/ug/performance.html#performancemodes.html).
202//
203// After the file system is fully created, Amazon EFS sets its lifecycle state
204// to available, at which point you can create one or more mount targets for
205// the file system in your VPC. For more information, see CreateMountTarget.
206// You mount your Amazon EFS file system on an EC2 instances in your VPC by
207// using the mount target. For more information, see Amazon EFS: How it Works
208// (https://docs.aws.amazon.com/efs/latest/ug/how-it-works.html).
209//
210// This operation requires permissions for the elasticfilesystem:CreateFileSystem
211// action.
212//
213// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
214// with awserr.Error's Code and Message methods to get detailed information about
215// the error.
216//
217// See the AWS API reference guide for Amazon Elastic File System's
218// API operation CreateFileSystem for usage and error information.
219//
220// Returned Error Types:
221//   * BadRequest
222//   Returned if the request is malformed or contains an error such as an invalid
223//   parameter value or a missing required parameter.
224//
225//   * InternalServerError
226//   Returned if an error occurred on the server side.
227//
228//   * FileSystemAlreadyExists
229//   Returned if the file system you are trying to create already exists, with
230//   the creation token you provided.
231//
232//   * FileSystemLimitExceeded
233//   Returned if the AWS account has already created the maximum number of file
234//   systems allowed per account.
235//
236//   * InsufficientThroughputCapacity
237//   Returned if there's not enough capacity to provision additional throughput.
238//   This value might be returned when you try to create a file system in provisioned
239//   throughput mode, when you attempt to increase the provisioned throughput
240//   of an existing file system, or when you attempt to change an existing file
241//   system from bursting to provisioned throughput mode.
242//
243//   * ThroughputLimitExceeded
244//   Returned if the throughput mode or amount of provisioned throughput can't
245//   be changed because the throughput limit of 1024 MiB/s has been reached.
246//
247// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/CreateFileSystem
248func (c *EFS) CreateFileSystem(input *CreateFileSystemInput) (*FileSystemDescription, error) {
249	req, out := c.CreateFileSystemRequest(input)
250	return out, req.Send()
251}
252
253// CreateFileSystemWithContext is the same as CreateFileSystem with the addition of
254// the ability to pass a context and additional request options.
255//
256// See CreateFileSystem for details on how to use this API operation.
257//
258// The context must be non-nil and will be used for request cancellation. If
259// the context is nil a panic will occur. In the future the SDK may create
260// sub-contexts for http.Requests. See https://golang.org/pkg/context/
261// for more information on using Contexts.
262func (c *EFS) CreateFileSystemWithContext(ctx aws.Context, input *CreateFileSystemInput, opts ...request.Option) (*FileSystemDescription, error) {
263	req, out := c.CreateFileSystemRequest(input)
264	req.SetContext(ctx)
265	req.ApplyOptions(opts...)
266	return out, req.Send()
267}
268
269const opCreateMountTarget = "CreateMountTarget"
270
271// CreateMountTargetRequest generates a "aws/request.Request" representing the
272// client's request for the CreateMountTarget operation. The "output" return
273// value will be populated with the request's response once the request completes
274// successfully.
275//
276// Use "Send" method on the returned Request to send the API call to the service.
277// the "output" return value is not valid until after Send returns without error.
278//
279// See CreateMountTarget for more information on using the CreateMountTarget
280// API call, and error handling.
281//
282// This method is useful when you want to inject custom logic or configuration
283// into the SDK's request lifecycle. Such as custom headers, or retry logic.
284//
285//
286//    // Example sending a request using the CreateMountTargetRequest method.
287//    req, resp := client.CreateMountTargetRequest(params)
288//
289//    err := req.Send()
290//    if err == nil { // resp is now filled
291//        fmt.Println(resp)
292//    }
293//
294// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/CreateMountTarget
295func (c *EFS) CreateMountTargetRequest(input *CreateMountTargetInput) (req *request.Request, output *MountTargetDescription) {
296	op := &request.Operation{
297		Name:       opCreateMountTarget,
298		HTTPMethod: "POST",
299		HTTPPath:   "/2015-02-01/mount-targets",
300	}
301
302	if input == nil {
303		input = &CreateMountTargetInput{}
304	}
305
306	output = &MountTargetDescription{}
307	req = c.newRequest(op, input, output)
308	return
309}
310
311// CreateMountTarget API operation for Amazon Elastic File System.
312//
313// Creates a mount target for a file system. You can then mount the file system
314// on EC2 instances by using the mount target.
315//
316// You can create one mount target in each Availability Zone in your VPC. All
317// EC2 instances in a VPC within a given Availability Zone share a single mount
318// target for a given file system. If you have multiple subnets in an Availability
319// Zone, you create a mount target in one of the subnets. EC2 instances do not
320// need to be in the same subnet as the mount target in order to access their
321// file system. For more information, see Amazon EFS: How it Works (https://docs.aws.amazon.com/efs/latest/ug/how-it-works.html).
322//
323// In the request, you also specify a file system ID for which you are creating
324// the mount target and the file system's lifecycle state must be available.
325// For more information, see DescribeFileSystems.
326//
327// In the request, you also provide a subnet ID, which determines the following:
328//
329//    * VPC in which Amazon EFS creates the mount target
330//
331//    * Availability Zone in which Amazon EFS creates the mount target
332//
333//    * IP address range from which Amazon EFS selects the IP address of the
334//    mount target (if you don't specify an IP address in the request)
335//
336// After creating the mount target, Amazon EFS returns a response that includes,
337// a MountTargetId and an IpAddress. You use this IP address when mounting the
338// file system in an EC2 instance. You can also use the mount target's DNS name
339// when mounting the file system. The EC2 instance on which you mount the file
340// system by using the mount target can resolve the mount target's DNS name
341// to its IP address. For more information, see How it Works: Implementation
342// Overview (https://docs.aws.amazon.com/efs/latest/ug/how-it-works.html#how-it-works-implementation).
343//
344// Note that you can create mount targets for a file system in only one VPC,
345// and there can be only one mount target per Availability Zone. That is, if
346// the file system already has one or more mount targets created for it, the
347// subnet specified in the request to add another mount target must meet the
348// following requirements:
349//
350//    * Must belong to the same VPC as the subnets of the existing mount targets
351//
352//    * Must not be in the same Availability Zone as any of the subnets of the
353//    existing mount targets
354//
355// If the request satisfies the requirements, Amazon EFS does the following:
356//
357//    * Creates a new mount target in the specified subnet.
358//
359//    * Also creates a new network interface in the subnet as follows: If the
360//    request provides an IpAddress, Amazon EFS assigns that IP address to the
361//    network interface. Otherwise, Amazon EFS assigns a free address in the
362//    subnet (in the same way that the Amazon EC2 CreateNetworkInterface call
363//    does when a request does not specify a primary private IP address). If
364//    the request provides SecurityGroups, this network interface is associated
365//    with those security groups. Otherwise, it belongs to the default security
366//    group for the subnet's VPC. Assigns the description Mount target fsmt-id
367//    for file system fs-id where fsmt-id is the mount target ID, and fs-id
368//    is the FileSystemId. Sets the requesterManaged property of the network
369//    interface to true, and the requesterId value to EFS. Each Amazon EFS mount
370//    target has one corresponding requester-managed EC2 network interface.
371//    After the network interface is created, Amazon EFS sets the NetworkInterfaceId
372//    field in the mount target's description to the network interface ID, and
373//    the IpAddress field to its address. If network interface creation fails,
374//    the entire CreateMountTarget operation fails.
375//
376// The CreateMountTarget call returns only after creating the network interface,
377// but while the mount target state is still creating, you can check the mount
378// target creation status by calling the DescribeMountTargets operation, which
379// among other things returns the mount target state.
380//
381// We recommend that you create a mount target in each of the Availability Zones.
382// There are cost considerations for using a file system in an Availability
383// Zone through a mount target created in another Availability Zone. For more
384// information, see Amazon EFS (http://aws.amazon.com/efs/). In addition, by
385// always using a mount target local to the instance's Availability Zone, you
386// eliminate a partial failure scenario. If the Availability Zone in which your
387// mount target is created goes down, then you can't access your file system
388// through that mount target.
389//
390// This operation requires permissions for the following action on the file
391// system:
392//
393//    * elasticfilesystem:CreateMountTarget
394//
395// This operation also requires permissions for the following Amazon EC2 actions:
396//
397//    * ec2:DescribeSubnets
398//
399//    * ec2:DescribeNetworkInterfaces
400//
401//    * ec2:CreateNetworkInterface
402//
403// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
404// with awserr.Error's Code and Message methods to get detailed information about
405// the error.
406//
407// See the AWS API reference guide for Amazon Elastic File System's
408// API operation CreateMountTarget for usage and error information.
409//
410// Returned Error Types:
411//   * BadRequest
412//   Returned if the request is malformed or contains an error such as an invalid
413//   parameter value or a missing required parameter.
414//
415//   * InternalServerError
416//   Returned if an error occurred on the server side.
417//
418//   * FileSystemNotFound
419//   Returned if the specified FileSystemId value doesn't exist in the requester's
420//   AWS account.
421//
422//   * IncorrectFileSystemLifeCycleState
423//   Returned if the file system's lifecycle state is not "available".
424//
425//   * MountTargetConflict
426//   Returned if the mount target would violate one of the specified restrictions
427//   based on the file system's existing mount targets.
428//
429//   * SubnetNotFound
430//   Returned if there is no subnet with ID SubnetId provided in the request.
431//
432//   * NoFreeAddressesInSubnet
433//   Returned if IpAddress was not specified in the request and there are no free
434//   IP addresses in the subnet.
435//
436//   * IpAddressInUse
437//   Returned if the request specified an IpAddress that is already in use in
438//   the subnet.
439//
440//   * NetworkInterfaceLimitExceeded
441//   The calling account has reached the limit for elastic network interfaces
442//   for the specific AWS Region. The client should try to delete some elastic
443//   network interfaces or get the account limit raised. For more information,
444//   see Amazon VPC Limits (https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Appendix_Limits.html)
445//   in the Amazon VPC User Guide (see the Network interfaces per VPC entry in
446//   the table).
447//
448//   * SecurityGroupLimitExceeded
449//   Returned if the size of SecurityGroups specified in the request is greater
450//   than five.
451//
452//   * SecurityGroupNotFound
453//   Returned if one of the specified security groups doesn't exist in the subnet's
454//   VPC.
455//
456//   * UnsupportedAvailabilityZone
457//
458// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/CreateMountTarget
459func (c *EFS) CreateMountTarget(input *CreateMountTargetInput) (*MountTargetDescription, error) {
460	req, out := c.CreateMountTargetRequest(input)
461	return out, req.Send()
462}
463
464// CreateMountTargetWithContext is the same as CreateMountTarget with the addition of
465// the ability to pass a context and additional request options.
466//
467// See CreateMountTarget for details on how to use this API operation.
468//
469// The context must be non-nil and will be used for request cancellation. If
470// the context is nil a panic will occur. In the future the SDK may create
471// sub-contexts for http.Requests. See https://golang.org/pkg/context/
472// for more information on using Contexts.
473func (c *EFS) CreateMountTargetWithContext(ctx aws.Context, input *CreateMountTargetInput, opts ...request.Option) (*MountTargetDescription, error) {
474	req, out := c.CreateMountTargetRequest(input)
475	req.SetContext(ctx)
476	req.ApplyOptions(opts...)
477	return out, req.Send()
478}
479
480const opCreateTags = "CreateTags"
481
482// CreateTagsRequest generates a "aws/request.Request" representing the
483// client's request for the CreateTags operation. The "output" return
484// value will be populated with the request's response once the request completes
485// successfully.
486//
487// Use "Send" method on the returned Request to send the API call to the service.
488// the "output" return value is not valid until after Send returns without error.
489//
490// See CreateTags for more information on using the CreateTags
491// API call, and error handling.
492//
493// This method is useful when you want to inject custom logic or configuration
494// into the SDK's request lifecycle. Such as custom headers, or retry logic.
495//
496//
497//    // Example sending a request using the CreateTagsRequest method.
498//    req, resp := client.CreateTagsRequest(params)
499//
500//    err := req.Send()
501//    if err == nil { // resp is now filled
502//        fmt.Println(resp)
503//    }
504//
505// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/CreateTags
506//
507// Deprecated: Use TagResource.
508func (c *EFS) CreateTagsRequest(input *CreateTagsInput) (req *request.Request, output *CreateTagsOutput) {
509	if c.Client.Config.Logger != nil {
510		c.Client.Config.Logger.Log("This operation, CreateTags, has been deprecated")
511	}
512	op := &request.Operation{
513		Name:       opCreateTags,
514		HTTPMethod: "POST",
515		HTTPPath:   "/2015-02-01/create-tags/{FileSystemId}",
516	}
517
518	if input == nil {
519		input = &CreateTagsInput{}
520	}
521
522	output = &CreateTagsOutput{}
523	req = c.newRequest(op, input, output)
524	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
525	return
526}
527
528// CreateTags API operation for Amazon Elastic File System.
529//
530// Creates or overwrites tags associated with a file system. Each tag is a key-value
531// pair. If a tag key specified in the request already exists on the file system,
532// this operation overwrites its value with the value provided in the request.
533// If you add the Name tag to your file system, Amazon EFS returns it in the
534// response to the DescribeFileSystems operation.
535//
536// This operation requires permission for the elasticfilesystem:CreateTags action.
537//
538// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
539// with awserr.Error's Code and Message methods to get detailed information about
540// the error.
541//
542// See the AWS API reference guide for Amazon Elastic File System's
543// API operation CreateTags for usage and error information.
544//
545// Returned Error Types:
546//   * BadRequest
547//   Returned if the request is malformed or contains an error such as an invalid
548//   parameter value or a missing required parameter.
549//
550//   * InternalServerError
551//   Returned if an error occurred on the server side.
552//
553//   * FileSystemNotFound
554//   Returned if the specified FileSystemId value doesn't exist in the requester's
555//   AWS account.
556//
557// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/CreateTags
558//
559// Deprecated: Use TagResource.
560func (c *EFS) CreateTags(input *CreateTagsInput) (*CreateTagsOutput, error) {
561	req, out := c.CreateTagsRequest(input)
562	return out, req.Send()
563}
564
565// CreateTagsWithContext is the same as CreateTags with the addition of
566// the ability to pass a context and additional request options.
567//
568// See CreateTags for details on how to use this API operation.
569//
570// The context must be non-nil and will be used for request cancellation. If
571// the context is nil a panic will occur. In the future the SDK may create
572// sub-contexts for http.Requests. See https://golang.org/pkg/context/
573// for more information on using Contexts.
574//
575// Deprecated: Use TagResource.
576func (c *EFS) CreateTagsWithContext(ctx aws.Context, input *CreateTagsInput, opts ...request.Option) (*CreateTagsOutput, error) {
577	req, out := c.CreateTagsRequest(input)
578	req.SetContext(ctx)
579	req.ApplyOptions(opts...)
580	return out, req.Send()
581}
582
583const opDeleteAccessPoint = "DeleteAccessPoint"
584
585// DeleteAccessPointRequest generates a "aws/request.Request" representing the
586// client's request for the DeleteAccessPoint operation. The "output" return
587// value will be populated with the request's response once the request completes
588// successfully.
589//
590// Use "Send" method on the returned Request to send the API call to the service.
591// the "output" return value is not valid until after Send returns without error.
592//
593// See DeleteAccessPoint for more information on using the DeleteAccessPoint
594// API call, and error handling.
595//
596// This method is useful when you want to inject custom logic or configuration
597// into the SDK's request lifecycle. Such as custom headers, or retry logic.
598//
599//
600//    // Example sending a request using the DeleteAccessPointRequest method.
601//    req, resp := client.DeleteAccessPointRequest(params)
602//
603//    err := req.Send()
604//    if err == nil { // resp is now filled
605//        fmt.Println(resp)
606//    }
607//
608// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/DeleteAccessPoint
609func (c *EFS) DeleteAccessPointRequest(input *DeleteAccessPointInput) (req *request.Request, output *DeleteAccessPointOutput) {
610	op := &request.Operation{
611		Name:       opDeleteAccessPoint,
612		HTTPMethod: "DELETE",
613		HTTPPath:   "/2015-02-01/access-points/{AccessPointId}",
614	}
615
616	if input == nil {
617		input = &DeleteAccessPointInput{}
618	}
619
620	output = &DeleteAccessPointOutput{}
621	req = c.newRequest(op, input, output)
622	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
623	return
624}
625
626// DeleteAccessPoint API operation for Amazon Elastic File System.
627//
628// Deletes the specified access point. After deletion is complete, new clients
629// can no longer connect to the access points. Clients connected to the access
630// point at the time of deletion will continue to function until they terminate
631// their connection.
632//
633// This operation requires permissions for the elasticfilesystem:DeleteAccessPoint
634// action.
635//
636// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
637// with awserr.Error's Code and Message methods to get detailed information about
638// the error.
639//
640// See the AWS API reference guide for Amazon Elastic File System's
641// API operation DeleteAccessPoint for usage and error information.
642//
643// Returned Error Types:
644//   * BadRequest
645//   Returned if the request is malformed or contains an error such as an invalid
646//   parameter value or a missing required parameter.
647//
648//   * InternalServerError
649//   Returned if an error occurred on the server side.
650//
651//   * AccessPointNotFound
652//   Returned if the specified AccessPointId value doesn't exist in the requester's
653//   AWS account.
654//
655// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/DeleteAccessPoint
656func (c *EFS) DeleteAccessPoint(input *DeleteAccessPointInput) (*DeleteAccessPointOutput, error) {
657	req, out := c.DeleteAccessPointRequest(input)
658	return out, req.Send()
659}
660
661// DeleteAccessPointWithContext is the same as DeleteAccessPoint with the addition of
662// the ability to pass a context and additional request options.
663//
664// See DeleteAccessPoint for details on how to use this API operation.
665//
666// The context must be non-nil and will be used for request cancellation. If
667// the context is nil a panic will occur. In the future the SDK may create
668// sub-contexts for http.Requests. See https://golang.org/pkg/context/
669// for more information on using Contexts.
670func (c *EFS) DeleteAccessPointWithContext(ctx aws.Context, input *DeleteAccessPointInput, opts ...request.Option) (*DeleteAccessPointOutput, error) {
671	req, out := c.DeleteAccessPointRequest(input)
672	req.SetContext(ctx)
673	req.ApplyOptions(opts...)
674	return out, req.Send()
675}
676
677const opDeleteFileSystem = "DeleteFileSystem"
678
679// DeleteFileSystemRequest generates a "aws/request.Request" representing the
680// client's request for the DeleteFileSystem operation. The "output" return
681// value will be populated with the request's response once the request completes
682// successfully.
683//
684// Use "Send" method on the returned Request to send the API call to the service.
685// the "output" return value is not valid until after Send returns without error.
686//
687// See DeleteFileSystem for more information on using the DeleteFileSystem
688// API call, and error handling.
689//
690// This method is useful when you want to inject custom logic or configuration
691// into the SDK's request lifecycle. Such as custom headers, or retry logic.
692//
693//
694//    // Example sending a request using the DeleteFileSystemRequest method.
695//    req, resp := client.DeleteFileSystemRequest(params)
696//
697//    err := req.Send()
698//    if err == nil { // resp is now filled
699//        fmt.Println(resp)
700//    }
701//
702// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/DeleteFileSystem
703func (c *EFS) DeleteFileSystemRequest(input *DeleteFileSystemInput) (req *request.Request, output *DeleteFileSystemOutput) {
704	op := &request.Operation{
705		Name:       opDeleteFileSystem,
706		HTTPMethod: "DELETE",
707		HTTPPath:   "/2015-02-01/file-systems/{FileSystemId}",
708	}
709
710	if input == nil {
711		input = &DeleteFileSystemInput{}
712	}
713
714	output = &DeleteFileSystemOutput{}
715	req = c.newRequest(op, input, output)
716	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
717	return
718}
719
720// DeleteFileSystem API operation for Amazon Elastic File System.
721//
722// Deletes a file system, permanently severing access to its contents. Upon
723// return, the file system no longer exists and you can't access any contents
724// of the deleted file system.
725//
726// You can't delete a file system that is in use. That is, if the file system
727// has any mount targets, you must first delete them. For more information,
728// see DescribeMountTargets and DeleteMountTarget.
729//
730// The DeleteFileSystem call returns while the file system state is still deleting.
731// You can check the file system deletion status by calling the DescribeFileSystems
732// operation, which returns a list of file systems in your account. If you pass
733// file system ID or creation token for the deleted file system, the DescribeFileSystems
734// returns a 404 FileSystemNotFound error.
735//
736// This operation requires permissions for the elasticfilesystem:DeleteFileSystem
737// action.
738//
739// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
740// with awserr.Error's Code and Message methods to get detailed information about
741// the error.
742//
743// See the AWS API reference guide for Amazon Elastic File System's
744// API operation DeleteFileSystem for usage and error information.
745//
746// Returned Error Types:
747//   * BadRequest
748//   Returned if the request is malformed or contains an error such as an invalid
749//   parameter value or a missing required parameter.
750//
751//   * InternalServerError
752//   Returned if an error occurred on the server side.
753//
754//   * FileSystemNotFound
755//   Returned if the specified FileSystemId value doesn't exist in the requester's
756//   AWS account.
757//
758//   * FileSystemInUse
759//   Returned if a file system has mount targets.
760//
761// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/DeleteFileSystem
762func (c *EFS) DeleteFileSystem(input *DeleteFileSystemInput) (*DeleteFileSystemOutput, error) {
763	req, out := c.DeleteFileSystemRequest(input)
764	return out, req.Send()
765}
766
767// DeleteFileSystemWithContext is the same as DeleteFileSystem with the addition of
768// the ability to pass a context and additional request options.
769//
770// See DeleteFileSystem for details on how to use this API operation.
771//
772// The context must be non-nil and will be used for request cancellation. If
773// the context is nil a panic will occur. In the future the SDK may create
774// sub-contexts for http.Requests. See https://golang.org/pkg/context/
775// for more information on using Contexts.
776func (c *EFS) DeleteFileSystemWithContext(ctx aws.Context, input *DeleteFileSystemInput, opts ...request.Option) (*DeleteFileSystemOutput, error) {
777	req, out := c.DeleteFileSystemRequest(input)
778	req.SetContext(ctx)
779	req.ApplyOptions(opts...)
780	return out, req.Send()
781}
782
783const opDeleteFileSystemPolicy = "DeleteFileSystemPolicy"
784
785// DeleteFileSystemPolicyRequest generates a "aws/request.Request" representing the
786// client's request for the DeleteFileSystemPolicy operation. The "output" return
787// value will be populated with the request's response once the request completes
788// successfully.
789//
790// Use "Send" method on the returned Request to send the API call to the service.
791// the "output" return value is not valid until after Send returns without error.
792//
793// See DeleteFileSystemPolicy for more information on using the DeleteFileSystemPolicy
794// API call, and error handling.
795//
796// This method is useful when you want to inject custom logic or configuration
797// into the SDK's request lifecycle. Such as custom headers, or retry logic.
798//
799//
800//    // Example sending a request using the DeleteFileSystemPolicyRequest method.
801//    req, resp := client.DeleteFileSystemPolicyRequest(params)
802//
803//    err := req.Send()
804//    if err == nil { // resp is now filled
805//        fmt.Println(resp)
806//    }
807//
808// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/DeleteFileSystemPolicy
809func (c *EFS) DeleteFileSystemPolicyRequest(input *DeleteFileSystemPolicyInput) (req *request.Request, output *DeleteFileSystemPolicyOutput) {
810	op := &request.Operation{
811		Name:       opDeleteFileSystemPolicy,
812		HTTPMethod: "DELETE",
813		HTTPPath:   "/2015-02-01/file-systems/{FileSystemId}/policy",
814	}
815
816	if input == nil {
817		input = &DeleteFileSystemPolicyInput{}
818	}
819
820	output = &DeleteFileSystemPolicyOutput{}
821	req = c.newRequest(op, input, output)
822	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
823	return
824}
825
826// DeleteFileSystemPolicy API operation for Amazon Elastic File System.
827//
828// Deletes the FileSystemPolicy for the specified file system. The default FileSystemPolicy
829// goes into effect once the existing policy is deleted. For more information
830// about the default file system policy, see Using Resource-based Policies with
831// EFS (https://docs.aws.amazon.com/efs/latest/ug/res-based-policies-efs.html).
832//
833// This operation requires permissions for the elasticfilesystem:DeleteFileSystemPolicy
834// action.
835//
836// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
837// with awserr.Error's Code and Message methods to get detailed information about
838// the error.
839//
840// See the AWS API reference guide for Amazon Elastic File System's
841// API operation DeleteFileSystemPolicy for usage and error information.
842//
843// Returned Error Types:
844//   * InternalServerError
845//   Returned if an error occurred on the server side.
846//
847//   * FileSystemNotFound
848//   Returned if the specified FileSystemId value doesn't exist in the requester's
849//   AWS account.
850//
851//   * IncorrectFileSystemLifeCycleState
852//   Returned if the file system's lifecycle state is not "available".
853//
854// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/DeleteFileSystemPolicy
855func (c *EFS) DeleteFileSystemPolicy(input *DeleteFileSystemPolicyInput) (*DeleteFileSystemPolicyOutput, error) {
856	req, out := c.DeleteFileSystemPolicyRequest(input)
857	return out, req.Send()
858}
859
860// DeleteFileSystemPolicyWithContext is the same as DeleteFileSystemPolicy with the addition of
861// the ability to pass a context and additional request options.
862//
863// See DeleteFileSystemPolicy for details on how to use this API operation.
864//
865// The context must be non-nil and will be used for request cancellation. If
866// the context is nil a panic will occur. In the future the SDK may create
867// sub-contexts for http.Requests. See https://golang.org/pkg/context/
868// for more information on using Contexts.
869func (c *EFS) DeleteFileSystemPolicyWithContext(ctx aws.Context, input *DeleteFileSystemPolicyInput, opts ...request.Option) (*DeleteFileSystemPolicyOutput, error) {
870	req, out := c.DeleteFileSystemPolicyRequest(input)
871	req.SetContext(ctx)
872	req.ApplyOptions(opts...)
873	return out, req.Send()
874}
875
876const opDeleteMountTarget = "DeleteMountTarget"
877
878// DeleteMountTargetRequest generates a "aws/request.Request" representing the
879// client's request for the DeleteMountTarget operation. The "output" return
880// value will be populated with the request's response once the request completes
881// successfully.
882//
883// Use "Send" method on the returned Request to send the API call to the service.
884// the "output" return value is not valid until after Send returns without error.
885//
886// See DeleteMountTarget for more information on using the DeleteMountTarget
887// API call, and error handling.
888//
889// This method is useful when you want to inject custom logic or configuration
890// into the SDK's request lifecycle. Such as custom headers, or retry logic.
891//
892//
893//    // Example sending a request using the DeleteMountTargetRequest method.
894//    req, resp := client.DeleteMountTargetRequest(params)
895//
896//    err := req.Send()
897//    if err == nil { // resp is now filled
898//        fmt.Println(resp)
899//    }
900//
901// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/DeleteMountTarget
902func (c *EFS) DeleteMountTargetRequest(input *DeleteMountTargetInput) (req *request.Request, output *DeleteMountTargetOutput) {
903	op := &request.Operation{
904		Name:       opDeleteMountTarget,
905		HTTPMethod: "DELETE",
906		HTTPPath:   "/2015-02-01/mount-targets/{MountTargetId}",
907	}
908
909	if input == nil {
910		input = &DeleteMountTargetInput{}
911	}
912
913	output = &DeleteMountTargetOutput{}
914	req = c.newRequest(op, input, output)
915	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
916	return
917}
918
919// DeleteMountTarget API operation for Amazon Elastic File System.
920//
921// Deletes the specified mount target.
922//
923// This operation forcibly breaks any mounts of the file system by using the
924// mount target that is being deleted, which might disrupt instances or applications
925// using those mounts. To avoid applications getting cut off abruptly, you might
926// consider unmounting any mounts of the mount target, if feasible. The operation
927// also deletes the associated network interface. Uncommitted writes might be
928// lost, but breaking a mount target using this operation does not corrupt the
929// file system itself. The file system you created remains. You can mount an
930// EC2 instance in your VPC by using another mount target.
931//
932// This operation requires permissions for the following action on the file
933// system:
934//
935//    * elasticfilesystem:DeleteMountTarget
936//
937// The DeleteMountTarget call returns while the mount target state is still
938// deleting. You can check the mount target deletion by calling the DescribeMountTargets
939// operation, which returns a list of mount target descriptions for the given
940// file system.
941//
942// The operation also requires permissions for the following Amazon EC2 action
943// on the mount target's network interface:
944//
945//    * ec2:DeleteNetworkInterface
946//
947// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
948// with awserr.Error's Code and Message methods to get detailed information about
949// the error.
950//
951// See the AWS API reference guide for Amazon Elastic File System's
952// API operation DeleteMountTarget for usage and error information.
953//
954// Returned Error Types:
955//   * BadRequest
956//   Returned if the request is malformed or contains an error such as an invalid
957//   parameter value or a missing required parameter.
958//
959//   * InternalServerError
960//   Returned if an error occurred on the server side.
961//
962//   * DependencyTimeout
963//   The service timed out trying to fulfill the request, and the client should
964//   try the call again.
965//
966//   * MountTargetNotFound
967//   Returned if there is no mount target with the specified ID found in the caller's
968//   account.
969//
970// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/DeleteMountTarget
971func (c *EFS) DeleteMountTarget(input *DeleteMountTargetInput) (*DeleteMountTargetOutput, error) {
972	req, out := c.DeleteMountTargetRequest(input)
973	return out, req.Send()
974}
975
976// DeleteMountTargetWithContext is the same as DeleteMountTarget with the addition of
977// the ability to pass a context and additional request options.
978//
979// See DeleteMountTarget for details on how to use this API operation.
980//
981// The context must be non-nil and will be used for request cancellation. If
982// the context is nil a panic will occur. In the future the SDK may create
983// sub-contexts for http.Requests. See https://golang.org/pkg/context/
984// for more information on using Contexts.
985func (c *EFS) DeleteMountTargetWithContext(ctx aws.Context, input *DeleteMountTargetInput, opts ...request.Option) (*DeleteMountTargetOutput, error) {
986	req, out := c.DeleteMountTargetRequest(input)
987	req.SetContext(ctx)
988	req.ApplyOptions(opts...)
989	return out, req.Send()
990}
991
992const opDeleteTags = "DeleteTags"
993
994// DeleteTagsRequest generates a "aws/request.Request" representing the
995// client's request for the DeleteTags operation. The "output" return
996// value will be populated with the request's response once the request completes
997// successfully.
998//
999// Use "Send" method on the returned Request to send the API call to the service.
1000// the "output" return value is not valid until after Send returns without error.
1001//
1002// See DeleteTags for more information on using the DeleteTags
1003// API call, and error handling.
1004//
1005// This method is useful when you want to inject custom logic or configuration
1006// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1007//
1008//
1009//    // Example sending a request using the DeleteTagsRequest method.
1010//    req, resp := client.DeleteTagsRequest(params)
1011//
1012//    err := req.Send()
1013//    if err == nil { // resp is now filled
1014//        fmt.Println(resp)
1015//    }
1016//
1017// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/DeleteTags
1018//
1019// Deprecated: Use UntagResource.
1020func (c *EFS) DeleteTagsRequest(input *DeleteTagsInput) (req *request.Request, output *DeleteTagsOutput) {
1021	if c.Client.Config.Logger != nil {
1022		c.Client.Config.Logger.Log("This operation, DeleteTags, has been deprecated")
1023	}
1024	op := &request.Operation{
1025		Name:       opDeleteTags,
1026		HTTPMethod: "POST",
1027		HTTPPath:   "/2015-02-01/delete-tags/{FileSystemId}",
1028	}
1029
1030	if input == nil {
1031		input = &DeleteTagsInput{}
1032	}
1033
1034	output = &DeleteTagsOutput{}
1035	req = c.newRequest(op, input, output)
1036	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1037	return
1038}
1039
1040// DeleteTags API operation for Amazon Elastic File System.
1041//
1042// Deletes the specified tags from a file system. If the DeleteTags request
1043// includes a tag key that doesn't exist, Amazon EFS ignores it and doesn't
1044// cause an error. For more information about tags and related restrictions,
1045// see Tag Restrictions (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html)
1046// in the AWS Billing and Cost Management User Guide.
1047//
1048// This operation requires permissions for the elasticfilesystem:DeleteTags
1049// action.
1050//
1051// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1052// with awserr.Error's Code and Message methods to get detailed information about
1053// the error.
1054//
1055// See the AWS API reference guide for Amazon Elastic File System's
1056// API operation DeleteTags for usage and error information.
1057//
1058// Returned Error Types:
1059//   * BadRequest
1060//   Returned if the request is malformed or contains an error such as an invalid
1061//   parameter value or a missing required parameter.
1062//
1063//   * InternalServerError
1064//   Returned if an error occurred on the server side.
1065//
1066//   * FileSystemNotFound
1067//   Returned if the specified FileSystemId value doesn't exist in the requester's
1068//   AWS account.
1069//
1070// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/DeleteTags
1071//
1072// Deprecated: Use UntagResource.
1073func (c *EFS) DeleteTags(input *DeleteTagsInput) (*DeleteTagsOutput, error) {
1074	req, out := c.DeleteTagsRequest(input)
1075	return out, req.Send()
1076}
1077
1078// DeleteTagsWithContext is the same as DeleteTags with the addition of
1079// the ability to pass a context and additional request options.
1080//
1081// See DeleteTags for details on how to use this API operation.
1082//
1083// The context must be non-nil and will be used for request cancellation. If
1084// the context is nil a panic will occur. In the future the SDK may create
1085// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1086// for more information on using Contexts.
1087//
1088// Deprecated: Use UntagResource.
1089func (c *EFS) DeleteTagsWithContext(ctx aws.Context, input *DeleteTagsInput, opts ...request.Option) (*DeleteTagsOutput, error) {
1090	req, out := c.DeleteTagsRequest(input)
1091	req.SetContext(ctx)
1092	req.ApplyOptions(opts...)
1093	return out, req.Send()
1094}
1095
1096const opDescribeAccessPoints = "DescribeAccessPoints"
1097
1098// DescribeAccessPointsRequest generates a "aws/request.Request" representing the
1099// client's request for the DescribeAccessPoints operation. The "output" return
1100// value will be populated with the request's response once the request completes
1101// successfully.
1102//
1103// Use "Send" method on the returned Request to send the API call to the service.
1104// the "output" return value is not valid until after Send returns without error.
1105//
1106// See DescribeAccessPoints for more information on using the DescribeAccessPoints
1107// API call, and error handling.
1108//
1109// This method is useful when you want to inject custom logic or configuration
1110// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1111//
1112//
1113//    // Example sending a request using the DescribeAccessPointsRequest method.
1114//    req, resp := client.DescribeAccessPointsRequest(params)
1115//
1116//    err := req.Send()
1117//    if err == nil { // resp is now filled
1118//        fmt.Println(resp)
1119//    }
1120//
1121// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/DescribeAccessPoints
1122func (c *EFS) DescribeAccessPointsRequest(input *DescribeAccessPointsInput) (req *request.Request, output *DescribeAccessPointsOutput) {
1123	op := &request.Operation{
1124		Name:       opDescribeAccessPoints,
1125		HTTPMethod: "GET",
1126		HTTPPath:   "/2015-02-01/access-points",
1127		Paginator: &request.Paginator{
1128			InputTokens:     []string{"NextToken"},
1129			OutputTokens:    []string{"NextToken"},
1130			LimitToken:      "MaxResults",
1131			TruncationToken: "",
1132		},
1133	}
1134
1135	if input == nil {
1136		input = &DescribeAccessPointsInput{}
1137	}
1138
1139	output = &DescribeAccessPointsOutput{}
1140	req = c.newRequest(op, input, output)
1141	return
1142}
1143
1144// DescribeAccessPoints API operation for Amazon Elastic File System.
1145//
1146// Returns the description of a specific Amazon EFS access point if the AccessPointId
1147// is provided. If you provide an EFS FileSystemId, it returns descriptions
1148// of all access points for that file system. You can provide either an AccessPointId
1149// or a FileSystemId in the request, but not both.
1150//
1151// This operation requires permissions for the elasticfilesystem:DescribeAccessPoints
1152// action.
1153//
1154// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1155// with awserr.Error's Code and Message methods to get detailed information about
1156// the error.
1157//
1158// See the AWS API reference guide for Amazon Elastic File System's
1159// API operation DescribeAccessPoints for usage and error information.
1160//
1161// Returned Error Types:
1162//   * BadRequest
1163//   Returned if the request is malformed or contains an error such as an invalid
1164//   parameter value or a missing required parameter.
1165//
1166//   * InternalServerError
1167//   Returned if an error occurred on the server side.
1168//
1169//   * FileSystemNotFound
1170//   Returned if the specified FileSystemId value doesn't exist in the requester's
1171//   AWS account.
1172//
1173//   * AccessPointNotFound
1174//   Returned if the specified AccessPointId value doesn't exist in the requester's
1175//   AWS account.
1176//
1177// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/DescribeAccessPoints
1178func (c *EFS) DescribeAccessPoints(input *DescribeAccessPointsInput) (*DescribeAccessPointsOutput, error) {
1179	req, out := c.DescribeAccessPointsRequest(input)
1180	return out, req.Send()
1181}
1182
1183// DescribeAccessPointsWithContext is the same as DescribeAccessPoints with the addition of
1184// the ability to pass a context and additional request options.
1185//
1186// See DescribeAccessPoints for details on how to use this API operation.
1187//
1188// The context must be non-nil and will be used for request cancellation. If
1189// the context is nil a panic will occur. In the future the SDK may create
1190// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1191// for more information on using Contexts.
1192func (c *EFS) DescribeAccessPointsWithContext(ctx aws.Context, input *DescribeAccessPointsInput, opts ...request.Option) (*DescribeAccessPointsOutput, error) {
1193	req, out := c.DescribeAccessPointsRequest(input)
1194	req.SetContext(ctx)
1195	req.ApplyOptions(opts...)
1196	return out, req.Send()
1197}
1198
1199// DescribeAccessPointsPages iterates over the pages of a DescribeAccessPoints operation,
1200// calling the "fn" function with the response data for each page. To stop
1201// iterating, return false from the fn function.
1202//
1203// See DescribeAccessPoints method for more information on how to use this operation.
1204//
1205// Note: This operation can generate multiple requests to a service.
1206//
1207//    // Example iterating over at most 3 pages of a DescribeAccessPoints operation.
1208//    pageNum := 0
1209//    err := client.DescribeAccessPointsPages(params,
1210//        func(page *efs.DescribeAccessPointsOutput, lastPage bool) bool {
1211//            pageNum++
1212//            fmt.Println(page)
1213//            return pageNum <= 3
1214//        })
1215//
1216func (c *EFS) DescribeAccessPointsPages(input *DescribeAccessPointsInput, fn func(*DescribeAccessPointsOutput, bool) bool) error {
1217	return c.DescribeAccessPointsPagesWithContext(aws.BackgroundContext(), input, fn)
1218}
1219
1220// DescribeAccessPointsPagesWithContext same as DescribeAccessPointsPages except
1221// it takes a Context and allows setting request options on the pages.
1222//
1223// The context must be non-nil and will be used for request cancellation. If
1224// the context is nil a panic will occur. In the future the SDK may create
1225// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1226// for more information on using Contexts.
1227func (c *EFS) DescribeAccessPointsPagesWithContext(ctx aws.Context, input *DescribeAccessPointsInput, fn func(*DescribeAccessPointsOutput, bool) bool, opts ...request.Option) error {
1228	p := request.Pagination{
1229		NewRequest: func() (*request.Request, error) {
1230			var inCpy *DescribeAccessPointsInput
1231			if input != nil {
1232				tmp := *input
1233				inCpy = &tmp
1234			}
1235			req, _ := c.DescribeAccessPointsRequest(inCpy)
1236			req.SetContext(ctx)
1237			req.ApplyOptions(opts...)
1238			return req, nil
1239		},
1240	}
1241
1242	for p.Next() {
1243		if !fn(p.Page().(*DescribeAccessPointsOutput), !p.HasNextPage()) {
1244			break
1245		}
1246	}
1247
1248	return p.Err()
1249}
1250
1251const opDescribeFileSystemPolicy = "DescribeFileSystemPolicy"
1252
1253// DescribeFileSystemPolicyRequest generates a "aws/request.Request" representing the
1254// client's request for the DescribeFileSystemPolicy operation. The "output" return
1255// value will be populated with the request's response once the request completes
1256// successfully.
1257//
1258// Use "Send" method on the returned Request to send the API call to the service.
1259// the "output" return value is not valid until after Send returns without error.
1260//
1261// See DescribeFileSystemPolicy for more information on using the DescribeFileSystemPolicy
1262// API call, and error handling.
1263//
1264// This method is useful when you want to inject custom logic or configuration
1265// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1266//
1267//
1268//    // Example sending a request using the DescribeFileSystemPolicyRequest method.
1269//    req, resp := client.DescribeFileSystemPolicyRequest(params)
1270//
1271//    err := req.Send()
1272//    if err == nil { // resp is now filled
1273//        fmt.Println(resp)
1274//    }
1275//
1276// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/DescribeFileSystemPolicy
1277func (c *EFS) DescribeFileSystemPolicyRequest(input *DescribeFileSystemPolicyInput) (req *request.Request, output *DescribeFileSystemPolicyOutput) {
1278	op := &request.Operation{
1279		Name:       opDescribeFileSystemPolicy,
1280		HTTPMethod: "GET",
1281		HTTPPath:   "/2015-02-01/file-systems/{FileSystemId}/policy",
1282	}
1283
1284	if input == nil {
1285		input = &DescribeFileSystemPolicyInput{}
1286	}
1287
1288	output = &DescribeFileSystemPolicyOutput{}
1289	req = c.newRequest(op, input, output)
1290	return
1291}
1292
1293// DescribeFileSystemPolicy API operation for Amazon Elastic File System.
1294//
1295// Returns the FileSystemPolicy for the specified EFS file system.
1296//
1297// This operation requires permissions for the elasticfilesystem:DescribeFileSystemPolicy
1298// action.
1299//
1300// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1301// with awserr.Error's Code and Message methods to get detailed information about
1302// the error.
1303//
1304// See the AWS API reference guide for Amazon Elastic File System's
1305// API operation DescribeFileSystemPolicy for usage and error information.
1306//
1307// Returned Error Types:
1308//   * InternalServerError
1309//   Returned if an error occurred on the server side.
1310//
1311//   * FileSystemNotFound
1312//   Returned if the specified FileSystemId value doesn't exist in the requester's
1313//   AWS account.
1314//
1315//   * PolicyNotFound
1316//   Returned if the default file system policy is in effect for the EFS file
1317//   system specified.
1318//
1319// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/DescribeFileSystemPolicy
1320func (c *EFS) DescribeFileSystemPolicy(input *DescribeFileSystemPolicyInput) (*DescribeFileSystemPolicyOutput, error) {
1321	req, out := c.DescribeFileSystemPolicyRequest(input)
1322	return out, req.Send()
1323}
1324
1325// DescribeFileSystemPolicyWithContext is the same as DescribeFileSystemPolicy with the addition of
1326// the ability to pass a context and additional request options.
1327//
1328// See DescribeFileSystemPolicy for details on how to use this API operation.
1329//
1330// The context must be non-nil and will be used for request cancellation. If
1331// the context is nil a panic will occur. In the future the SDK may create
1332// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1333// for more information on using Contexts.
1334func (c *EFS) DescribeFileSystemPolicyWithContext(ctx aws.Context, input *DescribeFileSystemPolicyInput, opts ...request.Option) (*DescribeFileSystemPolicyOutput, error) {
1335	req, out := c.DescribeFileSystemPolicyRequest(input)
1336	req.SetContext(ctx)
1337	req.ApplyOptions(opts...)
1338	return out, req.Send()
1339}
1340
1341const opDescribeFileSystems = "DescribeFileSystems"
1342
1343// DescribeFileSystemsRequest generates a "aws/request.Request" representing the
1344// client's request for the DescribeFileSystems operation. The "output" return
1345// value will be populated with the request's response once the request completes
1346// successfully.
1347//
1348// Use "Send" method on the returned Request to send the API call to the service.
1349// the "output" return value is not valid until after Send returns without error.
1350//
1351// See DescribeFileSystems for more information on using the DescribeFileSystems
1352// API call, and error handling.
1353//
1354// This method is useful when you want to inject custom logic or configuration
1355// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1356//
1357//
1358//    // Example sending a request using the DescribeFileSystemsRequest method.
1359//    req, resp := client.DescribeFileSystemsRequest(params)
1360//
1361//    err := req.Send()
1362//    if err == nil { // resp is now filled
1363//        fmt.Println(resp)
1364//    }
1365//
1366// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/DescribeFileSystems
1367func (c *EFS) DescribeFileSystemsRequest(input *DescribeFileSystemsInput) (req *request.Request, output *DescribeFileSystemsOutput) {
1368	op := &request.Operation{
1369		Name:       opDescribeFileSystems,
1370		HTTPMethod: "GET",
1371		HTTPPath:   "/2015-02-01/file-systems",
1372		Paginator: &request.Paginator{
1373			InputTokens:     []string{"Marker"},
1374			OutputTokens:    []string{"NextMarker"},
1375			LimitToken:      "MaxItems",
1376			TruncationToken: "",
1377		},
1378	}
1379
1380	if input == nil {
1381		input = &DescribeFileSystemsInput{}
1382	}
1383
1384	output = &DescribeFileSystemsOutput{}
1385	req = c.newRequest(op, input, output)
1386	return
1387}
1388
1389// DescribeFileSystems API operation for Amazon Elastic File System.
1390//
1391// Returns the description of a specific Amazon EFS file system if either the
1392// file system CreationToken or the FileSystemId is provided. Otherwise, it
1393// returns descriptions of all file systems owned by the caller's AWS account
1394// in the AWS Region of the endpoint that you're calling.
1395//
1396// When retrieving all file system descriptions, you can optionally specify
1397// the MaxItems parameter to limit the number of descriptions in a response.
1398// Currently, this number is automatically set to 10. If more file system descriptions
1399// remain, Amazon EFS returns a NextMarker, an opaque token, in the response.
1400// In this case, you should send a subsequent request with the Marker request
1401// parameter set to the value of NextMarker.
1402//
1403// To retrieve a list of your file system descriptions, this operation is used
1404// in an iterative process, where DescribeFileSystems is called first without
1405// the Marker and then the operation continues to call it with the Marker parameter
1406// set to the value of the NextMarker from the previous response until the response
1407// has no NextMarker.
1408//
1409// The order of file systems returned in the response of one DescribeFileSystems
1410// call and the order of file systems returned across the responses of a multi-call
1411// iteration is unspecified.
1412//
1413// This operation requires permissions for the elasticfilesystem:DescribeFileSystems
1414// action.
1415//
1416// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1417// with awserr.Error's Code and Message methods to get detailed information about
1418// the error.
1419//
1420// See the AWS API reference guide for Amazon Elastic File System's
1421// API operation DescribeFileSystems for usage and error information.
1422//
1423// Returned Error Types:
1424//   * BadRequest
1425//   Returned if the request is malformed or contains an error such as an invalid
1426//   parameter value or a missing required parameter.
1427//
1428//   * InternalServerError
1429//   Returned if an error occurred on the server side.
1430//
1431//   * FileSystemNotFound
1432//   Returned if the specified FileSystemId value doesn't exist in the requester's
1433//   AWS account.
1434//
1435// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/DescribeFileSystems
1436func (c *EFS) DescribeFileSystems(input *DescribeFileSystemsInput) (*DescribeFileSystemsOutput, error) {
1437	req, out := c.DescribeFileSystemsRequest(input)
1438	return out, req.Send()
1439}
1440
1441// DescribeFileSystemsWithContext is the same as DescribeFileSystems with the addition of
1442// the ability to pass a context and additional request options.
1443//
1444// See DescribeFileSystems for details on how to use this API operation.
1445//
1446// The context must be non-nil and will be used for request cancellation. If
1447// the context is nil a panic will occur. In the future the SDK may create
1448// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1449// for more information on using Contexts.
1450func (c *EFS) DescribeFileSystemsWithContext(ctx aws.Context, input *DescribeFileSystemsInput, opts ...request.Option) (*DescribeFileSystemsOutput, error) {
1451	req, out := c.DescribeFileSystemsRequest(input)
1452	req.SetContext(ctx)
1453	req.ApplyOptions(opts...)
1454	return out, req.Send()
1455}
1456
1457// DescribeFileSystemsPages iterates over the pages of a DescribeFileSystems operation,
1458// calling the "fn" function with the response data for each page. To stop
1459// iterating, return false from the fn function.
1460//
1461// See DescribeFileSystems method for more information on how to use this operation.
1462//
1463// Note: This operation can generate multiple requests to a service.
1464//
1465//    // Example iterating over at most 3 pages of a DescribeFileSystems operation.
1466//    pageNum := 0
1467//    err := client.DescribeFileSystemsPages(params,
1468//        func(page *efs.DescribeFileSystemsOutput, lastPage bool) bool {
1469//            pageNum++
1470//            fmt.Println(page)
1471//            return pageNum <= 3
1472//        })
1473//
1474func (c *EFS) DescribeFileSystemsPages(input *DescribeFileSystemsInput, fn func(*DescribeFileSystemsOutput, bool) bool) error {
1475	return c.DescribeFileSystemsPagesWithContext(aws.BackgroundContext(), input, fn)
1476}
1477
1478// DescribeFileSystemsPagesWithContext same as DescribeFileSystemsPages except
1479// it takes a Context and allows setting request options on the pages.
1480//
1481// The context must be non-nil and will be used for request cancellation. If
1482// the context is nil a panic will occur. In the future the SDK may create
1483// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1484// for more information on using Contexts.
1485func (c *EFS) DescribeFileSystemsPagesWithContext(ctx aws.Context, input *DescribeFileSystemsInput, fn func(*DescribeFileSystemsOutput, bool) bool, opts ...request.Option) error {
1486	p := request.Pagination{
1487		NewRequest: func() (*request.Request, error) {
1488			var inCpy *DescribeFileSystemsInput
1489			if input != nil {
1490				tmp := *input
1491				inCpy = &tmp
1492			}
1493			req, _ := c.DescribeFileSystemsRequest(inCpy)
1494			req.SetContext(ctx)
1495			req.ApplyOptions(opts...)
1496			return req, nil
1497		},
1498	}
1499
1500	for p.Next() {
1501		if !fn(p.Page().(*DescribeFileSystemsOutput), !p.HasNextPage()) {
1502			break
1503		}
1504	}
1505
1506	return p.Err()
1507}
1508
1509const opDescribeLifecycleConfiguration = "DescribeLifecycleConfiguration"
1510
1511// DescribeLifecycleConfigurationRequest generates a "aws/request.Request" representing the
1512// client's request for the DescribeLifecycleConfiguration operation. The "output" return
1513// value will be populated with the request's response once the request completes
1514// successfully.
1515//
1516// Use "Send" method on the returned Request to send the API call to the service.
1517// the "output" return value is not valid until after Send returns without error.
1518//
1519// See DescribeLifecycleConfiguration for more information on using the DescribeLifecycleConfiguration
1520// API call, and error handling.
1521//
1522// This method is useful when you want to inject custom logic or configuration
1523// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1524//
1525//
1526//    // Example sending a request using the DescribeLifecycleConfigurationRequest method.
1527//    req, resp := client.DescribeLifecycleConfigurationRequest(params)
1528//
1529//    err := req.Send()
1530//    if err == nil { // resp is now filled
1531//        fmt.Println(resp)
1532//    }
1533//
1534// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/DescribeLifecycleConfiguration
1535func (c *EFS) DescribeLifecycleConfigurationRequest(input *DescribeLifecycleConfigurationInput) (req *request.Request, output *DescribeLifecycleConfigurationOutput) {
1536	op := &request.Operation{
1537		Name:       opDescribeLifecycleConfiguration,
1538		HTTPMethod: "GET",
1539		HTTPPath:   "/2015-02-01/file-systems/{FileSystemId}/lifecycle-configuration",
1540	}
1541
1542	if input == nil {
1543		input = &DescribeLifecycleConfigurationInput{}
1544	}
1545
1546	output = &DescribeLifecycleConfigurationOutput{}
1547	req = c.newRequest(op, input, output)
1548	return
1549}
1550
1551// DescribeLifecycleConfiguration API operation for Amazon Elastic File System.
1552//
1553// Returns the current LifecycleConfiguration object for the specified Amazon
1554// EFS file system. EFS lifecycle management uses the LifecycleConfiguration
1555// object to identify which files to move to the EFS Infrequent Access (IA)
1556// storage class. For a file system without a LifecycleConfiguration object,
1557// the call returns an empty array in the response.
1558//
1559// This operation requires permissions for the elasticfilesystem:DescribeLifecycleConfiguration
1560// operation.
1561//
1562// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1563// with awserr.Error's Code and Message methods to get detailed information about
1564// the error.
1565//
1566// See the AWS API reference guide for Amazon Elastic File System's
1567// API operation DescribeLifecycleConfiguration for usage and error information.
1568//
1569// Returned Error Types:
1570//   * InternalServerError
1571//   Returned if an error occurred on the server side.
1572//
1573//   * BadRequest
1574//   Returned if the request is malformed or contains an error such as an invalid
1575//   parameter value or a missing required parameter.
1576//
1577//   * FileSystemNotFound
1578//   Returned if the specified FileSystemId value doesn't exist in the requester's
1579//   AWS account.
1580//
1581// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/DescribeLifecycleConfiguration
1582func (c *EFS) DescribeLifecycleConfiguration(input *DescribeLifecycleConfigurationInput) (*DescribeLifecycleConfigurationOutput, error) {
1583	req, out := c.DescribeLifecycleConfigurationRequest(input)
1584	return out, req.Send()
1585}
1586
1587// DescribeLifecycleConfigurationWithContext is the same as DescribeLifecycleConfiguration with the addition of
1588// the ability to pass a context and additional request options.
1589//
1590// See DescribeLifecycleConfiguration for details on how to use this API operation.
1591//
1592// The context must be non-nil and will be used for request cancellation. If
1593// the context is nil a panic will occur. In the future the SDK may create
1594// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1595// for more information on using Contexts.
1596func (c *EFS) DescribeLifecycleConfigurationWithContext(ctx aws.Context, input *DescribeLifecycleConfigurationInput, opts ...request.Option) (*DescribeLifecycleConfigurationOutput, error) {
1597	req, out := c.DescribeLifecycleConfigurationRequest(input)
1598	req.SetContext(ctx)
1599	req.ApplyOptions(opts...)
1600	return out, req.Send()
1601}
1602
1603const opDescribeMountTargetSecurityGroups = "DescribeMountTargetSecurityGroups"
1604
1605// DescribeMountTargetSecurityGroupsRequest generates a "aws/request.Request" representing the
1606// client's request for the DescribeMountTargetSecurityGroups operation. The "output" return
1607// value will be populated with the request's response once the request completes
1608// successfully.
1609//
1610// Use "Send" method on the returned Request to send the API call to the service.
1611// the "output" return value is not valid until after Send returns without error.
1612//
1613// See DescribeMountTargetSecurityGroups for more information on using the DescribeMountTargetSecurityGroups
1614// API call, and error handling.
1615//
1616// This method is useful when you want to inject custom logic or configuration
1617// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1618//
1619//
1620//    // Example sending a request using the DescribeMountTargetSecurityGroupsRequest method.
1621//    req, resp := client.DescribeMountTargetSecurityGroupsRequest(params)
1622//
1623//    err := req.Send()
1624//    if err == nil { // resp is now filled
1625//        fmt.Println(resp)
1626//    }
1627//
1628// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/DescribeMountTargetSecurityGroups
1629func (c *EFS) DescribeMountTargetSecurityGroupsRequest(input *DescribeMountTargetSecurityGroupsInput) (req *request.Request, output *DescribeMountTargetSecurityGroupsOutput) {
1630	op := &request.Operation{
1631		Name:       opDescribeMountTargetSecurityGroups,
1632		HTTPMethod: "GET",
1633		HTTPPath:   "/2015-02-01/mount-targets/{MountTargetId}/security-groups",
1634	}
1635
1636	if input == nil {
1637		input = &DescribeMountTargetSecurityGroupsInput{}
1638	}
1639
1640	output = &DescribeMountTargetSecurityGroupsOutput{}
1641	req = c.newRequest(op, input, output)
1642	return
1643}
1644
1645// DescribeMountTargetSecurityGroups API operation for Amazon Elastic File System.
1646//
1647// Returns the security groups currently in effect for a mount target. This
1648// operation requires that the network interface of the mount target has been
1649// created and the lifecycle state of the mount target is not deleted.
1650//
1651// This operation requires permissions for the following actions:
1652//
1653//    * elasticfilesystem:DescribeMountTargetSecurityGroups action on the mount
1654//    target's file system.
1655//
1656//    * ec2:DescribeNetworkInterfaceAttribute action on the mount target's network
1657//    interface.
1658//
1659// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1660// with awserr.Error's Code and Message methods to get detailed information about
1661// the error.
1662//
1663// See the AWS API reference guide for Amazon Elastic File System's
1664// API operation DescribeMountTargetSecurityGroups for usage and error information.
1665//
1666// Returned Error Types:
1667//   * BadRequest
1668//   Returned if the request is malformed or contains an error such as an invalid
1669//   parameter value or a missing required parameter.
1670//
1671//   * InternalServerError
1672//   Returned if an error occurred on the server side.
1673//
1674//   * MountTargetNotFound
1675//   Returned if there is no mount target with the specified ID found in the caller's
1676//   account.
1677//
1678//   * IncorrectMountTargetState
1679//   Returned if the mount target is not in the correct state for the operation.
1680//
1681// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/DescribeMountTargetSecurityGroups
1682func (c *EFS) DescribeMountTargetSecurityGroups(input *DescribeMountTargetSecurityGroupsInput) (*DescribeMountTargetSecurityGroupsOutput, error) {
1683	req, out := c.DescribeMountTargetSecurityGroupsRequest(input)
1684	return out, req.Send()
1685}
1686
1687// DescribeMountTargetSecurityGroupsWithContext is the same as DescribeMountTargetSecurityGroups with the addition of
1688// the ability to pass a context and additional request options.
1689//
1690// See DescribeMountTargetSecurityGroups for details on how to use this API operation.
1691//
1692// The context must be non-nil and will be used for request cancellation. If
1693// the context is nil a panic will occur. In the future the SDK may create
1694// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1695// for more information on using Contexts.
1696func (c *EFS) DescribeMountTargetSecurityGroupsWithContext(ctx aws.Context, input *DescribeMountTargetSecurityGroupsInput, opts ...request.Option) (*DescribeMountTargetSecurityGroupsOutput, error) {
1697	req, out := c.DescribeMountTargetSecurityGroupsRequest(input)
1698	req.SetContext(ctx)
1699	req.ApplyOptions(opts...)
1700	return out, req.Send()
1701}
1702
1703const opDescribeMountTargets = "DescribeMountTargets"
1704
1705// DescribeMountTargetsRequest generates a "aws/request.Request" representing the
1706// client's request for the DescribeMountTargets operation. The "output" return
1707// value will be populated with the request's response once the request completes
1708// successfully.
1709//
1710// Use "Send" method on the returned Request to send the API call to the service.
1711// the "output" return value is not valid until after Send returns without error.
1712//
1713// See DescribeMountTargets for more information on using the DescribeMountTargets
1714// API call, and error handling.
1715//
1716// This method is useful when you want to inject custom logic or configuration
1717// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1718//
1719//
1720//    // Example sending a request using the DescribeMountTargetsRequest method.
1721//    req, resp := client.DescribeMountTargetsRequest(params)
1722//
1723//    err := req.Send()
1724//    if err == nil { // resp is now filled
1725//        fmt.Println(resp)
1726//    }
1727//
1728// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/DescribeMountTargets
1729func (c *EFS) DescribeMountTargetsRequest(input *DescribeMountTargetsInput) (req *request.Request, output *DescribeMountTargetsOutput) {
1730	op := &request.Operation{
1731		Name:       opDescribeMountTargets,
1732		HTTPMethod: "GET",
1733		HTTPPath:   "/2015-02-01/mount-targets",
1734	}
1735
1736	if input == nil {
1737		input = &DescribeMountTargetsInput{}
1738	}
1739
1740	output = &DescribeMountTargetsOutput{}
1741	req = c.newRequest(op, input, output)
1742	return
1743}
1744
1745// DescribeMountTargets API operation for Amazon Elastic File System.
1746//
1747// Returns the descriptions of all the current mount targets, or a specific
1748// mount target, for a file system. When requesting all of the current mount
1749// targets, the order of mount targets returned in the response is unspecified.
1750//
1751// This operation requires permissions for the elasticfilesystem:DescribeMountTargets
1752// action, on either the file system ID that you specify in FileSystemId, or
1753// on the file system of the mount target that you specify in MountTargetId.
1754//
1755// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1756// with awserr.Error's Code and Message methods to get detailed information about
1757// the error.
1758//
1759// See the AWS API reference guide for Amazon Elastic File System's
1760// API operation DescribeMountTargets for usage and error information.
1761//
1762// Returned Error Types:
1763//   * BadRequest
1764//   Returned if the request is malformed or contains an error such as an invalid
1765//   parameter value or a missing required parameter.
1766//
1767//   * InternalServerError
1768//   Returned if an error occurred on the server side.
1769//
1770//   * FileSystemNotFound
1771//   Returned if the specified FileSystemId value doesn't exist in the requester's
1772//   AWS account.
1773//
1774//   * MountTargetNotFound
1775//   Returned if there is no mount target with the specified ID found in the caller's
1776//   account.
1777//
1778//   * AccessPointNotFound
1779//   Returned if the specified AccessPointId value doesn't exist in the requester's
1780//   AWS account.
1781//
1782// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/DescribeMountTargets
1783func (c *EFS) DescribeMountTargets(input *DescribeMountTargetsInput) (*DescribeMountTargetsOutput, error) {
1784	req, out := c.DescribeMountTargetsRequest(input)
1785	return out, req.Send()
1786}
1787
1788// DescribeMountTargetsWithContext is the same as DescribeMountTargets with the addition of
1789// the ability to pass a context and additional request options.
1790//
1791// See DescribeMountTargets for details on how to use this API operation.
1792//
1793// The context must be non-nil and will be used for request cancellation. If
1794// the context is nil a panic will occur. In the future the SDK may create
1795// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1796// for more information on using Contexts.
1797func (c *EFS) DescribeMountTargetsWithContext(ctx aws.Context, input *DescribeMountTargetsInput, opts ...request.Option) (*DescribeMountTargetsOutput, error) {
1798	req, out := c.DescribeMountTargetsRequest(input)
1799	req.SetContext(ctx)
1800	req.ApplyOptions(opts...)
1801	return out, req.Send()
1802}
1803
1804const opDescribeTags = "DescribeTags"
1805
1806// DescribeTagsRequest generates a "aws/request.Request" representing the
1807// client's request for the DescribeTags operation. The "output" return
1808// value will be populated with the request's response once the request completes
1809// successfully.
1810//
1811// Use "Send" method on the returned Request to send the API call to the service.
1812// the "output" return value is not valid until after Send returns without error.
1813//
1814// See DescribeTags for more information on using the DescribeTags
1815// API call, and error handling.
1816//
1817// This method is useful when you want to inject custom logic or configuration
1818// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1819//
1820//
1821//    // Example sending a request using the DescribeTagsRequest method.
1822//    req, resp := client.DescribeTagsRequest(params)
1823//
1824//    err := req.Send()
1825//    if err == nil { // resp is now filled
1826//        fmt.Println(resp)
1827//    }
1828//
1829// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/DescribeTags
1830//
1831// Deprecated: Use ListTagsForResource.
1832func (c *EFS) DescribeTagsRequest(input *DescribeTagsInput) (req *request.Request, output *DescribeTagsOutput) {
1833	if c.Client.Config.Logger != nil {
1834		c.Client.Config.Logger.Log("This operation, DescribeTags, has been deprecated")
1835	}
1836	op := &request.Operation{
1837		Name:       opDescribeTags,
1838		HTTPMethod: "GET",
1839		HTTPPath:   "/2015-02-01/tags/{FileSystemId}/",
1840		Paginator: &request.Paginator{
1841			InputTokens:     []string{"Marker"},
1842			OutputTokens:    []string{"NextMarker"},
1843			LimitToken:      "MaxItems",
1844			TruncationToken: "",
1845		},
1846	}
1847
1848	if input == nil {
1849		input = &DescribeTagsInput{}
1850	}
1851
1852	output = &DescribeTagsOutput{}
1853	req = c.newRequest(op, input, output)
1854	return
1855}
1856
1857// DescribeTags API operation for Amazon Elastic File System.
1858//
1859// Returns the tags associated with a file system. The order of tags returned
1860// in the response of one DescribeTags call and the order of tags returned across
1861// the responses of a multiple-call iteration (when using pagination) is unspecified.
1862//
1863// This operation requires permissions for the elasticfilesystem:DescribeTags
1864// action.
1865//
1866// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1867// with awserr.Error's Code and Message methods to get detailed information about
1868// the error.
1869//
1870// See the AWS API reference guide for Amazon Elastic File System's
1871// API operation DescribeTags for usage and error information.
1872//
1873// Returned Error Types:
1874//   * BadRequest
1875//   Returned if the request is malformed or contains an error such as an invalid
1876//   parameter value or a missing required parameter.
1877//
1878//   * InternalServerError
1879//   Returned if an error occurred on the server side.
1880//
1881//   * FileSystemNotFound
1882//   Returned if the specified FileSystemId value doesn't exist in the requester's
1883//   AWS account.
1884//
1885// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/DescribeTags
1886//
1887// Deprecated: Use ListTagsForResource.
1888func (c *EFS) DescribeTags(input *DescribeTagsInput) (*DescribeTagsOutput, error) {
1889	req, out := c.DescribeTagsRequest(input)
1890	return out, req.Send()
1891}
1892
1893// DescribeTagsWithContext is the same as DescribeTags with the addition of
1894// the ability to pass a context and additional request options.
1895//
1896// See DescribeTags for details on how to use this API operation.
1897//
1898// The context must be non-nil and will be used for request cancellation. If
1899// the context is nil a panic will occur. In the future the SDK may create
1900// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1901// for more information on using Contexts.
1902//
1903// Deprecated: Use ListTagsForResource.
1904func (c *EFS) DescribeTagsWithContext(ctx aws.Context, input *DescribeTagsInput, opts ...request.Option) (*DescribeTagsOutput, error) {
1905	req, out := c.DescribeTagsRequest(input)
1906	req.SetContext(ctx)
1907	req.ApplyOptions(opts...)
1908	return out, req.Send()
1909}
1910
1911// DescribeTagsPages iterates over the pages of a DescribeTags operation,
1912// calling the "fn" function with the response data for each page. To stop
1913// iterating, return false from the fn function.
1914//
1915// See DescribeTags method for more information on how to use this operation.
1916//
1917// Note: This operation can generate multiple requests to a service.
1918//
1919//    // Example iterating over at most 3 pages of a DescribeTags operation.
1920//    pageNum := 0
1921//    err := client.DescribeTagsPages(params,
1922//        func(page *efs.DescribeTagsOutput, lastPage bool) bool {
1923//            pageNum++
1924//            fmt.Println(page)
1925//            return pageNum <= 3
1926//        })
1927//
1928//
1929// Deprecated: Use ListTagsForResource.
1930func (c *EFS) DescribeTagsPages(input *DescribeTagsInput, fn func(*DescribeTagsOutput, bool) bool) error {
1931	return c.DescribeTagsPagesWithContext(aws.BackgroundContext(), input, fn)
1932}
1933
1934// DescribeTagsPagesWithContext same as DescribeTagsPages except
1935// it takes a Context and allows setting request options on the pages.
1936//
1937// The context must be non-nil and will be used for request cancellation. If
1938// the context is nil a panic will occur. In the future the SDK may create
1939// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1940// for more information on using Contexts.
1941//
1942// Deprecated: Use ListTagsForResource.
1943func (c *EFS) DescribeTagsPagesWithContext(ctx aws.Context, input *DescribeTagsInput, fn func(*DescribeTagsOutput, bool) bool, opts ...request.Option) error {
1944	p := request.Pagination{
1945		NewRequest: func() (*request.Request, error) {
1946			var inCpy *DescribeTagsInput
1947			if input != nil {
1948				tmp := *input
1949				inCpy = &tmp
1950			}
1951			req, _ := c.DescribeTagsRequest(inCpy)
1952			req.SetContext(ctx)
1953			req.ApplyOptions(opts...)
1954			return req, nil
1955		},
1956	}
1957
1958	for p.Next() {
1959		if !fn(p.Page().(*DescribeTagsOutput), !p.HasNextPage()) {
1960			break
1961		}
1962	}
1963
1964	return p.Err()
1965}
1966
1967const opListTagsForResource = "ListTagsForResource"
1968
1969// ListTagsForResourceRequest generates a "aws/request.Request" representing the
1970// client's request for the ListTagsForResource operation. The "output" return
1971// value will be populated with the request's response once the request completes
1972// successfully.
1973//
1974// Use "Send" method on the returned Request to send the API call to the service.
1975// the "output" return value is not valid until after Send returns without error.
1976//
1977// See ListTagsForResource for more information on using the ListTagsForResource
1978// API call, and error handling.
1979//
1980// This method is useful when you want to inject custom logic or configuration
1981// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1982//
1983//
1984//    // Example sending a request using the ListTagsForResourceRequest method.
1985//    req, resp := client.ListTagsForResourceRequest(params)
1986//
1987//    err := req.Send()
1988//    if err == nil { // resp is now filled
1989//        fmt.Println(resp)
1990//    }
1991//
1992// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/ListTagsForResource
1993func (c *EFS) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
1994	op := &request.Operation{
1995		Name:       opListTagsForResource,
1996		HTTPMethod: "GET",
1997		HTTPPath:   "/2015-02-01/resource-tags/{ResourceId}",
1998		Paginator: &request.Paginator{
1999			InputTokens:     []string{"NextToken"},
2000			OutputTokens:    []string{"NextToken"},
2001			LimitToken:      "MaxResults",
2002			TruncationToken: "",
2003		},
2004	}
2005
2006	if input == nil {
2007		input = &ListTagsForResourceInput{}
2008	}
2009
2010	output = &ListTagsForResourceOutput{}
2011	req = c.newRequest(op, input, output)
2012	return
2013}
2014
2015// ListTagsForResource API operation for Amazon Elastic File System.
2016//
2017// Lists all tags for a top-level EFS resource. You must provide the ID of the
2018// resource that you want to retrieve the tags for.
2019//
2020// This operation requires permissions for the elasticfilesystem:DescribeAccessPoints
2021// action.
2022//
2023// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2024// with awserr.Error's Code and Message methods to get detailed information about
2025// the error.
2026//
2027// See the AWS API reference guide for Amazon Elastic File System's
2028// API operation ListTagsForResource for usage and error information.
2029//
2030// Returned Error Types:
2031//   * BadRequest
2032//   Returned if the request is malformed or contains an error such as an invalid
2033//   parameter value or a missing required parameter.
2034//
2035//   * InternalServerError
2036//   Returned if an error occurred on the server side.
2037//
2038//   * FileSystemNotFound
2039//   Returned if the specified FileSystemId value doesn't exist in the requester's
2040//   AWS account.
2041//
2042//   * AccessPointNotFound
2043//   Returned if the specified AccessPointId value doesn't exist in the requester's
2044//   AWS account.
2045//
2046// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/ListTagsForResource
2047func (c *EFS) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
2048	req, out := c.ListTagsForResourceRequest(input)
2049	return out, req.Send()
2050}
2051
2052// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
2053// the ability to pass a context and additional request options.
2054//
2055// See ListTagsForResource for details on how to use this API operation.
2056//
2057// The context must be non-nil and will be used for request cancellation. If
2058// the context is nil a panic will occur. In the future the SDK may create
2059// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2060// for more information on using Contexts.
2061func (c *EFS) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
2062	req, out := c.ListTagsForResourceRequest(input)
2063	req.SetContext(ctx)
2064	req.ApplyOptions(opts...)
2065	return out, req.Send()
2066}
2067
2068// ListTagsForResourcePages iterates over the pages of a ListTagsForResource operation,
2069// calling the "fn" function with the response data for each page. To stop
2070// iterating, return false from the fn function.
2071//
2072// See ListTagsForResource method for more information on how to use this operation.
2073//
2074// Note: This operation can generate multiple requests to a service.
2075//
2076//    // Example iterating over at most 3 pages of a ListTagsForResource operation.
2077//    pageNum := 0
2078//    err := client.ListTagsForResourcePages(params,
2079//        func(page *efs.ListTagsForResourceOutput, lastPage bool) bool {
2080//            pageNum++
2081//            fmt.Println(page)
2082//            return pageNum <= 3
2083//        })
2084//
2085func (c *EFS) ListTagsForResourcePages(input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool) error {
2086	return c.ListTagsForResourcePagesWithContext(aws.BackgroundContext(), input, fn)
2087}
2088
2089// ListTagsForResourcePagesWithContext same as ListTagsForResourcePages except
2090// it takes a Context and allows setting request options on the pages.
2091//
2092// The context must be non-nil and will be used for request cancellation. If
2093// the context is nil a panic will occur. In the future the SDK may create
2094// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2095// for more information on using Contexts.
2096func (c *EFS) ListTagsForResourcePagesWithContext(ctx aws.Context, input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool, opts ...request.Option) error {
2097	p := request.Pagination{
2098		NewRequest: func() (*request.Request, error) {
2099			var inCpy *ListTagsForResourceInput
2100			if input != nil {
2101				tmp := *input
2102				inCpy = &tmp
2103			}
2104			req, _ := c.ListTagsForResourceRequest(inCpy)
2105			req.SetContext(ctx)
2106			req.ApplyOptions(opts...)
2107			return req, nil
2108		},
2109	}
2110
2111	for p.Next() {
2112		if !fn(p.Page().(*ListTagsForResourceOutput), !p.HasNextPage()) {
2113			break
2114		}
2115	}
2116
2117	return p.Err()
2118}
2119
2120const opModifyMountTargetSecurityGroups = "ModifyMountTargetSecurityGroups"
2121
2122// ModifyMountTargetSecurityGroupsRequest generates a "aws/request.Request" representing the
2123// client's request for the ModifyMountTargetSecurityGroups operation. The "output" return
2124// value will be populated with the request's response once the request completes
2125// successfully.
2126//
2127// Use "Send" method on the returned Request to send the API call to the service.
2128// the "output" return value is not valid until after Send returns without error.
2129//
2130// See ModifyMountTargetSecurityGroups for more information on using the ModifyMountTargetSecurityGroups
2131// API call, and error handling.
2132//
2133// This method is useful when you want to inject custom logic or configuration
2134// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2135//
2136//
2137//    // Example sending a request using the ModifyMountTargetSecurityGroupsRequest method.
2138//    req, resp := client.ModifyMountTargetSecurityGroupsRequest(params)
2139//
2140//    err := req.Send()
2141//    if err == nil { // resp is now filled
2142//        fmt.Println(resp)
2143//    }
2144//
2145// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/ModifyMountTargetSecurityGroups
2146func (c *EFS) ModifyMountTargetSecurityGroupsRequest(input *ModifyMountTargetSecurityGroupsInput) (req *request.Request, output *ModifyMountTargetSecurityGroupsOutput) {
2147	op := &request.Operation{
2148		Name:       opModifyMountTargetSecurityGroups,
2149		HTTPMethod: "PUT",
2150		HTTPPath:   "/2015-02-01/mount-targets/{MountTargetId}/security-groups",
2151	}
2152
2153	if input == nil {
2154		input = &ModifyMountTargetSecurityGroupsInput{}
2155	}
2156
2157	output = &ModifyMountTargetSecurityGroupsOutput{}
2158	req = c.newRequest(op, input, output)
2159	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2160	return
2161}
2162
2163// ModifyMountTargetSecurityGroups API operation for Amazon Elastic File System.
2164//
2165// Modifies the set of security groups in effect for a mount target.
2166//
2167// When you create a mount target, Amazon EFS also creates a new network interface.
2168// For more information, see CreateMountTarget. This operation replaces the
2169// security groups in effect for the network interface associated with a mount
2170// target, with the SecurityGroups provided in the request. This operation requires
2171// that the network interface of the mount target has been created and the lifecycle
2172// state of the mount target is not deleted.
2173//
2174// The operation requires permissions for the following actions:
2175//
2176//    * elasticfilesystem:ModifyMountTargetSecurityGroups action on the mount
2177//    target's file system.
2178//
2179//    * ec2:ModifyNetworkInterfaceAttribute action on the mount target's network
2180//    interface.
2181//
2182// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2183// with awserr.Error's Code and Message methods to get detailed information about
2184// the error.
2185//
2186// See the AWS API reference guide for Amazon Elastic File System's
2187// API operation ModifyMountTargetSecurityGroups for usage and error information.
2188//
2189// Returned Error Types:
2190//   * BadRequest
2191//   Returned if the request is malformed or contains an error such as an invalid
2192//   parameter value or a missing required parameter.
2193//
2194//   * InternalServerError
2195//   Returned if an error occurred on the server side.
2196//
2197//   * MountTargetNotFound
2198//   Returned if there is no mount target with the specified ID found in the caller's
2199//   account.
2200//
2201//   * IncorrectMountTargetState
2202//   Returned if the mount target is not in the correct state for the operation.
2203//
2204//   * SecurityGroupLimitExceeded
2205//   Returned if the size of SecurityGroups specified in the request is greater
2206//   than five.
2207//
2208//   * SecurityGroupNotFound
2209//   Returned if one of the specified security groups doesn't exist in the subnet's
2210//   VPC.
2211//
2212// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/ModifyMountTargetSecurityGroups
2213func (c *EFS) ModifyMountTargetSecurityGroups(input *ModifyMountTargetSecurityGroupsInput) (*ModifyMountTargetSecurityGroupsOutput, error) {
2214	req, out := c.ModifyMountTargetSecurityGroupsRequest(input)
2215	return out, req.Send()
2216}
2217
2218// ModifyMountTargetSecurityGroupsWithContext is the same as ModifyMountTargetSecurityGroups with the addition of
2219// the ability to pass a context and additional request options.
2220//
2221// See ModifyMountTargetSecurityGroups for details on how to use this API operation.
2222//
2223// The context must be non-nil and will be used for request cancellation. If
2224// the context is nil a panic will occur. In the future the SDK may create
2225// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2226// for more information on using Contexts.
2227func (c *EFS) ModifyMountTargetSecurityGroupsWithContext(ctx aws.Context, input *ModifyMountTargetSecurityGroupsInput, opts ...request.Option) (*ModifyMountTargetSecurityGroupsOutput, error) {
2228	req, out := c.ModifyMountTargetSecurityGroupsRequest(input)
2229	req.SetContext(ctx)
2230	req.ApplyOptions(opts...)
2231	return out, req.Send()
2232}
2233
2234const opPutFileSystemPolicy = "PutFileSystemPolicy"
2235
2236// PutFileSystemPolicyRequest generates a "aws/request.Request" representing the
2237// client's request for the PutFileSystemPolicy operation. The "output" return
2238// value will be populated with the request's response once the request completes
2239// successfully.
2240//
2241// Use "Send" method on the returned Request to send the API call to the service.
2242// the "output" return value is not valid until after Send returns without error.
2243//
2244// See PutFileSystemPolicy for more information on using the PutFileSystemPolicy
2245// API call, and error handling.
2246//
2247// This method is useful when you want to inject custom logic or configuration
2248// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2249//
2250//
2251//    // Example sending a request using the PutFileSystemPolicyRequest method.
2252//    req, resp := client.PutFileSystemPolicyRequest(params)
2253//
2254//    err := req.Send()
2255//    if err == nil { // resp is now filled
2256//        fmt.Println(resp)
2257//    }
2258//
2259// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/PutFileSystemPolicy
2260func (c *EFS) PutFileSystemPolicyRequest(input *PutFileSystemPolicyInput) (req *request.Request, output *PutFileSystemPolicyOutput) {
2261	op := &request.Operation{
2262		Name:       opPutFileSystemPolicy,
2263		HTTPMethod: "PUT",
2264		HTTPPath:   "/2015-02-01/file-systems/{FileSystemId}/policy",
2265	}
2266
2267	if input == nil {
2268		input = &PutFileSystemPolicyInput{}
2269	}
2270
2271	output = &PutFileSystemPolicyOutput{}
2272	req = c.newRequest(op, input, output)
2273	return
2274}
2275
2276// PutFileSystemPolicy API operation for Amazon Elastic File System.
2277//
2278// Applies an Amazon EFS FileSystemPolicy to an Amazon EFS file system. A file
2279// system policy is an IAM resource-based policy and can contain multiple policy
2280// statements. A file system always has exactly one file system policy, which
2281// can be the default policy or an explicit policy set or updated using this
2282// API operation. When an explicit policy is set, it overrides the default policy.
2283// For more information about the default file system policy, see Default EFS
2284// File System Policy (https://docs.aws.amazon.com/efs/latest/ug/iam-access-control-nfs-efs.html#default-filesystempolicy).
2285//
2286// This operation requires permissions for the elasticfilesystem:PutFileSystemPolicy
2287// action.
2288//
2289// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2290// with awserr.Error's Code and Message methods to get detailed information about
2291// the error.
2292//
2293// See the AWS API reference guide for Amazon Elastic File System's
2294// API operation PutFileSystemPolicy for usage and error information.
2295//
2296// Returned Error Types:
2297//   * InternalServerError
2298//   Returned if an error occurred on the server side.
2299//
2300//   * FileSystemNotFound
2301//   Returned if the specified FileSystemId value doesn't exist in the requester's
2302//   AWS account.
2303//
2304//   * InvalidPolicyException
2305//   Returned if the FileSystemPolicy is is malformed or contains an error such
2306//   as an invalid parameter value or a missing required parameter. Returned in
2307//   the case of a policy lockout safety check error.
2308//
2309//   * IncorrectFileSystemLifeCycleState
2310//   Returned if the file system's lifecycle state is not "available".
2311//
2312// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/PutFileSystemPolicy
2313func (c *EFS) PutFileSystemPolicy(input *PutFileSystemPolicyInput) (*PutFileSystemPolicyOutput, error) {
2314	req, out := c.PutFileSystemPolicyRequest(input)
2315	return out, req.Send()
2316}
2317
2318// PutFileSystemPolicyWithContext is the same as PutFileSystemPolicy with the addition of
2319// the ability to pass a context and additional request options.
2320//
2321// See PutFileSystemPolicy for details on how to use this API operation.
2322//
2323// The context must be non-nil and will be used for request cancellation. If
2324// the context is nil a panic will occur. In the future the SDK may create
2325// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2326// for more information on using Contexts.
2327func (c *EFS) PutFileSystemPolicyWithContext(ctx aws.Context, input *PutFileSystemPolicyInput, opts ...request.Option) (*PutFileSystemPolicyOutput, error) {
2328	req, out := c.PutFileSystemPolicyRequest(input)
2329	req.SetContext(ctx)
2330	req.ApplyOptions(opts...)
2331	return out, req.Send()
2332}
2333
2334const opPutLifecycleConfiguration = "PutLifecycleConfiguration"
2335
2336// PutLifecycleConfigurationRequest generates a "aws/request.Request" representing the
2337// client's request for the PutLifecycleConfiguration operation. The "output" return
2338// value will be populated with the request's response once the request completes
2339// successfully.
2340//
2341// Use "Send" method on the returned Request to send the API call to the service.
2342// the "output" return value is not valid until after Send returns without error.
2343//
2344// See PutLifecycleConfiguration for more information on using the PutLifecycleConfiguration
2345// API call, and error handling.
2346//
2347// This method is useful when you want to inject custom logic or configuration
2348// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2349//
2350//
2351//    // Example sending a request using the PutLifecycleConfigurationRequest method.
2352//    req, resp := client.PutLifecycleConfigurationRequest(params)
2353//
2354//    err := req.Send()
2355//    if err == nil { // resp is now filled
2356//        fmt.Println(resp)
2357//    }
2358//
2359// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/PutLifecycleConfiguration
2360func (c *EFS) PutLifecycleConfigurationRequest(input *PutLifecycleConfigurationInput) (req *request.Request, output *PutLifecycleConfigurationOutput) {
2361	op := &request.Operation{
2362		Name:       opPutLifecycleConfiguration,
2363		HTTPMethod: "PUT",
2364		HTTPPath:   "/2015-02-01/file-systems/{FileSystemId}/lifecycle-configuration",
2365	}
2366
2367	if input == nil {
2368		input = &PutLifecycleConfigurationInput{}
2369	}
2370
2371	output = &PutLifecycleConfigurationOutput{}
2372	req = c.newRequest(op, input, output)
2373	return
2374}
2375
2376// PutLifecycleConfiguration API operation for Amazon Elastic File System.
2377//
2378// Enables lifecycle management by creating a new LifecycleConfiguration object.
2379// A LifecycleConfiguration object defines when files in an Amazon EFS file
2380// system are automatically transitioned to the lower-cost EFS Infrequent Access
2381// (IA) storage class. A LifecycleConfiguration applies to all files in a file
2382// system.
2383//
2384// Each Amazon EFS file system supports one lifecycle configuration, which applies
2385// to all files in the file system. If a LifecycleConfiguration object already
2386// exists for the specified file system, a PutLifecycleConfiguration call modifies
2387// the existing configuration. A PutLifecycleConfiguration call with an empty
2388// LifecyclePolicies array in the request body deletes any existing LifecycleConfiguration
2389// and disables lifecycle management.
2390//
2391// In the request, specify the following:
2392//
2393//    * The ID for the file system for which you are enabling, disabling, or
2394//    modifying lifecycle management.
2395//
2396//    * A LifecyclePolicies array of LifecyclePolicy objects that define when
2397//    files are moved to the IA storage class. The array can contain only one
2398//    LifecyclePolicy item.
2399//
2400// This operation requires permissions for the elasticfilesystem:PutLifecycleConfiguration
2401// operation.
2402//
2403// To apply a LifecycleConfiguration object to an encrypted file system, you
2404// need the same AWS Key Management Service (AWS KMS) permissions as when you
2405// created the encrypted file system.
2406//
2407// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2408// with awserr.Error's Code and Message methods to get detailed information about
2409// the error.
2410//
2411// See the AWS API reference guide for Amazon Elastic File System's
2412// API operation PutLifecycleConfiguration for usage and error information.
2413//
2414// Returned Error Types:
2415//   * BadRequest
2416//   Returned if the request is malformed or contains an error such as an invalid
2417//   parameter value or a missing required parameter.
2418//
2419//   * InternalServerError
2420//   Returned if an error occurred on the server side.
2421//
2422//   * FileSystemNotFound
2423//   Returned if the specified FileSystemId value doesn't exist in the requester's
2424//   AWS account.
2425//
2426//   * IncorrectFileSystemLifeCycleState
2427//   Returned if the file system's lifecycle state is not "available".
2428//
2429// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/PutLifecycleConfiguration
2430func (c *EFS) PutLifecycleConfiguration(input *PutLifecycleConfigurationInput) (*PutLifecycleConfigurationOutput, error) {
2431	req, out := c.PutLifecycleConfigurationRequest(input)
2432	return out, req.Send()
2433}
2434
2435// PutLifecycleConfigurationWithContext is the same as PutLifecycleConfiguration with the addition of
2436// the ability to pass a context and additional request options.
2437//
2438// See PutLifecycleConfiguration for details on how to use this API operation.
2439//
2440// The context must be non-nil and will be used for request cancellation. If
2441// the context is nil a panic will occur. In the future the SDK may create
2442// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2443// for more information on using Contexts.
2444func (c *EFS) PutLifecycleConfigurationWithContext(ctx aws.Context, input *PutLifecycleConfigurationInput, opts ...request.Option) (*PutLifecycleConfigurationOutput, error) {
2445	req, out := c.PutLifecycleConfigurationRequest(input)
2446	req.SetContext(ctx)
2447	req.ApplyOptions(opts...)
2448	return out, req.Send()
2449}
2450
2451const opTagResource = "TagResource"
2452
2453// TagResourceRequest generates a "aws/request.Request" representing the
2454// client's request for the TagResource operation. The "output" return
2455// value will be populated with the request's response once the request completes
2456// successfully.
2457//
2458// Use "Send" method on the returned Request to send the API call to the service.
2459// the "output" return value is not valid until after Send returns without error.
2460//
2461// See TagResource for more information on using the TagResource
2462// API call, and error handling.
2463//
2464// This method is useful when you want to inject custom logic or configuration
2465// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2466//
2467//
2468//    // Example sending a request using the TagResourceRequest method.
2469//    req, resp := client.TagResourceRequest(params)
2470//
2471//    err := req.Send()
2472//    if err == nil { // resp is now filled
2473//        fmt.Println(resp)
2474//    }
2475//
2476// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/TagResource
2477func (c *EFS) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
2478	op := &request.Operation{
2479		Name:       opTagResource,
2480		HTTPMethod: "POST",
2481		HTTPPath:   "/2015-02-01/resource-tags/{ResourceId}",
2482	}
2483
2484	if input == nil {
2485		input = &TagResourceInput{}
2486	}
2487
2488	output = &TagResourceOutput{}
2489	req = c.newRequest(op, input, output)
2490	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2491	return
2492}
2493
2494// TagResource API operation for Amazon Elastic File System.
2495//
2496// Creates a tag for an EFS resource. You can create tags for EFS file systems
2497// and access points using this API operation.
2498//
2499// This operation requires permissions for the elasticfilesystem:TagResource
2500// action.
2501//
2502// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2503// with awserr.Error's Code and Message methods to get detailed information about
2504// the error.
2505//
2506// See the AWS API reference guide for Amazon Elastic File System's
2507// API operation TagResource for usage and error information.
2508//
2509// Returned Error Types:
2510//   * BadRequest
2511//   Returned if the request is malformed or contains an error such as an invalid
2512//   parameter value or a missing required parameter.
2513//
2514//   * InternalServerError
2515//   Returned if an error occurred on the server side.
2516//
2517//   * FileSystemNotFound
2518//   Returned if the specified FileSystemId value doesn't exist in the requester's
2519//   AWS account.
2520//
2521//   * AccessPointNotFound
2522//   Returned if the specified AccessPointId value doesn't exist in the requester's
2523//   AWS account.
2524//
2525// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/TagResource
2526func (c *EFS) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
2527	req, out := c.TagResourceRequest(input)
2528	return out, req.Send()
2529}
2530
2531// TagResourceWithContext is the same as TagResource with the addition of
2532// the ability to pass a context and additional request options.
2533//
2534// See TagResource for details on how to use this API operation.
2535//
2536// The context must be non-nil and will be used for request cancellation. If
2537// the context is nil a panic will occur. In the future the SDK may create
2538// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2539// for more information on using Contexts.
2540func (c *EFS) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
2541	req, out := c.TagResourceRequest(input)
2542	req.SetContext(ctx)
2543	req.ApplyOptions(opts...)
2544	return out, req.Send()
2545}
2546
2547const opUntagResource = "UntagResource"
2548
2549// UntagResourceRequest generates a "aws/request.Request" representing the
2550// client's request for the UntagResource operation. The "output" return
2551// value will be populated with the request's response once the request completes
2552// successfully.
2553//
2554// Use "Send" method on the returned Request to send the API call to the service.
2555// the "output" return value is not valid until after Send returns without error.
2556//
2557// See UntagResource for more information on using the UntagResource
2558// API call, and error handling.
2559//
2560// This method is useful when you want to inject custom logic or configuration
2561// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2562//
2563//
2564//    // Example sending a request using the UntagResourceRequest method.
2565//    req, resp := client.UntagResourceRequest(params)
2566//
2567//    err := req.Send()
2568//    if err == nil { // resp is now filled
2569//        fmt.Println(resp)
2570//    }
2571//
2572// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/UntagResource
2573func (c *EFS) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
2574	op := &request.Operation{
2575		Name:       opUntagResource,
2576		HTTPMethod: "DELETE",
2577		HTTPPath:   "/2015-02-01/resource-tags/{ResourceId}",
2578	}
2579
2580	if input == nil {
2581		input = &UntagResourceInput{}
2582	}
2583
2584	output = &UntagResourceOutput{}
2585	req = c.newRequest(op, input, output)
2586	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2587	return
2588}
2589
2590// UntagResource API operation for Amazon Elastic File System.
2591//
2592// Removes tags from an EFS resource. You can remove tags from EFS file systems
2593// and access points using this API operation.
2594//
2595// This operation requires permissions for the elasticfilesystem:UntagResource
2596// action.
2597//
2598// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2599// with awserr.Error's Code and Message methods to get detailed information about
2600// the error.
2601//
2602// See the AWS API reference guide for Amazon Elastic File System's
2603// API operation UntagResource for usage and error information.
2604//
2605// Returned Error Types:
2606//   * BadRequest
2607//   Returned if the request is malformed or contains an error such as an invalid
2608//   parameter value or a missing required parameter.
2609//
2610//   * InternalServerError
2611//   Returned if an error occurred on the server side.
2612//
2613//   * FileSystemNotFound
2614//   Returned if the specified FileSystemId value doesn't exist in the requester's
2615//   AWS account.
2616//
2617//   * AccessPointNotFound
2618//   Returned if the specified AccessPointId value doesn't exist in the requester's
2619//   AWS account.
2620//
2621// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/UntagResource
2622func (c *EFS) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
2623	req, out := c.UntagResourceRequest(input)
2624	return out, req.Send()
2625}
2626
2627// UntagResourceWithContext is the same as UntagResource with the addition of
2628// the ability to pass a context and additional request options.
2629//
2630// See UntagResource for details on how to use this API operation.
2631//
2632// The context must be non-nil and will be used for request cancellation. If
2633// the context is nil a panic will occur. In the future the SDK may create
2634// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2635// for more information on using Contexts.
2636func (c *EFS) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
2637	req, out := c.UntagResourceRequest(input)
2638	req.SetContext(ctx)
2639	req.ApplyOptions(opts...)
2640	return out, req.Send()
2641}
2642
2643const opUpdateFileSystem = "UpdateFileSystem"
2644
2645// UpdateFileSystemRequest generates a "aws/request.Request" representing the
2646// client's request for the UpdateFileSystem operation. The "output" return
2647// value will be populated with the request's response once the request completes
2648// successfully.
2649//
2650// Use "Send" method on the returned Request to send the API call to the service.
2651// the "output" return value is not valid until after Send returns without error.
2652//
2653// See UpdateFileSystem for more information on using the UpdateFileSystem
2654// API call, and error handling.
2655//
2656// This method is useful when you want to inject custom logic or configuration
2657// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2658//
2659//
2660//    // Example sending a request using the UpdateFileSystemRequest method.
2661//    req, resp := client.UpdateFileSystemRequest(params)
2662//
2663//    err := req.Send()
2664//    if err == nil { // resp is now filled
2665//        fmt.Println(resp)
2666//    }
2667//
2668// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/UpdateFileSystem
2669func (c *EFS) UpdateFileSystemRequest(input *UpdateFileSystemInput) (req *request.Request, output *UpdateFileSystemOutput) {
2670	op := &request.Operation{
2671		Name:       opUpdateFileSystem,
2672		HTTPMethod: "PUT",
2673		HTTPPath:   "/2015-02-01/file-systems/{FileSystemId}",
2674	}
2675
2676	if input == nil {
2677		input = &UpdateFileSystemInput{}
2678	}
2679
2680	output = &UpdateFileSystemOutput{}
2681	req = c.newRequest(op, input, output)
2682	return
2683}
2684
2685// UpdateFileSystem API operation for Amazon Elastic File System.
2686//
2687// Updates the throughput mode or the amount of provisioned throughput of an
2688// existing file system.
2689//
2690// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2691// with awserr.Error's Code and Message methods to get detailed information about
2692// the error.
2693//
2694// See the AWS API reference guide for Amazon Elastic File System's
2695// API operation UpdateFileSystem for usage and error information.
2696//
2697// Returned Error Types:
2698//   * BadRequest
2699//   Returned if the request is malformed or contains an error such as an invalid
2700//   parameter value or a missing required parameter.
2701//
2702//   * FileSystemNotFound
2703//   Returned if the specified FileSystemId value doesn't exist in the requester's
2704//   AWS account.
2705//
2706//   * IncorrectFileSystemLifeCycleState
2707//   Returned if the file system's lifecycle state is not "available".
2708//
2709//   * InsufficientThroughputCapacity
2710//   Returned if there's not enough capacity to provision additional throughput.
2711//   This value might be returned when you try to create a file system in provisioned
2712//   throughput mode, when you attempt to increase the provisioned throughput
2713//   of an existing file system, or when you attempt to change an existing file
2714//   system from bursting to provisioned throughput mode.
2715//
2716//   * InternalServerError
2717//   Returned if an error occurred on the server side.
2718//
2719//   * ThroughputLimitExceeded
2720//   Returned if the throughput mode or amount of provisioned throughput can't
2721//   be changed because the throughput limit of 1024 MiB/s has been reached.
2722//
2723//   * TooManyRequests
2724//   Returned if you don’t wait at least 24 hours before changing the throughput
2725//   mode, or decreasing the Provisioned Throughput value.
2726//
2727// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/UpdateFileSystem
2728func (c *EFS) UpdateFileSystem(input *UpdateFileSystemInput) (*UpdateFileSystemOutput, error) {
2729	req, out := c.UpdateFileSystemRequest(input)
2730	return out, req.Send()
2731}
2732
2733// UpdateFileSystemWithContext is the same as UpdateFileSystem with the addition of
2734// the ability to pass a context and additional request options.
2735//
2736// See UpdateFileSystem for details on how to use this API operation.
2737//
2738// The context must be non-nil and will be used for request cancellation. If
2739// the context is nil a panic will occur. In the future the SDK may create
2740// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2741// for more information on using Contexts.
2742func (c *EFS) UpdateFileSystemWithContext(ctx aws.Context, input *UpdateFileSystemInput, opts ...request.Option) (*UpdateFileSystemOutput, error) {
2743	req, out := c.UpdateFileSystemRequest(input)
2744	req.SetContext(ctx)
2745	req.ApplyOptions(opts...)
2746	return out, req.Send()
2747}
2748
2749// Returned if the access point you are trying to create already exists, with
2750// the creation token you provided in the request.
2751type AccessPointAlreadyExists struct {
2752	_            struct{}                  `type:"structure"`
2753	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
2754
2755	// AccessPointId is a required field
2756	AccessPointId *string `type:"string" required:"true"`
2757
2758	// ErrorCode is a required field
2759	ErrorCode *string `min:"1" type:"string" required:"true"`
2760
2761	Message_ *string `locationName:"Message" type:"string"`
2762}
2763
2764// String returns the string representation
2765func (s AccessPointAlreadyExists) String() string {
2766	return awsutil.Prettify(s)
2767}
2768
2769// GoString returns the string representation
2770func (s AccessPointAlreadyExists) GoString() string {
2771	return s.String()
2772}
2773
2774func newErrorAccessPointAlreadyExists(v protocol.ResponseMetadata) error {
2775	return &AccessPointAlreadyExists{
2776		RespMetadata: v,
2777	}
2778}
2779
2780// Code returns the exception type name.
2781func (s *AccessPointAlreadyExists) Code() string {
2782	return "AccessPointAlreadyExists"
2783}
2784
2785// Message returns the exception's message.
2786func (s *AccessPointAlreadyExists) Message() string {
2787	if s.Message_ != nil {
2788		return *s.Message_
2789	}
2790	return ""
2791}
2792
2793// OrigErr always returns nil, satisfies awserr.Error interface.
2794func (s *AccessPointAlreadyExists) OrigErr() error {
2795	return nil
2796}
2797
2798func (s *AccessPointAlreadyExists) Error() string {
2799	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
2800}
2801
2802// Status code returns the HTTP status code for the request's response error.
2803func (s *AccessPointAlreadyExists) StatusCode() int {
2804	return s.RespMetadata.StatusCode
2805}
2806
2807// RequestID returns the service's response RequestID for request.
2808func (s *AccessPointAlreadyExists) RequestID() string {
2809	return s.RespMetadata.RequestID
2810}
2811
2812// Provides a description of an EFS file system access point.
2813type AccessPointDescription struct {
2814	_ struct{} `type:"structure"`
2815
2816	// The unique Amazon Resource Name (ARN) associated with the access point.
2817	AccessPointArn *string `type:"string"`
2818
2819	// The ID of the access point, assigned by Amazon EFS.
2820	AccessPointId *string `type:"string"`
2821
2822	// The opaque string specified in the request to ensure idempotent creation.
2823	ClientToken *string `min:"1" type:"string"`
2824
2825	// The ID of the EFS file system that the access point applies to.
2826	FileSystemId *string `type:"string"`
2827
2828	// Identifies the lifecycle phase of the access point.
2829	LifeCycleState *string `type:"string" enum:"LifeCycleState"`
2830
2831	// The name of the access point. This is the value of the Name tag.
2832	Name *string `type:"string"`
2833
2834	// Identified the AWS account that owns the access point resource.
2835	OwnerId *string `type:"string"`
2836
2837	// The full POSIX identity, including the user ID, group ID, and secondary group
2838	// IDs on the access point that is used for all file operations by NFS clients
2839	// using the access point.
2840	PosixUser *PosixUser `type:"structure"`
2841
2842	// The directory on the Amazon EFS file system that the access point exposes
2843	// as the root directory to NFS clients using the access point.
2844	RootDirectory *RootDirectory `type:"structure"`
2845
2846	// The tags associated with the access point, presented as an array of Tag objects.
2847	Tags []*Tag `type:"list"`
2848}
2849
2850// String returns the string representation
2851func (s AccessPointDescription) String() string {
2852	return awsutil.Prettify(s)
2853}
2854
2855// GoString returns the string representation
2856func (s AccessPointDescription) GoString() string {
2857	return s.String()
2858}
2859
2860// SetAccessPointArn sets the AccessPointArn field's value.
2861func (s *AccessPointDescription) SetAccessPointArn(v string) *AccessPointDescription {
2862	s.AccessPointArn = &v
2863	return s
2864}
2865
2866// SetAccessPointId sets the AccessPointId field's value.
2867func (s *AccessPointDescription) SetAccessPointId(v string) *AccessPointDescription {
2868	s.AccessPointId = &v
2869	return s
2870}
2871
2872// SetClientToken sets the ClientToken field's value.
2873func (s *AccessPointDescription) SetClientToken(v string) *AccessPointDescription {
2874	s.ClientToken = &v
2875	return s
2876}
2877
2878// SetFileSystemId sets the FileSystemId field's value.
2879func (s *AccessPointDescription) SetFileSystemId(v string) *AccessPointDescription {
2880	s.FileSystemId = &v
2881	return s
2882}
2883
2884// SetLifeCycleState sets the LifeCycleState field's value.
2885func (s *AccessPointDescription) SetLifeCycleState(v string) *AccessPointDescription {
2886	s.LifeCycleState = &v
2887	return s
2888}
2889
2890// SetName sets the Name field's value.
2891func (s *AccessPointDescription) SetName(v string) *AccessPointDescription {
2892	s.Name = &v
2893	return s
2894}
2895
2896// SetOwnerId sets the OwnerId field's value.
2897func (s *AccessPointDescription) SetOwnerId(v string) *AccessPointDescription {
2898	s.OwnerId = &v
2899	return s
2900}
2901
2902// SetPosixUser sets the PosixUser field's value.
2903func (s *AccessPointDescription) SetPosixUser(v *PosixUser) *AccessPointDescription {
2904	s.PosixUser = v
2905	return s
2906}
2907
2908// SetRootDirectory sets the RootDirectory field's value.
2909func (s *AccessPointDescription) SetRootDirectory(v *RootDirectory) *AccessPointDescription {
2910	s.RootDirectory = v
2911	return s
2912}
2913
2914// SetTags sets the Tags field's value.
2915func (s *AccessPointDescription) SetTags(v []*Tag) *AccessPointDescription {
2916	s.Tags = v
2917	return s
2918}
2919
2920// Returned if the AWS account has already created the maximum number of access
2921// points allowed per file system.
2922type AccessPointLimitExceeded struct {
2923	_            struct{}                  `type:"structure"`
2924	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
2925
2926	// ErrorCode is a required field
2927	ErrorCode *string `min:"1" type:"string" required:"true"`
2928
2929	Message_ *string `locationName:"Message" type:"string"`
2930}
2931
2932// String returns the string representation
2933func (s AccessPointLimitExceeded) String() string {
2934	return awsutil.Prettify(s)
2935}
2936
2937// GoString returns the string representation
2938func (s AccessPointLimitExceeded) GoString() string {
2939	return s.String()
2940}
2941
2942func newErrorAccessPointLimitExceeded(v protocol.ResponseMetadata) error {
2943	return &AccessPointLimitExceeded{
2944		RespMetadata: v,
2945	}
2946}
2947
2948// Code returns the exception type name.
2949func (s *AccessPointLimitExceeded) Code() string {
2950	return "AccessPointLimitExceeded"
2951}
2952
2953// Message returns the exception's message.
2954func (s *AccessPointLimitExceeded) Message() string {
2955	if s.Message_ != nil {
2956		return *s.Message_
2957	}
2958	return ""
2959}
2960
2961// OrigErr always returns nil, satisfies awserr.Error interface.
2962func (s *AccessPointLimitExceeded) OrigErr() error {
2963	return nil
2964}
2965
2966func (s *AccessPointLimitExceeded) Error() string {
2967	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
2968}
2969
2970// Status code returns the HTTP status code for the request's response error.
2971func (s *AccessPointLimitExceeded) StatusCode() int {
2972	return s.RespMetadata.StatusCode
2973}
2974
2975// RequestID returns the service's response RequestID for request.
2976func (s *AccessPointLimitExceeded) RequestID() string {
2977	return s.RespMetadata.RequestID
2978}
2979
2980// Returned if the specified AccessPointId value doesn't exist in the requester's
2981// AWS account.
2982type AccessPointNotFound struct {
2983	_            struct{}                  `type:"structure"`
2984	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
2985
2986	// ErrorCode is a required field
2987	ErrorCode *string `min:"1" type:"string" required:"true"`
2988
2989	Message_ *string `locationName:"Message" type:"string"`
2990}
2991
2992// String returns the string representation
2993func (s AccessPointNotFound) String() string {
2994	return awsutil.Prettify(s)
2995}
2996
2997// GoString returns the string representation
2998func (s AccessPointNotFound) GoString() string {
2999	return s.String()
3000}
3001
3002func newErrorAccessPointNotFound(v protocol.ResponseMetadata) error {
3003	return &AccessPointNotFound{
3004		RespMetadata: v,
3005	}
3006}
3007
3008// Code returns the exception type name.
3009func (s *AccessPointNotFound) Code() string {
3010	return "AccessPointNotFound"
3011}
3012
3013// Message returns the exception's message.
3014func (s *AccessPointNotFound) Message() string {
3015	if s.Message_ != nil {
3016		return *s.Message_
3017	}
3018	return ""
3019}
3020
3021// OrigErr always returns nil, satisfies awserr.Error interface.
3022func (s *AccessPointNotFound) OrigErr() error {
3023	return nil
3024}
3025
3026func (s *AccessPointNotFound) Error() string {
3027	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
3028}
3029
3030// Status code returns the HTTP status code for the request's response error.
3031func (s *AccessPointNotFound) StatusCode() int {
3032	return s.RespMetadata.StatusCode
3033}
3034
3035// RequestID returns the service's response RequestID for request.
3036func (s *AccessPointNotFound) RequestID() string {
3037	return s.RespMetadata.RequestID
3038}
3039
3040// Returned if the request is malformed or contains an error such as an invalid
3041// parameter value or a missing required parameter.
3042type BadRequest struct {
3043	_            struct{}                  `type:"structure"`
3044	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3045
3046	// ErrorCode is a required field
3047	ErrorCode *string `min:"1" type:"string" required:"true"`
3048
3049	Message_ *string `locationName:"Message" type:"string"`
3050}
3051
3052// String returns the string representation
3053func (s BadRequest) String() string {
3054	return awsutil.Prettify(s)
3055}
3056
3057// GoString returns the string representation
3058func (s BadRequest) GoString() string {
3059	return s.String()
3060}
3061
3062func newErrorBadRequest(v protocol.ResponseMetadata) error {
3063	return &BadRequest{
3064		RespMetadata: v,
3065	}
3066}
3067
3068// Code returns the exception type name.
3069func (s *BadRequest) Code() string {
3070	return "BadRequest"
3071}
3072
3073// Message returns the exception's message.
3074func (s *BadRequest) Message() string {
3075	if s.Message_ != nil {
3076		return *s.Message_
3077	}
3078	return ""
3079}
3080
3081// OrigErr always returns nil, satisfies awserr.Error interface.
3082func (s *BadRequest) OrigErr() error {
3083	return nil
3084}
3085
3086func (s *BadRequest) Error() string {
3087	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
3088}
3089
3090// Status code returns the HTTP status code for the request's response error.
3091func (s *BadRequest) StatusCode() int {
3092	return s.RespMetadata.StatusCode
3093}
3094
3095// RequestID returns the service's response RequestID for request.
3096func (s *BadRequest) RequestID() string {
3097	return s.RespMetadata.RequestID
3098}
3099
3100type CreateAccessPointInput struct {
3101	_ struct{} `type:"structure"`
3102
3103	// A string of up to 64 ASCII characters that Amazon EFS uses to ensure idempotent
3104	// creation.
3105	ClientToken *string `min:"1" type:"string" idempotencyToken:"true"`
3106
3107	// The ID of the EFS file system that the access point provides access to.
3108	//
3109	// FileSystemId is a required field
3110	FileSystemId *string `type:"string" required:"true"`
3111
3112	// The operating system user and group applied to all file system requests made
3113	// using the access point.
3114	PosixUser *PosixUser `type:"structure"`
3115
3116	// Specifies the directory on the Amazon EFS file system that the access point
3117	// exposes as the root directory of your file system to NFS clients using the
3118	// access point. The clients using the access point can only access the root
3119	// directory and below. If the RootDirectory > Path specified does not exist,
3120	// EFS creates it and applies the CreationInfo settings when a client connects
3121	// to an access point. When specifying a RootDirectory, you need to provide
3122	// the Path, and the CreationInfo is optional.
3123	RootDirectory *RootDirectory `type:"structure"`
3124
3125	// Creates tags associated with the access point. Each tag is a key-value pair.
3126	Tags []*Tag `type:"list"`
3127}
3128
3129// String returns the string representation
3130func (s CreateAccessPointInput) String() string {
3131	return awsutil.Prettify(s)
3132}
3133
3134// GoString returns the string representation
3135func (s CreateAccessPointInput) GoString() string {
3136	return s.String()
3137}
3138
3139// Validate inspects the fields of the type to determine if they are valid.
3140func (s *CreateAccessPointInput) Validate() error {
3141	invalidParams := request.ErrInvalidParams{Context: "CreateAccessPointInput"}
3142	if s.ClientToken != nil && len(*s.ClientToken) < 1 {
3143		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1))
3144	}
3145	if s.FileSystemId == nil {
3146		invalidParams.Add(request.NewErrParamRequired("FileSystemId"))
3147	}
3148	if s.PosixUser != nil {
3149		if err := s.PosixUser.Validate(); err != nil {
3150			invalidParams.AddNested("PosixUser", err.(request.ErrInvalidParams))
3151		}
3152	}
3153	if s.RootDirectory != nil {
3154		if err := s.RootDirectory.Validate(); err != nil {
3155			invalidParams.AddNested("RootDirectory", err.(request.ErrInvalidParams))
3156		}
3157	}
3158	if s.Tags != nil {
3159		for i, v := range s.Tags {
3160			if v == nil {
3161				continue
3162			}
3163			if err := v.Validate(); err != nil {
3164				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
3165			}
3166		}
3167	}
3168
3169	if invalidParams.Len() > 0 {
3170		return invalidParams
3171	}
3172	return nil
3173}
3174
3175// SetClientToken sets the ClientToken field's value.
3176func (s *CreateAccessPointInput) SetClientToken(v string) *CreateAccessPointInput {
3177	s.ClientToken = &v
3178	return s
3179}
3180
3181// SetFileSystemId sets the FileSystemId field's value.
3182func (s *CreateAccessPointInput) SetFileSystemId(v string) *CreateAccessPointInput {
3183	s.FileSystemId = &v
3184	return s
3185}
3186
3187// SetPosixUser sets the PosixUser field's value.
3188func (s *CreateAccessPointInput) SetPosixUser(v *PosixUser) *CreateAccessPointInput {
3189	s.PosixUser = v
3190	return s
3191}
3192
3193// SetRootDirectory sets the RootDirectory field's value.
3194func (s *CreateAccessPointInput) SetRootDirectory(v *RootDirectory) *CreateAccessPointInput {
3195	s.RootDirectory = v
3196	return s
3197}
3198
3199// SetTags sets the Tags field's value.
3200func (s *CreateAccessPointInput) SetTags(v []*Tag) *CreateAccessPointInput {
3201	s.Tags = v
3202	return s
3203}
3204
3205// Provides a description of an EFS file system access point.
3206type CreateAccessPointOutput struct {
3207	_ struct{} `type:"structure"`
3208
3209	// The unique Amazon Resource Name (ARN) associated with the access point.
3210	AccessPointArn *string `type:"string"`
3211
3212	// The ID of the access point, assigned by Amazon EFS.
3213	AccessPointId *string `type:"string"`
3214
3215	// The opaque string specified in the request to ensure idempotent creation.
3216	ClientToken *string `min:"1" type:"string"`
3217
3218	// The ID of the EFS file system that the access point applies to.
3219	FileSystemId *string `type:"string"`
3220
3221	// Identifies the lifecycle phase of the access point.
3222	LifeCycleState *string `type:"string" enum:"LifeCycleState"`
3223
3224	// The name of the access point. This is the value of the Name tag.
3225	Name *string `type:"string"`
3226
3227	// Identified the AWS account that owns the access point resource.
3228	OwnerId *string `type:"string"`
3229
3230	// The full POSIX identity, including the user ID, group ID, and secondary group
3231	// IDs on the access point that is used for all file operations by NFS clients
3232	// using the access point.
3233	PosixUser *PosixUser `type:"structure"`
3234
3235	// The directory on the Amazon EFS file system that the access point exposes
3236	// as the root directory to NFS clients using the access point.
3237	RootDirectory *RootDirectory `type:"structure"`
3238
3239	// The tags associated with the access point, presented as an array of Tag objects.
3240	Tags []*Tag `type:"list"`
3241}
3242
3243// String returns the string representation
3244func (s CreateAccessPointOutput) String() string {
3245	return awsutil.Prettify(s)
3246}
3247
3248// GoString returns the string representation
3249func (s CreateAccessPointOutput) GoString() string {
3250	return s.String()
3251}
3252
3253// SetAccessPointArn sets the AccessPointArn field's value.
3254func (s *CreateAccessPointOutput) SetAccessPointArn(v string) *CreateAccessPointOutput {
3255	s.AccessPointArn = &v
3256	return s
3257}
3258
3259// SetAccessPointId sets the AccessPointId field's value.
3260func (s *CreateAccessPointOutput) SetAccessPointId(v string) *CreateAccessPointOutput {
3261	s.AccessPointId = &v
3262	return s
3263}
3264
3265// SetClientToken sets the ClientToken field's value.
3266func (s *CreateAccessPointOutput) SetClientToken(v string) *CreateAccessPointOutput {
3267	s.ClientToken = &v
3268	return s
3269}
3270
3271// SetFileSystemId sets the FileSystemId field's value.
3272func (s *CreateAccessPointOutput) SetFileSystemId(v string) *CreateAccessPointOutput {
3273	s.FileSystemId = &v
3274	return s
3275}
3276
3277// SetLifeCycleState sets the LifeCycleState field's value.
3278func (s *CreateAccessPointOutput) SetLifeCycleState(v string) *CreateAccessPointOutput {
3279	s.LifeCycleState = &v
3280	return s
3281}
3282
3283// SetName sets the Name field's value.
3284func (s *CreateAccessPointOutput) SetName(v string) *CreateAccessPointOutput {
3285	s.Name = &v
3286	return s
3287}
3288
3289// SetOwnerId sets the OwnerId field's value.
3290func (s *CreateAccessPointOutput) SetOwnerId(v string) *CreateAccessPointOutput {
3291	s.OwnerId = &v
3292	return s
3293}
3294
3295// SetPosixUser sets the PosixUser field's value.
3296func (s *CreateAccessPointOutput) SetPosixUser(v *PosixUser) *CreateAccessPointOutput {
3297	s.PosixUser = v
3298	return s
3299}
3300
3301// SetRootDirectory sets the RootDirectory field's value.
3302func (s *CreateAccessPointOutput) SetRootDirectory(v *RootDirectory) *CreateAccessPointOutput {
3303	s.RootDirectory = v
3304	return s
3305}
3306
3307// SetTags sets the Tags field's value.
3308func (s *CreateAccessPointOutput) SetTags(v []*Tag) *CreateAccessPointOutput {
3309	s.Tags = v
3310	return s
3311}
3312
3313type CreateFileSystemInput struct {
3314	_ struct{} `type:"structure"`
3315
3316	// A string of up to 64 ASCII characters. Amazon EFS uses this to ensure idempotent
3317	// creation.
3318	CreationToken *string `min:"1" type:"string" idempotencyToken:"true"`
3319
3320	// A Boolean value that, if true, creates an encrypted file system. When creating
3321	// an encrypted file system, you have the option of specifying CreateFileSystemRequest$KmsKeyId
3322	// for an existing AWS Key Management Service (AWS KMS) customer master key
3323	// (CMK). If you don't specify a CMK, then the default CMK for Amazon EFS, /aws/elasticfilesystem,
3324	// is used to protect the encrypted file system.
3325	Encrypted *bool `type:"boolean"`
3326
3327	// The ID of the AWS KMS CMK to be used to protect the encrypted file system.
3328	// This parameter is only required if you want to use a nondefault CMK. If this
3329	// parameter is not specified, the default CMK for Amazon EFS is used. This
3330	// ID can be in one of the following formats:
3331	//
3332	//    * Key ID - A unique identifier of the key, for example 1234abcd-12ab-34cd-56ef-1234567890ab.
3333	//
3334	//    * ARN - An Amazon Resource Name (ARN) for the key, for example arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab.
3335	//
3336	//    * Key alias - A previously created display name for a key, for example
3337	//    alias/projectKey1.
3338	//
3339	//    * Key alias ARN - An ARN for a key alias, for example arn:aws:kms:us-west-2:444455556666:alias/projectKey1.
3340	//
3341	// If KmsKeyId is specified, the CreateFileSystemRequest$Encrypted parameter
3342	// must be set to true.
3343	//
3344	// EFS accepts only symmetric CMKs. You cannot use asymmetric CMKs with EFS
3345	// file systems.
3346	KmsKeyId *string `min:"1" type:"string"`
3347
3348	// The performance mode of the file system. We recommend generalPurpose performance
3349	// mode for most file systems. File systems using the maxIO performance mode
3350	// can scale to higher levels of aggregate throughput and operations per second
3351	// with a tradeoff of slightly higher latencies for most file operations. The
3352	// performance mode can't be changed after the file system has been created.
3353	PerformanceMode *string `type:"string" enum:"PerformanceMode"`
3354
3355	// The throughput, measured in MiB/s, that you want to provision for a file
3356	// system that you're creating. Valid values are 1-1024. Required if ThroughputMode
3357	// is set to provisioned. The upper limit for throughput is 1024 MiB/s. You
3358	// can get this limit increased by contacting AWS Support. For more information,
3359	// see Amazon EFS Limits That You Can Increase (https://docs.aws.amazon.com/efs/latest/ug/limits.html#soft-limits)
3360	// in the Amazon EFS User Guide.
3361	ProvisionedThroughputInMibps *float64 `min:"1" type:"double"`
3362
3363	// A value that specifies to create one or more tags associated with the file
3364	// system. Each tag is a user-defined key-value pair. Name your file system
3365	// on creation by including a "Key":"Name","Value":"{value}" key-value pair.
3366	Tags []*Tag `type:"list"`
3367
3368	// The throughput mode for the file system to be created. There are two throughput
3369	// modes to choose from for your file system: bursting and provisioned. If you
3370	// set ThroughputMode to provisioned, you must also set a value for ProvisionedThroughPutInMibps.
3371	// You can decrease your file system's throughput in Provisioned Throughput
3372	// mode or change between the throughput modes as long as it’s been more than
3373	// 24 hours since the last decrease or throughput mode change. For more, see
3374	// Specifying Throughput with Provisioned Mode (https://docs.aws.amazon.com/efs/latest/ug/performance.html#provisioned-throughput)
3375	// in the Amazon EFS User Guide.
3376	ThroughputMode *string `type:"string" enum:"ThroughputMode"`
3377}
3378
3379// String returns the string representation
3380func (s CreateFileSystemInput) String() string {
3381	return awsutil.Prettify(s)
3382}
3383
3384// GoString returns the string representation
3385func (s CreateFileSystemInput) GoString() string {
3386	return s.String()
3387}
3388
3389// Validate inspects the fields of the type to determine if they are valid.
3390func (s *CreateFileSystemInput) Validate() error {
3391	invalidParams := request.ErrInvalidParams{Context: "CreateFileSystemInput"}
3392	if s.CreationToken != nil && len(*s.CreationToken) < 1 {
3393		invalidParams.Add(request.NewErrParamMinLen("CreationToken", 1))
3394	}
3395	if s.KmsKeyId != nil && len(*s.KmsKeyId) < 1 {
3396		invalidParams.Add(request.NewErrParamMinLen("KmsKeyId", 1))
3397	}
3398	if s.ProvisionedThroughputInMibps != nil && *s.ProvisionedThroughputInMibps < 1 {
3399		invalidParams.Add(request.NewErrParamMinValue("ProvisionedThroughputInMibps", 1))
3400	}
3401	if s.Tags != nil {
3402		for i, v := range s.Tags {
3403			if v == nil {
3404				continue
3405			}
3406			if err := v.Validate(); err != nil {
3407				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
3408			}
3409		}
3410	}
3411
3412	if invalidParams.Len() > 0 {
3413		return invalidParams
3414	}
3415	return nil
3416}
3417
3418// SetCreationToken sets the CreationToken field's value.
3419func (s *CreateFileSystemInput) SetCreationToken(v string) *CreateFileSystemInput {
3420	s.CreationToken = &v
3421	return s
3422}
3423
3424// SetEncrypted sets the Encrypted field's value.
3425func (s *CreateFileSystemInput) SetEncrypted(v bool) *CreateFileSystemInput {
3426	s.Encrypted = &v
3427	return s
3428}
3429
3430// SetKmsKeyId sets the KmsKeyId field's value.
3431func (s *CreateFileSystemInput) SetKmsKeyId(v string) *CreateFileSystemInput {
3432	s.KmsKeyId = &v
3433	return s
3434}
3435
3436// SetPerformanceMode sets the PerformanceMode field's value.
3437func (s *CreateFileSystemInput) SetPerformanceMode(v string) *CreateFileSystemInput {
3438	s.PerformanceMode = &v
3439	return s
3440}
3441
3442// SetProvisionedThroughputInMibps sets the ProvisionedThroughputInMibps field's value.
3443func (s *CreateFileSystemInput) SetProvisionedThroughputInMibps(v float64) *CreateFileSystemInput {
3444	s.ProvisionedThroughputInMibps = &v
3445	return s
3446}
3447
3448// SetTags sets the Tags field's value.
3449func (s *CreateFileSystemInput) SetTags(v []*Tag) *CreateFileSystemInput {
3450	s.Tags = v
3451	return s
3452}
3453
3454// SetThroughputMode sets the ThroughputMode field's value.
3455func (s *CreateFileSystemInput) SetThroughputMode(v string) *CreateFileSystemInput {
3456	s.ThroughputMode = &v
3457	return s
3458}
3459
3460type CreateMountTargetInput struct {
3461	_ struct{} `type:"structure"`
3462
3463	// The ID of the file system for which to create the mount target.
3464	//
3465	// FileSystemId is a required field
3466	FileSystemId *string `type:"string" required:"true"`
3467
3468	// Valid IPv4 address within the address range of the specified subnet.
3469	IpAddress *string `type:"string"`
3470
3471	// Up to five VPC security group IDs, of the form sg-xxxxxxxx. These must be
3472	// for the same VPC as subnet specified.
3473	SecurityGroups []*string `type:"list"`
3474
3475	// The ID of the subnet to add the mount target in.
3476	//
3477	// SubnetId is a required field
3478	SubnetId *string `type:"string" required:"true"`
3479}
3480
3481// String returns the string representation
3482func (s CreateMountTargetInput) String() string {
3483	return awsutil.Prettify(s)
3484}
3485
3486// GoString returns the string representation
3487func (s CreateMountTargetInput) GoString() string {
3488	return s.String()
3489}
3490
3491// Validate inspects the fields of the type to determine if they are valid.
3492func (s *CreateMountTargetInput) Validate() error {
3493	invalidParams := request.ErrInvalidParams{Context: "CreateMountTargetInput"}
3494	if s.FileSystemId == nil {
3495		invalidParams.Add(request.NewErrParamRequired("FileSystemId"))
3496	}
3497	if s.SubnetId == nil {
3498		invalidParams.Add(request.NewErrParamRequired("SubnetId"))
3499	}
3500
3501	if invalidParams.Len() > 0 {
3502		return invalidParams
3503	}
3504	return nil
3505}
3506
3507// SetFileSystemId sets the FileSystemId field's value.
3508func (s *CreateMountTargetInput) SetFileSystemId(v string) *CreateMountTargetInput {
3509	s.FileSystemId = &v
3510	return s
3511}
3512
3513// SetIpAddress sets the IpAddress field's value.
3514func (s *CreateMountTargetInput) SetIpAddress(v string) *CreateMountTargetInput {
3515	s.IpAddress = &v
3516	return s
3517}
3518
3519// SetSecurityGroups sets the SecurityGroups field's value.
3520func (s *CreateMountTargetInput) SetSecurityGroups(v []*string) *CreateMountTargetInput {
3521	s.SecurityGroups = v
3522	return s
3523}
3524
3525// SetSubnetId sets the SubnetId field's value.
3526func (s *CreateMountTargetInput) SetSubnetId(v string) *CreateMountTargetInput {
3527	s.SubnetId = &v
3528	return s
3529}
3530
3531type CreateTagsInput struct {
3532	_ struct{} `type:"structure"`
3533
3534	// The ID of the file system whose tags you want to modify (String). This operation
3535	// modifies the tags only, not the file system.
3536	//
3537	// FileSystemId is a required field
3538	FileSystemId *string `location:"uri" locationName:"FileSystemId" type:"string" required:"true"`
3539
3540	// An array of Tag objects to add. Each Tag object is a key-value pair.
3541	//
3542	// Tags is a required field
3543	Tags []*Tag `type:"list" required:"true"`
3544}
3545
3546// String returns the string representation
3547func (s CreateTagsInput) String() string {
3548	return awsutil.Prettify(s)
3549}
3550
3551// GoString returns the string representation
3552func (s CreateTagsInput) GoString() string {
3553	return s.String()
3554}
3555
3556// Validate inspects the fields of the type to determine if they are valid.
3557func (s *CreateTagsInput) Validate() error {
3558	invalidParams := request.ErrInvalidParams{Context: "CreateTagsInput"}
3559	if s.FileSystemId == nil {
3560		invalidParams.Add(request.NewErrParamRequired("FileSystemId"))
3561	}
3562	if s.FileSystemId != nil && len(*s.FileSystemId) < 1 {
3563		invalidParams.Add(request.NewErrParamMinLen("FileSystemId", 1))
3564	}
3565	if s.Tags == nil {
3566		invalidParams.Add(request.NewErrParamRequired("Tags"))
3567	}
3568	if s.Tags != nil {
3569		for i, v := range s.Tags {
3570			if v == nil {
3571				continue
3572			}
3573			if err := v.Validate(); err != nil {
3574				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
3575			}
3576		}
3577	}
3578
3579	if invalidParams.Len() > 0 {
3580		return invalidParams
3581	}
3582	return nil
3583}
3584
3585// SetFileSystemId sets the FileSystemId field's value.
3586func (s *CreateTagsInput) SetFileSystemId(v string) *CreateTagsInput {
3587	s.FileSystemId = &v
3588	return s
3589}
3590
3591// SetTags sets the Tags field's value.
3592func (s *CreateTagsInput) SetTags(v []*Tag) *CreateTagsInput {
3593	s.Tags = v
3594	return s
3595}
3596
3597type CreateTagsOutput struct {
3598	_ struct{} `type:"structure"`
3599}
3600
3601// String returns the string representation
3602func (s CreateTagsOutput) String() string {
3603	return awsutil.Prettify(s)
3604}
3605
3606// GoString returns the string representation
3607func (s CreateTagsOutput) GoString() string {
3608	return s.String()
3609}
3610
3611// Required if the RootDirectory > Path specified does not exist. Specifies
3612// the POSIX IDs and permissions to apply to the access point's RootDirectory
3613// > Path. If the access point root directory does not exist, EFS creates it
3614// with these settings when a client connects to the access point. When specifying
3615// CreationInfo, you must include values for all properties.
3616//
3617// If you do not provide CreationInfo and the specified RootDirectory does not
3618// exist, attempts to mount the file system using the access point will fail.
3619type CreationInfo struct {
3620	_ struct{} `type:"structure"`
3621
3622	// Specifies the POSIX group ID to apply to the RootDirectory. Accepts values
3623	// from 0 to 2^32 (4294967295).
3624	//
3625	// OwnerGid is a required field
3626	OwnerGid *int64 `type:"long" required:"true"`
3627
3628	// Specifies the POSIX user ID to apply to the RootDirectory. Accepts values
3629	// from 0 to 2^32 (4294967295).
3630	//
3631	// OwnerUid is a required field
3632	OwnerUid *int64 `type:"long" required:"true"`
3633
3634	// Specifies the POSIX permissions to apply to the RootDirectory, in the format
3635	// of an octal number representing the file's mode bits.
3636	//
3637	// Permissions is a required field
3638	Permissions *string `type:"string" required:"true"`
3639}
3640
3641// String returns the string representation
3642func (s CreationInfo) String() string {
3643	return awsutil.Prettify(s)
3644}
3645
3646// GoString returns the string representation
3647func (s CreationInfo) GoString() string {
3648	return s.String()
3649}
3650
3651// Validate inspects the fields of the type to determine if they are valid.
3652func (s *CreationInfo) Validate() error {
3653	invalidParams := request.ErrInvalidParams{Context: "CreationInfo"}
3654	if s.OwnerGid == nil {
3655		invalidParams.Add(request.NewErrParamRequired("OwnerGid"))
3656	}
3657	if s.OwnerUid == nil {
3658		invalidParams.Add(request.NewErrParamRequired("OwnerUid"))
3659	}
3660	if s.Permissions == nil {
3661		invalidParams.Add(request.NewErrParamRequired("Permissions"))
3662	}
3663
3664	if invalidParams.Len() > 0 {
3665		return invalidParams
3666	}
3667	return nil
3668}
3669
3670// SetOwnerGid sets the OwnerGid field's value.
3671func (s *CreationInfo) SetOwnerGid(v int64) *CreationInfo {
3672	s.OwnerGid = &v
3673	return s
3674}
3675
3676// SetOwnerUid sets the OwnerUid field's value.
3677func (s *CreationInfo) SetOwnerUid(v int64) *CreationInfo {
3678	s.OwnerUid = &v
3679	return s
3680}
3681
3682// SetPermissions sets the Permissions field's value.
3683func (s *CreationInfo) SetPermissions(v string) *CreationInfo {
3684	s.Permissions = &v
3685	return s
3686}
3687
3688type DeleteAccessPointInput struct {
3689	_ struct{} `type:"structure"`
3690
3691	// The ID of the access point that you want to delete.
3692	//
3693	// AccessPointId is a required field
3694	AccessPointId *string `location:"uri" locationName:"AccessPointId" type:"string" required:"true"`
3695}
3696
3697// String returns the string representation
3698func (s DeleteAccessPointInput) String() string {
3699	return awsutil.Prettify(s)
3700}
3701
3702// GoString returns the string representation
3703func (s DeleteAccessPointInput) GoString() string {
3704	return s.String()
3705}
3706
3707// Validate inspects the fields of the type to determine if they are valid.
3708func (s *DeleteAccessPointInput) Validate() error {
3709	invalidParams := request.ErrInvalidParams{Context: "DeleteAccessPointInput"}
3710	if s.AccessPointId == nil {
3711		invalidParams.Add(request.NewErrParamRequired("AccessPointId"))
3712	}
3713	if s.AccessPointId != nil && len(*s.AccessPointId) < 1 {
3714		invalidParams.Add(request.NewErrParamMinLen("AccessPointId", 1))
3715	}
3716
3717	if invalidParams.Len() > 0 {
3718		return invalidParams
3719	}
3720	return nil
3721}
3722
3723// SetAccessPointId sets the AccessPointId field's value.
3724func (s *DeleteAccessPointInput) SetAccessPointId(v string) *DeleteAccessPointInput {
3725	s.AccessPointId = &v
3726	return s
3727}
3728
3729type DeleteAccessPointOutput struct {
3730	_ struct{} `type:"structure"`
3731}
3732
3733// String returns the string representation
3734func (s DeleteAccessPointOutput) String() string {
3735	return awsutil.Prettify(s)
3736}
3737
3738// GoString returns the string representation
3739func (s DeleteAccessPointOutput) GoString() string {
3740	return s.String()
3741}
3742
3743type DeleteFileSystemInput struct {
3744	_ struct{} `type:"structure"`
3745
3746	// The ID of the file system you want to delete.
3747	//
3748	// FileSystemId is a required field
3749	FileSystemId *string `location:"uri" locationName:"FileSystemId" type:"string" required:"true"`
3750}
3751
3752// String returns the string representation
3753func (s DeleteFileSystemInput) String() string {
3754	return awsutil.Prettify(s)
3755}
3756
3757// GoString returns the string representation
3758func (s DeleteFileSystemInput) GoString() string {
3759	return s.String()
3760}
3761
3762// Validate inspects the fields of the type to determine if they are valid.
3763func (s *DeleteFileSystemInput) Validate() error {
3764	invalidParams := request.ErrInvalidParams{Context: "DeleteFileSystemInput"}
3765	if s.FileSystemId == nil {
3766		invalidParams.Add(request.NewErrParamRequired("FileSystemId"))
3767	}
3768	if s.FileSystemId != nil && len(*s.FileSystemId) < 1 {
3769		invalidParams.Add(request.NewErrParamMinLen("FileSystemId", 1))
3770	}
3771
3772	if invalidParams.Len() > 0 {
3773		return invalidParams
3774	}
3775	return nil
3776}
3777
3778// SetFileSystemId sets the FileSystemId field's value.
3779func (s *DeleteFileSystemInput) SetFileSystemId(v string) *DeleteFileSystemInput {
3780	s.FileSystemId = &v
3781	return s
3782}
3783
3784type DeleteFileSystemOutput struct {
3785	_ struct{} `type:"structure"`
3786}
3787
3788// String returns the string representation
3789func (s DeleteFileSystemOutput) String() string {
3790	return awsutil.Prettify(s)
3791}
3792
3793// GoString returns the string representation
3794func (s DeleteFileSystemOutput) GoString() string {
3795	return s.String()
3796}
3797
3798type DeleteFileSystemPolicyInput struct {
3799	_ struct{} `type:"structure"`
3800
3801	// Specifies the EFS file system for which to delete the FileSystemPolicy.
3802	//
3803	// FileSystemId is a required field
3804	FileSystemId *string `location:"uri" locationName:"FileSystemId" type:"string" required:"true"`
3805}
3806
3807// String returns the string representation
3808func (s DeleteFileSystemPolicyInput) String() string {
3809	return awsutil.Prettify(s)
3810}
3811
3812// GoString returns the string representation
3813func (s DeleteFileSystemPolicyInput) GoString() string {
3814	return s.String()
3815}
3816
3817// Validate inspects the fields of the type to determine if they are valid.
3818func (s *DeleteFileSystemPolicyInput) Validate() error {
3819	invalidParams := request.ErrInvalidParams{Context: "DeleteFileSystemPolicyInput"}
3820	if s.FileSystemId == nil {
3821		invalidParams.Add(request.NewErrParamRequired("FileSystemId"))
3822	}
3823	if s.FileSystemId != nil && len(*s.FileSystemId) < 1 {
3824		invalidParams.Add(request.NewErrParamMinLen("FileSystemId", 1))
3825	}
3826
3827	if invalidParams.Len() > 0 {
3828		return invalidParams
3829	}
3830	return nil
3831}
3832
3833// SetFileSystemId sets the FileSystemId field's value.
3834func (s *DeleteFileSystemPolicyInput) SetFileSystemId(v string) *DeleteFileSystemPolicyInput {
3835	s.FileSystemId = &v
3836	return s
3837}
3838
3839type DeleteFileSystemPolicyOutput struct {
3840	_ struct{} `type:"structure"`
3841}
3842
3843// String returns the string representation
3844func (s DeleteFileSystemPolicyOutput) String() string {
3845	return awsutil.Prettify(s)
3846}
3847
3848// GoString returns the string representation
3849func (s DeleteFileSystemPolicyOutput) GoString() string {
3850	return s.String()
3851}
3852
3853type DeleteMountTargetInput struct {
3854	_ struct{} `type:"structure"`
3855
3856	// The ID of the mount target to delete (String).
3857	//
3858	// MountTargetId is a required field
3859	MountTargetId *string `location:"uri" locationName:"MountTargetId" type:"string" required:"true"`
3860}
3861
3862// String returns the string representation
3863func (s DeleteMountTargetInput) String() string {
3864	return awsutil.Prettify(s)
3865}
3866
3867// GoString returns the string representation
3868func (s DeleteMountTargetInput) GoString() string {
3869	return s.String()
3870}
3871
3872// Validate inspects the fields of the type to determine if they are valid.
3873func (s *DeleteMountTargetInput) Validate() error {
3874	invalidParams := request.ErrInvalidParams{Context: "DeleteMountTargetInput"}
3875	if s.MountTargetId == nil {
3876		invalidParams.Add(request.NewErrParamRequired("MountTargetId"))
3877	}
3878	if s.MountTargetId != nil && len(*s.MountTargetId) < 1 {
3879		invalidParams.Add(request.NewErrParamMinLen("MountTargetId", 1))
3880	}
3881
3882	if invalidParams.Len() > 0 {
3883		return invalidParams
3884	}
3885	return nil
3886}
3887
3888// SetMountTargetId sets the MountTargetId field's value.
3889func (s *DeleteMountTargetInput) SetMountTargetId(v string) *DeleteMountTargetInput {
3890	s.MountTargetId = &v
3891	return s
3892}
3893
3894type DeleteMountTargetOutput struct {
3895	_ struct{} `type:"structure"`
3896}
3897
3898// String returns the string representation
3899func (s DeleteMountTargetOutput) String() string {
3900	return awsutil.Prettify(s)
3901}
3902
3903// GoString returns the string representation
3904func (s DeleteMountTargetOutput) GoString() string {
3905	return s.String()
3906}
3907
3908type DeleteTagsInput struct {
3909	_ struct{} `type:"structure"`
3910
3911	// The ID of the file system whose tags you want to delete (String).
3912	//
3913	// FileSystemId is a required field
3914	FileSystemId *string `location:"uri" locationName:"FileSystemId" type:"string" required:"true"`
3915
3916	// A list of tag keys to delete.
3917	//
3918	// TagKeys is a required field
3919	TagKeys []*string `min:"1" type:"list" required:"true"`
3920}
3921
3922// String returns the string representation
3923func (s DeleteTagsInput) String() string {
3924	return awsutil.Prettify(s)
3925}
3926
3927// GoString returns the string representation
3928func (s DeleteTagsInput) GoString() string {
3929	return s.String()
3930}
3931
3932// Validate inspects the fields of the type to determine if they are valid.
3933func (s *DeleteTagsInput) Validate() error {
3934	invalidParams := request.ErrInvalidParams{Context: "DeleteTagsInput"}
3935	if s.FileSystemId == nil {
3936		invalidParams.Add(request.NewErrParamRequired("FileSystemId"))
3937	}
3938	if s.FileSystemId != nil && len(*s.FileSystemId) < 1 {
3939		invalidParams.Add(request.NewErrParamMinLen("FileSystemId", 1))
3940	}
3941	if s.TagKeys == nil {
3942		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
3943	}
3944	if s.TagKeys != nil && len(s.TagKeys) < 1 {
3945		invalidParams.Add(request.NewErrParamMinLen("TagKeys", 1))
3946	}
3947
3948	if invalidParams.Len() > 0 {
3949		return invalidParams
3950	}
3951	return nil
3952}
3953
3954// SetFileSystemId sets the FileSystemId field's value.
3955func (s *DeleteTagsInput) SetFileSystemId(v string) *DeleteTagsInput {
3956	s.FileSystemId = &v
3957	return s
3958}
3959
3960// SetTagKeys sets the TagKeys field's value.
3961func (s *DeleteTagsInput) SetTagKeys(v []*string) *DeleteTagsInput {
3962	s.TagKeys = v
3963	return s
3964}
3965
3966type DeleteTagsOutput struct {
3967	_ struct{} `type:"structure"`
3968}
3969
3970// String returns the string representation
3971func (s DeleteTagsOutput) String() string {
3972	return awsutil.Prettify(s)
3973}
3974
3975// GoString returns the string representation
3976func (s DeleteTagsOutput) GoString() string {
3977	return s.String()
3978}
3979
3980// The service timed out trying to fulfill the request, and the client should
3981// try the call again.
3982type DependencyTimeout struct {
3983	_            struct{}                  `type:"structure"`
3984	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3985
3986	// ErrorCode is a required field
3987	ErrorCode *string `min:"1" type:"string" required:"true"`
3988
3989	Message_ *string `locationName:"Message" type:"string"`
3990}
3991
3992// String returns the string representation
3993func (s DependencyTimeout) String() string {
3994	return awsutil.Prettify(s)
3995}
3996
3997// GoString returns the string representation
3998func (s DependencyTimeout) GoString() string {
3999	return s.String()
4000}
4001
4002func newErrorDependencyTimeout(v protocol.ResponseMetadata) error {
4003	return &DependencyTimeout{
4004		RespMetadata: v,
4005	}
4006}
4007
4008// Code returns the exception type name.
4009func (s *DependencyTimeout) Code() string {
4010	return "DependencyTimeout"
4011}
4012
4013// Message returns the exception's message.
4014func (s *DependencyTimeout) Message() string {
4015	if s.Message_ != nil {
4016		return *s.Message_
4017	}
4018	return ""
4019}
4020
4021// OrigErr always returns nil, satisfies awserr.Error interface.
4022func (s *DependencyTimeout) OrigErr() error {
4023	return nil
4024}
4025
4026func (s *DependencyTimeout) Error() string {
4027	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
4028}
4029
4030// Status code returns the HTTP status code for the request's response error.
4031func (s *DependencyTimeout) StatusCode() int {
4032	return s.RespMetadata.StatusCode
4033}
4034
4035// RequestID returns the service's response RequestID for request.
4036func (s *DependencyTimeout) RequestID() string {
4037	return s.RespMetadata.RequestID
4038}
4039
4040type DescribeAccessPointsInput struct {
4041	_ struct{} `type:"structure"`
4042
4043	// (Optional) Specifies an EFS access point to describe in the response; mutually
4044	// exclusive with FileSystemId.
4045	AccessPointId *string `location:"querystring" locationName:"AccessPointId" type:"string"`
4046
4047	// (Optional) If you provide a FileSystemId, EFS returns all access points for
4048	// that file system; mutually exclusive with AccessPointId.
4049	FileSystemId *string `location:"querystring" locationName:"FileSystemId" type:"string"`
4050
4051	// (Optional) When retrieving all access points for a file system, you can optionally
4052	// specify the MaxItems parameter to limit the number of objects returned in
4053	// a response. The default value is 100.
4054	MaxResults *int64 `location:"querystring" locationName:"MaxResults" min:"1" type:"integer"`
4055
4056	// NextToken is present if the response is paginated. You can use NextMarker
4057	// in the subsequent request to fetch the next page of access point descriptions.
4058	NextToken *string `location:"querystring" locationName:"NextToken" type:"string"`
4059}
4060
4061// String returns the string representation
4062func (s DescribeAccessPointsInput) String() string {
4063	return awsutil.Prettify(s)
4064}
4065
4066// GoString returns the string representation
4067func (s DescribeAccessPointsInput) GoString() string {
4068	return s.String()
4069}
4070
4071// Validate inspects the fields of the type to determine if they are valid.
4072func (s *DescribeAccessPointsInput) Validate() error {
4073	invalidParams := request.ErrInvalidParams{Context: "DescribeAccessPointsInput"}
4074	if s.MaxResults != nil && *s.MaxResults < 1 {
4075		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
4076	}
4077
4078	if invalidParams.Len() > 0 {
4079		return invalidParams
4080	}
4081	return nil
4082}
4083
4084// SetAccessPointId sets the AccessPointId field's value.
4085func (s *DescribeAccessPointsInput) SetAccessPointId(v string) *DescribeAccessPointsInput {
4086	s.AccessPointId = &v
4087	return s
4088}
4089
4090// SetFileSystemId sets the FileSystemId field's value.
4091func (s *DescribeAccessPointsInput) SetFileSystemId(v string) *DescribeAccessPointsInput {
4092	s.FileSystemId = &v
4093	return s
4094}
4095
4096// SetMaxResults sets the MaxResults field's value.
4097func (s *DescribeAccessPointsInput) SetMaxResults(v int64) *DescribeAccessPointsInput {
4098	s.MaxResults = &v
4099	return s
4100}
4101
4102// SetNextToken sets the NextToken field's value.
4103func (s *DescribeAccessPointsInput) SetNextToken(v string) *DescribeAccessPointsInput {
4104	s.NextToken = &v
4105	return s
4106}
4107
4108type DescribeAccessPointsOutput struct {
4109	_ struct{} `type:"structure"`
4110
4111	// An array of access point descriptions.
4112	AccessPoints []*AccessPointDescription `type:"list"`
4113
4114	// Present if there are more access points than returned in the response. You
4115	// can use the NextMarker in the subsequent request to fetch the additional
4116	// descriptions.
4117	NextToken *string `type:"string"`
4118}
4119
4120// String returns the string representation
4121func (s DescribeAccessPointsOutput) String() string {
4122	return awsutil.Prettify(s)
4123}
4124
4125// GoString returns the string representation
4126func (s DescribeAccessPointsOutput) GoString() string {
4127	return s.String()
4128}
4129
4130// SetAccessPoints sets the AccessPoints field's value.
4131func (s *DescribeAccessPointsOutput) SetAccessPoints(v []*AccessPointDescription) *DescribeAccessPointsOutput {
4132	s.AccessPoints = v
4133	return s
4134}
4135
4136// SetNextToken sets the NextToken field's value.
4137func (s *DescribeAccessPointsOutput) SetNextToken(v string) *DescribeAccessPointsOutput {
4138	s.NextToken = &v
4139	return s
4140}
4141
4142type DescribeFileSystemPolicyInput struct {
4143	_ struct{} `type:"structure"`
4144
4145	// Specifies which EFS file system to retrieve the FileSystemPolicy for.
4146	//
4147	// FileSystemId is a required field
4148	FileSystemId *string `location:"uri" locationName:"FileSystemId" type:"string" required:"true"`
4149}
4150
4151// String returns the string representation
4152func (s DescribeFileSystemPolicyInput) String() string {
4153	return awsutil.Prettify(s)
4154}
4155
4156// GoString returns the string representation
4157func (s DescribeFileSystemPolicyInput) GoString() string {
4158	return s.String()
4159}
4160
4161// Validate inspects the fields of the type to determine if they are valid.
4162func (s *DescribeFileSystemPolicyInput) Validate() error {
4163	invalidParams := request.ErrInvalidParams{Context: "DescribeFileSystemPolicyInput"}
4164	if s.FileSystemId == nil {
4165		invalidParams.Add(request.NewErrParamRequired("FileSystemId"))
4166	}
4167	if s.FileSystemId != nil && len(*s.FileSystemId) < 1 {
4168		invalidParams.Add(request.NewErrParamMinLen("FileSystemId", 1))
4169	}
4170
4171	if invalidParams.Len() > 0 {
4172		return invalidParams
4173	}
4174	return nil
4175}
4176
4177// SetFileSystemId sets the FileSystemId field's value.
4178func (s *DescribeFileSystemPolicyInput) SetFileSystemId(v string) *DescribeFileSystemPolicyInput {
4179	s.FileSystemId = &v
4180	return s
4181}
4182
4183type DescribeFileSystemPolicyOutput struct {
4184	_ struct{} `type:"structure"`
4185
4186	// Specifies the EFS file system to which the FileSystemPolicy applies.
4187	FileSystemId *string `type:"string"`
4188
4189	// The JSON formatted FileSystemPolicy for the EFS file system.
4190	Policy *string `type:"string"`
4191}
4192
4193// String returns the string representation
4194func (s DescribeFileSystemPolicyOutput) String() string {
4195	return awsutil.Prettify(s)
4196}
4197
4198// GoString returns the string representation
4199func (s DescribeFileSystemPolicyOutput) GoString() string {
4200	return s.String()
4201}
4202
4203// SetFileSystemId sets the FileSystemId field's value.
4204func (s *DescribeFileSystemPolicyOutput) SetFileSystemId(v string) *DescribeFileSystemPolicyOutput {
4205	s.FileSystemId = &v
4206	return s
4207}
4208
4209// SetPolicy sets the Policy field's value.
4210func (s *DescribeFileSystemPolicyOutput) SetPolicy(v string) *DescribeFileSystemPolicyOutput {
4211	s.Policy = &v
4212	return s
4213}
4214
4215type DescribeFileSystemsInput struct {
4216	_ struct{} `type:"structure"`
4217
4218	// (Optional) Restricts the list to the file system with this creation token
4219	// (String). You specify a creation token when you create an Amazon EFS file
4220	// system.
4221	CreationToken *string `location:"querystring" locationName:"CreationToken" min:"1" type:"string"`
4222
4223	// (Optional) ID of the file system whose description you want to retrieve (String).
4224	FileSystemId *string `location:"querystring" locationName:"FileSystemId" type:"string"`
4225
4226	// (Optional) Opaque pagination token returned from a previous DescribeFileSystems
4227	// operation (String). If present, specifies to continue the list from where
4228	// the returning call had left off.
4229	Marker *string `location:"querystring" locationName:"Marker" type:"string"`
4230
4231	// (Optional) Specifies the maximum number of file systems to return in the
4232	// response (integer). This number is automatically set to 100. The response
4233	// is paginated at 100 per page if you have more than 100 file systems.
4234	MaxItems *int64 `location:"querystring" locationName:"MaxItems" min:"1" type:"integer"`
4235}
4236
4237// String returns the string representation
4238func (s DescribeFileSystemsInput) String() string {
4239	return awsutil.Prettify(s)
4240}
4241
4242// GoString returns the string representation
4243func (s DescribeFileSystemsInput) GoString() string {
4244	return s.String()
4245}
4246
4247// Validate inspects the fields of the type to determine if they are valid.
4248func (s *DescribeFileSystemsInput) Validate() error {
4249	invalidParams := request.ErrInvalidParams{Context: "DescribeFileSystemsInput"}
4250	if s.CreationToken != nil && len(*s.CreationToken) < 1 {
4251		invalidParams.Add(request.NewErrParamMinLen("CreationToken", 1))
4252	}
4253	if s.MaxItems != nil && *s.MaxItems < 1 {
4254		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
4255	}
4256
4257	if invalidParams.Len() > 0 {
4258		return invalidParams
4259	}
4260	return nil
4261}
4262
4263// SetCreationToken sets the CreationToken field's value.
4264func (s *DescribeFileSystemsInput) SetCreationToken(v string) *DescribeFileSystemsInput {
4265	s.CreationToken = &v
4266	return s
4267}
4268
4269// SetFileSystemId sets the FileSystemId field's value.
4270func (s *DescribeFileSystemsInput) SetFileSystemId(v string) *DescribeFileSystemsInput {
4271	s.FileSystemId = &v
4272	return s
4273}
4274
4275// SetMarker sets the Marker field's value.
4276func (s *DescribeFileSystemsInput) SetMarker(v string) *DescribeFileSystemsInput {
4277	s.Marker = &v
4278	return s
4279}
4280
4281// SetMaxItems sets the MaxItems field's value.
4282func (s *DescribeFileSystemsInput) SetMaxItems(v int64) *DescribeFileSystemsInput {
4283	s.MaxItems = &v
4284	return s
4285}
4286
4287type DescribeFileSystemsOutput struct {
4288	_ struct{} `type:"structure"`
4289
4290	// An array of file system descriptions.
4291	FileSystems []*FileSystemDescription `type:"list"`
4292
4293	// Present if provided by caller in the request (String).
4294	Marker *string `type:"string"`
4295
4296	// Present if there are more file systems than returned in the response (String).
4297	// You can use the NextMarker in the subsequent request to fetch the descriptions.
4298	NextMarker *string `type:"string"`
4299}
4300
4301// String returns the string representation
4302func (s DescribeFileSystemsOutput) String() string {
4303	return awsutil.Prettify(s)
4304}
4305
4306// GoString returns the string representation
4307func (s DescribeFileSystemsOutput) GoString() string {
4308	return s.String()
4309}
4310
4311// SetFileSystems sets the FileSystems field's value.
4312func (s *DescribeFileSystemsOutput) SetFileSystems(v []*FileSystemDescription) *DescribeFileSystemsOutput {
4313	s.FileSystems = v
4314	return s
4315}
4316
4317// SetMarker sets the Marker field's value.
4318func (s *DescribeFileSystemsOutput) SetMarker(v string) *DescribeFileSystemsOutput {
4319	s.Marker = &v
4320	return s
4321}
4322
4323// SetNextMarker sets the NextMarker field's value.
4324func (s *DescribeFileSystemsOutput) SetNextMarker(v string) *DescribeFileSystemsOutput {
4325	s.NextMarker = &v
4326	return s
4327}
4328
4329type DescribeLifecycleConfigurationInput struct {
4330	_ struct{} `type:"structure"`
4331
4332	// The ID of the file system whose LifecycleConfiguration object you want to
4333	// retrieve (String).
4334	//
4335	// FileSystemId is a required field
4336	FileSystemId *string `location:"uri" locationName:"FileSystemId" type:"string" required:"true"`
4337}
4338
4339// String returns the string representation
4340func (s DescribeLifecycleConfigurationInput) String() string {
4341	return awsutil.Prettify(s)
4342}
4343
4344// GoString returns the string representation
4345func (s DescribeLifecycleConfigurationInput) GoString() string {
4346	return s.String()
4347}
4348
4349// Validate inspects the fields of the type to determine if they are valid.
4350func (s *DescribeLifecycleConfigurationInput) Validate() error {
4351	invalidParams := request.ErrInvalidParams{Context: "DescribeLifecycleConfigurationInput"}
4352	if s.FileSystemId == nil {
4353		invalidParams.Add(request.NewErrParamRequired("FileSystemId"))
4354	}
4355	if s.FileSystemId != nil && len(*s.FileSystemId) < 1 {
4356		invalidParams.Add(request.NewErrParamMinLen("FileSystemId", 1))
4357	}
4358
4359	if invalidParams.Len() > 0 {
4360		return invalidParams
4361	}
4362	return nil
4363}
4364
4365// SetFileSystemId sets the FileSystemId field's value.
4366func (s *DescribeLifecycleConfigurationInput) SetFileSystemId(v string) *DescribeLifecycleConfigurationInput {
4367	s.FileSystemId = &v
4368	return s
4369}
4370
4371type DescribeLifecycleConfigurationOutput struct {
4372	_ struct{} `type:"structure"`
4373
4374	// An array of lifecycle management policies. Currently, EFS supports a maximum
4375	// of one policy per file system.
4376	LifecyclePolicies []*LifecyclePolicy `type:"list"`
4377}
4378
4379// String returns the string representation
4380func (s DescribeLifecycleConfigurationOutput) String() string {
4381	return awsutil.Prettify(s)
4382}
4383
4384// GoString returns the string representation
4385func (s DescribeLifecycleConfigurationOutput) GoString() string {
4386	return s.String()
4387}
4388
4389// SetLifecyclePolicies sets the LifecyclePolicies field's value.
4390func (s *DescribeLifecycleConfigurationOutput) SetLifecyclePolicies(v []*LifecyclePolicy) *DescribeLifecycleConfigurationOutput {
4391	s.LifecyclePolicies = v
4392	return s
4393}
4394
4395type DescribeMountTargetSecurityGroupsInput struct {
4396	_ struct{} `type:"structure"`
4397
4398	// The ID of the mount target whose security groups you want to retrieve.
4399	//
4400	// MountTargetId is a required field
4401	MountTargetId *string `location:"uri" locationName:"MountTargetId" type:"string" required:"true"`
4402}
4403
4404// String returns the string representation
4405func (s DescribeMountTargetSecurityGroupsInput) String() string {
4406	return awsutil.Prettify(s)
4407}
4408
4409// GoString returns the string representation
4410func (s DescribeMountTargetSecurityGroupsInput) GoString() string {
4411	return s.String()
4412}
4413
4414// Validate inspects the fields of the type to determine if they are valid.
4415func (s *DescribeMountTargetSecurityGroupsInput) Validate() error {
4416	invalidParams := request.ErrInvalidParams{Context: "DescribeMountTargetSecurityGroupsInput"}
4417	if s.MountTargetId == nil {
4418		invalidParams.Add(request.NewErrParamRequired("MountTargetId"))
4419	}
4420	if s.MountTargetId != nil && len(*s.MountTargetId) < 1 {
4421		invalidParams.Add(request.NewErrParamMinLen("MountTargetId", 1))
4422	}
4423
4424	if invalidParams.Len() > 0 {
4425		return invalidParams
4426	}
4427	return nil
4428}
4429
4430// SetMountTargetId sets the MountTargetId field's value.
4431func (s *DescribeMountTargetSecurityGroupsInput) SetMountTargetId(v string) *DescribeMountTargetSecurityGroupsInput {
4432	s.MountTargetId = &v
4433	return s
4434}
4435
4436type DescribeMountTargetSecurityGroupsOutput struct {
4437	_ struct{} `type:"structure"`
4438
4439	// An array of security groups.
4440	//
4441	// SecurityGroups is a required field
4442	SecurityGroups []*string `type:"list" required:"true"`
4443}
4444
4445// String returns the string representation
4446func (s DescribeMountTargetSecurityGroupsOutput) String() string {
4447	return awsutil.Prettify(s)
4448}
4449
4450// GoString returns the string representation
4451func (s DescribeMountTargetSecurityGroupsOutput) GoString() string {
4452	return s.String()
4453}
4454
4455// SetSecurityGroups sets the SecurityGroups field's value.
4456func (s *DescribeMountTargetSecurityGroupsOutput) SetSecurityGroups(v []*string) *DescribeMountTargetSecurityGroupsOutput {
4457	s.SecurityGroups = v
4458	return s
4459}
4460
4461type DescribeMountTargetsInput struct {
4462	_ struct{} `type:"structure"`
4463
4464	// (Optional) The ID of the access point whose mount targets that you want to
4465	// list. It must be included in your request if a FileSystemId or MountTargetId
4466	// is not included in your request. Accepts either an access point ID or ARN
4467	// as input.
4468	AccessPointId *string `location:"querystring" locationName:"AccessPointId" type:"string"`
4469
4470	// (Optional) ID of the file system whose mount targets you want to list (String).
4471	// It must be included in your request if an AccessPointId or MountTargetId
4472	// is not included. Accepts either a file system ID or ARN as input.
4473	FileSystemId *string `location:"querystring" locationName:"FileSystemId" type:"string"`
4474
4475	// (Optional) Opaque pagination token returned from a previous DescribeMountTargets
4476	// operation (String). If present, it specifies to continue the list from where
4477	// the previous returning call left off.
4478	Marker *string `location:"querystring" locationName:"Marker" type:"string"`
4479
4480	// (Optional) Maximum number of mount targets to return in the response. Currently,
4481	// this number is automatically set to 10, and other values are ignored. The
4482	// response is paginated at 100 per page if you have more than 100 mount targets.
4483	MaxItems *int64 `location:"querystring" locationName:"MaxItems" min:"1" type:"integer"`
4484
4485	// (Optional) ID of the mount target that you want to have described (String).
4486	// It must be included in your request if FileSystemId is not included. Accepts
4487	// either a mount target ID or ARN as input.
4488	MountTargetId *string `location:"querystring" locationName:"MountTargetId" type:"string"`
4489}
4490
4491// String returns the string representation
4492func (s DescribeMountTargetsInput) String() string {
4493	return awsutil.Prettify(s)
4494}
4495
4496// GoString returns the string representation
4497func (s DescribeMountTargetsInput) GoString() string {
4498	return s.String()
4499}
4500
4501// Validate inspects the fields of the type to determine if they are valid.
4502func (s *DescribeMountTargetsInput) Validate() error {
4503	invalidParams := request.ErrInvalidParams{Context: "DescribeMountTargetsInput"}
4504	if s.MaxItems != nil && *s.MaxItems < 1 {
4505		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
4506	}
4507
4508	if invalidParams.Len() > 0 {
4509		return invalidParams
4510	}
4511	return nil
4512}
4513
4514// SetAccessPointId sets the AccessPointId field's value.
4515func (s *DescribeMountTargetsInput) SetAccessPointId(v string) *DescribeMountTargetsInput {
4516	s.AccessPointId = &v
4517	return s
4518}
4519
4520// SetFileSystemId sets the FileSystemId field's value.
4521func (s *DescribeMountTargetsInput) SetFileSystemId(v string) *DescribeMountTargetsInput {
4522	s.FileSystemId = &v
4523	return s
4524}
4525
4526// SetMarker sets the Marker field's value.
4527func (s *DescribeMountTargetsInput) SetMarker(v string) *DescribeMountTargetsInput {
4528	s.Marker = &v
4529	return s
4530}
4531
4532// SetMaxItems sets the MaxItems field's value.
4533func (s *DescribeMountTargetsInput) SetMaxItems(v int64) *DescribeMountTargetsInput {
4534	s.MaxItems = &v
4535	return s
4536}
4537
4538// SetMountTargetId sets the MountTargetId field's value.
4539func (s *DescribeMountTargetsInput) SetMountTargetId(v string) *DescribeMountTargetsInput {
4540	s.MountTargetId = &v
4541	return s
4542}
4543
4544type DescribeMountTargetsOutput struct {
4545	_ struct{} `type:"structure"`
4546
4547	// If the request included the Marker, the response returns that value in this
4548	// field.
4549	Marker *string `type:"string"`
4550
4551	// Returns the file system's mount targets as an array of MountTargetDescription
4552	// objects.
4553	MountTargets []*MountTargetDescription `type:"list"`
4554
4555	// If a value is present, there are more mount targets to return. In a subsequent
4556	// request, you can provide Marker in your request with this value to retrieve
4557	// the next set of mount targets.
4558	NextMarker *string `type:"string"`
4559}
4560
4561// String returns the string representation
4562func (s DescribeMountTargetsOutput) String() string {
4563	return awsutil.Prettify(s)
4564}
4565
4566// GoString returns the string representation
4567func (s DescribeMountTargetsOutput) GoString() string {
4568	return s.String()
4569}
4570
4571// SetMarker sets the Marker field's value.
4572func (s *DescribeMountTargetsOutput) SetMarker(v string) *DescribeMountTargetsOutput {
4573	s.Marker = &v
4574	return s
4575}
4576
4577// SetMountTargets sets the MountTargets field's value.
4578func (s *DescribeMountTargetsOutput) SetMountTargets(v []*MountTargetDescription) *DescribeMountTargetsOutput {
4579	s.MountTargets = v
4580	return s
4581}
4582
4583// SetNextMarker sets the NextMarker field's value.
4584func (s *DescribeMountTargetsOutput) SetNextMarker(v string) *DescribeMountTargetsOutput {
4585	s.NextMarker = &v
4586	return s
4587}
4588
4589type DescribeTagsInput struct {
4590	_ struct{} `type:"structure"`
4591
4592	// The ID of the file system whose tag set you want to retrieve.
4593	//
4594	// FileSystemId is a required field
4595	FileSystemId *string `location:"uri" locationName:"FileSystemId" type:"string" required:"true"`
4596
4597	// (Optional) An opaque pagination token returned from a previous DescribeTags
4598	// operation (String). If present, it specifies to continue the list from where
4599	// the previous call left off.
4600	Marker *string `location:"querystring" locationName:"Marker" type:"string"`
4601
4602	// (Optional) The maximum number of file system tags to return in the response.
4603	// Currently, this number is automatically set to 100, and other values are
4604	// ignored. The response is paginated at 100 per page if you have more than
4605	// 100 tags.
4606	MaxItems *int64 `location:"querystring" locationName:"MaxItems" min:"1" type:"integer"`
4607}
4608
4609// String returns the string representation
4610func (s DescribeTagsInput) String() string {
4611	return awsutil.Prettify(s)
4612}
4613
4614// GoString returns the string representation
4615func (s DescribeTagsInput) GoString() string {
4616	return s.String()
4617}
4618
4619// Validate inspects the fields of the type to determine if they are valid.
4620func (s *DescribeTagsInput) Validate() error {
4621	invalidParams := request.ErrInvalidParams{Context: "DescribeTagsInput"}
4622	if s.FileSystemId == nil {
4623		invalidParams.Add(request.NewErrParamRequired("FileSystemId"))
4624	}
4625	if s.FileSystemId != nil && len(*s.FileSystemId) < 1 {
4626		invalidParams.Add(request.NewErrParamMinLen("FileSystemId", 1))
4627	}
4628	if s.MaxItems != nil && *s.MaxItems < 1 {
4629		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
4630	}
4631
4632	if invalidParams.Len() > 0 {
4633		return invalidParams
4634	}
4635	return nil
4636}
4637
4638// SetFileSystemId sets the FileSystemId field's value.
4639func (s *DescribeTagsInput) SetFileSystemId(v string) *DescribeTagsInput {
4640	s.FileSystemId = &v
4641	return s
4642}
4643
4644// SetMarker sets the Marker field's value.
4645func (s *DescribeTagsInput) SetMarker(v string) *DescribeTagsInput {
4646	s.Marker = &v
4647	return s
4648}
4649
4650// SetMaxItems sets the MaxItems field's value.
4651func (s *DescribeTagsInput) SetMaxItems(v int64) *DescribeTagsInput {
4652	s.MaxItems = &v
4653	return s
4654}
4655
4656type DescribeTagsOutput struct {
4657	_ struct{} `type:"structure"`
4658
4659	// If the request included a Marker, the response returns that value in this
4660	// field.
4661	Marker *string `type:"string"`
4662
4663	// If a value is present, there are more tags to return. In a subsequent request,
4664	// you can provide the value of NextMarker as the value of the Marker parameter
4665	// in your next request to retrieve the next set of tags.
4666	NextMarker *string `type:"string"`
4667
4668	// Returns tags associated with the file system as an array of Tag objects.
4669	//
4670	// Tags is a required field
4671	Tags []*Tag `type:"list" required:"true"`
4672}
4673
4674// String returns the string representation
4675func (s DescribeTagsOutput) String() string {
4676	return awsutil.Prettify(s)
4677}
4678
4679// GoString returns the string representation
4680func (s DescribeTagsOutput) GoString() string {
4681	return s.String()
4682}
4683
4684// SetMarker sets the Marker field's value.
4685func (s *DescribeTagsOutput) SetMarker(v string) *DescribeTagsOutput {
4686	s.Marker = &v
4687	return s
4688}
4689
4690// SetNextMarker sets the NextMarker field's value.
4691func (s *DescribeTagsOutput) SetNextMarker(v string) *DescribeTagsOutput {
4692	s.NextMarker = &v
4693	return s
4694}
4695
4696// SetTags sets the Tags field's value.
4697func (s *DescribeTagsOutput) SetTags(v []*Tag) *DescribeTagsOutput {
4698	s.Tags = v
4699	return s
4700}
4701
4702// Returned if the file system you are trying to create already exists, with
4703// the creation token you provided.
4704type FileSystemAlreadyExists struct {
4705	_            struct{}                  `type:"structure"`
4706	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4707
4708	// ErrorCode is a required field
4709	ErrorCode *string `min:"1" type:"string" required:"true"`
4710
4711	// FileSystemId is a required field
4712	FileSystemId *string `type:"string" required:"true"`
4713
4714	Message_ *string `locationName:"Message" type:"string"`
4715}
4716
4717// String returns the string representation
4718func (s FileSystemAlreadyExists) String() string {
4719	return awsutil.Prettify(s)
4720}
4721
4722// GoString returns the string representation
4723func (s FileSystemAlreadyExists) GoString() string {
4724	return s.String()
4725}
4726
4727func newErrorFileSystemAlreadyExists(v protocol.ResponseMetadata) error {
4728	return &FileSystemAlreadyExists{
4729		RespMetadata: v,
4730	}
4731}
4732
4733// Code returns the exception type name.
4734func (s *FileSystemAlreadyExists) Code() string {
4735	return "FileSystemAlreadyExists"
4736}
4737
4738// Message returns the exception's message.
4739func (s *FileSystemAlreadyExists) Message() string {
4740	if s.Message_ != nil {
4741		return *s.Message_
4742	}
4743	return ""
4744}
4745
4746// OrigErr always returns nil, satisfies awserr.Error interface.
4747func (s *FileSystemAlreadyExists) OrigErr() error {
4748	return nil
4749}
4750
4751func (s *FileSystemAlreadyExists) Error() string {
4752	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
4753}
4754
4755// Status code returns the HTTP status code for the request's response error.
4756func (s *FileSystemAlreadyExists) StatusCode() int {
4757	return s.RespMetadata.StatusCode
4758}
4759
4760// RequestID returns the service's response RequestID for request.
4761func (s *FileSystemAlreadyExists) RequestID() string {
4762	return s.RespMetadata.RequestID
4763}
4764
4765// A description of the file system.
4766type FileSystemDescription struct {
4767	_ struct{} `type:"structure"`
4768
4769	// The time that the file system was created, in seconds (since 1970-01-01T00:00:00Z).
4770	//
4771	// CreationTime is a required field
4772	CreationTime *time.Time `type:"timestamp" required:"true"`
4773
4774	// The opaque string specified in the request.
4775	//
4776	// CreationToken is a required field
4777	CreationToken *string `min:"1" type:"string" required:"true"`
4778
4779	// A Boolean value that, if true, indicates that the file system is encrypted.
4780	Encrypted *bool `type:"boolean"`
4781
4782	// The ID of the file system, assigned by Amazon EFS.
4783	//
4784	// FileSystemId is a required field
4785	FileSystemId *string `type:"string" required:"true"`
4786
4787	// The ID of an AWS Key Management Service (AWS KMS) customer master key (CMK)
4788	// that was used to protect the encrypted file system.
4789	KmsKeyId *string `min:"1" type:"string"`
4790
4791	// The lifecycle phase of the file system.
4792	//
4793	// LifeCycleState is a required field
4794	LifeCycleState *string `type:"string" required:"true" enum:"LifeCycleState"`
4795
4796	// You can add tags to a file system, including a Name tag. For more information,
4797	// see CreateFileSystem. If the file system has a Name tag, Amazon EFS returns
4798	// the value in this field.
4799	Name *string `type:"string"`
4800
4801	// The current number of mount targets that the file system has. For more information,
4802	// see CreateMountTarget.
4803	//
4804	// NumberOfMountTargets is a required field
4805	NumberOfMountTargets *int64 `type:"integer" required:"true"`
4806
4807	// The AWS account that created the file system. If the file system was created
4808	// by an IAM user, the parent account to which the user belongs is the owner.
4809	//
4810	// OwnerId is a required field
4811	OwnerId *string `type:"string" required:"true"`
4812
4813	// The performance mode of the file system.
4814	//
4815	// PerformanceMode is a required field
4816	PerformanceMode *string `type:"string" required:"true" enum:"PerformanceMode"`
4817
4818	// The throughput, measured in MiB/s, that you want to provision for a file
4819	// system. Valid values are 1-1024. Required if ThroughputMode is set to provisioned.
4820	// The limit on throughput is 1024 MiB/s. You can get these limits increased
4821	// by contacting AWS Support. For more information, see Amazon EFS Limits That
4822	// You Can Increase (https://docs.aws.amazon.com/efs/latest/ug/limits.html#soft-limits)
4823	// in the Amazon EFS User Guide.
4824	ProvisionedThroughputInMibps *float64 `min:"1" type:"double"`
4825
4826	// The latest known metered size (in bytes) of data stored in the file system,
4827	// in its Value field, and the time at which that size was determined in its
4828	// Timestamp field. The Timestamp value is the integer number of seconds since
4829	// 1970-01-01T00:00:00Z. The SizeInBytes value doesn't represent the size of
4830	// a consistent snapshot of the file system, but it is eventually consistent
4831	// when there are no writes to the file system. That is, SizeInBytes represents
4832	// actual size only if the file system is not modified for a period longer than
4833	// a couple of hours. Otherwise, the value is not the exact size that the file
4834	// system was at any point in time.
4835	//
4836	// SizeInBytes is a required field
4837	SizeInBytes *FileSystemSize `type:"structure" required:"true"`
4838
4839	// The tags associated with the file system, presented as an array of Tag objects.
4840	//
4841	// Tags is a required field
4842	Tags []*Tag `type:"list" required:"true"`
4843
4844	// The throughput mode for a file system. There are two throughput modes to
4845	// choose from for your file system: bursting and provisioned. If you set ThroughputMode
4846	// to provisioned, you must also set a value for ProvisionedThroughPutInMibps.
4847	// You can decrease your file system's throughput in Provisioned Throughput
4848	// mode or change between the throughput modes as long as it’s been more than
4849	// 24 hours since the last decrease or throughput mode change.
4850	ThroughputMode *string `type:"string" enum:"ThroughputMode"`
4851}
4852
4853// String returns the string representation
4854func (s FileSystemDescription) String() string {
4855	return awsutil.Prettify(s)
4856}
4857
4858// GoString returns the string representation
4859func (s FileSystemDescription) GoString() string {
4860	return s.String()
4861}
4862
4863// SetCreationTime sets the CreationTime field's value.
4864func (s *FileSystemDescription) SetCreationTime(v time.Time) *FileSystemDescription {
4865	s.CreationTime = &v
4866	return s
4867}
4868
4869// SetCreationToken sets the CreationToken field's value.
4870func (s *FileSystemDescription) SetCreationToken(v string) *FileSystemDescription {
4871	s.CreationToken = &v
4872	return s
4873}
4874
4875// SetEncrypted sets the Encrypted field's value.
4876func (s *FileSystemDescription) SetEncrypted(v bool) *FileSystemDescription {
4877	s.Encrypted = &v
4878	return s
4879}
4880
4881// SetFileSystemId sets the FileSystemId field's value.
4882func (s *FileSystemDescription) SetFileSystemId(v string) *FileSystemDescription {
4883	s.FileSystemId = &v
4884	return s
4885}
4886
4887// SetKmsKeyId sets the KmsKeyId field's value.
4888func (s *FileSystemDescription) SetKmsKeyId(v string) *FileSystemDescription {
4889	s.KmsKeyId = &v
4890	return s
4891}
4892
4893// SetLifeCycleState sets the LifeCycleState field's value.
4894func (s *FileSystemDescription) SetLifeCycleState(v string) *FileSystemDescription {
4895	s.LifeCycleState = &v
4896	return s
4897}
4898
4899// SetName sets the Name field's value.
4900func (s *FileSystemDescription) SetName(v string) *FileSystemDescription {
4901	s.Name = &v
4902	return s
4903}
4904
4905// SetNumberOfMountTargets sets the NumberOfMountTargets field's value.
4906func (s *FileSystemDescription) SetNumberOfMountTargets(v int64) *FileSystemDescription {
4907	s.NumberOfMountTargets = &v
4908	return s
4909}
4910
4911// SetOwnerId sets the OwnerId field's value.
4912func (s *FileSystemDescription) SetOwnerId(v string) *FileSystemDescription {
4913	s.OwnerId = &v
4914	return s
4915}
4916
4917// SetPerformanceMode sets the PerformanceMode field's value.
4918func (s *FileSystemDescription) SetPerformanceMode(v string) *FileSystemDescription {
4919	s.PerformanceMode = &v
4920	return s
4921}
4922
4923// SetProvisionedThroughputInMibps sets the ProvisionedThroughputInMibps field's value.
4924func (s *FileSystemDescription) SetProvisionedThroughputInMibps(v float64) *FileSystemDescription {
4925	s.ProvisionedThroughputInMibps = &v
4926	return s
4927}
4928
4929// SetSizeInBytes sets the SizeInBytes field's value.
4930func (s *FileSystemDescription) SetSizeInBytes(v *FileSystemSize) *FileSystemDescription {
4931	s.SizeInBytes = v
4932	return s
4933}
4934
4935// SetTags sets the Tags field's value.
4936func (s *FileSystemDescription) SetTags(v []*Tag) *FileSystemDescription {
4937	s.Tags = v
4938	return s
4939}
4940
4941// SetThroughputMode sets the ThroughputMode field's value.
4942func (s *FileSystemDescription) SetThroughputMode(v string) *FileSystemDescription {
4943	s.ThroughputMode = &v
4944	return s
4945}
4946
4947// Returned if a file system has mount targets.
4948type FileSystemInUse struct {
4949	_            struct{}                  `type:"structure"`
4950	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4951
4952	// ErrorCode is a required field
4953	ErrorCode *string `min:"1" type:"string" required:"true"`
4954
4955	Message_ *string `locationName:"Message" type:"string"`
4956}
4957
4958// String returns the string representation
4959func (s FileSystemInUse) String() string {
4960	return awsutil.Prettify(s)
4961}
4962
4963// GoString returns the string representation
4964func (s FileSystemInUse) GoString() string {
4965	return s.String()
4966}
4967
4968func newErrorFileSystemInUse(v protocol.ResponseMetadata) error {
4969	return &FileSystemInUse{
4970		RespMetadata: v,
4971	}
4972}
4973
4974// Code returns the exception type name.
4975func (s *FileSystemInUse) Code() string {
4976	return "FileSystemInUse"
4977}
4978
4979// Message returns the exception's message.
4980func (s *FileSystemInUse) Message() string {
4981	if s.Message_ != nil {
4982		return *s.Message_
4983	}
4984	return ""
4985}
4986
4987// OrigErr always returns nil, satisfies awserr.Error interface.
4988func (s *FileSystemInUse) OrigErr() error {
4989	return nil
4990}
4991
4992func (s *FileSystemInUse) Error() string {
4993	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
4994}
4995
4996// Status code returns the HTTP status code for the request's response error.
4997func (s *FileSystemInUse) StatusCode() int {
4998	return s.RespMetadata.StatusCode
4999}
5000
5001// RequestID returns the service's response RequestID for request.
5002func (s *FileSystemInUse) RequestID() string {
5003	return s.RespMetadata.RequestID
5004}
5005
5006// Returned if the AWS account has already created the maximum number of file
5007// systems allowed per account.
5008type FileSystemLimitExceeded struct {
5009	_            struct{}                  `type:"structure"`
5010	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5011
5012	// ErrorCode is a required field
5013	ErrorCode *string `min:"1" type:"string" required:"true"`
5014
5015	Message_ *string `locationName:"Message" type:"string"`
5016}
5017
5018// String returns the string representation
5019func (s FileSystemLimitExceeded) String() string {
5020	return awsutil.Prettify(s)
5021}
5022
5023// GoString returns the string representation
5024func (s FileSystemLimitExceeded) GoString() string {
5025	return s.String()
5026}
5027
5028func newErrorFileSystemLimitExceeded(v protocol.ResponseMetadata) error {
5029	return &FileSystemLimitExceeded{
5030		RespMetadata: v,
5031	}
5032}
5033
5034// Code returns the exception type name.
5035func (s *FileSystemLimitExceeded) Code() string {
5036	return "FileSystemLimitExceeded"
5037}
5038
5039// Message returns the exception's message.
5040func (s *FileSystemLimitExceeded) Message() string {
5041	if s.Message_ != nil {
5042		return *s.Message_
5043	}
5044	return ""
5045}
5046
5047// OrigErr always returns nil, satisfies awserr.Error interface.
5048func (s *FileSystemLimitExceeded) OrigErr() error {
5049	return nil
5050}
5051
5052func (s *FileSystemLimitExceeded) Error() string {
5053	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
5054}
5055
5056// Status code returns the HTTP status code for the request's response error.
5057func (s *FileSystemLimitExceeded) StatusCode() int {
5058	return s.RespMetadata.StatusCode
5059}
5060
5061// RequestID returns the service's response RequestID for request.
5062func (s *FileSystemLimitExceeded) RequestID() string {
5063	return s.RespMetadata.RequestID
5064}
5065
5066// Returned if the specified FileSystemId value doesn't exist in the requester's
5067// AWS account.
5068type FileSystemNotFound struct {
5069	_            struct{}                  `type:"structure"`
5070	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5071
5072	// ErrorCode is a required field
5073	ErrorCode *string `min:"1" type:"string" required:"true"`
5074
5075	Message_ *string `locationName:"Message" type:"string"`
5076}
5077
5078// String returns the string representation
5079func (s FileSystemNotFound) String() string {
5080	return awsutil.Prettify(s)
5081}
5082
5083// GoString returns the string representation
5084func (s FileSystemNotFound) GoString() string {
5085	return s.String()
5086}
5087
5088func newErrorFileSystemNotFound(v protocol.ResponseMetadata) error {
5089	return &FileSystemNotFound{
5090		RespMetadata: v,
5091	}
5092}
5093
5094// Code returns the exception type name.
5095func (s *FileSystemNotFound) Code() string {
5096	return "FileSystemNotFound"
5097}
5098
5099// Message returns the exception's message.
5100func (s *FileSystemNotFound) Message() string {
5101	if s.Message_ != nil {
5102		return *s.Message_
5103	}
5104	return ""
5105}
5106
5107// OrigErr always returns nil, satisfies awserr.Error interface.
5108func (s *FileSystemNotFound) OrigErr() error {
5109	return nil
5110}
5111
5112func (s *FileSystemNotFound) Error() string {
5113	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
5114}
5115
5116// Status code returns the HTTP status code for the request's response error.
5117func (s *FileSystemNotFound) StatusCode() int {
5118	return s.RespMetadata.StatusCode
5119}
5120
5121// RequestID returns the service's response RequestID for request.
5122func (s *FileSystemNotFound) RequestID() string {
5123	return s.RespMetadata.RequestID
5124}
5125
5126// The latest known metered size (in bytes) of data stored in the file system,
5127// in its Value field, and the time at which that size was determined in its
5128// Timestamp field. The value doesn't represent the size of a consistent snapshot
5129// of the file system, but it is eventually consistent when there are no writes
5130// to the file system. That is, the value represents the actual size only if
5131// the file system is not modified for a period longer than a couple of hours.
5132// Otherwise, the value is not necessarily the exact size the file system was
5133// at any instant in time.
5134type FileSystemSize struct {
5135	_ struct{} `type:"structure"`
5136
5137	// The time at which the size of data, returned in the Value field, was determined.
5138	// The value is the integer number of seconds since 1970-01-01T00:00:00Z.
5139	Timestamp *time.Time `type:"timestamp"`
5140
5141	// The latest known metered size (in bytes) of data stored in the file system.
5142	//
5143	// Value is a required field
5144	Value *int64 `type:"long" required:"true"`
5145
5146	// The latest known metered size (in bytes) of data stored in the Infrequent
5147	// Access storage class.
5148	ValueInIA *int64 `type:"long"`
5149
5150	// The latest known metered size (in bytes) of data stored in the Standard storage
5151	// class.
5152	ValueInStandard *int64 `type:"long"`
5153}
5154
5155// String returns the string representation
5156func (s FileSystemSize) String() string {
5157	return awsutil.Prettify(s)
5158}
5159
5160// GoString returns the string representation
5161func (s FileSystemSize) GoString() string {
5162	return s.String()
5163}
5164
5165// SetTimestamp sets the Timestamp field's value.
5166func (s *FileSystemSize) SetTimestamp(v time.Time) *FileSystemSize {
5167	s.Timestamp = &v
5168	return s
5169}
5170
5171// SetValue sets the Value field's value.
5172func (s *FileSystemSize) SetValue(v int64) *FileSystemSize {
5173	s.Value = &v
5174	return s
5175}
5176
5177// SetValueInIA sets the ValueInIA field's value.
5178func (s *FileSystemSize) SetValueInIA(v int64) *FileSystemSize {
5179	s.ValueInIA = &v
5180	return s
5181}
5182
5183// SetValueInStandard sets the ValueInStandard field's value.
5184func (s *FileSystemSize) SetValueInStandard(v int64) *FileSystemSize {
5185	s.ValueInStandard = &v
5186	return s
5187}
5188
5189// Returned if the file system's lifecycle state is not "available".
5190type IncorrectFileSystemLifeCycleState struct {
5191	_            struct{}                  `type:"structure"`
5192	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5193
5194	// ErrorCode is a required field
5195	ErrorCode *string `min:"1" type:"string" required:"true"`
5196
5197	Message_ *string `locationName:"Message" type:"string"`
5198}
5199
5200// String returns the string representation
5201func (s IncorrectFileSystemLifeCycleState) String() string {
5202	return awsutil.Prettify(s)
5203}
5204
5205// GoString returns the string representation
5206func (s IncorrectFileSystemLifeCycleState) GoString() string {
5207	return s.String()
5208}
5209
5210func newErrorIncorrectFileSystemLifeCycleState(v protocol.ResponseMetadata) error {
5211	return &IncorrectFileSystemLifeCycleState{
5212		RespMetadata: v,
5213	}
5214}
5215
5216// Code returns the exception type name.
5217func (s *IncorrectFileSystemLifeCycleState) Code() string {
5218	return "IncorrectFileSystemLifeCycleState"
5219}
5220
5221// Message returns the exception's message.
5222func (s *IncorrectFileSystemLifeCycleState) Message() string {
5223	if s.Message_ != nil {
5224		return *s.Message_
5225	}
5226	return ""
5227}
5228
5229// OrigErr always returns nil, satisfies awserr.Error interface.
5230func (s *IncorrectFileSystemLifeCycleState) OrigErr() error {
5231	return nil
5232}
5233
5234func (s *IncorrectFileSystemLifeCycleState) Error() string {
5235	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
5236}
5237
5238// Status code returns the HTTP status code for the request's response error.
5239func (s *IncorrectFileSystemLifeCycleState) StatusCode() int {
5240	return s.RespMetadata.StatusCode
5241}
5242
5243// RequestID returns the service's response RequestID for request.
5244func (s *IncorrectFileSystemLifeCycleState) RequestID() string {
5245	return s.RespMetadata.RequestID
5246}
5247
5248// Returned if the mount target is not in the correct state for the operation.
5249type IncorrectMountTargetState struct {
5250	_            struct{}                  `type:"structure"`
5251	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5252
5253	// ErrorCode is a required field
5254	ErrorCode *string `min:"1" type:"string" required:"true"`
5255
5256	Message_ *string `locationName:"Message" type:"string"`
5257}
5258
5259// String returns the string representation
5260func (s IncorrectMountTargetState) String() string {
5261	return awsutil.Prettify(s)
5262}
5263
5264// GoString returns the string representation
5265func (s IncorrectMountTargetState) GoString() string {
5266	return s.String()
5267}
5268
5269func newErrorIncorrectMountTargetState(v protocol.ResponseMetadata) error {
5270	return &IncorrectMountTargetState{
5271		RespMetadata: v,
5272	}
5273}
5274
5275// Code returns the exception type name.
5276func (s *IncorrectMountTargetState) Code() string {
5277	return "IncorrectMountTargetState"
5278}
5279
5280// Message returns the exception's message.
5281func (s *IncorrectMountTargetState) Message() string {
5282	if s.Message_ != nil {
5283		return *s.Message_
5284	}
5285	return ""
5286}
5287
5288// OrigErr always returns nil, satisfies awserr.Error interface.
5289func (s *IncorrectMountTargetState) OrigErr() error {
5290	return nil
5291}
5292
5293func (s *IncorrectMountTargetState) Error() string {
5294	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
5295}
5296
5297// Status code returns the HTTP status code for the request's response error.
5298func (s *IncorrectMountTargetState) StatusCode() int {
5299	return s.RespMetadata.StatusCode
5300}
5301
5302// RequestID returns the service's response RequestID for request.
5303func (s *IncorrectMountTargetState) RequestID() string {
5304	return s.RespMetadata.RequestID
5305}
5306
5307// Returned if there's not enough capacity to provision additional throughput.
5308// This value might be returned when you try to create a file system in provisioned
5309// throughput mode, when you attempt to increase the provisioned throughput
5310// of an existing file system, or when you attempt to change an existing file
5311// system from bursting to provisioned throughput mode.
5312type InsufficientThroughputCapacity struct {
5313	_            struct{}                  `type:"structure"`
5314	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5315
5316	// ErrorCode is a required field
5317	ErrorCode *string `min:"1" type:"string" required:"true"`
5318
5319	Message_ *string `locationName:"Message" type:"string"`
5320}
5321
5322// String returns the string representation
5323func (s InsufficientThroughputCapacity) String() string {
5324	return awsutil.Prettify(s)
5325}
5326
5327// GoString returns the string representation
5328func (s InsufficientThroughputCapacity) GoString() string {
5329	return s.String()
5330}
5331
5332func newErrorInsufficientThroughputCapacity(v protocol.ResponseMetadata) error {
5333	return &InsufficientThroughputCapacity{
5334		RespMetadata: v,
5335	}
5336}
5337
5338// Code returns the exception type name.
5339func (s *InsufficientThroughputCapacity) Code() string {
5340	return "InsufficientThroughputCapacity"
5341}
5342
5343// Message returns the exception's message.
5344func (s *InsufficientThroughputCapacity) Message() string {
5345	if s.Message_ != nil {
5346		return *s.Message_
5347	}
5348	return ""
5349}
5350
5351// OrigErr always returns nil, satisfies awserr.Error interface.
5352func (s *InsufficientThroughputCapacity) OrigErr() error {
5353	return nil
5354}
5355
5356func (s *InsufficientThroughputCapacity) Error() string {
5357	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
5358}
5359
5360// Status code returns the HTTP status code for the request's response error.
5361func (s *InsufficientThroughputCapacity) StatusCode() int {
5362	return s.RespMetadata.StatusCode
5363}
5364
5365// RequestID returns the service's response RequestID for request.
5366func (s *InsufficientThroughputCapacity) RequestID() string {
5367	return s.RespMetadata.RequestID
5368}
5369
5370// Returned if an error occurred on the server side.
5371type InternalServerError struct {
5372	_            struct{}                  `type:"structure"`
5373	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5374
5375	// ErrorCode is a required field
5376	ErrorCode *string `min:"1" type:"string" required:"true"`
5377
5378	Message_ *string `locationName:"Message" type:"string"`
5379}
5380
5381// String returns the string representation
5382func (s InternalServerError) String() string {
5383	return awsutil.Prettify(s)
5384}
5385
5386// GoString returns the string representation
5387func (s InternalServerError) GoString() string {
5388	return s.String()
5389}
5390
5391func newErrorInternalServerError(v protocol.ResponseMetadata) error {
5392	return &InternalServerError{
5393		RespMetadata: v,
5394	}
5395}
5396
5397// Code returns the exception type name.
5398func (s *InternalServerError) Code() string {
5399	return "InternalServerError"
5400}
5401
5402// Message returns the exception's message.
5403func (s *InternalServerError) Message() string {
5404	if s.Message_ != nil {
5405		return *s.Message_
5406	}
5407	return ""
5408}
5409
5410// OrigErr always returns nil, satisfies awserr.Error interface.
5411func (s *InternalServerError) OrigErr() error {
5412	return nil
5413}
5414
5415func (s *InternalServerError) Error() string {
5416	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
5417}
5418
5419// Status code returns the HTTP status code for the request's response error.
5420func (s *InternalServerError) StatusCode() int {
5421	return s.RespMetadata.StatusCode
5422}
5423
5424// RequestID returns the service's response RequestID for request.
5425func (s *InternalServerError) RequestID() string {
5426	return s.RespMetadata.RequestID
5427}
5428
5429// Returned if the FileSystemPolicy is is malformed or contains an error such
5430// as an invalid parameter value or a missing required parameter. Returned in
5431// the case of a policy lockout safety check error.
5432type InvalidPolicyException struct {
5433	_            struct{}                  `type:"structure"`
5434	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5435
5436	ErrorCode *string `min:"1" type:"string"`
5437
5438	Message_ *string `locationName:"Message" type:"string"`
5439}
5440
5441// String returns the string representation
5442func (s InvalidPolicyException) String() string {
5443	return awsutil.Prettify(s)
5444}
5445
5446// GoString returns the string representation
5447func (s InvalidPolicyException) GoString() string {
5448	return s.String()
5449}
5450
5451func newErrorInvalidPolicyException(v protocol.ResponseMetadata) error {
5452	return &InvalidPolicyException{
5453		RespMetadata: v,
5454	}
5455}
5456
5457// Code returns the exception type name.
5458func (s *InvalidPolicyException) Code() string {
5459	return "InvalidPolicyException"
5460}
5461
5462// Message returns the exception's message.
5463func (s *InvalidPolicyException) Message() string {
5464	if s.Message_ != nil {
5465		return *s.Message_
5466	}
5467	return ""
5468}
5469
5470// OrigErr always returns nil, satisfies awserr.Error interface.
5471func (s *InvalidPolicyException) OrigErr() error {
5472	return nil
5473}
5474
5475func (s *InvalidPolicyException) Error() string {
5476	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
5477}
5478
5479// Status code returns the HTTP status code for the request's response error.
5480func (s *InvalidPolicyException) StatusCode() int {
5481	return s.RespMetadata.StatusCode
5482}
5483
5484// RequestID returns the service's response RequestID for request.
5485func (s *InvalidPolicyException) RequestID() string {
5486	return s.RespMetadata.RequestID
5487}
5488
5489// Returned if the request specified an IpAddress that is already in use in
5490// the subnet.
5491type IpAddressInUse struct {
5492	_            struct{}                  `type:"structure"`
5493	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5494
5495	// ErrorCode is a required field
5496	ErrorCode *string `min:"1" type:"string" required:"true"`
5497
5498	Message_ *string `locationName:"Message" type:"string"`
5499}
5500
5501// String returns the string representation
5502func (s IpAddressInUse) String() string {
5503	return awsutil.Prettify(s)
5504}
5505
5506// GoString returns the string representation
5507func (s IpAddressInUse) GoString() string {
5508	return s.String()
5509}
5510
5511func newErrorIpAddressInUse(v protocol.ResponseMetadata) error {
5512	return &IpAddressInUse{
5513		RespMetadata: v,
5514	}
5515}
5516
5517// Code returns the exception type name.
5518func (s *IpAddressInUse) Code() string {
5519	return "IpAddressInUse"
5520}
5521
5522// Message returns the exception's message.
5523func (s *IpAddressInUse) Message() string {
5524	if s.Message_ != nil {
5525		return *s.Message_
5526	}
5527	return ""
5528}
5529
5530// OrigErr always returns nil, satisfies awserr.Error interface.
5531func (s *IpAddressInUse) OrigErr() error {
5532	return nil
5533}
5534
5535func (s *IpAddressInUse) Error() string {
5536	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
5537}
5538
5539// Status code returns the HTTP status code for the request's response error.
5540func (s *IpAddressInUse) StatusCode() int {
5541	return s.RespMetadata.StatusCode
5542}
5543
5544// RequestID returns the service's response RequestID for request.
5545func (s *IpAddressInUse) RequestID() string {
5546	return s.RespMetadata.RequestID
5547}
5548
5549// Describes a policy used by EFS lifecycle management to transition files to
5550// the Infrequent Access (IA) storage class.
5551type LifecyclePolicy struct {
5552	_ struct{} `type:"structure"`
5553
5554	// A value that describes the period of time that a file is not accessed, after
5555	// which it transitions to the IA storage class. Metadata operations such as
5556	// listing the contents of a directory don't count as file access events.
5557	TransitionToIA *string `type:"string" enum:"TransitionToIARules"`
5558}
5559
5560// String returns the string representation
5561func (s LifecyclePolicy) String() string {
5562	return awsutil.Prettify(s)
5563}
5564
5565// GoString returns the string representation
5566func (s LifecyclePolicy) GoString() string {
5567	return s.String()
5568}
5569
5570// SetTransitionToIA sets the TransitionToIA field's value.
5571func (s *LifecyclePolicy) SetTransitionToIA(v string) *LifecyclePolicy {
5572	s.TransitionToIA = &v
5573	return s
5574}
5575
5576type ListTagsForResourceInput struct {
5577	_ struct{} `type:"structure"`
5578
5579	// (Optional) Specifies the maximum number of tag objects to return in the response.
5580	// The default value is 100.
5581	MaxResults *int64 `location:"querystring" locationName:"MaxResults" min:"1" type:"integer"`
5582
5583	// You can use NextToken in a subsequent request to fetch the next page of access
5584	// point descriptions if the response payload was paginated.
5585	NextToken *string `location:"querystring" locationName:"NextToken" type:"string"`
5586
5587	// Specifies the EFS resource you want to retrieve tags for. You can retrieve
5588	// tags for EFS file systems and access points using this API endpoint.
5589	//
5590	// ResourceId is a required field
5591	ResourceId *string `location:"uri" locationName:"ResourceId" type:"string" required:"true"`
5592}
5593
5594// String returns the string representation
5595func (s ListTagsForResourceInput) String() string {
5596	return awsutil.Prettify(s)
5597}
5598
5599// GoString returns the string representation
5600func (s ListTagsForResourceInput) GoString() string {
5601	return s.String()
5602}
5603
5604// Validate inspects the fields of the type to determine if they are valid.
5605func (s *ListTagsForResourceInput) Validate() error {
5606	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
5607	if s.MaxResults != nil && *s.MaxResults < 1 {
5608		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
5609	}
5610	if s.ResourceId == nil {
5611		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
5612	}
5613	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
5614		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
5615	}
5616
5617	if invalidParams.Len() > 0 {
5618		return invalidParams
5619	}
5620	return nil
5621}
5622
5623// SetMaxResults sets the MaxResults field's value.
5624func (s *ListTagsForResourceInput) SetMaxResults(v int64) *ListTagsForResourceInput {
5625	s.MaxResults = &v
5626	return s
5627}
5628
5629// SetNextToken sets the NextToken field's value.
5630func (s *ListTagsForResourceInput) SetNextToken(v string) *ListTagsForResourceInput {
5631	s.NextToken = &v
5632	return s
5633}
5634
5635// SetResourceId sets the ResourceId field's value.
5636func (s *ListTagsForResourceInput) SetResourceId(v string) *ListTagsForResourceInput {
5637	s.ResourceId = &v
5638	return s
5639}
5640
5641type ListTagsForResourceOutput struct {
5642	_ struct{} `type:"structure"`
5643
5644	// NextToken is present if the response payload is paginated. You can use NextToken
5645	// in a subsequent request to fetch the next page of access point descriptions.
5646	NextToken *string `type:"string"`
5647
5648	// An array of the tags for the specified EFS resource.
5649	Tags []*Tag `type:"list"`
5650}
5651
5652// String returns the string representation
5653func (s ListTagsForResourceOutput) String() string {
5654	return awsutil.Prettify(s)
5655}
5656
5657// GoString returns the string representation
5658func (s ListTagsForResourceOutput) GoString() string {
5659	return s.String()
5660}
5661
5662// SetNextToken sets the NextToken field's value.
5663func (s *ListTagsForResourceOutput) SetNextToken(v string) *ListTagsForResourceOutput {
5664	s.NextToken = &v
5665	return s
5666}
5667
5668// SetTags sets the Tags field's value.
5669func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
5670	s.Tags = v
5671	return s
5672}
5673
5674type ModifyMountTargetSecurityGroupsInput struct {
5675	_ struct{} `type:"structure"`
5676
5677	// The ID of the mount target whose security groups you want to modify.
5678	//
5679	// MountTargetId is a required field
5680	MountTargetId *string `location:"uri" locationName:"MountTargetId" type:"string" required:"true"`
5681
5682	// An array of up to five VPC security group IDs.
5683	SecurityGroups []*string `type:"list"`
5684}
5685
5686// String returns the string representation
5687func (s ModifyMountTargetSecurityGroupsInput) String() string {
5688	return awsutil.Prettify(s)
5689}
5690
5691// GoString returns the string representation
5692func (s ModifyMountTargetSecurityGroupsInput) GoString() string {
5693	return s.String()
5694}
5695
5696// Validate inspects the fields of the type to determine if they are valid.
5697func (s *ModifyMountTargetSecurityGroupsInput) Validate() error {
5698	invalidParams := request.ErrInvalidParams{Context: "ModifyMountTargetSecurityGroupsInput"}
5699	if s.MountTargetId == nil {
5700		invalidParams.Add(request.NewErrParamRequired("MountTargetId"))
5701	}
5702	if s.MountTargetId != nil && len(*s.MountTargetId) < 1 {
5703		invalidParams.Add(request.NewErrParamMinLen("MountTargetId", 1))
5704	}
5705
5706	if invalidParams.Len() > 0 {
5707		return invalidParams
5708	}
5709	return nil
5710}
5711
5712// SetMountTargetId sets the MountTargetId field's value.
5713func (s *ModifyMountTargetSecurityGroupsInput) SetMountTargetId(v string) *ModifyMountTargetSecurityGroupsInput {
5714	s.MountTargetId = &v
5715	return s
5716}
5717
5718// SetSecurityGroups sets the SecurityGroups field's value.
5719func (s *ModifyMountTargetSecurityGroupsInput) SetSecurityGroups(v []*string) *ModifyMountTargetSecurityGroupsInput {
5720	s.SecurityGroups = v
5721	return s
5722}
5723
5724type ModifyMountTargetSecurityGroupsOutput struct {
5725	_ struct{} `type:"structure"`
5726}
5727
5728// String returns the string representation
5729func (s ModifyMountTargetSecurityGroupsOutput) String() string {
5730	return awsutil.Prettify(s)
5731}
5732
5733// GoString returns the string representation
5734func (s ModifyMountTargetSecurityGroupsOutput) GoString() string {
5735	return s.String()
5736}
5737
5738// Returned if the mount target would violate one of the specified restrictions
5739// based on the file system's existing mount targets.
5740type MountTargetConflict struct {
5741	_            struct{}                  `type:"structure"`
5742	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5743
5744	// ErrorCode is a required field
5745	ErrorCode *string `min:"1" type:"string" required:"true"`
5746
5747	Message_ *string `locationName:"Message" type:"string"`
5748}
5749
5750// String returns the string representation
5751func (s MountTargetConflict) String() string {
5752	return awsutil.Prettify(s)
5753}
5754
5755// GoString returns the string representation
5756func (s MountTargetConflict) GoString() string {
5757	return s.String()
5758}
5759
5760func newErrorMountTargetConflict(v protocol.ResponseMetadata) error {
5761	return &MountTargetConflict{
5762		RespMetadata: v,
5763	}
5764}
5765
5766// Code returns the exception type name.
5767func (s *MountTargetConflict) Code() string {
5768	return "MountTargetConflict"
5769}
5770
5771// Message returns the exception's message.
5772func (s *MountTargetConflict) Message() string {
5773	if s.Message_ != nil {
5774		return *s.Message_
5775	}
5776	return ""
5777}
5778
5779// OrigErr always returns nil, satisfies awserr.Error interface.
5780func (s *MountTargetConflict) OrigErr() error {
5781	return nil
5782}
5783
5784func (s *MountTargetConflict) Error() string {
5785	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
5786}
5787
5788// Status code returns the HTTP status code for the request's response error.
5789func (s *MountTargetConflict) StatusCode() int {
5790	return s.RespMetadata.StatusCode
5791}
5792
5793// RequestID returns the service's response RequestID for request.
5794func (s *MountTargetConflict) RequestID() string {
5795	return s.RespMetadata.RequestID
5796}
5797
5798// Provides a description of a mount target.
5799type MountTargetDescription struct {
5800	_ struct{} `type:"structure"`
5801
5802	// The unique and consistent identifier of the Availability Zone (AZ) that the
5803	// mount target resides in. For example, use1-az1 is an AZ ID for the us-east-1
5804	// Region and it has the same location in every AWS account.
5805	AvailabilityZoneId *string `type:"string"`
5806
5807	// The name of the Availability Zone (AZ) that the mount target resides in.
5808	// AZs are independently mapped to names for each AWS account. For example,
5809	// the Availability Zone us-east-1a for your AWS account might not be the same
5810	// location as us-east-1a for another AWS account.
5811	AvailabilityZoneName *string `type:"string"`
5812
5813	// The ID of the file system for which the mount target is intended.
5814	//
5815	// FileSystemId is a required field
5816	FileSystemId *string `type:"string" required:"true"`
5817
5818	// Address at which the file system can be mounted by using the mount target.
5819	IpAddress *string `type:"string"`
5820
5821	// Lifecycle state of the mount target.
5822	//
5823	// LifeCycleState is a required field
5824	LifeCycleState *string `type:"string" required:"true" enum:"LifeCycleState"`
5825
5826	// System-assigned mount target ID.
5827	//
5828	// MountTargetId is a required field
5829	MountTargetId *string `type:"string" required:"true"`
5830
5831	// The ID of the network interface that Amazon EFS created when it created the
5832	// mount target.
5833	NetworkInterfaceId *string `type:"string"`
5834
5835	// AWS account ID that owns the resource.
5836	OwnerId *string `type:"string"`
5837
5838	// The ID of the mount target's subnet.
5839	//
5840	// SubnetId is a required field
5841	SubnetId *string `type:"string" required:"true"`
5842}
5843
5844// String returns the string representation
5845func (s MountTargetDescription) String() string {
5846	return awsutil.Prettify(s)
5847}
5848
5849// GoString returns the string representation
5850func (s MountTargetDescription) GoString() string {
5851	return s.String()
5852}
5853
5854// SetAvailabilityZoneId sets the AvailabilityZoneId field's value.
5855func (s *MountTargetDescription) SetAvailabilityZoneId(v string) *MountTargetDescription {
5856	s.AvailabilityZoneId = &v
5857	return s
5858}
5859
5860// SetAvailabilityZoneName sets the AvailabilityZoneName field's value.
5861func (s *MountTargetDescription) SetAvailabilityZoneName(v string) *MountTargetDescription {
5862	s.AvailabilityZoneName = &v
5863	return s
5864}
5865
5866// SetFileSystemId sets the FileSystemId field's value.
5867func (s *MountTargetDescription) SetFileSystemId(v string) *MountTargetDescription {
5868	s.FileSystemId = &v
5869	return s
5870}
5871
5872// SetIpAddress sets the IpAddress field's value.
5873func (s *MountTargetDescription) SetIpAddress(v string) *MountTargetDescription {
5874	s.IpAddress = &v
5875	return s
5876}
5877
5878// SetLifeCycleState sets the LifeCycleState field's value.
5879func (s *MountTargetDescription) SetLifeCycleState(v string) *MountTargetDescription {
5880	s.LifeCycleState = &v
5881	return s
5882}
5883
5884// SetMountTargetId sets the MountTargetId field's value.
5885func (s *MountTargetDescription) SetMountTargetId(v string) *MountTargetDescription {
5886	s.MountTargetId = &v
5887	return s
5888}
5889
5890// SetNetworkInterfaceId sets the NetworkInterfaceId field's value.
5891func (s *MountTargetDescription) SetNetworkInterfaceId(v string) *MountTargetDescription {
5892	s.NetworkInterfaceId = &v
5893	return s
5894}
5895
5896// SetOwnerId sets the OwnerId field's value.
5897func (s *MountTargetDescription) SetOwnerId(v string) *MountTargetDescription {
5898	s.OwnerId = &v
5899	return s
5900}
5901
5902// SetSubnetId sets the SubnetId field's value.
5903func (s *MountTargetDescription) SetSubnetId(v string) *MountTargetDescription {
5904	s.SubnetId = &v
5905	return s
5906}
5907
5908// Returned if there is no mount target with the specified ID found in the caller's
5909// account.
5910type MountTargetNotFound struct {
5911	_            struct{}                  `type:"structure"`
5912	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5913
5914	// ErrorCode is a required field
5915	ErrorCode *string `min:"1" type:"string" required:"true"`
5916
5917	Message_ *string `locationName:"Message" type:"string"`
5918}
5919
5920// String returns the string representation
5921func (s MountTargetNotFound) String() string {
5922	return awsutil.Prettify(s)
5923}
5924
5925// GoString returns the string representation
5926func (s MountTargetNotFound) GoString() string {
5927	return s.String()
5928}
5929
5930func newErrorMountTargetNotFound(v protocol.ResponseMetadata) error {
5931	return &MountTargetNotFound{
5932		RespMetadata: v,
5933	}
5934}
5935
5936// Code returns the exception type name.
5937func (s *MountTargetNotFound) Code() string {
5938	return "MountTargetNotFound"
5939}
5940
5941// Message returns the exception's message.
5942func (s *MountTargetNotFound) Message() string {
5943	if s.Message_ != nil {
5944		return *s.Message_
5945	}
5946	return ""
5947}
5948
5949// OrigErr always returns nil, satisfies awserr.Error interface.
5950func (s *MountTargetNotFound) OrigErr() error {
5951	return nil
5952}
5953
5954func (s *MountTargetNotFound) Error() string {
5955	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
5956}
5957
5958// Status code returns the HTTP status code for the request's response error.
5959func (s *MountTargetNotFound) StatusCode() int {
5960	return s.RespMetadata.StatusCode
5961}
5962
5963// RequestID returns the service's response RequestID for request.
5964func (s *MountTargetNotFound) RequestID() string {
5965	return s.RespMetadata.RequestID
5966}
5967
5968// The calling account has reached the limit for elastic network interfaces
5969// for the specific AWS Region. The client should try to delete some elastic
5970// network interfaces or get the account limit raised. For more information,
5971// see Amazon VPC Limits (https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Appendix_Limits.html)
5972// in the Amazon VPC User Guide (see the Network interfaces per VPC entry in
5973// the table).
5974type NetworkInterfaceLimitExceeded struct {
5975	_            struct{}                  `type:"structure"`
5976	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5977
5978	// ErrorCode is a required field
5979	ErrorCode *string `min:"1" type:"string" required:"true"`
5980
5981	Message_ *string `locationName:"Message" type:"string"`
5982}
5983
5984// String returns the string representation
5985func (s NetworkInterfaceLimitExceeded) String() string {
5986	return awsutil.Prettify(s)
5987}
5988
5989// GoString returns the string representation
5990func (s NetworkInterfaceLimitExceeded) GoString() string {
5991	return s.String()
5992}
5993
5994func newErrorNetworkInterfaceLimitExceeded(v protocol.ResponseMetadata) error {
5995	return &NetworkInterfaceLimitExceeded{
5996		RespMetadata: v,
5997	}
5998}
5999
6000// Code returns the exception type name.
6001func (s *NetworkInterfaceLimitExceeded) Code() string {
6002	return "NetworkInterfaceLimitExceeded"
6003}
6004
6005// Message returns the exception's message.
6006func (s *NetworkInterfaceLimitExceeded) Message() string {
6007	if s.Message_ != nil {
6008		return *s.Message_
6009	}
6010	return ""
6011}
6012
6013// OrigErr always returns nil, satisfies awserr.Error interface.
6014func (s *NetworkInterfaceLimitExceeded) OrigErr() error {
6015	return nil
6016}
6017
6018func (s *NetworkInterfaceLimitExceeded) Error() string {
6019	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
6020}
6021
6022// Status code returns the HTTP status code for the request's response error.
6023func (s *NetworkInterfaceLimitExceeded) StatusCode() int {
6024	return s.RespMetadata.StatusCode
6025}
6026
6027// RequestID returns the service's response RequestID for request.
6028func (s *NetworkInterfaceLimitExceeded) RequestID() string {
6029	return s.RespMetadata.RequestID
6030}
6031
6032// Returned if IpAddress was not specified in the request and there are no free
6033// IP addresses in the subnet.
6034type NoFreeAddressesInSubnet struct {
6035	_            struct{}                  `type:"structure"`
6036	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6037
6038	// ErrorCode is a required field
6039	ErrorCode *string `min:"1" type:"string" required:"true"`
6040
6041	Message_ *string `locationName:"Message" type:"string"`
6042}
6043
6044// String returns the string representation
6045func (s NoFreeAddressesInSubnet) String() string {
6046	return awsutil.Prettify(s)
6047}
6048
6049// GoString returns the string representation
6050func (s NoFreeAddressesInSubnet) GoString() string {
6051	return s.String()
6052}
6053
6054func newErrorNoFreeAddressesInSubnet(v protocol.ResponseMetadata) error {
6055	return &NoFreeAddressesInSubnet{
6056		RespMetadata: v,
6057	}
6058}
6059
6060// Code returns the exception type name.
6061func (s *NoFreeAddressesInSubnet) Code() string {
6062	return "NoFreeAddressesInSubnet"
6063}
6064
6065// Message returns the exception's message.
6066func (s *NoFreeAddressesInSubnet) Message() string {
6067	if s.Message_ != nil {
6068		return *s.Message_
6069	}
6070	return ""
6071}
6072
6073// OrigErr always returns nil, satisfies awserr.Error interface.
6074func (s *NoFreeAddressesInSubnet) OrigErr() error {
6075	return nil
6076}
6077
6078func (s *NoFreeAddressesInSubnet) Error() string {
6079	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
6080}
6081
6082// Status code returns the HTTP status code for the request's response error.
6083func (s *NoFreeAddressesInSubnet) StatusCode() int {
6084	return s.RespMetadata.StatusCode
6085}
6086
6087// RequestID returns the service's response RequestID for request.
6088func (s *NoFreeAddressesInSubnet) RequestID() string {
6089	return s.RespMetadata.RequestID
6090}
6091
6092// Returned if the default file system policy is in effect for the EFS file
6093// system specified.
6094type PolicyNotFound struct {
6095	_            struct{}                  `type:"structure"`
6096	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6097
6098	ErrorCode *string `min:"1" type:"string"`
6099
6100	Message_ *string `locationName:"Message" type:"string"`
6101}
6102
6103// String returns the string representation
6104func (s PolicyNotFound) String() string {
6105	return awsutil.Prettify(s)
6106}
6107
6108// GoString returns the string representation
6109func (s PolicyNotFound) GoString() string {
6110	return s.String()
6111}
6112
6113func newErrorPolicyNotFound(v protocol.ResponseMetadata) error {
6114	return &PolicyNotFound{
6115		RespMetadata: v,
6116	}
6117}
6118
6119// Code returns the exception type name.
6120func (s *PolicyNotFound) Code() string {
6121	return "PolicyNotFound"
6122}
6123
6124// Message returns the exception's message.
6125func (s *PolicyNotFound) Message() string {
6126	if s.Message_ != nil {
6127		return *s.Message_
6128	}
6129	return ""
6130}
6131
6132// OrigErr always returns nil, satisfies awserr.Error interface.
6133func (s *PolicyNotFound) OrigErr() error {
6134	return nil
6135}
6136
6137func (s *PolicyNotFound) Error() string {
6138	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
6139}
6140
6141// Status code returns the HTTP status code for the request's response error.
6142func (s *PolicyNotFound) StatusCode() int {
6143	return s.RespMetadata.StatusCode
6144}
6145
6146// RequestID returns the service's response RequestID for request.
6147func (s *PolicyNotFound) RequestID() string {
6148	return s.RespMetadata.RequestID
6149}
6150
6151// The full POSIX identity, including the user ID, group ID, and any secondary
6152// group IDs, on the access point that is used for all file system operations
6153// performed by NFS clients using the access point.
6154type PosixUser struct {
6155	_ struct{} `type:"structure"`
6156
6157	// The POSIX group ID used for all file system operations using this access
6158	// point.
6159	//
6160	// Gid is a required field
6161	Gid *int64 `type:"long" required:"true"`
6162
6163	// Secondary POSIX group IDs used for all file system operations using this
6164	// access point.
6165	SecondaryGids []*int64 `type:"list"`
6166
6167	// The POSIX user ID used for all file system operations using this access point.
6168	//
6169	// Uid is a required field
6170	Uid *int64 `type:"long" required:"true"`
6171}
6172
6173// String returns the string representation
6174func (s PosixUser) String() string {
6175	return awsutil.Prettify(s)
6176}
6177
6178// GoString returns the string representation
6179func (s PosixUser) GoString() string {
6180	return s.String()
6181}
6182
6183// Validate inspects the fields of the type to determine if they are valid.
6184func (s *PosixUser) Validate() error {
6185	invalidParams := request.ErrInvalidParams{Context: "PosixUser"}
6186	if s.Gid == nil {
6187		invalidParams.Add(request.NewErrParamRequired("Gid"))
6188	}
6189	if s.Uid == nil {
6190		invalidParams.Add(request.NewErrParamRequired("Uid"))
6191	}
6192
6193	if invalidParams.Len() > 0 {
6194		return invalidParams
6195	}
6196	return nil
6197}
6198
6199// SetGid sets the Gid field's value.
6200func (s *PosixUser) SetGid(v int64) *PosixUser {
6201	s.Gid = &v
6202	return s
6203}
6204
6205// SetSecondaryGids sets the SecondaryGids field's value.
6206func (s *PosixUser) SetSecondaryGids(v []*int64) *PosixUser {
6207	s.SecondaryGids = v
6208	return s
6209}
6210
6211// SetUid sets the Uid field's value.
6212func (s *PosixUser) SetUid(v int64) *PosixUser {
6213	s.Uid = &v
6214	return s
6215}
6216
6217type PutFileSystemPolicyInput struct {
6218	_ struct{} `type:"structure"`
6219
6220	// (Optional) A flag to indicate whether to bypass the FileSystemPolicy lockout
6221	// safety check. The policy lockout safety check determines whether the policy
6222	// in the request will prevent the principal making the request will be locked
6223	// out from making future PutFileSystemPolicy requests on the file system. Set
6224	// BypassPolicyLockoutSafetyCheck to True only when you intend to prevent the
6225	// principal that is making the request from making a subsequent PutFileSystemPolicy
6226	// request on the file system. The default value is False.
6227	BypassPolicyLockoutSafetyCheck *bool `type:"boolean"`
6228
6229	// The ID of the EFS file system that you want to create or update the FileSystemPolicy
6230	// for.
6231	//
6232	// FileSystemId is a required field
6233	FileSystemId *string `location:"uri" locationName:"FileSystemId" type:"string" required:"true"`
6234
6235	// The FileSystemPolicy that you're creating. Accepts a JSON formatted policy
6236	// definition. To find out more about the elements that make up a file system
6237	// policy, see EFS Resource-based Policies (https://docs.aws.amazon.com/efs/latest/ug/access-control-overview.html#access-control-manage-access-intro-resource-policies).
6238	//
6239	// Policy is a required field
6240	Policy *string `type:"string" required:"true"`
6241}
6242
6243// String returns the string representation
6244func (s PutFileSystemPolicyInput) String() string {
6245	return awsutil.Prettify(s)
6246}
6247
6248// GoString returns the string representation
6249func (s PutFileSystemPolicyInput) GoString() string {
6250	return s.String()
6251}
6252
6253// Validate inspects the fields of the type to determine if they are valid.
6254func (s *PutFileSystemPolicyInput) Validate() error {
6255	invalidParams := request.ErrInvalidParams{Context: "PutFileSystemPolicyInput"}
6256	if s.FileSystemId == nil {
6257		invalidParams.Add(request.NewErrParamRequired("FileSystemId"))
6258	}
6259	if s.FileSystemId != nil && len(*s.FileSystemId) < 1 {
6260		invalidParams.Add(request.NewErrParamMinLen("FileSystemId", 1))
6261	}
6262	if s.Policy == nil {
6263		invalidParams.Add(request.NewErrParamRequired("Policy"))
6264	}
6265
6266	if invalidParams.Len() > 0 {
6267		return invalidParams
6268	}
6269	return nil
6270}
6271
6272// SetBypassPolicyLockoutSafetyCheck sets the BypassPolicyLockoutSafetyCheck field's value.
6273func (s *PutFileSystemPolicyInput) SetBypassPolicyLockoutSafetyCheck(v bool) *PutFileSystemPolicyInput {
6274	s.BypassPolicyLockoutSafetyCheck = &v
6275	return s
6276}
6277
6278// SetFileSystemId sets the FileSystemId field's value.
6279func (s *PutFileSystemPolicyInput) SetFileSystemId(v string) *PutFileSystemPolicyInput {
6280	s.FileSystemId = &v
6281	return s
6282}
6283
6284// SetPolicy sets the Policy field's value.
6285func (s *PutFileSystemPolicyInput) SetPolicy(v string) *PutFileSystemPolicyInput {
6286	s.Policy = &v
6287	return s
6288}
6289
6290type PutFileSystemPolicyOutput struct {
6291	_ struct{} `type:"structure"`
6292
6293	// Specifies the EFS file system to which the FileSystemPolicy applies.
6294	FileSystemId *string `type:"string"`
6295
6296	// The JSON formatted FileSystemPolicy for the EFS file system.
6297	Policy *string `type:"string"`
6298}
6299
6300// String returns the string representation
6301func (s PutFileSystemPolicyOutput) String() string {
6302	return awsutil.Prettify(s)
6303}
6304
6305// GoString returns the string representation
6306func (s PutFileSystemPolicyOutput) GoString() string {
6307	return s.String()
6308}
6309
6310// SetFileSystemId sets the FileSystemId field's value.
6311func (s *PutFileSystemPolicyOutput) SetFileSystemId(v string) *PutFileSystemPolicyOutput {
6312	s.FileSystemId = &v
6313	return s
6314}
6315
6316// SetPolicy sets the Policy field's value.
6317func (s *PutFileSystemPolicyOutput) SetPolicy(v string) *PutFileSystemPolicyOutput {
6318	s.Policy = &v
6319	return s
6320}
6321
6322type PutLifecycleConfigurationInput struct {
6323	_ struct{} `type:"structure"`
6324
6325	// The ID of the file system for which you are creating the LifecycleConfiguration
6326	// object (String).
6327	//
6328	// FileSystemId is a required field
6329	FileSystemId *string `location:"uri" locationName:"FileSystemId" type:"string" required:"true"`
6330
6331	// An array of LifecyclePolicy objects that define the file system's LifecycleConfiguration
6332	// object. A LifecycleConfiguration object tells lifecycle management when to
6333	// transition files from the Standard storage class to the Infrequent Access
6334	// storage class.
6335	//
6336	// LifecyclePolicies is a required field
6337	LifecyclePolicies []*LifecyclePolicy `type:"list" required:"true"`
6338}
6339
6340// String returns the string representation
6341func (s PutLifecycleConfigurationInput) String() string {
6342	return awsutil.Prettify(s)
6343}
6344
6345// GoString returns the string representation
6346func (s PutLifecycleConfigurationInput) GoString() string {
6347	return s.String()
6348}
6349
6350// Validate inspects the fields of the type to determine if they are valid.
6351func (s *PutLifecycleConfigurationInput) Validate() error {
6352	invalidParams := request.ErrInvalidParams{Context: "PutLifecycleConfigurationInput"}
6353	if s.FileSystemId == nil {
6354		invalidParams.Add(request.NewErrParamRequired("FileSystemId"))
6355	}
6356	if s.FileSystemId != nil && len(*s.FileSystemId) < 1 {
6357		invalidParams.Add(request.NewErrParamMinLen("FileSystemId", 1))
6358	}
6359	if s.LifecyclePolicies == nil {
6360		invalidParams.Add(request.NewErrParamRequired("LifecyclePolicies"))
6361	}
6362
6363	if invalidParams.Len() > 0 {
6364		return invalidParams
6365	}
6366	return nil
6367}
6368
6369// SetFileSystemId sets the FileSystemId field's value.
6370func (s *PutLifecycleConfigurationInput) SetFileSystemId(v string) *PutLifecycleConfigurationInput {
6371	s.FileSystemId = &v
6372	return s
6373}
6374
6375// SetLifecyclePolicies sets the LifecyclePolicies field's value.
6376func (s *PutLifecycleConfigurationInput) SetLifecyclePolicies(v []*LifecyclePolicy) *PutLifecycleConfigurationInput {
6377	s.LifecyclePolicies = v
6378	return s
6379}
6380
6381type PutLifecycleConfigurationOutput struct {
6382	_ struct{} `type:"structure"`
6383
6384	// An array of lifecycle management policies. Currently, EFS supports a maximum
6385	// of one policy per file system.
6386	LifecyclePolicies []*LifecyclePolicy `type:"list"`
6387}
6388
6389// String returns the string representation
6390func (s PutLifecycleConfigurationOutput) String() string {
6391	return awsutil.Prettify(s)
6392}
6393
6394// GoString returns the string representation
6395func (s PutLifecycleConfigurationOutput) GoString() string {
6396	return s.String()
6397}
6398
6399// SetLifecyclePolicies sets the LifecyclePolicies field's value.
6400func (s *PutLifecycleConfigurationOutput) SetLifecyclePolicies(v []*LifecyclePolicy) *PutLifecycleConfigurationOutput {
6401	s.LifecyclePolicies = v
6402	return s
6403}
6404
6405// Specifies the directory on the Amazon EFS file system that the access point
6406// provides access to. The access point exposes the specified file system path
6407// as the root directory of your file system to applications using the access
6408// point. NFS clients using the access point can only access data in the access
6409// point's RootDirectory and it's subdirectories.
6410type RootDirectory struct {
6411	_ struct{} `type:"structure"`
6412
6413	// (Optional) Specifies the POSIX IDs and permissions to apply to the access
6414	// point's RootDirectory. If the RootDirectory > Path specified does not exist,
6415	// EFS creates the root directory using the CreationInfo settings when a client
6416	// connects to an access point. When specifying the CreationInfo, you must provide
6417	// values for all properties.
6418	//
6419	// If you do not provide CreationInfo and the specified RootDirectory > Path
6420	// does not exist, attempts to mount the file system using the access point
6421	// will fail.
6422	CreationInfo *CreationInfo `type:"structure"`
6423
6424	// Specifies the path on the EFS file system to expose as the root directory
6425	// to NFS clients using the access point to access the EFS file system. A path
6426	// can have up to four subdirectories. If the specified path does not exist,
6427	// you are required to provide the CreationInfo.
6428	Path *string `min:"1" type:"string"`
6429}
6430
6431// String returns the string representation
6432func (s RootDirectory) String() string {
6433	return awsutil.Prettify(s)
6434}
6435
6436// GoString returns the string representation
6437func (s RootDirectory) GoString() string {
6438	return s.String()
6439}
6440
6441// Validate inspects the fields of the type to determine if they are valid.
6442func (s *RootDirectory) Validate() error {
6443	invalidParams := request.ErrInvalidParams{Context: "RootDirectory"}
6444	if s.Path != nil && len(*s.Path) < 1 {
6445		invalidParams.Add(request.NewErrParamMinLen("Path", 1))
6446	}
6447	if s.CreationInfo != nil {
6448		if err := s.CreationInfo.Validate(); err != nil {
6449			invalidParams.AddNested("CreationInfo", err.(request.ErrInvalidParams))
6450		}
6451	}
6452
6453	if invalidParams.Len() > 0 {
6454		return invalidParams
6455	}
6456	return nil
6457}
6458
6459// SetCreationInfo sets the CreationInfo field's value.
6460func (s *RootDirectory) SetCreationInfo(v *CreationInfo) *RootDirectory {
6461	s.CreationInfo = v
6462	return s
6463}
6464
6465// SetPath sets the Path field's value.
6466func (s *RootDirectory) SetPath(v string) *RootDirectory {
6467	s.Path = &v
6468	return s
6469}
6470
6471// Returned if the size of SecurityGroups specified in the request is greater
6472// than five.
6473type SecurityGroupLimitExceeded struct {
6474	_            struct{}                  `type:"structure"`
6475	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6476
6477	// ErrorCode is a required field
6478	ErrorCode *string `min:"1" type:"string" required:"true"`
6479
6480	Message_ *string `locationName:"Message" type:"string"`
6481}
6482
6483// String returns the string representation
6484func (s SecurityGroupLimitExceeded) String() string {
6485	return awsutil.Prettify(s)
6486}
6487
6488// GoString returns the string representation
6489func (s SecurityGroupLimitExceeded) GoString() string {
6490	return s.String()
6491}
6492
6493func newErrorSecurityGroupLimitExceeded(v protocol.ResponseMetadata) error {
6494	return &SecurityGroupLimitExceeded{
6495		RespMetadata: v,
6496	}
6497}
6498
6499// Code returns the exception type name.
6500func (s *SecurityGroupLimitExceeded) Code() string {
6501	return "SecurityGroupLimitExceeded"
6502}
6503
6504// Message returns the exception's message.
6505func (s *SecurityGroupLimitExceeded) Message() string {
6506	if s.Message_ != nil {
6507		return *s.Message_
6508	}
6509	return ""
6510}
6511
6512// OrigErr always returns nil, satisfies awserr.Error interface.
6513func (s *SecurityGroupLimitExceeded) OrigErr() error {
6514	return nil
6515}
6516
6517func (s *SecurityGroupLimitExceeded) Error() string {
6518	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
6519}
6520
6521// Status code returns the HTTP status code for the request's response error.
6522func (s *SecurityGroupLimitExceeded) StatusCode() int {
6523	return s.RespMetadata.StatusCode
6524}
6525
6526// RequestID returns the service's response RequestID for request.
6527func (s *SecurityGroupLimitExceeded) RequestID() string {
6528	return s.RespMetadata.RequestID
6529}
6530
6531// Returned if one of the specified security groups doesn't exist in the subnet's
6532// VPC.
6533type SecurityGroupNotFound struct {
6534	_            struct{}                  `type:"structure"`
6535	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6536
6537	// ErrorCode is a required field
6538	ErrorCode *string `min:"1" type:"string" required:"true"`
6539
6540	Message_ *string `locationName:"Message" type:"string"`
6541}
6542
6543// String returns the string representation
6544func (s SecurityGroupNotFound) String() string {
6545	return awsutil.Prettify(s)
6546}
6547
6548// GoString returns the string representation
6549func (s SecurityGroupNotFound) GoString() string {
6550	return s.String()
6551}
6552
6553func newErrorSecurityGroupNotFound(v protocol.ResponseMetadata) error {
6554	return &SecurityGroupNotFound{
6555		RespMetadata: v,
6556	}
6557}
6558
6559// Code returns the exception type name.
6560func (s *SecurityGroupNotFound) Code() string {
6561	return "SecurityGroupNotFound"
6562}
6563
6564// Message returns the exception's message.
6565func (s *SecurityGroupNotFound) Message() string {
6566	if s.Message_ != nil {
6567		return *s.Message_
6568	}
6569	return ""
6570}
6571
6572// OrigErr always returns nil, satisfies awserr.Error interface.
6573func (s *SecurityGroupNotFound) OrigErr() error {
6574	return nil
6575}
6576
6577func (s *SecurityGroupNotFound) Error() string {
6578	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
6579}
6580
6581// Status code returns the HTTP status code for the request's response error.
6582func (s *SecurityGroupNotFound) StatusCode() int {
6583	return s.RespMetadata.StatusCode
6584}
6585
6586// RequestID returns the service's response RequestID for request.
6587func (s *SecurityGroupNotFound) RequestID() string {
6588	return s.RespMetadata.RequestID
6589}
6590
6591// Returned if there is no subnet with ID SubnetId provided in the request.
6592type SubnetNotFound struct {
6593	_            struct{}                  `type:"structure"`
6594	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6595
6596	// ErrorCode is a required field
6597	ErrorCode *string `min:"1" type:"string" required:"true"`
6598
6599	Message_ *string `locationName:"Message" type:"string"`
6600}
6601
6602// String returns the string representation
6603func (s SubnetNotFound) String() string {
6604	return awsutil.Prettify(s)
6605}
6606
6607// GoString returns the string representation
6608func (s SubnetNotFound) GoString() string {
6609	return s.String()
6610}
6611
6612func newErrorSubnetNotFound(v protocol.ResponseMetadata) error {
6613	return &SubnetNotFound{
6614		RespMetadata: v,
6615	}
6616}
6617
6618// Code returns the exception type name.
6619func (s *SubnetNotFound) Code() string {
6620	return "SubnetNotFound"
6621}
6622
6623// Message returns the exception's message.
6624func (s *SubnetNotFound) Message() string {
6625	if s.Message_ != nil {
6626		return *s.Message_
6627	}
6628	return ""
6629}
6630
6631// OrigErr always returns nil, satisfies awserr.Error interface.
6632func (s *SubnetNotFound) OrigErr() error {
6633	return nil
6634}
6635
6636func (s *SubnetNotFound) Error() string {
6637	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
6638}
6639
6640// Status code returns the HTTP status code for the request's response error.
6641func (s *SubnetNotFound) StatusCode() int {
6642	return s.RespMetadata.StatusCode
6643}
6644
6645// RequestID returns the service's response RequestID for request.
6646func (s *SubnetNotFound) RequestID() string {
6647	return s.RespMetadata.RequestID
6648}
6649
6650// A tag is a key-value pair. Allowed characters are letters, white space, and
6651// numbers that can be represented in UTF-8, and the following characters:+
6652// - = . _ : /
6653type Tag struct {
6654	_ struct{} `type:"structure"`
6655
6656	// The tag key (String). The key can't start with aws:.
6657	//
6658	// Key is a required field
6659	Key *string `min:"1" type:"string" required:"true"`
6660
6661	// The value of the tag key.
6662	//
6663	// Value is a required field
6664	Value *string `type:"string" required:"true"`
6665}
6666
6667// String returns the string representation
6668func (s Tag) String() string {
6669	return awsutil.Prettify(s)
6670}
6671
6672// GoString returns the string representation
6673func (s Tag) GoString() string {
6674	return s.String()
6675}
6676
6677// Validate inspects the fields of the type to determine if they are valid.
6678func (s *Tag) Validate() error {
6679	invalidParams := request.ErrInvalidParams{Context: "Tag"}
6680	if s.Key == nil {
6681		invalidParams.Add(request.NewErrParamRequired("Key"))
6682	}
6683	if s.Key != nil && len(*s.Key) < 1 {
6684		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
6685	}
6686	if s.Value == nil {
6687		invalidParams.Add(request.NewErrParamRequired("Value"))
6688	}
6689
6690	if invalidParams.Len() > 0 {
6691		return invalidParams
6692	}
6693	return nil
6694}
6695
6696// SetKey sets the Key field's value.
6697func (s *Tag) SetKey(v string) *Tag {
6698	s.Key = &v
6699	return s
6700}
6701
6702// SetValue sets the Value field's value.
6703func (s *Tag) SetValue(v string) *Tag {
6704	s.Value = &v
6705	return s
6706}
6707
6708type TagResourceInput struct {
6709	_ struct{} `type:"structure"`
6710
6711	// The ID specifying the EFS resource that you want to create a tag for.
6712	//
6713	// ResourceId is a required field
6714	ResourceId *string `location:"uri" locationName:"ResourceId" type:"string" required:"true"`
6715
6716	// Tags is a required field
6717	Tags []*Tag `type:"list" required:"true"`
6718}
6719
6720// String returns the string representation
6721func (s TagResourceInput) String() string {
6722	return awsutil.Prettify(s)
6723}
6724
6725// GoString returns the string representation
6726func (s TagResourceInput) GoString() string {
6727	return s.String()
6728}
6729
6730// Validate inspects the fields of the type to determine if they are valid.
6731func (s *TagResourceInput) Validate() error {
6732	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
6733	if s.ResourceId == nil {
6734		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
6735	}
6736	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
6737		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
6738	}
6739	if s.Tags == nil {
6740		invalidParams.Add(request.NewErrParamRequired("Tags"))
6741	}
6742	if s.Tags != nil {
6743		for i, v := range s.Tags {
6744			if v == nil {
6745				continue
6746			}
6747			if err := v.Validate(); err != nil {
6748				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
6749			}
6750		}
6751	}
6752
6753	if invalidParams.Len() > 0 {
6754		return invalidParams
6755	}
6756	return nil
6757}
6758
6759// SetResourceId sets the ResourceId field's value.
6760func (s *TagResourceInput) SetResourceId(v string) *TagResourceInput {
6761	s.ResourceId = &v
6762	return s
6763}
6764
6765// SetTags sets the Tags field's value.
6766func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
6767	s.Tags = v
6768	return s
6769}
6770
6771type TagResourceOutput struct {
6772	_ struct{} `type:"structure"`
6773}
6774
6775// String returns the string representation
6776func (s TagResourceOutput) String() string {
6777	return awsutil.Prettify(s)
6778}
6779
6780// GoString returns the string representation
6781func (s TagResourceOutput) GoString() string {
6782	return s.String()
6783}
6784
6785// Returned if the throughput mode or amount of provisioned throughput can't
6786// be changed because the throughput limit of 1024 MiB/s has been reached.
6787type ThroughputLimitExceeded struct {
6788	_            struct{}                  `type:"structure"`
6789	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6790
6791	// ErrorCode is a required field
6792	ErrorCode *string `min:"1" type:"string" required:"true"`
6793
6794	Message_ *string `locationName:"Message" type:"string"`
6795}
6796
6797// String returns the string representation
6798func (s ThroughputLimitExceeded) String() string {
6799	return awsutil.Prettify(s)
6800}
6801
6802// GoString returns the string representation
6803func (s ThroughputLimitExceeded) GoString() string {
6804	return s.String()
6805}
6806
6807func newErrorThroughputLimitExceeded(v protocol.ResponseMetadata) error {
6808	return &ThroughputLimitExceeded{
6809		RespMetadata: v,
6810	}
6811}
6812
6813// Code returns the exception type name.
6814func (s *ThroughputLimitExceeded) Code() string {
6815	return "ThroughputLimitExceeded"
6816}
6817
6818// Message returns the exception's message.
6819func (s *ThroughputLimitExceeded) Message() string {
6820	if s.Message_ != nil {
6821		return *s.Message_
6822	}
6823	return ""
6824}
6825
6826// OrigErr always returns nil, satisfies awserr.Error interface.
6827func (s *ThroughputLimitExceeded) OrigErr() error {
6828	return nil
6829}
6830
6831func (s *ThroughputLimitExceeded) Error() string {
6832	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
6833}
6834
6835// Status code returns the HTTP status code for the request's response error.
6836func (s *ThroughputLimitExceeded) StatusCode() int {
6837	return s.RespMetadata.StatusCode
6838}
6839
6840// RequestID returns the service's response RequestID for request.
6841func (s *ThroughputLimitExceeded) RequestID() string {
6842	return s.RespMetadata.RequestID
6843}
6844
6845// Returned if you don’t wait at least 24 hours before changing the throughput
6846// mode, or decreasing the Provisioned Throughput value.
6847type TooManyRequests struct {
6848	_            struct{}                  `type:"structure"`
6849	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6850
6851	// ErrorCode is a required field
6852	ErrorCode *string `min:"1" type:"string" required:"true"`
6853
6854	Message_ *string `locationName:"Message" type:"string"`
6855}
6856
6857// String returns the string representation
6858func (s TooManyRequests) String() string {
6859	return awsutil.Prettify(s)
6860}
6861
6862// GoString returns the string representation
6863func (s TooManyRequests) GoString() string {
6864	return s.String()
6865}
6866
6867func newErrorTooManyRequests(v protocol.ResponseMetadata) error {
6868	return &TooManyRequests{
6869		RespMetadata: v,
6870	}
6871}
6872
6873// Code returns the exception type name.
6874func (s *TooManyRequests) Code() string {
6875	return "TooManyRequests"
6876}
6877
6878// Message returns the exception's message.
6879func (s *TooManyRequests) Message() string {
6880	if s.Message_ != nil {
6881		return *s.Message_
6882	}
6883	return ""
6884}
6885
6886// OrigErr always returns nil, satisfies awserr.Error interface.
6887func (s *TooManyRequests) OrigErr() error {
6888	return nil
6889}
6890
6891func (s *TooManyRequests) Error() string {
6892	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
6893}
6894
6895// Status code returns the HTTP status code for the request's response error.
6896func (s *TooManyRequests) StatusCode() int {
6897	return s.RespMetadata.StatusCode
6898}
6899
6900// RequestID returns the service's response RequestID for request.
6901func (s *TooManyRequests) RequestID() string {
6902	return s.RespMetadata.RequestID
6903}
6904
6905type UnsupportedAvailabilityZone struct {
6906	_            struct{}                  `type:"structure"`
6907	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6908
6909	// ErrorCode is a required field
6910	ErrorCode *string `min:"1" type:"string" required:"true"`
6911
6912	Message_ *string `locationName:"Message" type:"string"`
6913}
6914
6915// String returns the string representation
6916func (s UnsupportedAvailabilityZone) String() string {
6917	return awsutil.Prettify(s)
6918}
6919
6920// GoString returns the string representation
6921func (s UnsupportedAvailabilityZone) GoString() string {
6922	return s.String()
6923}
6924
6925func newErrorUnsupportedAvailabilityZone(v protocol.ResponseMetadata) error {
6926	return &UnsupportedAvailabilityZone{
6927		RespMetadata: v,
6928	}
6929}
6930
6931// Code returns the exception type name.
6932func (s *UnsupportedAvailabilityZone) Code() string {
6933	return "UnsupportedAvailabilityZone"
6934}
6935
6936// Message returns the exception's message.
6937func (s *UnsupportedAvailabilityZone) Message() string {
6938	if s.Message_ != nil {
6939		return *s.Message_
6940	}
6941	return ""
6942}
6943
6944// OrigErr always returns nil, satisfies awserr.Error interface.
6945func (s *UnsupportedAvailabilityZone) OrigErr() error {
6946	return nil
6947}
6948
6949func (s *UnsupportedAvailabilityZone) Error() string {
6950	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
6951}
6952
6953// Status code returns the HTTP status code for the request's response error.
6954func (s *UnsupportedAvailabilityZone) StatusCode() int {
6955	return s.RespMetadata.StatusCode
6956}
6957
6958// RequestID returns the service's response RequestID for request.
6959func (s *UnsupportedAvailabilityZone) RequestID() string {
6960	return s.RespMetadata.RequestID
6961}
6962
6963type UntagResourceInput struct {
6964	_ struct{} `type:"structure"`
6965
6966	// Specifies the EFS resource that you want to remove tags from.
6967	//
6968	// ResourceId is a required field
6969	ResourceId *string `location:"uri" locationName:"ResourceId" type:"string" required:"true"`
6970
6971	// The keys of the key:value tag pairs that you want to remove from the specified
6972	// EFS resource.
6973	//
6974	// TagKeys is a required field
6975	TagKeys []*string `location:"querystring" locationName:"tagKeys" min:"1" type:"list" required:"true"`
6976}
6977
6978// String returns the string representation
6979func (s UntagResourceInput) String() string {
6980	return awsutil.Prettify(s)
6981}
6982
6983// GoString returns the string representation
6984func (s UntagResourceInput) GoString() string {
6985	return s.String()
6986}
6987
6988// Validate inspects the fields of the type to determine if they are valid.
6989func (s *UntagResourceInput) Validate() error {
6990	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
6991	if s.ResourceId == nil {
6992		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
6993	}
6994	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
6995		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
6996	}
6997	if s.TagKeys == nil {
6998		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
6999	}
7000	if s.TagKeys != nil && len(s.TagKeys) < 1 {
7001		invalidParams.Add(request.NewErrParamMinLen("TagKeys", 1))
7002	}
7003
7004	if invalidParams.Len() > 0 {
7005		return invalidParams
7006	}
7007	return nil
7008}
7009
7010// SetResourceId sets the ResourceId field's value.
7011func (s *UntagResourceInput) SetResourceId(v string) *UntagResourceInput {
7012	s.ResourceId = &v
7013	return s
7014}
7015
7016// SetTagKeys sets the TagKeys field's value.
7017func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
7018	s.TagKeys = v
7019	return s
7020}
7021
7022type UntagResourceOutput struct {
7023	_ struct{} `type:"structure"`
7024}
7025
7026// String returns the string representation
7027func (s UntagResourceOutput) String() string {
7028	return awsutil.Prettify(s)
7029}
7030
7031// GoString returns the string representation
7032func (s UntagResourceOutput) GoString() string {
7033	return s.String()
7034}
7035
7036type UpdateFileSystemInput struct {
7037	_ struct{} `type:"structure"`
7038
7039	// The ID of the file system that you want to update.
7040	//
7041	// FileSystemId is a required field
7042	FileSystemId *string `location:"uri" locationName:"FileSystemId" type:"string" required:"true"`
7043
7044	// (Optional) The amount of throughput, in MiB/s, that you want to provision
7045	// for your file system. Valid values are 1-1024. Required if ThroughputMode
7046	// is changed to provisioned on update. If you're not updating the amount of
7047	// provisioned throughput for your file system, you don't need to provide this
7048	// value in your request.
7049	ProvisionedThroughputInMibps *float64 `min:"1" type:"double"`
7050
7051	// (Optional) The throughput mode that you want your file system to use. If
7052	// you're not updating your throughput mode, you don't need to provide this
7053	// value in your request. If you are changing the ThroughputMode to provisioned,
7054	// you must also set a value for ProvisionedThroughputInMibps.
7055	ThroughputMode *string `type:"string" enum:"ThroughputMode"`
7056}
7057
7058// String returns the string representation
7059func (s UpdateFileSystemInput) String() string {
7060	return awsutil.Prettify(s)
7061}
7062
7063// GoString returns the string representation
7064func (s UpdateFileSystemInput) GoString() string {
7065	return s.String()
7066}
7067
7068// Validate inspects the fields of the type to determine if they are valid.
7069func (s *UpdateFileSystemInput) Validate() error {
7070	invalidParams := request.ErrInvalidParams{Context: "UpdateFileSystemInput"}
7071	if s.FileSystemId == nil {
7072		invalidParams.Add(request.NewErrParamRequired("FileSystemId"))
7073	}
7074	if s.FileSystemId != nil && len(*s.FileSystemId) < 1 {
7075		invalidParams.Add(request.NewErrParamMinLen("FileSystemId", 1))
7076	}
7077	if s.ProvisionedThroughputInMibps != nil && *s.ProvisionedThroughputInMibps < 1 {
7078		invalidParams.Add(request.NewErrParamMinValue("ProvisionedThroughputInMibps", 1))
7079	}
7080
7081	if invalidParams.Len() > 0 {
7082		return invalidParams
7083	}
7084	return nil
7085}
7086
7087// SetFileSystemId sets the FileSystemId field's value.
7088func (s *UpdateFileSystemInput) SetFileSystemId(v string) *UpdateFileSystemInput {
7089	s.FileSystemId = &v
7090	return s
7091}
7092
7093// SetProvisionedThroughputInMibps sets the ProvisionedThroughputInMibps field's value.
7094func (s *UpdateFileSystemInput) SetProvisionedThroughputInMibps(v float64) *UpdateFileSystemInput {
7095	s.ProvisionedThroughputInMibps = &v
7096	return s
7097}
7098
7099// SetThroughputMode sets the ThroughputMode field's value.
7100func (s *UpdateFileSystemInput) SetThroughputMode(v string) *UpdateFileSystemInput {
7101	s.ThroughputMode = &v
7102	return s
7103}
7104
7105// A description of the file system.
7106type UpdateFileSystemOutput struct {
7107	_ struct{} `type:"structure"`
7108
7109	// The time that the file system was created, in seconds (since 1970-01-01T00:00:00Z).
7110	//
7111	// CreationTime is a required field
7112	CreationTime *time.Time `type:"timestamp" required:"true"`
7113
7114	// The opaque string specified in the request.
7115	//
7116	// CreationToken is a required field
7117	CreationToken *string `min:"1" type:"string" required:"true"`
7118
7119	// A Boolean value that, if true, indicates that the file system is encrypted.
7120	Encrypted *bool `type:"boolean"`
7121
7122	// The ID of the file system, assigned by Amazon EFS.
7123	//
7124	// FileSystemId is a required field
7125	FileSystemId *string `type:"string" required:"true"`
7126
7127	// The ID of an AWS Key Management Service (AWS KMS) customer master key (CMK)
7128	// that was used to protect the encrypted file system.
7129	KmsKeyId *string `min:"1" type:"string"`
7130
7131	// The lifecycle phase of the file system.
7132	//
7133	// LifeCycleState is a required field
7134	LifeCycleState *string `type:"string" required:"true" enum:"LifeCycleState"`
7135
7136	// You can add tags to a file system, including a Name tag. For more information,
7137	// see CreateFileSystem. If the file system has a Name tag, Amazon EFS returns
7138	// the value in this field.
7139	Name *string `type:"string"`
7140
7141	// The current number of mount targets that the file system has. For more information,
7142	// see CreateMountTarget.
7143	//
7144	// NumberOfMountTargets is a required field
7145	NumberOfMountTargets *int64 `type:"integer" required:"true"`
7146
7147	// The AWS account that created the file system. If the file system was created
7148	// by an IAM user, the parent account to which the user belongs is the owner.
7149	//
7150	// OwnerId is a required field
7151	OwnerId *string `type:"string" required:"true"`
7152
7153	// The performance mode of the file system.
7154	//
7155	// PerformanceMode is a required field
7156	PerformanceMode *string `type:"string" required:"true" enum:"PerformanceMode"`
7157
7158	// The throughput, measured in MiB/s, that you want to provision for a file
7159	// system. Valid values are 1-1024. Required if ThroughputMode is set to provisioned.
7160	// The limit on throughput is 1024 MiB/s. You can get these limits increased
7161	// by contacting AWS Support. For more information, see Amazon EFS Limits That
7162	// You Can Increase (https://docs.aws.amazon.com/efs/latest/ug/limits.html#soft-limits)
7163	// in the Amazon EFS User Guide.
7164	ProvisionedThroughputInMibps *float64 `min:"1" type:"double"`
7165
7166	// The latest known metered size (in bytes) of data stored in the file system,
7167	// in its Value field, and the time at which that size was determined in its
7168	// Timestamp field. The Timestamp value is the integer number of seconds since
7169	// 1970-01-01T00:00:00Z. The SizeInBytes value doesn't represent the size of
7170	// a consistent snapshot of the file system, but it is eventually consistent
7171	// when there are no writes to the file system. That is, SizeInBytes represents
7172	// actual size only if the file system is not modified for a period longer than
7173	// a couple of hours. Otherwise, the value is not the exact size that the file
7174	// system was at any point in time.
7175	//
7176	// SizeInBytes is a required field
7177	SizeInBytes *FileSystemSize `type:"structure" required:"true"`
7178
7179	// The tags associated with the file system, presented as an array of Tag objects.
7180	//
7181	// Tags is a required field
7182	Tags []*Tag `type:"list" required:"true"`
7183
7184	// The throughput mode for a file system. There are two throughput modes to
7185	// choose from for your file system: bursting and provisioned. If you set ThroughputMode
7186	// to provisioned, you must also set a value for ProvisionedThroughPutInMibps.
7187	// You can decrease your file system's throughput in Provisioned Throughput
7188	// mode or change between the throughput modes as long as it’s been more than
7189	// 24 hours since the last decrease or throughput mode change.
7190	ThroughputMode *string `type:"string" enum:"ThroughputMode"`
7191}
7192
7193// String returns the string representation
7194func (s UpdateFileSystemOutput) String() string {
7195	return awsutil.Prettify(s)
7196}
7197
7198// GoString returns the string representation
7199func (s UpdateFileSystemOutput) GoString() string {
7200	return s.String()
7201}
7202
7203// SetCreationTime sets the CreationTime field's value.
7204func (s *UpdateFileSystemOutput) SetCreationTime(v time.Time) *UpdateFileSystemOutput {
7205	s.CreationTime = &v
7206	return s
7207}
7208
7209// SetCreationToken sets the CreationToken field's value.
7210func (s *UpdateFileSystemOutput) SetCreationToken(v string) *UpdateFileSystemOutput {
7211	s.CreationToken = &v
7212	return s
7213}
7214
7215// SetEncrypted sets the Encrypted field's value.
7216func (s *UpdateFileSystemOutput) SetEncrypted(v bool) *UpdateFileSystemOutput {
7217	s.Encrypted = &v
7218	return s
7219}
7220
7221// SetFileSystemId sets the FileSystemId field's value.
7222func (s *UpdateFileSystemOutput) SetFileSystemId(v string) *UpdateFileSystemOutput {
7223	s.FileSystemId = &v
7224	return s
7225}
7226
7227// SetKmsKeyId sets the KmsKeyId field's value.
7228func (s *UpdateFileSystemOutput) SetKmsKeyId(v string) *UpdateFileSystemOutput {
7229	s.KmsKeyId = &v
7230	return s
7231}
7232
7233// SetLifeCycleState sets the LifeCycleState field's value.
7234func (s *UpdateFileSystemOutput) SetLifeCycleState(v string) *UpdateFileSystemOutput {
7235	s.LifeCycleState = &v
7236	return s
7237}
7238
7239// SetName sets the Name field's value.
7240func (s *UpdateFileSystemOutput) SetName(v string) *UpdateFileSystemOutput {
7241	s.Name = &v
7242	return s
7243}
7244
7245// SetNumberOfMountTargets sets the NumberOfMountTargets field's value.
7246func (s *UpdateFileSystemOutput) SetNumberOfMountTargets(v int64) *UpdateFileSystemOutput {
7247	s.NumberOfMountTargets = &v
7248	return s
7249}
7250
7251// SetOwnerId sets the OwnerId field's value.
7252func (s *UpdateFileSystemOutput) SetOwnerId(v string) *UpdateFileSystemOutput {
7253	s.OwnerId = &v
7254	return s
7255}
7256
7257// SetPerformanceMode sets the PerformanceMode field's value.
7258func (s *UpdateFileSystemOutput) SetPerformanceMode(v string) *UpdateFileSystemOutput {
7259	s.PerformanceMode = &v
7260	return s
7261}
7262
7263// SetProvisionedThroughputInMibps sets the ProvisionedThroughputInMibps field's value.
7264func (s *UpdateFileSystemOutput) SetProvisionedThroughputInMibps(v float64) *UpdateFileSystemOutput {
7265	s.ProvisionedThroughputInMibps = &v
7266	return s
7267}
7268
7269// SetSizeInBytes sets the SizeInBytes field's value.
7270func (s *UpdateFileSystemOutput) SetSizeInBytes(v *FileSystemSize) *UpdateFileSystemOutput {
7271	s.SizeInBytes = v
7272	return s
7273}
7274
7275// SetTags sets the Tags field's value.
7276func (s *UpdateFileSystemOutput) SetTags(v []*Tag) *UpdateFileSystemOutput {
7277	s.Tags = v
7278	return s
7279}
7280
7281// SetThroughputMode sets the ThroughputMode field's value.
7282func (s *UpdateFileSystemOutput) SetThroughputMode(v string) *UpdateFileSystemOutput {
7283	s.ThroughputMode = &v
7284	return s
7285}
7286
7287const (
7288	// LifeCycleStateCreating is a LifeCycleState enum value
7289	LifeCycleStateCreating = "creating"
7290
7291	// LifeCycleStateAvailable is a LifeCycleState enum value
7292	LifeCycleStateAvailable = "available"
7293
7294	// LifeCycleStateUpdating is a LifeCycleState enum value
7295	LifeCycleStateUpdating = "updating"
7296
7297	// LifeCycleStateDeleting is a LifeCycleState enum value
7298	LifeCycleStateDeleting = "deleting"
7299
7300	// LifeCycleStateDeleted is a LifeCycleState enum value
7301	LifeCycleStateDeleted = "deleted"
7302)
7303
7304const (
7305	// PerformanceModeGeneralPurpose is a PerformanceMode enum value
7306	PerformanceModeGeneralPurpose = "generalPurpose"
7307
7308	// PerformanceModeMaxIo is a PerformanceMode enum value
7309	PerformanceModeMaxIo = "maxIO"
7310)
7311
7312const (
7313	// ThroughputModeBursting is a ThroughputMode enum value
7314	ThroughputModeBursting = "bursting"
7315
7316	// ThroughputModeProvisioned is a ThroughputMode enum value
7317	ThroughputModeProvisioned = "provisioned"
7318)
7319
7320const (
7321	// TransitionToIARulesAfter7Days is a TransitionToIARules enum value
7322	TransitionToIARulesAfter7Days = "AFTER_7_DAYS"
7323
7324	// TransitionToIARulesAfter14Days is a TransitionToIARules enum value
7325	TransitionToIARulesAfter14Days = "AFTER_14_DAYS"
7326
7327	// TransitionToIARulesAfter30Days is a TransitionToIARules enum value
7328	TransitionToIARulesAfter30Days = "AFTER_30_DAYS"
7329
7330	// TransitionToIARulesAfter60Days is a TransitionToIARules enum value
7331	TransitionToIARulesAfter60Days = "AFTER_60_DAYS"
7332
7333	// TransitionToIARulesAfter90Days is a TransitionToIARules enum value
7334	TransitionToIARulesAfter90Days = "AFTER_90_DAYS"
7335)
7336