aws-sdk-applicationautoscaling 1.59.0 → 1.76.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,94 @@
1
+ # frozen_string_literal: true
2
+
3
+ # WARNING ABOUT GENERATED CODE
4
+ #
5
+ # This file is generated. See the contributing guide for more information:
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
+ #
8
+ # WARNING ABOUT GENERATED CODE
9
+
10
+
11
+ module Aws::ApplicationAutoScaling
12
+ module Plugins
13
+ class Endpoints < Seahorse::Client::Plugin
14
+ option(
15
+ :endpoint_provider,
16
+ doc_type: 'Aws::ApplicationAutoScaling::EndpointProvider',
17
+ docstring: 'The endpoint provider used to resolve endpoints. Any '\
18
+ 'object that responds to `#resolve_endpoint(parameters)` '\
19
+ 'where `parameters` is a Struct similar to '\
20
+ '`Aws::ApplicationAutoScaling::EndpointParameters`'
21
+ ) do |cfg|
22
+ Aws::ApplicationAutoScaling::EndpointProvider.new
23
+ end
24
+
25
+ # @api private
26
+ class Handler < Seahorse::Client::Handler
27
+ def call(context)
28
+ # If endpoint was discovered, do not resolve or apply the endpoint.
29
+ unless context[:discovered_endpoint]
30
+ params = parameters_for_operation(context)
31
+ endpoint = context.config.endpoint_provider.resolve_endpoint(params)
32
+
33
+ context.http_request.endpoint = endpoint.url
34
+ apply_endpoint_headers(context, endpoint.headers)
35
+ end
36
+
37
+ context[:endpoint_params] = params
38
+ context[:auth_scheme] =
39
+ Aws::Endpoints.resolve_auth_scheme(context, endpoint)
40
+
41
+ @handler.call(context)
42
+ end
43
+
44
+ private
45
+
46
+ def apply_endpoint_headers(context, headers)
47
+ headers.each do |key, values|
48
+ value = values
49
+ .compact
50
+ .map { |s| Seahorse::Util.escape_header_list_string(s.to_s) }
51
+ .join(',')
52
+
53
+ context.http_request.headers[key] = value
54
+ end
55
+ end
56
+
57
+ def parameters_for_operation(context)
58
+ case context.operation_name
59
+ when :delete_scaling_policy
60
+ Aws::ApplicationAutoScaling::Endpoints::DeleteScalingPolicy.build(context)
61
+ when :delete_scheduled_action
62
+ Aws::ApplicationAutoScaling::Endpoints::DeleteScheduledAction.build(context)
63
+ when :deregister_scalable_target
64
+ Aws::ApplicationAutoScaling::Endpoints::DeregisterScalableTarget.build(context)
65
+ when :describe_scalable_targets
66
+ Aws::ApplicationAutoScaling::Endpoints::DescribeScalableTargets.build(context)
67
+ when :describe_scaling_activities
68
+ Aws::ApplicationAutoScaling::Endpoints::DescribeScalingActivities.build(context)
69
+ when :describe_scaling_policies
70
+ Aws::ApplicationAutoScaling::Endpoints::DescribeScalingPolicies.build(context)
71
+ when :describe_scheduled_actions
72
+ Aws::ApplicationAutoScaling::Endpoints::DescribeScheduledActions.build(context)
73
+ when :list_tags_for_resource
74
+ Aws::ApplicationAutoScaling::Endpoints::ListTagsForResource.build(context)
75
+ when :put_scaling_policy
76
+ Aws::ApplicationAutoScaling::Endpoints::PutScalingPolicy.build(context)
77
+ when :put_scheduled_action
78
+ Aws::ApplicationAutoScaling::Endpoints::PutScheduledAction.build(context)
79
+ when :register_scalable_target
80
+ Aws::ApplicationAutoScaling::Endpoints::RegisterScalableTarget.build(context)
81
+ when :tag_resource
82
+ Aws::ApplicationAutoScaling::Endpoints::TagResource.build(context)
83
+ when :untag_resource
84
+ Aws::ApplicationAutoScaling::Endpoints::UntagResource.build(context)
85
+ end
86
+ end
87
+ end
88
+
89
+ def add_handlers(handlers, _config)
90
+ handlers.add(Handler, step: :build, priority: 75)
91
+ end
92
+ end
93
+ end
94
+ end