aws-sdk-elasticloadbalancing 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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: f2c241c919b2d2d404b3c418ea9f14f07849109c
4
+ data.tar.gz: 8c03f479e3649d5f74d43319cc13dceeabeb8a4a
5
+ SHA512:
6
+ metadata.gz: b8fafb0a3d4952194ba14ba5377139e88312b54fa9328500fa58e93179de61b98f685191032a1ea107927a22990d9aa438826eddfb61755c8ec5c19f495fa998
7
+ data.tar.gz: bc91b49c1a59eaf8d8006efb888ab2329d8749cc5e4bfeab27f849cb3be46b0aad509a4599bcda4ec1730467f9f1b14f783425363da65d20f312eaf242e77c18
@@ -0,0 +1,48 @@
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-elasticloadbalancing/types'
12
+ require_relative 'aws-sdk-elasticloadbalancing/client_api'
13
+ require_relative 'aws-sdk-elasticloadbalancing/client'
14
+ require_relative 'aws-sdk-elasticloadbalancing/errors'
15
+ require_relative 'aws-sdk-elasticloadbalancing/waiters'
16
+ require_relative 'aws-sdk-elasticloadbalancing/resource'
17
+ require_relative 'aws-sdk-elasticloadbalancing/customizations'
18
+
19
+ # This module provides support for Elastic Load Balancing. This module is available in the
20
+ # `aws-sdk-elasticloadbalancing` gem.
21
+ #
22
+ # # Client
23
+ #
24
+ # The {Client} class provides one method for each API operation. Operation
25
+ # methods each accept a hash of request parameters and return a response
26
+ # structure.
27
+ #
28
+ # See {Client} for more information.
29
+ #
30
+ # # Errors
31
+ #
32
+ # Errors returned from Elastic Load Balancing all
33
+ # extend {Errors::ServiceError}.
34
+ #
35
+ # begin
36
+ # # do stuff
37
+ # rescue Aws::ElasticLoadBalancing::Errors::ServiceError
38
+ # # rescues all service API errors
39
+ # end
40
+ #
41
+ # See {Errors} for more information.
42
+ #
43
+ # @service
44
+ module Aws::ElasticLoadBalancing
45
+
46
+ GEM_VERSION = '1.0.0.rc1'
47
+
48
+ end
@@ -0,0 +1,1448 @@
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/query.rb'
23
+
24
+ Aws::Plugins::GlobalConfiguration.add_identifier(:elasticloadbalancing)
25
+
26
+ module Aws
27
+ module ElasticLoadBalancing
28
+ class Client < Seahorse::Client::Base
29
+
30
+ include Aws::ClientStubs
31
+
32
+ @identifier = :elasticloadbalancing
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::Query)
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
+ # Adds the specified tags to the specified load balancer. Each load
134
+ # balancer can have a maximum of 10 tags.
135
+ #
136
+ # Each tag consists of a key and an optional value. If a tag with the
137
+ # same key is already associated with the load balancer, `AddTags`
138
+ # updates its value.
139
+ #
140
+ # For more information, see [Tag Your Classic Load Balancer][1] in the
141
+ # *Classic Load Balancers Guide*.
142
+ #
143
+ #
144
+ #
145
+ # [1]: http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/add-remove-tags.html
146
+ # @option params [required, Array<String>] :load_balancer_names
147
+ # The name of the load balancer. You can specify one load balancer only.
148
+ # @option params [required, Array<Types::Tag>] :tags
149
+ # The tags.
150
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
151
+ #
152
+ # @example Request syntax with placeholder values
153
+ # resp = client.add_tags({
154
+ # load_balancer_names: ["AccessPointName"], # required
155
+ # tags: [ # required
156
+ # {
157
+ # key: "TagKey", # required
158
+ # value: "TagValue",
159
+ # },
160
+ # ],
161
+ # })
162
+ # @overload add_tags(params = {})
163
+ # @param [Hash] params ({})
164
+ def add_tags(params = {}, options = {})
165
+ req = build_request(:add_tags, params)
166
+ req.send_request(options)
167
+ end
168
+
169
+ # Associates one or more security groups with your load balancer in a
170
+ # virtual private cloud (VPC). The specified security groups override
171
+ # the previously associated security groups.
172
+ #
173
+ # For more information, see [Security Groups for Load Balancers in a
174
+ # VPC][1] in the *Classic Load Balancers Guide*.
175
+ #
176
+ #
177
+ #
178
+ # [1]: http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-security-groups.html#elb-vpc-security-groups
179
+ # @option params [required, String] :load_balancer_name
180
+ # The name of the load balancer.
181
+ # @option params [required, Array<String>] :security_groups
182
+ # The IDs of the security groups to associate with the load balancer.
183
+ # Note that you cannot specify the name of the security group.
184
+ # @return [Types::ApplySecurityGroupsToLoadBalancerOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
185
+ #
186
+ # * {Types::ApplySecurityGroupsToLoadBalancerOutput#security_groups #SecurityGroups} => Array&lt;String&gt;
187
+ #
188
+ # @example Request syntax with placeholder values
189
+ # resp = client.apply_security_groups_to_load_balancer({
190
+ # load_balancer_name: "AccessPointName", # required
191
+ # security_groups: ["SecurityGroupId"], # required
192
+ # })
193
+ #
194
+ # @example Response structure
195
+ # resp.security_groups #=> Array
196
+ # resp.security_groups[0] #=> String
197
+ # @overload apply_security_groups_to_load_balancer(params = {})
198
+ # @param [Hash] params ({})
199
+ def apply_security_groups_to_load_balancer(params = {}, options = {})
200
+ req = build_request(:apply_security_groups_to_load_balancer, params)
201
+ req.send_request(options)
202
+ end
203
+
204
+ # Adds one or more subnets to the set of configured subnets for the
205
+ # specified load balancer.
206
+ #
207
+ # The load balancer evenly distributes requests across all registered
208
+ # subnets. For more information, see [Add or Remove Subnets for Your
209
+ # Load Balancer in a VPC][1] in the *Classic Load Balancers Guide*.
210
+ #
211
+ #
212
+ #
213
+ # [1]: http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-manage-subnets.html
214
+ # @option params [required, String] :load_balancer_name
215
+ # The name of the load balancer.
216
+ # @option params [required, Array<String>] :subnets
217
+ # The IDs of the subnets to add. You can add only one subnet per
218
+ # Availability Zone.
219
+ # @return [Types::AttachLoadBalancerToSubnetsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
220
+ #
221
+ # * {Types::AttachLoadBalancerToSubnetsOutput#subnets #Subnets} => Array&lt;String&gt;
222
+ #
223
+ # @example Request syntax with placeholder values
224
+ # resp = client.attach_load_balancer_to_subnets({
225
+ # load_balancer_name: "AccessPointName", # required
226
+ # subnets: ["SubnetId"], # required
227
+ # })
228
+ #
229
+ # @example Response structure
230
+ # resp.subnets #=> Array
231
+ # resp.subnets[0] #=> String
232
+ # @overload attach_load_balancer_to_subnets(params = {})
233
+ # @param [Hash] params ({})
234
+ def attach_load_balancer_to_subnets(params = {}, options = {})
235
+ req = build_request(:attach_load_balancer_to_subnets, params)
236
+ req.send_request(options)
237
+ end
238
+
239
+ # Specifies the health check settings to use when evaluating the health
240
+ # state of your EC2 instances.
241
+ #
242
+ # For more information, see [Configure Health Checks for Your Load
243
+ # Balancer][1] in the *Classic Load Balancers Guide*.
244
+ #
245
+ #
246
+ #
247
+ # [1]: http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-healthchecks.html
248
+ # @option params [required, String] :load_balancer_name
249
+ # The name of the load balancer.
250
+ # @option params [required, Types::HealthCheck] :health_check
251
+ # The configuration information.
252
+ # @return [Types::ConfigureHealthCheckOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
253
+ #
254
+ # * {Types::ConfigureHealthCheckOutput#health_check #HealthCheck} => Types::HealthCheck
255
+ #
256
+ # @example Request syntax with placeholder values
257
+ # resp = client.configure_health_check({
258
+ # load_balancer_name: "AccessPointName", # required
259
+ # health_check: { # required
260
+ # target: "HealthCheckTarget", # required
261
+ # interval: 1, # required
262
+ # timeout: 1, # required
263
+ # unhealthy_threshold: 1, # required
264
+ # healthy_threshold: 1, # required
265
+ # },
266
+ # })
267
+ #
268
+ # @example Response structure
269
+ # resp.health_check.target #=> String
270
+ # resp.health_check.interval #=> Integer
271
+ # resp.health_check.timeout #=> Integer
272
+ # resp.health_check.unhealthy_threshold #=> Integer
273
+ # resp.health_check.healthy_threshold #=> Integer
274
+ # @overload configure_health_check(params = {})
275
+ # @param [Hash] params ({})
276
+ def configure_health_check(params = {}, options = {})
277
+ req = build_request(:configure_health_check, params)
278
+ req.send_request(options)
279
+ end
280
+
281
+ # Generates a stickiness policy with sticky session lifetimes that
282
+ # follow that of an application-generated cookie. This policy can be
283
+ # associated only with HTTP/HTTPS listeners.
284
+ #
285
+ # This policy is similar to the policy created by
286
+ # CreateLBCookieStickinessPolicy, except that the lifetime of the
287
+ # special Elastic Load Balancing cookie, `AWSELB`, follows the lifetime
288
+ # of the application-generated cookie specified in the policy
289
+ # configuration. The load balancer only inserts a new stickiness cookie
290
+ # when the application response includes a new application cookie.
291
+ #
292
+ # If the application cookie is explicitly removed or expires, the
293
+ # session stops being sticky until a new application cookie is issued.
294
+ #
295
+ # For more information, see [Application-Controlled Session
296
+ # Stickiness][1] in the *Classic Load Balancers Guide*.
297
+ #
298
+ #
299
+ #
300
+ # [1]: http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-sticky-sessions.html#enable-sticky-sessions-application
301
+ # @option params [required, String] :load_balancer_name
302
+ # The name of the load balancer.
303
+ # @option params [required, String] :policy_name
304
+ # The name of the policy being created. Policy names must consist of
305
+ # alphanumeric characters and dashes (-). This name must be unique
306
+ # within the set of policies for this load balancer.
307
+ # @option params [required, String] :cookie_name
308
+ # The name of the application cookie used for stickiness.
309
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
310
+ #
311
+ # @example Request syntax with placeholder values
312
+ # resp = client.create_app_cookie_stickiness_policy({
313
+ # load_balancer_name: "AccessPointName", # required
314
+ # policy_name: "PolicyName", # required
315
+ # cookie_name: "CookieName", # required
316
+ # })
317
+ # @overload create_app_cookie_stickiness_policy(params = {})
318
+ # @param [Hash] params ({})
319
+ def create_app_cookie_stickiness_policy(params = {}, options = {})
320
+ req = build_request(:create_app_cookie_stickiness_policy, params)
321
+ req.send_request(options)
322
+ end
323
+
324
+ # Generates a stickiness policy with sticky session lifetimes controlled
325
+ # by the lifetime of the browser (user-agent) or a specified expiration
326
+ # period. This policy can be associated only with HTTP/HTTPS listeners.
327
+ #
328
+ # When a load balancer implements this policy, the load balancer uses a
329
+ # special cookie to track the instance for each request. When the load
330
+ # balancer receives a request, it first checks to see if this cookie is
331
+ # present in the request. If so, the load balancer sends the request to
332
+ # the application server specified in the cookie. If not, the load
333
+ # balancer sends the request to a server that is chosen based on the
334
+ # existing load-balancing algorithm.
335
+ #
336
+ # A cookie is inserted into the response for binding subsequent requests
337
+ # from the same user to that server. The validity of the cookie is based
338
+ # on the cookie expiration time, which is specified in the policy
339
+ # configuration.
340
+ #
341
+ # For more information, see [Duration-Based Session Stickiness][1] in
342
+ # the *Classic Load Balancers Guide*.
343
+ #
344
+ #
345
+ #
346
+ # [1]: http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-sticky-sessions.html#enable-sticky-sessions-duration
347
+ # @option params [required, String] :load_balancer_name
348
+ # The name of the load balancer.
349
+ # @option params [required, String] :policy_name
350
+ # The name of the policy being created. Policy names must consist of
351
+ # alphanumeric characters and dashes (-). This name must be unique
352
+ # within the set of policies for this load balancer.
353
+ # @option params [Integer] :cookie_expiration_period
354
+ # The time period, in seconds, after which the cookie should be
355
+ # considered stale. If you do not specify this parameter, the default
356
+ # value is 0, which indicates that the sticky session should last for
357
+ # the duration of the browser session.
358
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
359
+ #
360
+ # @example Request syntax with placeholder values
361
+ # resp = client.create_lb_cookie_stickiness_policy({
362
+ # load_balancer_name: "AccessPointName", # required
363
+ # policy_name: "PolicyName", # required
364
+ # cookie_expiration_period: 1,
365
+ # })
366
+ # @overload create_lb_cookie_stickiness_policy(params = {})
367
+ # @param [Hash] params ({})
368
+ def create_lb_cookie_stickiness_policy(params = {}, options = {})
369
+ req = build_request(:create_lb_cookie_stickiness_policy, params)
370
+ req.send_request(options)
371
+ end
372
+
373
+ # Creates a Classic load balancer.
374
+ #
375
+ # You can add listeners, security groups, subnets, and tags when you
376
+ # create your load balancer, or you can add them later using
377
+ # CreateLoadBalancerListeners, ApplySecurityGroupsToLoadBalancer,
378
+ # AttachLoadBalancerToSubnets, and AddTags.
379
+ #
380
+ # To describe your current load balancers, see DescribeLoadBalancers.
381
+ # When you are finished with a load balancer, you can delete it using
382
+ # DeleteLoadBalancer.
383
+ #
384
+ # You can create up to 20 load balancers per region per account. You can
385
+ # request an increase for the number of load balancers for your account.
386
+ # For more information, see [Limits for Your Classic Load Balancer][1]
387
+ # in the *Classic Load Balancers Guide*.
388
+ #
389
+ #
390
+ #
391
+ # [1]: http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-limits.html
392
+ # @option params [required, String] :load_balancer_name
393
+ # The name of the load balancer.
394
+ #
395
+ # This name must be unique within your set of load balancers for the
396
+ # region, must have a maximum of 32 characters, must contain only
397
+ # alphanumeric characters or hyphens, and cannot begin or end with a
398
+ # hyphen.
399
+ # @option params [required, Array<Types::Listener>] :listeners
400
+ # The listeners.
401
+ #
402
+ # For more information, see [Listeners for Your Classic Load
403
+ # Balancer][1] in the *Classic Load Balancers Guide*.
404
+ #
405
+ #
406
+ #
407
+ # [1]: http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-listener-config.html
408
+ # @option params [Array<String>] :availability_zones
409
+ # One or more Availability Zones from the same region as the load
410
+ # balancer.
411
+ #
412
+ # You must specify at least one Availability Zone.
413
+ #
414
+ # You can add more Availability Zones after you create the load balancer
415
+ # using EnableAvailabilityZonesForLoadBalancer.
416
+ # @option params [Array<String>] :subnets
417
+ # The IDs of the subnets in your VPC to attach to the load balancer.
418
+ # Specify one subnet per Availability Zone specified in
419
+ # `AvailabilityZones`.
420
+ # @option params [Array<String>] :security_groups
421
+ # The IDs of the security groups to assign to the load balancer.
422
+ # @option params [String] :scheme
423
+ # The type of a load balancer. Valid only for load balancers in a VPC.
424
+ #
425
+ # By default, Elastic Load Balancing creates an Internet-facing load
426
+ # balancer with a DNS name that resolves to public IP addresses. For
427
+ # more information about Internet-facing and Internal load balancers,
428
+ # see [Load Balancer Scheme][1] in the *Elastic Load Balancing User
429
+ # Guide*.
430
+ #
431
+ # Specify `internal` to create a load balancer with a DNS name that
432
+ # resolves to private IP addresses.
433
+ #
434
+ #
435
+ #
436
+ # [1]: http://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/how-elastic-load-balancing-works.html#load-balancer-scheme
437
+ # @option params [Array<Types::Tag>] :tags
438
+ # A list of tags to assign to the load balancer.
439
+ #
440
+ # For more information about tagging your load balancer, see [Tag Your
441
+ # Classic Load Balancer][1] in the *Classic Load Balancers Guide*.
442
+ #
443
+ #
444
+ #
445
+ # [1]: http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/add-remove-tags.html
446
+ # @return [Types::CreateAccessPointOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
447
+ #
448
+ # * {Types::CreateAccessPointOutput#dns_name #DNSName} => String
449
+ #
450
+ # @example Request syntax with placeholder values
451
+ # resp = client.create_load_balancer({
452
+ # load_balancer_name: "AccessPointName", # required
453
+ # listeners: [ # required
454
+ # {
455
+ # protocol: "Protocol", # required
456
+ # load_balancer_port: 1, # required
457
+ # instance_protocol: "Protocol",
458
+ # instance_port: 1, # required
459
+ # ssl_certificate_id: "SSLCertificateId",
460
+ # },
461
+ # ],
462
+ # availability_zones: ["AvailabilityZone"],
463
+ # subnets: ["SubnetId"],
464
+ # security_groups: ["SecurityGroupId"],
465
+ # scheme: "LoadBalancerScheme",
466
+ # tags: [
467
+ # {
468
+ # key: "TagKey", # required
469
+ # value: "TagValue",
470
+ # },
471
+ # ],
472
+ # })
473
+ #
474
+ # @example Response structure
475
+ # resp.dns_name #=> String
476
+ # @overload create_load_balancer(params = {})
477
+ # @param [Hash] params ({})
478
+ def create_load_balancer(params = {}, options = {})
479
+ req = build_request(:create_load_balancer, params)
480
+ req.send_request(options)
481
+ end
482
+
483
+ # Creates one or more listeners for the specified load balancer. If a
484
+ # listener with the specified port does not already exist, it is
485
+ # created; otherwise, the properties of the new listener must match the
486
+ # properties of the existing listener.
487
+ #
488
+ # For more information, see [Listeners for Your Classic Load
489
+ # Balancer][1] in the *Classic Load Balancers Guide*.
490
+ #
491
+ #
492
+ #
493
+ # [1]: http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-listener-config.html
494
+ # @option params [required, String] :load_balancer_name
495
+ # The name of the load balancer.
496
+ # @option params [required, Array<Types::Listener>] :listeners
497
+ # The listeners.
498
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
499
+ #
500
+ # @example Request syntax with placeholder values
501
+ # resp = client.create_load_balancer_listeners({
502
+ # load_balancer_name: "AccessPointName", # required
503
+ # listeners: [ # required
504
+ # {
505
+ # protocol: "Protocol", # required
506
+ # load_balancer_port: 1, # required
507
+ # instance_protocol: "Protocol",
508
+ # instance_port: 1, # required
509
+ # ssl_certificate_id: "SSLCertificateId",
510
+ # },
511
+ # ],
512
+ # })
513
+ # @overload create_load_balancer_listeners(params = {})
514
+ # @param [Hash] params ({})
515
+ def create_load_balancer_listeners(params = {}, options = {})
516
+ req = build_request(:create_load_balancer_listeners, params)
517
+ req.send_request(options)
518
+ end
519
+
520
+ # Creates a policy with the specified attributes for the specified load
521
+ # balancer.
522
+ #
523
+ # Policies are settings that are saved for your load balancer and that
524
+ # can be applied to the listener or the application server, depending on
525
+ # the policy type.
526
+ # @option params [required, String] :load_balancer_name
527
+ # The name of the load balancer.
528
+ # @option params [required, String] :policy_name
529
+ # The name of the load balancer policy to be created. This name must be
530
+ # unique within the set of policies for this load balancer.
531
+ # @option params [required, String] :policy_type_name
532
+ # The name of the base policy type. To get the list of policy types, use
533
+ # DescribeLoadBalancerPolicyTypes.
534
+ # @option params [Array<Types::PolicyAttribute>] :policy_attributes
535
+ # The policy attributes.
536
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
537
+ #
538
+ # @example Request syntax with placeholder values
539
+ # resp = client.create_load_balancer_policy({
540
+ # load_balancer_name: "AccessPointName", # required
541
+ # policy_name: "PolicyName", # required
542
+ # policy_type_name: "PolicyTypeName", # required
543
+ # policy_attributes: [
544
+ # {
545
+ # attribute_name: "AttributeName",
546
+ # attribute_value: "AttributeValue",
547
+ # },
548
+ # ],
549
+ # })
550
+ # @overload create_load_balancer_policy(params = {})
551
+ # @param [Hash] params ({})
552
+ def create_load_balancer_policy(params = {}, options = {})
553
+ req = build_request(:create_load_balancer_policy, params)
554
+ req.send_request(options)
555
+ end
556
+
557
+ # Deletes the specified load balancer.
558
+ #
559
+ # If you are attempting to recreate a load balancer, you must
560
+ # reconfigure all settings. The DNS name associated with a deleted load
561
+ # balancer are no longer usable. The name and associated DNS record of
562
+ # the deleted load balancer no longer exist and traffic sent to any of
563
+ # its IP addresses is no longer delivered to your instances.
564
+ #
565
+ # If the load balancer does not exist or has already been deleted, the
566
+ # call to `DeleteLoadBalancer` still succeeds.
567
+ # @option params [required, String] :load_balancer_name
568
+ # The name of the load balancer.
569
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
570
+ #
571
+ # @example Request syntax with placeholder values
572
+ # resp = client.delete_load_balancer({
573
+ # load_balancer_name: "AccessPointName", # required
574
+ # })
575
+ # @overload delete_load_balancer(params = {})
576
+ # @param [Hash] params ({})
577
+ def delete_load_balancer(params = {}, options = {})
578
+ req = build_request(:delete_load_balancer, params)
579
+ req.send_request(options)
580
+ end
581
+
582
+ # Deletes the specified listeners from the specified load balancer.
583
+ # @option params [required, String] :load_balancer_name
584
+ # The name of the load balancer.
585
+ # @option params [required, Array<Integer>] :load_balancer_ports
586
+ # The client port numbers of the listeners.
587
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
588
+ #
589
+ # @example Request syntax with placeholder values
590
+ # resp = client.delete_load_balancer_listeners({
591
+ # load_balancer_name: "AccessPointName", # required
592
+ # load_balancer_ports: [1], # required
593
+ # })
594
+ # @overload delete_load_balancer_listeners(params = {})
595
+ # @param [Hash] params ({})
596
+ def delete_load_balancer_listeners(params = {}, options = {})
597
+ req = build_request(:delete_load_balancer_listeners, params)
598
+ req.send_request(options)
599
+ end
600
+
601
+ # Deletes the specified policy from the specified load balancer. This
602
+ # policy must not be enabled for any listeners.
603
+ # @option params [required, String] :load_balancer_name
604
+ # The name of the load balancer.
605
+ # @option params [required, String] :policy_name
606
+ # The name of the policy.
607
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
608
+ #
609
+ # @example Request syntax with placeholder values
610
+ # resp = client.delete_load_balancer_policy({
611
+ # load_balancer_name: "AccessPointName", # required
612
+ # policy_name: "PolicyName", # required
613
+ # })
614
+ # @overload delete_load_balancer_policy(params = {})
615
+ # @param [Hash] params ({})
616
+ def delete_load_balancer_policy(params = {}, options = {})
617
+ req = build_request(:delete_load_balancer_policy, params)
618
+ req.send_request(options)
619
+ end
620
+
621
+ # Deregisters the specified instances from the specified load balancer.
622
+ # After the instance is deregistered, it no longer receives traffic from
623
+ # the load balancer.
624
+ #
625
+ # You can use DescribeLoadBalancers to verify that the instance is
626
+ # deregistered from the load balancer.
627
+ #
628
+ # For more information, see [Register or De-Register EC2 Instances][1]
629
+ # in the *Classic Load Balancers Guide*.
630
+ #
631
+ #
632
+ #
633
+ # [1]: http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-deregister-register-instances.html
634
+ # @option params [required, String] :load_balancer_name
635
+ # The name of the load balancer.
636
+ # @option params [required, Array<Types::Instance>] :instances
637
+ # The IDs of the instances.
638
+ # @return [Types::DeregisterEndPointsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
639
+ #
640
+ # * {Types::DeregisterEndPointsOutput#instances #Instances} => Array&lt;Types::Instance&gt;
641
+ #
642
+ # @example Request syntax with placeholder values
643
+ # resp = client.deregister_instances_from_load_balancer({
644
+ # load_balancer_name: "AccessPointName", # required
645
+ # instances: [ # required
646
+ # {
647
+ # instance_id: "InstanceId",
648
+ # },
649
+ # ],
650
+ # })
651
+ #
652
+ # @example Response structure
653
+ # resp.instances #=> Array
654
+ # resp.instances[0].instance_id #=> String
655
+ # @overload deregister_instances_from_load_balancer(params = {})
656
+ # @param [Hash] params ({})
657
+ def deregister_instances_from_load_balancer(params = {}, options = {})
658
+ req = build_request(:deregister_instances_from_load_balancer, params)
659
+ req.send_request(options)
660
+ end
661
+
662
+ # Describes the state of the specified instances with respect to the
663
+ # specified load balancer. If no instances are specified, the call
664
+ # describes the state of all instances that are currently registered
665
+ # with the load balancer. If instances are specified, their state is
666
+ # returned even if they are no longer registered with the load balancer.
667
+ # The state of terminated instances is not returned.
668
+ # @option params [required, String] :load_balancer_name
669
+ # The name of the load balancer.
670
+ # @option params [Array<Types::Instance>] :instances
671
+ # The IDs of the instances.
672
+ # @return [Types::DescribeEndPointStateOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
673
+ #
674
+ # * {Types::DescribeEndPointStateOutput#instance_states #InstanceStates} => Array&lt;Types::InstanceState&gt;
675
+ #
676
+ # @example Request syntax with placeholder values
677
+ # resp = client.describe_instance_health({
678
+ # load_balancer_name: "AccessPointName", # required
679
+ # instances: [
680
+ # {
681
+ # instance_id: "InstanceId",
682
+ # },
683
+ # ],
684
+ # })
685
+ #
686
+ # @example Response structure
687
+ # resp.instance_states #=> Array
688
+ # resp.instance_states[0].instance_id #=> String
689
+ # resp.instance_states[0].state #=> String
690
+ # resp.instance_states[0].reason_code #=> String
691
+ # resp.instance_states[0].description #=> String
692
+ # @overload describe_instance_health(params = {})
693
+ # @param [Hash] params ({})
694
+ def describe_instance_health(params = {}, options = {})
695
+ req = build_request(:describe_instance_health, params)
696
+ req.send_request(options)
697
+ end
698
+
699
+ # Describes the attributes for the specified load balancer.
700
+ # @option params [required, String] :load_balancer_name
701
+ # The name of the load balancer.
702
+ # @return [Types::DescribeLoadBalancerAttributesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
703
+ #
704
+ # * {Types::DescribeLoadBalancerAttributesOutput#load_balancer_attributes #LoadBalancerAttributes} => Types::LoadBalancerAttributes
705
+ #
706
+ # @example Request syntax with placeholder values
707
+ # resp = client.describe_load_balancer_attributes({
708
+ # load_balancer_name: "AccessPointName", # required
709
+ # })
710
+ #
711
+ # @example Response structure
712
+ # resp.load_balancer_attributes.cross_zone_load_balancing.enabled #=> Boolean
713
+ # resp.load_balancer_attributes.access_log.enabled #=> Boolean
714
+ # resp.load_balancer_attributes.access_log.s3_bucket_name #=> String
715
+ # resp.load_balancer_attributes.access_log.emit_interval #=> Integer
716
+ # resp.load_balancer_attributes.access_log.s3_bucket_prefix #=> String
717
+ # resp.load_balancer_attributes.connection_draining.enabled #=> Boolean
718
+ # resp.load_balancer_attributes.connection_draining.timeout #=> Integer
719
+ # resp.load_balancer_attributes.connection_settings.idle_timeout #=> Integer
720
+ # resp.load_balancer_attributes.additional_attributes #=> Array
721
+ # resp.load_balancer_attributes.additional_attributes[0].key #=> String
722
+ # resp.load_balancer_attributes.additional_attributes[0].value #=> String
723
+ # @overload describe_load_balancer_attributes(params = {})
724
+ # @param [Hash] params ({})
725
+ def describe_load_balancer_attributes(params = {}, options = {})
726
+ req = build_request(:describe_load_balancer_attributes, params)
727
+ req.send_request(options)
728
+ end
729
+
730
+ # Describes the specified policies.
731
+ #
732
+ # If you specify a load balancer name, the action returns the
733
+ # descriptions of all policies created for the load balancer. If you
734
+ # specify a policy name associated with your load balancer, the action
735
+ # returns the description of that policy. If you don't specify a load
736
+ # balancer name, the action returns descriptions of the specified sample
737
+ # policies, or descriptions of all sample policies. The names of the
738
+ # sample policies have the `ELBSample-` prefix.
739
+ # @option params [String] :load_balancer_name
740
+ # The name of the load balancer.
741
+ # @option params [Array<String>] :policy_names
742
+ # The names of the policies.
743
+ # @return [Types::DescribeLoadBalancerPoliciesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
744
+ #
745
+ # * {Types::DescribeLoadBalancerPoliciesOutput#policy_descriptions #PolicyDescriptions} => Array&lt;Types::PolicyDescription&gt;
746
+ #
747
+ # @example Request syntax with placeholder values
748
+ # resp = client.describe_load_balancer_policies({
749
+ # load_balancer_name: "AccessPointName",
750
+ # policy_names: ["PolicyName"],
751
+ # })
752
+ #
753
+ # @example Response structure
754
+ # resp.policy_descriptions #=> Array
755
+ # resp.policy_descriptions[0].policy_name #=> String
756
+ # resp.policy_descriptions[0].policy_type_name #=> String
757
+ # resp.policy_descriptions[0].policy_attribute_descriptions #=> Array
758
+ # resp.policy_descriptions[0].policy_attribute_descriptions[0].attribute_name #=> String
759
+ # resp.policy_descriptions[0].policy_attribute_descriptions[0].attribute_value #=> <Hash,Array,String,Numeric,Boolean,IO,Set,nil>
760
+ # @overload describe_load_balancer_policies(params = {})
761
+ # @param [Hash] params ({})
762
+ def describe_load_balancer_policies(params = {}, options = {})
763
+ req = build_request(:describe_load_balancer_policies, params)
764
+ req.send_request(options)
765
+ end
766
+
767
+ # Describes the specified load balancer policy types or all load
768
+ # balancer policy types.
769
+ #
770
+ # The description of each type indicates how it can be used. For
771
+ # example, some policies can be used only with layer 7 listeners, some
772
+ # policies can be used only with layer 4 listeners, and some policies
773
+ # can be used only with your EC2 instances.
774
+ #
775
+ # You can use CreateLoadBalancerPolicy to create a policy configuration
776
+ # for any of these policy types. Then, depending on the policy type, use
777
+ # either SetLoadBalancerPoliciesOfListener or
778
+ # SetLoadBalancerPoliciesForBackendServer to set the policy.
779
+ # @option params [Array<String>] :policy_type_names
780
+ # The names of the policy types. If no names are specified, describes
781
+ # all policy types defined by Elastic Load Balancing.
782
+ # @return [Types::DescribeLoadBalancerPolicyTypesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
783
+ #
784
+ # * {Types::DescribeLoadBalancerPolicyTypesOutput#policy_type_descriptions #PolicyTypeDescriptions} => Array&lt;Types::PolicyTypeDescription&gt;
785
+ #
786
+ # @example Request syntax with placeholder values
787
+ # resp = client.describe_load_balancer_policy_types({
788
+ # policy_type_names: ["PolicyTypeName"],
789
+ # })
790
+ #
791
+ # @example Response structure
792
+ # resp.policy_type_descriptions #=> Array
793
+ # resp.policy_type_descriptions[0].policy_type_name #=> String
794
+ # resp.policy_type_descriptions[0].description #=> String
795
+ # resp.policy_type_descriptions[0].policy_attribute_type_descriptions #=> Array
796
+ # resp.policy_type_descriptions[0].policy_attribute_type_descriptions[0].attribute_name #=> String
797
+ # resp.policy_type_descriptions[0].policy_attribute_type_descriptions[0].attribute_type #=> String
798
+ # resp.policy_type_descriptions[0].policy_attribute_type_descriptions[0].description #=> String
799
+ # resp.policy_type_descriptions[0].policy_attribute_type_descriptions[0].default_value #=> String
800
+ # resp.policy_type_descriptions[0].policy_attribute_type_descriptions[0].cardinality #=> String
801
+ # @overload describe_load_balancer_policy_types(params = {})
802
+ # @param [Hash] params ({})
803
+ def describe_load_balancer_policy_types(params = {}, options = {})
804
+ req = build_request(:describe_load_balancer_policy_types, params)
805
+ req.send_request(options)
806
+ end
807
+
808
+ # Describes the specified the load balancers. If no load balancers are
809
+ # specified, the call describes all of your load balancers.
810
+ # @option params [Array<String>] :load_balancer_names
811
+ # The names of the load balancers.
812
+ # @option params [String] :marker
813
+ # The marker for the next set of results. (You received this marker from
814
+ # a previous call.)
815
+ # @option params [Integer] :page_size
816
+ # The maximum number of results to return with this call (a number from
817
+ # 1 to 400). The default is 400.
818
+ # @return [Types::DescribeAccessPointsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
819
+ #
820
+ # * {Types::DescribeAccessPointsOutput#load_balancer_descriptions #LoadBalancerDescriptions} => Array&lt;Types::LoadBalancerDescription&gt;
821
+ # * {Types::DescribeAccessPointsOutput#next_marker #NextMarker} => String
822
+ #
823
+ # @example Request syntax with placeholder values
824
+ # resp = client.describe_load_balancers({
825
+ # load_balancer_names: ["AccessPointName"],
826
+ # marker: "Marker",
827
+ # page_size: 1,
828
+ # })
829
+ #
830
+ # @example Response structure
831
+ # resp.load_balancer_descriptions #=> Array
832
+ # resp.load_balancer_descriptions[0].load_balancer_name #=> String
833
+ # resp.load_balancer_descriptions[0].dns_name #=> String
834
+ # resp.load_balancer_descriptions[0].canonical_hosted_zone_name #=> String
835
+ # resp.load_balancer_descriptions[0].canonical_hosted_zone_name_id #=> String
836
+ # resp.load_balancer_descriptions[0].listener_descriptions #=> Array
837
+ # resp.load_balancer_descriptions[0].listener_descriptions[0].listener.protocol #=> String
838
+ # resp.load_balancer_descriptions[0].listener_descriptions[0].listener.load_balancer_port #=> Integer
839
+ # resp.load_balancer_descriptions[0].listener_descriptions[0].listener.instance_protocol #=> String
840
+ # resp.load_balancer_descriptions[0].listener_descriptions[0].listener.instance_port #=> Integer
841
+ # resp.load_balancer_descriptions[0].listener_descriptions[0].listener.ssl_certificate_id #=> String
842
+ # resp.load_balancer_descriptions[0].listener_descriptions[0].policy_names #=> Array
843
+ # resp.load_balancer_descriptions[0].listener_descriptions[0].policy_names[0] #=> String
844
+ # resp.load_balancer_descriptions[0].policies.app_cookie_stickiness_policies #=> Array
845
+ # resp.load_balancer_descriptions[0].policies.app_cookie_stickiness_policies[0].policy_name #=> String
846
+ # resp.load_balancer_descriptions[0].policies.app_cookie_stickiness_policies[0].cookie_name #=> String
847
+ # resp.load_balancer_descriptions[0].policies.lb_cookie_stickiness_policies #=> Array
848
+ # resp.load_balancer_descriptions[0].policies.lb_cookie_stickiness_policies[0].policy_name #=> String
849
+ # resp.load_balancer_descriptions[0].policies.lb_cookie_stickiness_policies[0].cookie_expiration_period #=> Integer
850
+ # resp.load_balancer_descriptions[0].policies.other_policies #=> Array
851
+ # resp.load_balancer_descriptions[0].policies.other_policies[0] #=> String
852
+ # resp.load_balancer_descriptions[0].backend_server_descriptions #=> Array
853
+ # resp.load_balancer_descriptions[0].backend_server_descriptions[0].instance_port #=> Integer
854
+ # resp.load_balancer_descriptions[0].backend_server_descriptions[0].policy_names #=> Array
855
+ # resp.load_balancer_descriptions[0].backend_server_descriptions[0].policy_names[0] #=> String
856
+ # resp.load_balancer_descriptions[0].availability_zones #=> Array
857
+ # resp.load_balancer_descriptions[0].availability_zones[0] #=> String
858
+ # resp.load_balancer_descriptions[0].subnets #=> Array
859
+ # resp.load_balancer_descriptions[0].subnets[0] #=> String
860
+ # resp.load_balancer_descriptions[0].vpc_id #=> String
861
+ # resp.load_balancer_descriptions[0].instances #=> Array
862
+ # resp.load_balancer_descriptions[0].instances[0].instance_id #=> String
863
+ # resp.load_balancer_descriptions[0].health_check.target #=> String
864
+ # resp.load_balancer_descriptions[0].health_check.interval #=> Integer
865
+ # resp.load_balancer_descriptions[0].health_check.timeout #=> Integer
866
+ # resp.load_balancer_descriptions[0].health_check.unhealthy_threshold #=> Integer
867
+ # resp.load_balancer_descriptions[0].health_check.healthy_threshold #=> Integer
868
+ # resp.load_balancer_descriptions[0].source_security_group.owner_alias #=> String
869
+ # resp.load_balancer_descriptions[0].source_security_group.group_name #=> String
870
+ # resp.load_balancer_descriptions[0].security_groups #=> Array
871
+ # resp.load_balancer_descriptions[0].security_groups[0] #=> String
872
+ # resp.load_balancer_descriptions[0].created_time #=> Time
873
+ # resp.load_balancer_descriptions[0].scheme #=> String
874
+ # resp.next_marker #=> String
875
+ # @overload describe_load_balancers(params = {})
876
+ # @param [Hash] params ({})
877
+ def describe_load_balancers(params = {}, options = {})
878
+ req = build_request(:describe_load_balancers, params)
879
+ req.send_request(options)
880
+ end
881
+
882
+ # Describes the tags associated with the specified load balancers.
883
+ # @option params [required, Array<String>] :load_balancer_names
884
+ # The names of the load balancers.
885
+ # @return [Types::DescribeTagsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
886
+ #
887
+ # * {Types::DescribeTagsOutput#tag_descriptions #TagDescriptions} => Array&lt;Types::TagDescription&gt;
888
+ #
889
+ # @example Request syntax with placeholder values
890
+ # resp = client.describe_tags({
891
+ # load_balancer_names: ["AccessPointName"], # required
892
+ # })
893
+ #
894
+ # @example Response structure
895
+ # resp.tag_descriptions #=> Array
896
+ # resp.tag_descriptions[0].load_balancer_name #=> String
897
+ # resp.tag_descriptions[0].tags #=> Array
898
+ # resp.tag_descriptions[0].tags[0].key #=> String
899
+ # resp.tag_descriptions[0].tags[0].value #=> String
900
+ # @overload describe_tags(params = {})
901
+ # @param [Hash] params ({})
902
+ def describe_tags(params = {}, options = {})
903
+ req = build_request(:describe_tags, params)
904
+ req.send_request(options)
905
+ end
906
+
907
+ # Removes the specified subnets from the set of configured subnets for
908
+ # the load balancer.
909
+ #
910
+ # After a subnet is removed, all EC2 instances registered with the load
911
+ # balancer in the removed subnet go into the `OutOfService` state. Then,
912
+ # the load balancer balances the traffic among the remaining routable
913
+ # subnets.
914
+ # @option params [required, String] :load_balancer_name
915
+ # The name of the load balancer.
916
+ # @option params [required, Array<String>] :subnets
917
+ # The IDs of the subnets.
918
+ # @return [Types::DetachLoadBalancerFromSubnetsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
919
+ #
920
+ # * {Types::DetachLoadBalancerFromSubnetsOutput#subnets #Subnets} => Array&lt;String&gt;
921
+ #
922
+ # @example Request syntax with placeholder values
923
+ # resp = client.detach_load_balancer_from_subnets({
924
+ # load_balancer_name: "AccessPointName", # required
925
+ # subnets: ["SubnetId"], # required
926
+ # })
927
+ #
928
+ # @example Response structure
929
+ # resp.subnets #=> Array
930
+ # resp.subnets[0] #=> String
931
+ # @overload detach_load_balancer_from_subnets(params = {})
932
+ # @param [Hash] params ({})
933
+ def detach_load_balancer_from_subnets(params = {}, options = {})
934
+ req = build_request(:detach_load_balancer_from_subnets, params)
935
+ req.send_request(options)
936
+ end
937
+
938
+ # Removes the specified Availability Zones from the set of Availability
939
+ # Zones for the specified load balancer.
940
+ #
941
+ # There must be at least one Availability Zone registered with a load
942
+ # balancer at all times. After an Availability Zone is removed, all
943
+ # instances registered with the load balancer that are in the removed
944
+ # Availability Zone go into the `OutOfService` state. Then, the load
945
+ # balancer attempts to equally balance the traffic among its remaining
946
+ # Availability Zones.
947
+ #
948
+ # For more information, see [Add or Remove Availability Zones][1] in the
949
+ # *Classic Load Balancers Guide*.
950
+ #
951
+ #
952
+ #
953
+ # [1]: http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-disable-az.html
954
+ # @option params [required, String] :load_balancer_name
955
+ # The name of the load balancer.
956
+ # @option params [required, Array<String>] :availability_zones
957
+ # The Availability Zones.
958
+ # @return [Types::RemoveAvailabilityZonesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
959
+ #
960
+ # * {Types::RemoveAvailabilityZonesOutput#availability_zones #AvailabilityZones} => Array&lt;String&gt;
961
+ #
962
+ # @example Request syntax with placeholder values
963
+ # resp = client.disable_availability_zones_for_load_balancer({
964
+ # load_balancer_name: "AccessPointName", # required
965
+ # availability_zones: ["AvailabilityZone"], # required
966
+ # })
967
+ #
968
+ # @example Response structure
969
+ # resp.availability_zones #=> Array
970
+ # resp.availability_zones[0] #=> String
971
+ # @overload disable_availability_zones_for_load_balancer(params = {})
972
+ # @param [Hash] params ({})
973
+ def disable_availability_zones_for_load_balancer(params = {}, options = {})
974
+ req = build_request(:disable_availability_zones_for_load_balancer, params)
975
+ req.send_request(options)
976
+ end
977
+
978
+ # Adds the specified Availability Zones to the set of Availability Zones
979
+ # for the specified load balancer.
980
+ #
981
+ # The load balancer evenly distributes requests across all its
982
+ # registered Availability Zones that contain instances.
983
+ #
984
+ # For more information, see [Add or Remove Availability Zones][1] in the
985
+ # *Classic Load Balancers Guide*.
986
+ #
987
+ #
988
+ #
989
+ # [1]: http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-disable-az.html
990
+ # @option params [required, String] :load_balancer_name
991
+ # The name of the load balancer.
992
+ # @option params [required, Array<String>] :availability_zones
993
+ # The Availability Zones. These must be in the same region as the load
994
+ # balancer.
995
+ # @return [Types::AddAvailabilityZonesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
996
+ #
997
+ # * {Types::AddAvailabilityZonesOutput#availability_zones #AvailabilityZones} => Array&lt;String&gt;
998
+ #
999
+ # @example Request syntax with placeholder values
1000
+ # resp = client.enable_availability_zones_for_load_balancer({
1001
+ # load_balancer_name: "AccessPointName", # required
1002
+ # availability_zones: ["AvailabilityZone"], # required
1003
+ # })
1004
+ #
1005
+ # @example Response structure
1006
+ # resp.availability_zones #=> Array
1007
+ # resp.availability_zones[0] #=> String
1008
+ # @overload enable_availability_zones_for_load_balancer(params = {})
1009
+ # @param [Hash] params ({})
1010
+ def enable_availability_zones_for_load_balancer(params = {}, options = {})
1011
+ req = build_request(:enable_availability_zones_for_load_balancer, params)
1012
+ req.send_request(options)
1013
+ end
1014
+
1015
+ # Modifies the attributes of the specified load balancer.
1016
+ #
1017
+ # You can modify the load balancer attributes, such as `AccessLogs`,
1018
+ # `ConnectionDraining`, and `CrossZoneLoadBalancing` by either enabling
1019
+ # or disabling them. Or, you can modify the load balancer attribute
1020
+ # `ConnectionSettings` by specifying an idle connection timeout value
1021
+ # for your load balancer.
1022
+ #
1023
+ # For more information, see the following in the *Classic Load Balancers
1024
+ # Guide*\:
1025
+ #
1026
+ # * [Cross-Zone Load Balancing][1]
1027
+ #
1028
+ # * [Connection Draining][2]
1029
+ #
1030
+ # * [Access Logs][3]
1031
+ #
1032
+ # * [Idle Connection Timeout][4]
1033
+ #
1034
+ #
1035
+ #
1036
+ # [1]: http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-disable-crosszone-lb.html
1037
+ # [2]: http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-conn-drain.html
1038
+ # [3]: http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/access-log-collection.html
1039
+ # [4]: http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-idle-timeout.html
1040
+ # @option params [required, String] :load_balancer_name
1041
+ # The name of the load balancer.
1042
+ # @option params [required, Types::LoadBalancerAttributes] :load_balancer_attributes
1043
+ # The attributes of the load balancer.
1044
+ # @return [Types::ModifyLoadBalancerAttributesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1045
+ #
1046
+ # * {Types::ModifyLoadBalancerAttributesOutput#load_balancer_name #LoadBalancerName} => String
1047
+ # * {Types::ModifyLoadBalancerAttributesOutput#load_balancer_attributes #LoadBalancerAttributes} => Types::LoadBalancerAttributes
1048
+ #
1049
+ # @example Request syntax with placeholder values
1050
+ # resp = client.modify_load_balancer_attributes({
1051
+ # load_balancer_name: "AccessPointName", # required
1052
+ # load_balancer_attributes: { # required
1053
+ # cross_zone_load_balancing: {
1054
+ # enabled: false, # required
1055
+ # },
1056
+ # access_log: {
1057
+ # enabled: false, # required
1058
+ # s3_bucket_name: "S3BucketName",
1059
+ # emit_interval: 1,
1060
+ # s3_bucket_prefix: "AccessLogPrefix",
1061
+ # },
1062
+ # connection_draining: {
1063
+ # enabled: false, # required
1064
+ # timeout: 1,
1065
+ # },
1066
+ # connection_settings: {
1067
+ # idle_timeout: 1, # required
1068
+ # },
1069
+ # additional_attributes: [
1070
+ # {
1071
+ # key: "AdditionalAttributeKey",
1072
+ # value: "AdditionalAttributeValue",
1073
+ # },
1074
+ # ],
1075
+ # },
1076
+ # })
1077
+ #
1078
+ # @example Response structure
1079
+ # resp.load_balancer_name #=> String
1080
+ # resp.load_balancer_attributes.cross_zone_load_balancing.enabled #=> Boolean
1081
+ # resp.load_balancer_attributes.access_log.enabled #=> Boolean
1082
+ # resp.load_balancer_attributes.access_log.s3_bucket_name #=> String
1083
+ # resp.load_balancer_attributes.access_log.emit_interval #=> Integer
1084
+ # resp.load_balancer_attributes.access_log.s3_bucket_prefix #=> String
1085
+ # resp.load_balancer_attributes.connection_draining.enabled #=> Boolean
1086
+ # resp.load_balancer_attributes.connection_draining.timeout #=> Integer
1087
+ # resp.load_balancer_attributes.connection_settings.idle_timeout #=> Integer
1088
+ # resp.load_balancer_attributes.additional_attributes #=> Array
1089
+ # resp.load_balancer_attributes.additional_attributes[0].key #=> String
1090
+ # resp.load_balancer_attributes.additional_attributes[0].value #=> String
1091
+ # @overload modify_load_balancer_attributes(params = {})
1092
+ # @param [Hash] params ({})
1093
+ def modify_load_balancer_attributes(params = {}, options = {})
1094
+ req = build_request(:modify_load_balancer_attributes, params)
1095
+ req.send_request(options)
1096
+ end
1097
+
1098
+ # Adds the specified instances to the specified load balancer.
1099
+ #
1100
+ # The instance must be a running instance in the same network as the
1101
+ # load balancer (EC2-Classic or the same VPC). If you have EC2-Classic
1102
+ # instances and a load balancer in a VPC with ClassicLink enabled, you
1103
+ # can link the EC2-Classic instances to that VPC and then register the
1104
+ # linked EC2-Classic instances with the load balancer in the VPC.
1105
+ #
1106
+ # Note that `RegisterInstanceWithLoadBalancer` completes when the
1107
+ # request has been registered. Instance registration takes a little time
1108
+ # to complete. To check the state of the registered instances, use
1109
+ # DescribeLoadBalancers or DescribeInstanceHealth.
1110
+ #
1111
+ # After the instance is registered, it starts receiving traffic and
1112
+ # requests from the load balancer. Any instance that is not in one of
1113
+ # the Availability Zones registered for the load balancer is moved to
1114
+ # the `OutOfService` state. If an Availability Zone is added to the load
1115
+ # balancer later, any instances registered with the load balancer move
1116
+ # to the `InService` state.
1117
+ #
1118
+ # To deregister instances from a load balancer, use
1119
+ # DeregisterInstancesFromLoadBalancer.
1120
+ #
1121
+ # For more information, see [Register or De-Register EC2 Instances][1]
1122
+ # in the *Classic Load Balancers Guide*.
1123
+ #
1124
+ #
1125
+ #
1126
+ # [1]: http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-deregister-register-instances.html
1127
+ # @option params [required, String] :load_balancer_name
1128
+ # The name of the load balancer.
1129
+ # @option params [required, Array<Types::Instance>] :instances
1130
+ # The IDs of the instances.
1131
+ # @return [Types::RegisterEndPointsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1132
+ #
1133
+ # * {Types::RegisterEndPointsOutput#instances #Instances} => Array&lt;Types::Instance&gt;
1134
+ #
1135
+ # @example Request syntax with placeholder values
1136
+ # resp = client.register_instances_with_load_balancer({
1137
+ # load_balancer_name: "AccessPointName", # required
1138
+ # instances: [ # required
1139
+ # {
1140
+ # instance_id: "InstanceId",
1141
+ # },
1142
+ # ],
1143
+ # })
1144
+ #
1145
+ # @example Response structure
1146
+ # resp.instances #=> Array
1147
+ # resp.instances[0].instance_id #=> String
1148
+ # @overload register_instances_with_load_balancer(params = {})
1149
+ # @param [Hash] params ({})
1150
+ def register_instances_with_load_balancer(params = {}, options = {})
1151
+ req = build_request(:register_instances_with_load_balancer, params)
1152
+ req.send_request(options)
1153
+ end
1154
+
1155
+ # Removes one or more tags from the specified load balancer.
1156
+ # @option params [required, Array<String>] :load_balancer_names
1157
+ # The name of the load balancer. You can specify a maximum of one load
1158
+ # balancer name.
1159
+ # @option params [required, Array<Types::TagKeyOnly>] :tags
1160
+ # The list of tag keys to remove.
1161
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1162
+ #
1163
+ # @example Request syntax with placeholder values
1164
+ # resp = client.remove_tags({
1165
+ # load_balancer_names: ["AccessPointName"], # required
1166
+ # tags: [ # required
1167
+ # {
1168
+ # key: "TagKey",
1169
+ # },
1170
+ # ],
1171
+ # })
1172
+ # @overload remove_tags(params = {})
1173
+ # @param [Hash] params ({})
1174
+ def remove_tags(params = {}, options = {})
1175
+ req = build_request(:remove_tags, params)
1176
+ req.send_request(options)
1177
+ end
1178
+
1179
+ # Sets the certificate that terminates the specified listener's SSL
1180
+ # connections. The specified certificate replaces any prior certificate
1181
+ # that was used on the same load balancer and port.
1182
+ #
1183
+ # For more information about updating your SSL certificate, see [Replace
1184
+ # the SSL Certificate for Your Load Balancer][1] in the *Classic Load
1185
+ # Balancers Guide*.
1186
+ #
1187
+ #
1188
+ #
1189
+ # [1]: http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-update-ssl-cert.html
1190
+ # @option params [required, String] :load_balancer_name
1191
+ # The name of the load balancer.
1192
+ # @option params [required, Integer] :load_balancer_port
1193
+ # The port that uses the specified SSL certificate.
1194
+ # @option params [required, String] :ssl_certificate_id
1195
+ # The Amazon Resource Name (ARN) of the SSL certificate.
1196
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1197
+ #
1198
+ # @example Request syntax with placeholder values
1199
+ # resp = client.set_load_balancer_listener_ssl_certificate({
1200
+ # load_balancer_name: "AccessPointName", # required
1201
+ # load_balancer_port: 1, # required
1202
+ # ssl_certificate_id: "SSLCertificateId", # required
1203
+ # })
1204
+ # @overload set_load_balancer_listener_ssl_certificate(params = {})
1205
+ # @param [Hash] params ({})
1206
+ def set_load_balancer_listener_ssl_certificate(params = {}, options = {})
1207
+ req = build_request(:set_load_balancer_listener_ssl_certificate, params)
1208
+ req.send_request(options)
1209
+ end
1210
+
1211
+ # Replaces the set of policies associated with the specified port on
1212
+ # which the EC2 instance is listening with a new set of policies. At
1213
+ # this time, only the back-end server authentication policy type can be
1214
+ # applied to the instance ports; this policy type is composed of
1215
+ # multiple public key policies.
1216
+ #
1217
+ # Each time you use `SetLoadBalancerPoliciesForBackendServer` to enable
1218
+ # the policies, use the `PolicyNames` parameter to list the policies
1219
+ # that you want to enable.
1220
+ #
1221
+ # You can use DescribeLoadBalancers or DescribeLoadBalancerPolicies to
1222
+ # verify that the policy is associated with the EC2 instance.
1223
+ #
1224
+ # For more information about enabling back-end instance authentication,
1225
+ # see [Configure Back-end Instance Authentication][1] in the *Classic
1226
+ # Load Balancers Guide*. For more information about Proxy Protocol, see
1227
+ # [Configure Proxy Protocol Support][2] in the *Classic Load Balancers
1228
+ # Guide*.
1229
+ #
1230
+ #
1231
+ #
1232
+ # [1]: http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-create-https-ssl-load-balancer.html#configure_backendauth_clt
1233
+ # [2]: http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-proxy-protocol.html
1234
+ # @option params [required, String] :load_balancer_name
1235
+ # The name of the load balancer.
1236
+ # @option params [required, Integer] :instance_port
1237
+ # The port number associated with the EC2 instance.
1238
+ # @option params [required, Array<String>] :policy_names
1239
+ # The names of the policies. If the list is empty, then all current
1240
+ # polices are removed from the EC2 instance.
1241
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1242
+ #
1243
+ # @example Request syntax with placeholder values
1244
+ # resp = client.set_load_balancer_policies_for_backend_server({
1245
+ # load_balancer_name: "AccessPointName", # required
1246
+ # instance_port: 1, # required
1247
+ # policy_names: ["PolicyName"], # required
1248
+ # })
1249
+ # @overload set_load_balancer_policies_for_backend_server(params = {})
1250
+ # @param [Hash] params ({})
1251
+ def set_load_balancer_policies_for_backend_server(params = {}, options = {})
1252
+ req = build_request(:set_load_balancer_policies_for_backend_server, params)
1253
+ req.send_request(options)
1254
+ end
1255
+
1256
+ # Replaces the current set of policies for the specified load balancer
1257
+ # port with the specified set of policies.
1258
+ #
1259
+ # To enable back-end server authentication, use
1260
+ # SetLoadBalancerPoliciesForBackendServer.
1261
+ #
1262
+ # For more information about setting policies, see [Update the SSL
1263
+ # Negotiation Configuration][1], [Duration-Based Session Stickiness][2],
1264
+ # and [Application-Controlled Session Stickiness][3] in the *Classic
1265
+ # Load Balancers Guide*.
1266
+ #
1267
+ #
1268
+ #
1269
+ # [1]: http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/ssl-config-update.html
1270
+ # [2]: http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-sticky-sessions.html#enable-sticky-sessions-duration
1271
+ # [3]: http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-sticky-sessions.html#enable-sticky-sessions-application
1272
+ # @option params [required, String] :load_balancer_name
1273
+ # The name of the load balancer.
1274
+ # @option params [required, Integer] :load_balancer_port
1275
+ # The external port of the load balancer.
1276
+ # @option params [required, Array<String>] :policy_names
1277
+ # The names of the policies. This list must include all policies to be
1278
+ # enabled. If you omit a policy that is currently enabled, it is
1279
+ # disabled. If the list is empty, all current policies are disabled.
1280
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1281
+ #
1282
+ # @example Request syntax with placeholder values
1283
+ # resp = client.set_load_balancer_policies_of_listener({
1284
+ # load_balancer_name: "AccessPointName", # required
1285
+ # load_balancer_port: 1, # required
1286
+ # policy_names: ["PolicyName"], # required
1287
+ # })
1288
+ # @overload set_load_balancer_policies_of_listener(params = {})
1289
+ # @param [Hash] params ({})
1290
+ def set_load_balancer_policies_of_listener(params = {}, options = {})
1291
+ req = build_request(:set_load_balancer_policies_of_listener, params)
1292
+ req.send_request(options)
1293
+ end
1294
+
1295
+ # @!endgroup
1296
+
1297
+ # @param params ({})
1298
+ # @api private
1299
+ def build_request(operation_name, params = {})
1300
+ handlers = @handlers.for(operation_name)
1301
+ context = Seahorse::Client::RequestContext.new(
1302
+ operation_name: operation_name,
1303
+ operation: config.api.operation(operation_name),
1304
+ client: self,
1305
+ params: params,
1306
+ config: config)
1307
+ context[:gem_name] = 'aws-sdk-elasticloadbalancing'
1308
+ context[:gem_version] = '1.0.0.rc1'
1309
+ Seahorse::Client::Request.new(handlers, context)
1310
+ end
1311
+
1312
+ # Polls an API operation until a resource enters a desired state.
1313
+ #
1314
+ # ## Basic Usage
1315
+ #
1316
+ # A waiter will call an API operation until:
1317
+ #
1318
+ # * It is successful
1319
+ # * It enters a terminal state
1320
+ # * It makes the maximum number of attempts
1321
+ #
1322
+ # In between attempts, the waiter will sleep.
1323
+ #
1324
+ # # polls in a loop, sleeping between attempts
1325
+ # client.waiter_until(waiter_name, params)
1326
+ #
1327
+ # ## Configuration
1328
+ #
1329
+ # You can configure the maximum number of polling attempts, and the
1330
+ # delay (in seconds) between each polling attempt. You can pass
1331
+ # configuration as the final arguments hash.
1332
+ #
1333
+ # # poll for ~25 seconds
1334
+ # client.wait_until(waiter_name, params, {
1335
+ # max_attempts: 5,
1336
+ # delay: 5,
1337
+ # })
1338
+ #
1339
+ # ## Callbacks
1340
+ #
1341
+ # You can be notified before each polling attempt and before each
1342
+ # delay. If you throw `:success` or `:failure` from these callbacks,
1343
+ # it will terminate the waiter.
1344
+ #
1345
+ # started_at = Time.now
1346
+ # client.wait_until(waiter_name, params, {
1347
+ #
1348
+ # # disable max attempts
1349
+ # max_attempts: nil,
1350
+ #
1351
+ # # poll for 1 hour, instead of a number of attempts
1352
+ # before_wait: -> (attempts, response) do
1353
+ # throw :failure if Time.now - started_at > 3600
1354
+ # end
1355
+ # })
1356
+ #
1357
+ # ## Handling Errors
1358
+ #
1359
+ # When a waiter is unsuccessful, it will raise an error.
1360
+ # All of the failure errors extend from
1361
+ # {Aws::Waiters::Errors::WaiterFailed}.
1362
+ #
1363
+ # begin
1364
+ # client.wait_until(...)
1365
+ # rescue Aws::Waiters::Errors::WaiterFailed
1366
+ # # resource did not enter the desired state in time
1367
+ # end
1368
+ #
1369
+ # ## Valid Waiters
1370
+ #
1371
+ # The following table lists the valid waiter names, the operations they call,
1372
+ # and the default `:delay` and `:max_attempts` values.
1373
+ #
1374
+ # | waiter_name | params | :delay | :max_attempts |
1375
+ # | ----------------------- | --------------------------- | -------- | ------------- |
1376
+ # | any_instance_in_service | {#describe_instance_health} | 15 | 40 |
1377
+ # | instance_deregistered | {#describe_instance_health} | 15 | 40 |
1378
+ # | instance_in_service | {#describe_instance_health} | 15 | 40 |
1379
+ #
1380
+ # @raise [Errors::FailureStateError] Raised when the waiter terminates
1381
+ # because the waiter has entered a state that it will not transition
1382
+ # out of, preventing success.
1383
+ #
1384
+ # @raise [Errors::TooManyAttemptsError] Raised when the configured
1385
+ # maximum number of attempts have been made, and the waiter is not
1386
+ # yet successful.
1387
+ #
1388
+ # @raise [Errors::UnexpectedError] Raised when an error is encounted
1389
+ # while polling for a resource that is not expected.
1390
+ #
1391
+ # @raise [Errors::NoSuchWaiterError] Raised when you request to wait
1392
+ # for an unknown state.
1393
+ #
1394
+ # @return [Boolean] Returns `true` if the waiter was successful.
1395
+ # @param [Symbol] waiter_name
1396
+ # @param [Hash] params ({})
1397
+ # @param [Hash] options ({})
1398
+ # @option options [Integer] :max_attempts
1399
+ # @option options [Integer] :delay
1400
+ # @option options [Proc] :before_attempt
1401
+ # @option options [Proc] :before_wait
1402
+ def wait_until(waiter_name, params = {}, options = {})
1403
+ w = waiter(waiter_name, options)
1404
+ yield(w.waiter) if block_given? # deprecated
1405
+ w.wait(params)
1406
+ end
1407
+
1408
+ # @api private
1409
+ # @deprecated
1410
+ def waiter_names
1411
+ waiters.keys
1412
+ end
1413
+
1414
+ private
1415
+
1416
+ # @param [Symbol] waiter_name
1417
+ # @param [Hash] options ({})
1418
+ def waiter(waiter_name, options = {})
1419
+ waiter_class = waiters[waiter_name]
1420
+ if waiter_class
1421
+ waiter_class.new(options.merge(client: self))
1422
+ else
1423
+ raise Aws::Waiters::Errors::NoSuchWaiterError.new(waiter_name, waiters.keys)
1424
+ end
1425
+ end
1426
+
1427
+ def waiters
1428
+ {
1429
+ instance_deregistered: Waiters::InstanceDeregistered,
1430
+ any_instance_in_service: Waiters::AnyInstanceInService,
1431
+ instance_in_service: Waiters::InstanceInService
1432
+ }
1433
+ end
1434
+
1435
+ class << self
1436
+
1437
+ # @api private
1438
+ attr_reader :identifier
1439
+
1440
+ # @api private
1441
+ def errors_module
1442
+ Errors
1443
+ end
1444
+
1445
+ end
1446
+ end
1447
+ end
1448
+ end