aws-sdk-efs 1.0.0.rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: ee82353887fcfd4287415a7af156c504bebd04ec
4
+ data.tar.gz: f7ad57e4b23e883598a7867304ba701fc09e0551
5
+ SHA512:
6
+ metadata.gz: 37f99e3f2872b491984af946fe2cf1ea769e37de9212115b403d224f81f2fd08bff75d5610663a8088d0d01dceb64aa39bd87a9467c8a0409b4e178e66e56c60
7
+ data.tar.gz: 43a8da4af13bb8c68ce478da6b84b10080977a8f1566cfb3baf857605395bc1e98814fe805b57242c581c0c9fc6b454ac1832da14f4d0aa6c12c8894b9796d99
@@ -0,0 +1,47 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing for info on making contributions:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
8
+ require 'aws-sdk-core'
9
+ require 'aws-sigv4'
10
+
11
+ require_relative 'aws-sdk-efs/types'
12
+ require_relative 'aws-sdk-efs/client_api'
13
+ require_relative 'aws-sdk-efs/client'
14
+ require_relative 'aws-sdk-efs/errors'
15
+ require_relative 'aws-sdk-efs/resource'
16
+ require_relative 'aws-sdk-efs/customizations'
17
+
18
+ # This module provides support for Amazon Elastic File System. This module is available in the
19
+ # `aws-sdk-efs` gem.
20
+ #
21
+ # # Client
22
+ #
23
+ # The {Client} class provides one method for each API operation. Operation
24
+ # methods each accept a hash of request parameters and return a response
25
+ # structure.
26
+ #
27
+ # See {Client} for more information.
28
+ #
29
+ # # Errors
30
+ #
31
+ # Errors returned from Amazon Elastic File System all
32
+ # extend {Errors::ServiceError}.
33
+ #
34
+ # begin
35
+ # # do stuff
36
+ # rescue Aws::EFS::Errors::ServiceError
37
+ # # rescues all service API errors
38
+ # end
39
+ #
40
+ # See {Errors} for more information.
41
+ #
42
+ # @service
43
+ module Aws::EFS
44
+
45
+ GEM_VERSION = '1.0.0.rc1'
46
+
47
+ end
@@ -0,0 +1,821 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing for info on making contributions:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
8
+ require 'seahorse/client/plugins/content_length.rb'
9
+ require 'aws-sdk-core/plugins/credentials_configuration.rb'
10
+ require 'aws-sdk-core/plugins/logging.rb'
11
+ require 'aws-sdk-core/plugins/param_converter.rb'
12
+ require 'aws-sdk-core/plugins/param_validator.rb'
13
+ require 'aws-sdk-core/plugins/user_agent.rb'
14
+ require 'aws-sdk-core/plugins/helpful_socket_errors.rb'
15
+ require 'aws-sdk-core/plugins/retry_errors.rb'
16
+ require 'aws-sdk-core/plugins/global_configuration.rb'
17
+ require 'aws-sdk-core/plugins/regional_endpoint.rb'
18
+ require 'aws-sdk-core/plugins/response_paging.rb'
19
+ require 'aws-sdk-core/plugins/stub_responses.rb'
20
+ require 'aws-sdk-core/plugins/idempotency_token.rb'
21
+ require 'aws-sdk-core/plugins/signature_v4.rb'
22
+ require 'aws-sdk-core/plugins/protocols/rest_json.rb'
23
+
24
+ Aws::Plugins::GlobalConfiguration.add_identifier(:efs)
25
+
26
+ module Aws
27
+ module EFS
28
+ class Client < Seahorse::Client::Base
29
+
30
+ include Aws::ClientStubs
31
+
32
+ @identifier = :efs
33
+
34
+ set_api(ClientApi::API)
35
+
36
+ add_plugin(Seahorse::Client::Plugins::ContentLength)
37
+ add_plugin(Aws::Plugins::CredentialsConfiguration)
38
+ add_plugin(Aws::Plugins::Logging)
39
+ add_plugin(Aws::Plugins::ParamConverter)
40
+ add_plugin(Aws::Plugins::ParamValidator)
41
+ add_plugin(Aws::Plugins::UserAgent)
42
+ add_plugin(Aws::Plugins::HelpfulSocketErrors)
43
+ add_plugin(Aws::Plugins::RetryErrors)
44
+ add_plugin(Aws::Plugins::GlobalConfiguration)
45
+ add_plugin(Aws::Plugins::RegionalEndpoint)
46
+ add_plugin(Aws::Plugins::ResponsePaging)
47
+ add_plugin(Aws::Plugins::StubResponses)
48
+ add_plugin(Aws::Plugins::IdempotencyToken)
49
+ add_plugin(Aws::Plugins::SignatureV4)
50
+ add_plugin(Aws::Plugins::Protocols::RestJson)
51
+
52
+ # @option options [required, Aws::CredentialProvider] :credentials
53
+ # Your AWS credentials. This can be an instance of any one of the
54
+ # following classes:
55
+ #
56
+ # * `Aws::Credentials` - Used for configuring static, non-refreshing
57
+ # credentials.
58
+ #
59
+ # * `Aws::InstanceProfileCredentials` - Used for loading credentials
60
+ # from an EC2 IMDS on an EC2 instance.
61
+ #
62
+ # * `Aws::SharedCredentials` - Used for loading credentials from a
63
+ # shared file, such as `~/.aws/config`.
64
+ #
65
+ # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
66
+ #
67
+ # When `:credentials` are not configured directly, the following
68
+ # locations will be searched for credentials:
69
+ #
70
+ # * `Aws.config[:credentials]`
71
+ # * The `:access_key_id`, `:secret_access_key`, and `:session_token` options.
72
+ # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
73
+ # * `~/.aws/credentials`
74
+ # * `~/.aws/config`
75
+ # * EC2 IMDS instance profile - When used by default, the timeouts are
76
+ # very aggressive. Construct and pass an instance of
77
+ # `Aws::InstanceProfileCredentails` to enable retries and extended
78
+ # timeouts.
79
+ # @option options [required, String] :region
80
+ # The AWS region to connect to. The configured `:region` is
81
+ # used to determine the service `:endpoint`. When not passed,
82
+ # a default `:region` is search for in the following locations:
83
+ #
84
+ # * `Aws.config[:region]`
85
+ # * `ENV['AWS_REGION']`
86
+ # * `ENV['AMAZON_REGION']`
87
+ # * `ENV['AWS_DEFAULT_REGION']`
88
+ # * `~/.aws/credentials`
89
+ # * `~/.aws/config`
90
+ # @option options [String] :access_key_id
91
+ # @option options [Boolean] :convert_params (true)
92
+ # When `true`, an attempt is made to coerce request parameters into
93
+ # the required types.
94
+ # @option options [String] :endpoint
95
+ # The client endpoint is normally constructed from the `:region`
96
+ # option. You should only configure an `:endpoint` when connecting
97
+ # to test endpoints. This should be avalid HTTP(S) URI.
98
+ # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
99
+ # The log formatter.
100
+ # @option options [Symbol] :log_level (:info)
101
+ # The log level to send messages to the `:logger` at.
102
+ # @option options [Logger] :logger
103
+ # The Logger instance to send log messages to. If this option
104
+ # is not set, logging will be disabled.
105
+ # @option options [String] :profile ("default")
106
+ # Used when loading credentials from the shared credentials file
107
+ # at HOME/.aws/credentials. When not specified, 'default' is used.
108
+ # @option options [Integer] :retry_limit (3)
109
+ # The maximum number of times to retry failed requests. Only
110
+ # ~ 500 level server errors and certain ~ 400 level client errors
111
+ # are retried. Generally, these are throttling errors, data
112
+ # checksum errors, networking errors, timeout errors and auth
113
+ # errors from expired credentials.
114
+ # @option options [String] :secret_access_key
115
+ # @option options [String] :session_token
116
+ # @option options [Boolean] :stub_responses (false)
117
+ # Causes the client to return stubbed responses. By default
118
+ # fake responses are generated and returned. You can specify
119
+ # the response data to return or errors to raise by calling
120
+ # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
121
+ #
122
+ # ** Please note ** When response stubbing is enabled, no HTTP
123
+ # requests are made, and retries are disabled.
124
+ # @option options [Boolean] :validate_params (true)
125
+ # When `true`, request parameters are validated before
126
+ # sending the request.
127
+ def initialize(*args)
128
+ super
129
+ end
130
+
131
+ # @!group API Operations
132
+
133
+ # Creates a new, empty file system. The operation requires a creation
134
+ # token in the request that Amazon EFS uses to ensure idempotent
135
+ # creation (calling the operation with same creation token has no
136
+ # effect). If a file system does not currently exist that is owned by
137
+ # the caller's AWS account with the specified creation token, this
138
+ # operation does the following:
139
+ #
140
+ # * Creates a new, empty file system. The file system will have an
141
+ # Amazon EFS assigned ID, and an initial lifecycle state `creating`.
142
+ #
143
+ # * Returns with the description of the created file system.
144
+ #
145
+ # Otherwise, this operation returns a `FileSystemAlreadyExists` error
146
+ # with the ID of the existing file system.
147
+ #
148
+ # <note markdown="1"> For basic use cases, you can use a randomly generated UUID for the
149
+ # creation token.
150
+ #
151
+ # </note>
152
+ #
153
+ # The idempotent operation allows you to retry a `CreateFileSystem` call
154
+ # without risk of creating an extra file system. This can happen when an
155
+ # initial call fails in a way that leaves it uncertain whether or not a
156
+ # file system was actually created. An example might be that a transport
157
+ # level timeout occurred or your connection was reset. As long as you
158
+ # use the same creation token, if the initial call had succeeded in
159
+ # creating a file system, the client can learn of its existence from the
160
+ # `FileSystemAlreadyExists` error.
161
+ #
162
+ # <note markdown="1"> The `CreateFileSystem` call returns while the file system's lifecycle
163
+ # state is still `creating`. You can check the file system creation
164
+ # status by calling the DescribeFileSystems operation, which among other
165
+ # things returns the file system state.
166
+ #
167
+ # </note>
168
+ #
169
+ # This operation also takes an optional `PerformanceMode` parameter that
170
+ # you choose for your file system. We recommend `generalPurpose`
171
+ # performance mode for most file systems. File systems using the `maxIO`
172
+ # performance mode can scale to higher levels of aggregate throughput
173
+ # and operations per second with a tradeoff of slightly higher latencies
174
+ # for most file operations. The performance mode can't be changed after
175
+ # the file system has been created. For more information, see [Amazon
176
+ # EFS: Performance Modes][1].
177
+ #
178
+ # After the file system is fully created, Amazon EFS sets its lifecycle
179
+ # state to `available`, at which point you can create one or more mount
180
+ # targets for the file system in your VPC. For more information, see
181
+ # CreateMountTarget. You mount your Amazon EFS file system on an EC2
182
+ # instances in your VPC via the mount target. For more information, see
183
+ # [Amazon EFS: How it Works][2].
184
+ #
185
+ # This operation requires permissions for the
186
+ # `elasticfilesystem:CreateFileSystem` action.
187
+ #
188
+ #
189
+ #
190
+ # [1]: http://docs.aws.amazon.com/efs/latest/ug/performance.html#performancemodes.html
191
+ # [2]: http://docs.aws.amazon.com/efs/latest/ug/how-it-works.html
192
+ # @option params [required, String] :creation_token
193
+ # String of up to 64 ASCII characters. Amazon EFS uses this to ensure
194
+ # idempotent creation.
195
+ # @option params [String] :performance_mode
196
+ # The `PerformanceMode` of the file system. We recommend
197
+ # `generalPurpose` performance mode for most file systems. File systems
198
+ # using the `maxIO` performance mode can scale to higher levels of
199
+ # aggregate throughput and operations per second with a tradeoff of
200
+ # slightly higher latencies for most file operations. This can't be
201
+ # changed after the file system has been created.
202
+ # @return [Types::FileSystemDescription] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
203
+ #
204
+ # * {Types::FileSystemDescription#owner_id #OwnerId} => String
205
+ # * {Types::FileSystemDescription#creation_token #CreationToken} => String
206
+ # * {Types::FileSystemDescription#file_system_id #FileSystemId} => String
207
+ # * {Types::FileSystemDescription#creation_time #CreationTime} => Time
208
+ # * {Types::FileSystemDescription#life_cycle_state #LifeCycleState} => String
209
+ # * {Types::FileSystemDescription#name #Name} => String
210
+ # * {Types::FileSystemDescription#number_of_mount_targets #NumberOfMountTargets} => Integer
211
+ # * {Types::FileSystemDescription#size_in_bytes #SizeInBytes} => Types::FileSystemSize
212
+ # * {Types::FileSystemDescription#performance_mode #PerformanceMode} => String
213
+ #
214
+ # @example Request syntax with placeholder values
215
+ # resp = client.create_file_system({
216
+ # creation_token: "CreationToken", # required
217
+ # performance_mode: "generalPurpose", # accepts generalPurpose, maxIO
218
+ # })
219
+ #
220
+ # @example Response structure
221
+ # resp.owner_id #=> String
222
+ # resp.creation_token #=> String
223
+ # resp.file_system_id #=> String
224
+ # resp.creation_time #=> Time
225
+ # resp.life_cycle_state #=> String, one of "creating", "available", "deleting", "deleted"
226
+ # resp.name #=> String
227
+ # resp.number_of_mount_targets #=> Integer
228
+ # resp.size_in_bytes.value #=> Integer
229
+ # resp.size_in_bytes.timestamp #=> Time
230
+ # resp.performance_mode #=> String, one of "generalPurpose", "maxIO"
231
+ # @overload create_file_system(params = {})
232
+ # @param [Hash] params ({})
233
+ def create_file_system(params = {}, options = {})
234
+ req = build_request(:create_file_system, params)
235
+ req.send_request(options)
236
+ end
237
+
238
+ # Creates a mount target for a file system. You can then mount the file
239
+ # system on EC2 instances via the mount target.
240
+ #
241
+ # You can create one mount target in each Availability Zone in your VPC.
242
+ # All EC2 instances in a VPC within a given Availability Zone share a
243
+ # single mount target for a given file system. If you have multiple
244
+ # subnets in an Availability Zone, you create a mount target in one of
245
+ # the subnets. EC2 instances do not need to be in the same subnet as the
246
+ # mount target in order to access their file system. For more
247
+ # information, see [Amazon EFS: How it Works][1].
248
+ #
249
+ # In the request, you also specify a file system ID for which you are
250
+ # creating the mount target and the file system's lifecycle state must
251
+ # be `available`. For more information, see DescribeFileSystems.
252
+ #
253
+ # In the request, you also provide a subnet ID, which determines the
254
+ # following:
255
+ #
256
+ # * VPC in which Amazon EFS creates the mount target
257
+ #
258
+ # * Availability Zone in which Amazon EFS creates the mount target
259
+ #
260
+ # * IP address range from which Amazon EFS selects the IP address of the
261
+ # mount target (if you don't specify an IP address in the request)
262
+ #
263
+ # After creating the mount target, Amazon EFS returns a response that
264
+ # includes, a `MountTargetId` and an `IpAddress`. You use this IP
265
+ # address when mounting the file system in an EC2 instance. You can also
266
+ # use the mount target's DNS name when mounting the file system. The
267
+ # EC2 instance on which you mount the file system via the mount target
268
+ # can resolve the mount target's DNS name to its IP address. For more
269
+ # information, see [How it Works: Implementation Overview][2].
270
+ #
271
+ # Note that you can create mount targets for a file system in only one
272
+ # VPC, and there can be only one mount target per Availability Zone.
273
+ # That is, if the file system already has one or more mount targets
274
+ # created for it, the subnet specified in the request to add another
275
+ # mount target must meet the following requirements:
276
+ #
277
+ # * Must belong to the same VPC as the subnets of the existing mount
278
+ # targets
279
+ #
280
+ # * Must not be in the same Availability Zone as any of the subnets of
281
+ # the existing mount targets
282
+ #
283
+ # If the request satisfies the requirements, Amazon EFS does the
284
+ # following:
285
+ #
286
+ # * Creates a new mount target in the specified subnet.
287
+ #
288
+ # * Also creates a new network interface in the subnet as follows:
289
+ #
290
+ # * If the request provides an `IpAddress`, Amazon EFS assigns that IP
291
+ # address to the network interface. Otherwise, Amazon EFS assigns a
292
+ # free address in the subnet (in the same way that the Amazon EC2
293
+ # `CreateNetworkInterface` call does when a request does not specify
294
+ # a primary private IP address).
295
+ #
296
+ # * If the request provides `SecurityGroups`, this network interface
297
+ # is associated with those security groups. Otherwise, it belongs to
298
+ # the default security group for the subnet's VPC.
299
+ #
300
+ # * Assigns the description `Mount target fsmt-id for file system
301
+ # fs-id ` where ` fsmt-id ` is the mount target ID, and ` fs-id ` is
302
+ # the `FileSystemId`.
303
+ #
304
+ # * Sets the `requesterManaged` property of the network interface to
305
+ # `true`, and the `requesterId` value to `EFS`.
306
+ #
307
+ # Each Amazon EFS mount target has one corresponding requestor-managed
308
+ # EC2 network interface. After the network interface is created,
309
+ # Amazon EFS sets the `NetworkInterfaceId` field in the mount
310
+ # target's description to the network interface ID, and the
311
+ # `IpAddress` field to its address. If network interface creation
312
+ # fails, the entire `CreateMountTarget` operation fails.
313
+ #
314
+ # <note markdown="1"> The `CreateMountTarget` call returns only after creating the network
315
+ # interface, but while the mount target state is still `creating`. You
316
+ # can check the mount target creation status by calling the
317
+ # DescribeFileSystems operation, which among other things returns the
318
+ # mount target state.
319
+ #
320
+ # </note>
321
+ #
322
+ # We recommend you create a mount target in each of the Availability
323
+ # Zones. There are cost considerations for using a file system in an
324
+ # Availability Zone through a mount target created in another
325
+ # Availability Zone. For more information, see [Amazon EFS][3]. In
326
+ # addition, by always using a mount target local to the instance's
327
+ # Availability Zone, you eliminate a partial failure scenario. If the
328
+ # Availability Zone in which your mount target is created goes down,
329
+ # then you won't be able to access your file system through that mount
330
+ # target.
331
+ #
332
+ # This operation requires permissions for the following action on the
333
+ # file system:
334
+ #
335
+ # * `elasticfilesystem:CreateMountTarget`
336
+ #
337
+ # ^
338
+ #
339
+ # This operation also requires permissions for the following Amazon EC2
340
+ # actions:
341
+ #
342
+ # * `ec2:DescribeSubnets`
343
+ #
344
+ # * `ec2:DescribeNetworkInterfaces`
345
+ #
346
+ # * `ec2:CreateNetworkInterface`
347
+ #
348
+ #
349
+ #
350
+ # [1]: http://docs.aws.amazon.com/efs/latest/ug/how-it-works.html
351
+ # [2]: http://docs.aws.amazon.com/efs/latest/ug/how-it-works.html#how-it-works-implementation
352
+ # [3]: http://aws.amazon.com/efs/
353
+ # @option params [required, String] :file_system_id
354
+ # ID of the file system for which to create the mount target.
355
+ # @option params [required, String] :subnet_id
356
+ # ID of the subnet to add the mount target in.
357
+ # @option params [String] :ip_address
358
+ # Valid IPv4 address within the address range of the specified subnet.
359
+ # @option params [Array<String>] :security_groups
360
+ # Up to five VPC security group IDs, of the form `sg-xxxxxxxx`. These
361
+ # must be for the same VPC as subnet specified.
362
+ # @return [Types::MountTargetDescription] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
363
+ #
364
+ # * {Types::MountTargetDescription#owner_id #OwnerId} => String
365
+ # * {Types::MountTargetDescription#mount_target_id #MountTargetId} => String
366
+ # * {Types::MountTargetDescription#file_system_id #FileSystemId} => String
367
+ # * {Types::MountTargetDescription#subnet_id #SubnetId} => String
368
+ # * {Types::MountTargetDescription#life_cycle_state #LifeCycleState} => String
369
+ # * {Types::MountTargetDescription#ip_address #IpAddress} => String
370
+ # * {Types::MountTargetDescription#network_interface_id #NetworkInterfaceId} => String
371
+ #
372
+ # @example Request syntax with placeholder values
373
+ # resp = client.create_mount_target({
374
+ # file_system_id: "FileSystemId", # required
375
+ # subnet_id: "SubnetId", # required
376
+ # ip_address: "IpAddress",
377
+ # security_groups: ["SecurityGroup"],
378
+ # })
379
+ #
380
+ # @example Response structure
381
+ # resp.owner_id #=> String
382
+ # resp.mount_target_id #=> String
383
+ # resp.file_system_id #=> String
384
+ # resp.subnet_id #=> String
385
+ # resp.life_cycle_state #=> String, one of "creating", "available", "deleting", "deleted"
386
+ # resp.ip_address #=> String
387
+ # resp.network_interface_id #=> String
388
+ # @overload create_mount_target(params = {})
389
+ # @param [Hash] params ({})
390
+ def create_mount_target(params = {}, options = {})
391
+ req = build_request(:create_mount_target, params)
392
+ req.send_request(options)
393
+ end
394
+
395
+ # Creates or overwrites tags associated with a file system. Each tag is
396
+ # a key-value pair. If a tag key specified in the request already exists
397
+ # on the file system, this operation overwrites its value with the value
398
+ # provided in the request. If you add the `Name` tag to your file
399
+ # system, Amazon EFS returns it in the response to the
400
+ # DescribeFileSystems operation.
401
+ #
402
+ # This operation requires permission for the
403
+ # `elasticfilesystem:CreateTags` action.
404
+ # @option params [required, String] :file_system_id
405
+ # ID of the file system whose tags you want to modify (String). This
406
+ # operation modifies the tags only, not the file system.
407
+ # @option params [required, Array<Types::Tag>] :tags
408
+ # Array of `Tag` objects to add. Each `Tag` object is a key-value pair.
409
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
410
+ #
411
+ # @example Request syntax with placeholder values
412
+ # resp = client.create_tags({
413
+ # file_system_id: "FileSystemId", # required
414
+ # tags: [ # required
415
+ # {
416
+ # key: "TagKey", # required
417
+ # value: "TagValue", # required
418
+ # },
419
+ # ],
420
+ # })
421
+ # @overload create_tags(params = {})
422
+ # @param [Hash] params ({})
423
+ def create_tags(params = {}, options = {})
424
+ req = build_request(:create_tags, params)
425
+ req.send_request(options)
426
+ end
427
+
428
+ # Deletes a file system, permanently severing access to its contents.
429
+ # Upon return, the file system no longer exists and you can't access
430
+ # any contents of the deleted file system.
431
+ #
432
+ # You can't delete a file system that is in use. That is, if the file
433
+ # system has any mount targets, you must first delete them. For more
434
+ # information, see DescribeMountTargets and DeleteMountTarget.
435
+ #
436
+ # <note markdown="1"> The `DeleteFileSystem` call returns while the file system state is
437
+ # still `deleting`. You can check the file system deletion status by
438
+ # calling the DescribeFileSystems operation, which returns a list of
439
+ # file systems in your account. If you pass file system ID or creation
440
+ # token for the deleted file system, the DescribeFileSystems returns a
441
+ # `404 FileSystemNotFound` error.
442
+ #
443
+ # </note>
444
+ #
445
+ # This operation requires permissions for the
446
+ # `elasticfilesystem:DeleteFileSystem` action.
447
+ # @option params [required, String] :file_system_id
448
+ # ID of the file system you want to delete.
449
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
450
+ #
451
+ # @example Request syntax with placeholder values
452
+ # resp = client.delete_file_system({
453
+ # file_system_id: "FileSystemId", # required
454
+ # })
455
+ # @overload delete_file_system(params = {})
456
+ # @param [Hash] params ({})
457
+ def delete_file_system(params = {}, options = {})
458
+ req = build_request(:delete_file_system, params)
459
+ req.send_request(options)
460
+ end
461
+
462
+ # Deletes the specified mount target.
463
+ #
464
+ # This operation forcibly breaks any mounts of the file system via the
465
+ # mount target that is being deleted, which might disrupt instances or
466
+ # applications using those mounts. To avoid applications getting cut off
467
+ # abruptly, you might consider unmounting any mounts of the mount
468
+ # target, if feasible. The operation also deletes the associated network
469
+ # interface. Uncommitted writes may be lost, but breaking a mount target
470
+ # using this operation does not corrupt the file system itself. The file
471
+ # system you created remains. You can mount an EC2 instance in your VPC
472
+ # via another mount target.
473
+ #
474
+ # This operation requires permissions for the following action on the
475
+ # file system:
476
+ #
477
+ # * `elasticfilesystem:DeleteMountTarget`
478
+ #
479
+ # ^
480
+ #
481
+ # <note markdown="1"> The `DeleteMountTarget` call returns while the mount target state is
482
+ # still `deleting`. You can check the mount target deletion by calling
483
+ # the DescribeMountTargets operation, which returns a list of mount
484
+ # target descriptions for the given file system.
485
+ #
486
+ # </note>
487
+ #
488
+ # The operation also requires permissions for the following Amazon EC2
489
+ # action on the mount target's network interface:
490
+ #
491
+ # * `ec2:DeleteNetworkInterface`
492
+ #
493
+ # ^
494
+ # @option params [required, String] :mount_target_id
495
+ # ID of the mount target to delete (String).
496
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
497
+ #
498
+ # @example Request syntax with placeholder values
499
+ # resp = client.delete_mount_target({
500
+ # mount_target_id: "MountTargetId", # required
501
+ # })
502
+ # @overload delete_mount_target(params = {})
503
+ # @param [Hash] params ({})
504
+ def delete_mount_target(params = {}, options = {})
505
+ req = build_request(:delete_mount_target, params)
506
+ req.send_request(options)
507
+ end
508
+
509
+ # Deletes the specified tags from a file system. If the `DeleteTags`
510
+ # request includes a tag key that does not exist, Amazon EFS ignores it
511
+ # and doesn't cause an error. For more information about tags and
512
+ # related restrictions, see [Tag Restrictions][1] in the *AWS Billing
513
+ # and Cost Management User Guide*.
514
+ #
515
+ # This operation requires permissions for the
516
+ # `elasticfilesystem:DeleteTags` action.
517
+ #
518
+ #
519
+ #
520
+ # [1]: http://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html
521
+ # @option params [required, String] :file_system_id
522
+ # ID of the file system whose tags you want to delete (String).
523
+ # @option params [required, Array<String>] :tag_keys
524
+ # List of tag keys to delete.
525
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
526
+ #
527
+ # @example Request syntax with placeholder values
528
+ # resp = client.delete_tags({
529
+ # file_system_id: "FileSystemId", # required
530
+ # tag_keys: ["TagKey"], # required
531
+ # })
532
+ # @overload delete_tags(params = {})
533
+ # @param [Hash] params ({})
534
+ def delete_tags(params = {}, options = {})
535
+ req = build_request(:delete_tags, params)
536
+ req.send_request(options)
537
+ end
538
+
539
+ # Returns the description of a specific Amazon EFS file system if either
540
+ # the file system `CreationToken` or the `FileSystemId` is provided.
541
+ # Otherwise, it returns descriptions of all file systems owned by the
542
+ # caller's AWS account in the AWS Region of the endpoint that you're
543
+ # calling.
544
+ #
545
+ # When retrieving all file system descriptions, you can optionally
546
+ # specify the `MaxItems` parameter to limit the number of descriptions
547
+ # in a response. If more file system descriptions remain, Amazon EFS
548
+ # returns a `NextMarker`, an opaque token, in the response. In this
549
+ # case, you should send a subsequent request with the `Marker` request
550
+ # parameter set to the value of `NextMarker`.
551
+ #
552
+ # To retrieve a list of your file system descriptions, this operation is
553
+ # used in an iterative process, where `DescribeFileSystems` is called
554
+ # first without the `Marker` and then the operation continues to call it
555
+ # with the `Marker` parameter set to the value of the `NextMarker` from
556
+ # the previous response until the response has no `NextMarker`.
557
+ #
558
+ # The implementation may return fewer than `MaxItems` file system
559
+ # descriptions while still including a `NextMarker` value.
560
+ #
561
+ # The order of file systems returned in the response of one
562
+ # `DescribeFileSystems` call and the order of file systems returned
563
+ # across the responses of a multi-call iteration is unspecified.
564
+ #
565
+ # This operation requires permissions for the
566
+ # `elasticfilesystem:DescribeFileSystems` action.
567
+ # @option params [Integer] :max_items
568
+ # (Optional) Specifies the maximum number of file systems to return in
569
+ # the response (integer). This parameter value must be greater than 0.
570
+ # The number of items that Amazon EFS returns is the minimum of the
571
+ # `MaxItems` parameter specified in the request and the service's
572
+ # internal maximum number of items per page.
573
+ # @option params [String] :marker
574
+ # (Optional) Opaque pagination token returned from a previous
575
+ # `DescribeFileSystems` operation (String). If present, specifies to
576
+ # continue the list from where the returning call had left off.
577
+ # @option params [String] :creation_token
578
+ # (Optional) Restricts the list to the file system with this creation
579
+ # token (String). You specify a creation token when you create an Amazon
580
+ # EFS file system.
581
+ # @option params [String] :file_system_id
582
+ # (Optional) ID of the file system whose description you want to
583
+ # retrieve (String).
584
+ # @return [Types::DescribeFileSystemsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
585
+ #
586
+ # * {Types::DescribeFileSystemsResponse#marker #Marker} => String
587
+ # * {Types::DescribeFileSystemsResponse#file_systems #FileSystems} => Array&lt;Types::FileSystemDescription&gt;
588
+ # * {Types::DescribeFileSystemsResponse#next_marker #NextMarker} => String
589
+ #
590
+ # @example Request syntax with placeholder values
591
+ # resp = client.describe_file_systems({
592
+ # max_items: 1,
593
+ # marker: "Marker",
594
+ # creation_token: "CreationToken",
595
+ # file_system_id: "FileSystemId",
596
+ # })
597
+ #
598
+ # @example Response structure
599
+ # resp.marker #=> String
600
+ # resp.file_systems #=> Array
601
+ # resp.file_systems[0].owner_id #=> String
602
+ # resp.file_systems[0].creation_token #=> String
603
+ # resp.file_systems[0].file_system_id #=> String
604
+ # resp.file_systems[0].creation_time #=> Time
605
+ # resp.file_systems[0].life_cycle_state #=> String, one of "creating", "available", "deleting", "deleted"
606
+ # resp.file_systems[0].name #=> String
607
+ # resp.file_systems[0].number_of_mount_targets #=> Integer
608
+ # resp.file_systems[0].size_in_bytes.value #=> Integer
609
+ # resp.file_systems[0].size_in_bytes.timestamp #=> Time
610
+ # resp.file_systems[0].performance_mode #=> String, one of "generalPurpose", "maxIO"
611
+ # resp.next_marker #=> String
612
+ # @overload describe_file_systems(params = {})
613
+ # @param [Hash] params ({})
614
+ def describe_file_systems(params = {}, options = {})
615
+ req = build_request(:describe_file_systems, params)
616
+ req.send_request(options)
617
+ end
618
+
619
+ # Returns the security groups currently in effect for a mount target.
620
+ # This operation requires that the network interface of the mount target
621
+ # has been created and the lifecycle state of the mount target is not
622
+ # `deleted`.
623
+ #
624
+ # This operation requires permissions for the following actions:
625
+ #
626
+ # * `elasticfilesystem:DescribeMountTargetSecurityGroups` action on the
627
+ # mount target's file system.
628
+ #
629
+ # * `ec2:DescribeNetworkInterfaceAttribute` action on the mount
630
+ # target's network interface.
631
+ # @option params [required, String] :mount_target_id
632
+ # ID of the mount target whose security groups you want to retrieve.
633
+ # @return [Types::DescribeMountTargetSecurityGroupsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
634
+ #
635
+ # * {Types::DescribeMountTargetSecurityGroupsResponse#security_groups #SecurityGroups} => Array&lt;String&gt;
636
+ #
637
+ # @example Request syntax with placeholder values
638
+ # resp = client.describe_mount_target_security_groups({
639
+ # mount_target_id: "MountTargetId", # required
640
+ # })
641
+ #
642
+ # @example Response structure
643
+ # resp.security_groups #=> Array
644
+ # resp.security_groups[0] #=> String
645
+ # @overload describe_mount_target_security_groups(params = {})
646
+ # @param [Hash] params ({})
647
+ def describe_mount_target_security_groups(params = {}, options = {})
648
+ req = build_request(:describe_mount_target_security_groups, params)
649
+ req.send_request(options)
650
+ end
651
+
652
+ # Returns the descriptions of all the current mount targets, or a
653
+ # specific mount target, for a file system. When requesting all of the
654
+ # current mount targets, the order of mount targets returned in the
655
+ # response is unspecified.
656
+ #
657
+ # This operation requires permissions for the
658
+ # `elasticfilesystem:DescribeMountTargets` action, on either the file
659
+ # system ID that you specify in `FileSystemId`, or on the file system of
660
+ # the mount target that you specify in `MountTargetId`.
661
+ # @option params [Integer] :max_items
662
+ # (Optional) Maximum number of mount targets to return in the response.
663
+ # It must be an integer with a value greater than zero.
664
+ # @option params [String] :marker
665
+ # (Optional) Opaque pagination token returned from a previous
666
+ # `DescribeMountTargets` operation (String). If present, it specifies to
667
+ # continue the list from where the previous returning call left off.
668
+ # @option params [String] :file_system_id
669
+ # (Optional) ID of the file system whose mount targets you want to list
670
+ # (String). It must be included in your request if `MountTargetId` is
671
+ # not included.
672
+ # @option params [String] :mount_target_id
673
+ # (Optional) ID of the mount target that you want to have described
674
+ # (String). It must be included in your request if `FileSystemId` is not
675
+ # included.
676
+ # @return [Types::DescribeMountTargetsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
677
+ #
678
+ # * {Types::DescribeMountTargetsResponse#marker #Marker} => String
679
+ # * {Types::DescribeMountTargetsResponse#mount_targets #MountTargets} => Array&lt;Types::MountTargetDescription&gt;
680
+ # * {Types::DescribeMountTargetsResponse#next_marker #NextMarker} => String
681
+ #
682
+ # @example Request syntax with placeholder values
683
+ # resp = client.describe_mount_targets({
684
+ # max_items: 1,
685
+ # marker: "Marker",
686
+ # file_system_id: "FileSystemId",
687
+ # mount_target_id: "MountTargetId",
688
+ # })
689
+ #
690
+ # @example Response structure
691
+ # resp.marker #=> String
692
+ # resp.mount_targets #=> Array
693
+ # resp.mount_targets[0].owner_id #=> String
694
+ # resp.mount_targets[0].mount_target_id #=> String
695
+ # resp.mount_targets[0].file_system_id #=> String
696
+ # resp.mount_targets[0].subnet_id #=> String
697
+ # resp.mount_targets[0].life_cycle_state #=> String, one of "creating", "available", "deleting", "deleted"
698
+ # resp.mount_targets[0].ip_address #=> String
699
+ # resp.mount_targets[0].network_interface_id #=> String
700
+ # resp.next_marker #=> String
701
+ # @overload describe_mount_targets(params = {})
702
+ # @param [Hash] params ({})
703
+ def describe_mount_targets(params = {}, options = {})
704
+ req = build_request(:describe_mount_targets, params)
705
+ req.send_request(options)
706
+ end
707
+
708
+ # Returns the tags associated with a file system. The order of tags
709
+ # returned in the response of one `DescribeTags` call and the order of
710
+ # tags returned across the responses of a multi-call iteration (when
711
+ # using pagination) is unspecified.
712
+ #
713
+ # This operation requires permissions for the
714
+ # `elasticfilesystem:DescribeTags` action.
715
+ # @option params [Integer] :max_items
716
+ # (Optional) Maximum number of file system tags to return in the
717
+ # response. It must be an integer with a value greater than zero.
718
+ # @option params [String] :marker
719
+ # (Optional) Opaque pagination token returned from a previous
720
+ # `DescribeTags` operation (String). If present, it specifies to
721
+ # continue the list from where the previous call left off.
722
+ # @option params [required, String] :file_system_id
723
+ # ID of the file system whose tag set you want to retrieve.
724
+ # @return [Types::DescribeTagsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
725
+ #
726
+ # * {Types::DescribeTagsResponse#marker #Marker} => String
727
+ # * {Types::DescribeTagsResponse#tags #Tags} => Array&lt;Types::Tag&gt;
728
+ # * {Types::DescribeTagsResponse#next_marker #NextMarker} => String
729
+ #
730
+ # @example Request syntax with placeholder values
731
+ # resp = client.describe_tags({
732
+ # max_items: 1,
733
+ # marker: "Marker",
734
+ # file_system_id: "FileSystemId", # required
735
+ # })
736
+ #
737
+ # @example Response structure
738
+ # resp.marker #=> String
739
+ # resp.tags #=> Array
740
+ # resp.tags[0].key #=> String
741
+ # resp.tags[0].value #=> String
742
+ # resp.next_marker #=> String
743
+ # @overload describe_tags(params = {})
744
+ # @param [Hash] params ({})
745
+ def describe_tags(params = {}, options = {})
746
+ req = build_request(:describe_tags, params)
747
+ req.send_request(options)
748
+ end
749
+
750
+ # Modifies the set of security groups in effect for a mount target.
751
+ #
752
+ # When you create a mount target, Amazon EFS also creates a new network
753
+ # interface. For more information, see CreateMountTarget. This operation
754
+ # replaces the security groups in effect for the network interface
755
+ # associated with a mount target, with the `SecurityGroups` provided in
756
+ # the request. This operation requires that the network interface of the
757
+ # mount target has been created and the lifecycle state of the mount
758
+ # target is not `deleted`.
759
+ #
760
+ # The operation requires permissions for the following actions:
761
+ #
762
+ # * `elasticfilesystem:ModifyMountTargetSecurityGroups` action on the
763
+ # mount target's file system.
764
+ #
765
+ # * `ec2:ModifyNetworkInterfaceAttribute` action on the mount target's
766
+ # network interface.
767
+ # @option params [required, String] :mount_target_id
768
+ # ID of the mount target whose security groups you want to modify.
769
+ # @option params [Array<String>] :security_groups
770
+ # Array of up to five VPC security group IDs.
771
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
772
+ #
773
+ # @example Request syntax with placeholder values
774
+ # resp = client.modify_mount_target_security_groups({
775
+ # mount_target_id: "MountTargetId", # required
776
+ # security_groups: ["SecurityGroup"],
777
+ # })
778
+ # @overload modify_mount_target_security_groups(params = {})
779
+ # @param [Hash] params ({})
780
+ def modify_mount_target_security_groups(params = {}, options = {})
781
+ req = build_request(:modify_mount_target_security_groups, params)
782
+ req.send_request(options)
783
+ end
784
+
785
+ # @!endgroup
786
+
787
+ # @param params ({})
788
+ # @api private
789
+ def build_request(operation_name, params = {})
790
+ handlers = @handlers.for(operation_name)
791
+ context = Seahorse::Client::RequestContext.new(
792
+ operation_name: operation_name,
793
+ operation: config.api.operation(operation_name),
794
+ client: self,
795
+ params: params,
796
+ config: config)
797
+ context[:gem_name] = 'aws-sdk-efs'
798
+ context[:gem_version] = '1.0.0.rc1'
799
+ Seahorse::Client::Request.new(handlers, context)
800
+ end
801
+
802
+ # @api private
803
+ # @deprecated
804
+ def waiter_names
805
+ []
806
+ end
807
+
808
+ class << self
809
+
810
+ # @api private
811
+ attr_reader :identifier
812
+
813
+ # @api private
814
+ def errors_module
815
+ Errors
816
+ end
817
+
818
+ end
819
+ end
820
+ end
821
+ end