aws-sdk-efs 1.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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