aws-sdk-costoptimizationhub 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,1222 @@
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
+ require 'seahorse/client/plugins/content_length.rb'
11
+ require 'aws-sdk-core/plugins/credentials_configuration.rb'
12
+ require 'aws-sdk-core/plugins/logging.rb'
13
+ require 'aws-sdk-core/plugins/param_converter.rb'
14
+ require 'aws-sdk-core/plugins/param_validator.rb'
15
+ require 'aws-sdk-core/plugins/user_agent.rb'
16
+ require 'aws-sdk-core/plugins/helpful_socket_errors.rb'
17
+ require 'aws-sdk-core/plugins/retry_errors.rb'
18
+ require 'aws-sdk-core/plugins/global_configuration.rb'
19
+ require 'aws-sdk-core/plugins/regional_endpoint.rb'
20
+ require 'aws-sdk-core/plugins/endpoint_discovery.rb'
21
+ require 'aws-sdk-core/plugins/endpoint_pattern.rb'
22
+ require 'aws-sdk-core/plugins/response_paging.rb'
23
+ require 'aws-sdk-core/plugins/stub_responses.rb'
24
+ require 'aws-sdk-core/plugins/idempotency_token.rb'
25
+ require 'aws-sdk-core/plugins/jsonvalue_converter.rb'
26
+ require 'aws-sdk-core/plugins/client_metrics_plugin.rb'
27
+ require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
28
+ require 'aws-sdk-core/plugins/transfer_encoding.rb'
29
+ require 'aws-sdk-core/plugins/http_checksum.rb'
30
+ require 'aws-sdk-core/plugins/checksum_algorithm.rb'
31
+ require 'aws-sdk-core/plugins/request_compression.rb'
32
+ require 'aws-sdk-core/plugins/defaults_mode.rb'
33
+ require 'aws-sdk-core/plugins/recursion_detection.rb'
34
+ require 'aws-sdk-core/plugins/sign.rb'
35
+ require 'aws-sdk-core/plugins/protocols/json_rpc.rb'
36
+
37
+ Aws::Plugins::GlobalConfiguration.add_identifier(:costoptimizationhub)
38
+
39
+ module Aws::CostOptimizationHub
40
+ # An API client for CostOptimizationHub. To construct a client, you need to configure a `:region` and `:credentials`.
41
+ #
42
+ # client = Aws::CostOptimizationHub::Client.new(
43
+ # region: region_name,
44
+ # credentials: credentials,
45
+ # # ...
46
+ # )
47
+ #
48
+ # For details on configuring region and credentials see
49
+ # the [developer guide](/sdk-for-ruby/v3/developer-guide/setup-config.html).
50
+ #
51
+ # See {#initialize} for a full list of supported configuration options.
52
+ class Client < Seahorse::Client::Base
53
+
54
+ include Aws::ClientStubs
55
+
56
+ @identifier = :costoptimizationhub
57
+
58
+ set_api(ClientApi::API)
59
+
60
+ add_plugin(Seahorse::Client::Plugins::ContentLength)
61
+ add_plugin(Aws::Plugins::CredentialsConfiguration)
62
+ add_plugin(Aws::Plugins::Logging)
63
+ add_plugin(Aws::Plugins::ParamConverter)
64
+ add_plugin(Aws::Plugins::ParamValidator)
65
+ add_plugin(Aws::Plugins::UserAgent)
66
+ add_plugin(Aws::Plugins::HelpfulSocketErrors)
67
+ add_plugin(Aws::Plugins::RetryErrors)
68
+ add_plugin(Aws::Plugins::GlobalConfiguration)
69
+ add_plugin(Aws::Plugins::RegionalEndpoint)
70
+ add_plugin(Aws::Plugins::EndpointDiscovery)
71
+ add_plugin(Aws::Plugins::EndpointPattern)
72
+ add_plugin(Aws::Plugins::ResponsePaging)
73
+ add_plugin(Aws::Plugins::StubResponses)
74
+ add_plugin(Aws::Plugins::IdempotencyToken)
75
+ add_plugin(Aws::Plugins::JsonvalueConverter)
76
+ add_plugin(Aws::Plugins::ClientMetricsPlugin)
77
+ add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
78
+ add_plugin(Aws::Plugins::TransferEncoding)
79
+ add_plugin(Aws::Plugins::HttpChecksum)
80
+ add_plugin(Aws::Plugins::ChecksumAlgorithm)
81
+ add_plugin(Aws::Plugins::RequestCompression)
82
+ add_plugin(Aws::Plugins::DefaultsMode)
83
+ add_plugin(Aws::Plugins::RecursionDetection)
84
+ add_plugin(Aws::Plugins::Sign)
85
+ add_plugin(Aws::Plugins::Protocols::JsonRpc)
86
+ add_plugin(Aws::CostOptimizationHub::Plugins::Endpoints)
87
+
88
+ # @overload initialize(options)
89
+ # @param [Hash] options
90
+ # @option options [required, Aws::CredentialProvider] :credentials
91
+ # Your AWS credentials. This can be an instance of any one of the
92
+ # following classes:
93
+ #
94
+ # * `Aws::Credentials` - Used for configuring static, non-refreshing
95
+ # credentials.
96
+ #
97
+ # * `Aws::SharedCredentials` - Used for loading static credentials from a
98
+ # shared file, such as `~/.aws/config`.
99
+ #
100
+ # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
101
+ #
102
+ # * `Aws::AssumeRoleWebIdentityCredentials` - Used when you need to
103
+ # assume a role after providing credentials via the web.
104
+ #
105
+ # * `Aws::SSOCredentials` - Used for loading credentials from AWS SSO using an
106
+ # access token generated from `aws login`.
107
+ #
108
+ # * `Aws::ProcessCredentials` - Used for loading credentials from a
109
+ # process that outputs to stdout.
110
+ #
111
+ # * `Aws::InstanceProfileCredentials` - Used for loading credentials
112
+ # from an EC2 IMDS on an EC2 instance.
113
+ #
114
+ # * `Aws::ECSCredentials` - Used for loading credentials from
115
+ # instances running in ECS.
116
+ #
117
+ # * `Aws::CognitoIdentityCredentials` - Used for loading credentials
118
+ # from the Cognito Identity service.
119
+ #
120
+ # When `:credentials` are not configured directly, the following
121
+ # locations will be searched for credentials:
122
+ #
123
+ # * `Aws.config[:credentials]`
124
+ # * The `:access_key_id`, `:secret_access_key`, and `:session_token` options.
125
+ # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
126
+ # * `~/.aws/credentials`
127
+ # * `~/.aws/config`
128
+ # * EC2/ECS IMDS instance profile - When used by default, the timeouts
129
+ # are very aggressive. Construct and pass an instance of
130
+ # `Aws::InstanceProfileCredentails` or `Aws::ECSCredentials` to
131
+ # enable retries and extended timeouts. Instance profile credential
132
+ # fetching can be disabled by setting ENV['AWS_EC2_METADATA_DISABLED']
133
+ # to true.
134
+ #
135
+ # @option options [required, String] :region
136
+ # The AWS region to connect to. The configured `:region` is
137
+ # used to determine the service `:endpoint`. When not passed,
138
+ # a default `:region` is searched for in the following locations:
139
+ #
140
+ # * `Aws.config[:region]`
141
+ # * `ENV['AWS_REGION']`
142
+ # * `ENV['AMAZON_REGION']`
143
+ # * `ENV['AWS_DEFAULT_REGION']`
144
+ # * `~/.aws/credentials`
145
+ # * `~/.aws/config`
146
+ #
147
+ # @option options [String] :access_key_id
148
+ #
149
+ # @option options [Boolean] :active_endpoint_cache (false)
150
+ # When set to `true`, a thread polling for endpoints will be running in
151
+ # the background every 60 secs (default). Defaults to `false`.
152
+ #
153
+ # @option options [Boolean] :adaptive_retry_wait_to_fill (true)
154
+ # Used only in `adaptive` retry mode. When true, the request will sleep
155
+ # until there is sufficent client side capacity to retry the request.
156
+ # When false, the request will raise a `RetryCapacityNotAvailableError` and will
157
+ # not retry instead of sleeping.
158
+ #
159
+ # @option options [Boolean] :client_side_monitoring (false)
160
+ # When `true`, client-side metrics will be collected for all API requests from
161
+ # this client.
162
+ #
163
+ # @option options [String] :client_side_monitoring_client_id ("")
164
+ # Allows you to provide an identifier for this client which will be attached to
165
+ # all generated client side metrics. Defaults to an empty string.
166
+ #
167
+ # @option options [String] :client_side_monitoring_host ("127.0.0.1")
168
+ # Allows you to specify the DNS hostname or IPv4 or IPv6 address that the client
169
+ # side monitoring agent is running on, where client metrics will be published via UDP.
170
+ #
171
+ # @option options [Integer] :client_side_monitoring_port (31000)
172
+ # Required for publishing client metrics. The port that the client side monitoring
173
+ # agent is running on, where client metrics will be published via UDP.
174
+ #
175
+ # @option options [Aws::ClientSideMonitoring::Publisher] :client_side_monitoring_publisher (Aws::ClientSideMonitoring::Publisher)
176
+ # Allows you to provide a custom client-side monitoring publisher class. By default,
177
+ # will use the Client Side Monitoring Agent Publisher.
178
+ #
179
+ # @option options [Boolean] :convert_params (true)
180
+ # When `true`, an attempt is made to coerce request parameters into
181
+ # the required types.
182
+ #
183
+ # @option options [Boolean] :correct_clock_skew (true)
184
+ # Used only in `standard` and adaptive retry modes. Specifies whether to apply
185
+ # a clock skew correction and retry requests with skewed client clocks.
186
+ #
187
+ # @option options [String] :defaults_mode ("legacy")
188
+ # See {Aws::DefaultsModeConfiguration} for a list of the
189
+ # accepted modes and the configuration defaults that are included.
190
+ #
191
+ # @option options [Boolean] :disable_host_prefix_injection (false)
192
+ # Set to true to disable SDK automatically adding host prefix
193
+ # to default service endpoint when available.
194
+ #
195
+ # @option options [Boolean] :disable_request_compression (false)
196
+ # When set to 'true' the request body will not be compressed
197
+ # for supported operations.
198
+ #
199
+ # @option options [String] :endpoint
200
+ # The client endpoint is normally constructed from the `:region`
201
+ # option. You should only configure an `:endpoint` when connecting
202
+ # to test or custom endpoints. This should be a valid HTTP(S) URI.
203
+ #
204
+ # @option options [Integer] :endpoint_cache_max_entries (1000)
205
+ # Used for the maximum size limit of the LRU cache storing endpoints data
206
+ # for endpoint discovery enabled operations. Defaults to 1000.
207
+ #
208
+ # @option options [Integer] :endpoint_cache_max_threads (10)
209
+ # Used for the maximum threads in use for polling endpoints to be cached, defaults to 10.
210
+ #
211
+ # @option options [Integer] :endpoint_cache_poll_interval (60)
212
+ # When :endpoint_discovery and :active_endpoint_cache is enabled,
213
+ # Use this option to config the time interval in seconds for making
214
+ # requests fetching endpoints information. Defaults to 60 sec.
215
+ #
216
+ # @option options [Boolean] :endpoint_discovery (false)
217
+ # When set to `true`, endpoint discovery will be enabled for operations when available.
218
+ #
219
+ # @option options [Boolean] :ignore_configured_endpoint_urls
220
+ # Setting to true disables use of endpoint URLs provided via environment
221
+ # variables and the shared configuration file.
222
+ #
223
+ # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
224
+ # The log formatter.
225
+ #
226
+ # @option options [Symbol] :log_level (:info)
227
+ # The log level to send messages to the `:logger` at.
228
+ #
229
+ # @option options [Logger] :logger
230
+ # The Logger instance to send log messages to. If this option
231
+ # is not set, logging will be disabled.
232
+ #
233
+ # @option options [Integer] :max_attempts (3)
234
+ # An integer representing the maximum number attempts that will be made for
235
+ # a single request, including the initial attempt. For example,
236
+ # setting this value to 5 will result in a request being retried up to
237
+ # 4 times. Used in `standard` and `adaptive` retry modes.
238
+ #
239
+ # @option options [String] :profile ("default")
240
+ # Used when loading credentials from the shared credentials file
241
+ # at HOME/.aws/credentials. When not specified, 'default' is used.
242
+ #
243
+ # @option options [Integer] :request_min_compression_size_bytes (10240)
244
+ # The minimum size in bytes that triggers compression for request
245
+ # bodies. The value must be non-negative integer value between 0
246
+ # and 10485780 bytes inclusive.
247
+ #
248
+ # @option options [Proc] :retry_backoff
249
+ # A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
250
+ # This option is only used in the `legacy` retry mode.
251
+ #
252
+ # @option options [Float] :retry_base_delay (0.3)
253
+ # The base delay in seconds used by the default backoff function. This option
254
+ # is only used in the `legacy` retry mode.
255
+ #
256
+ # @option options [Symbol] :retry_jitter (:none)
257
+ # A delay randomiser function used by the default backoff function.
258
+ # Some predefined functions can be referenced by name - :none, :equal, :full,
259
+ # otherwise a Proc that takes and returns a number. This option is only used
260
+ # in the `legacy` retry mode.
261
+ #
262
+ # @see https://www.awsarchitectureblog.com/2015/03/backoff.html
263
+ #
264
+ # @option options [Integer] :retry_limit (3)
265
+ # The maximum number of times to retry failed requests. Only
266
+ # ~ 500 level server errors and certain ~ 400 level client errors
267
+ # are retried. Generally, these are throttling errors, data
268
+ # checksum errors, networking errors, timeout errors, auth errors,
269
+ # endpoint discovery, and errors from expired credentials.
270
+ # This option is only used in the `legacy` retry mode.
271
+ #
272
+ # @option options [Integer] :retry_max_delay (0)
273
+ # The maximum number of seconds to delay between retries (0 for no limit)
274
+ # used by the default backoff function. This option is only used in the
275
+ # `legacy` retry mode.
276
+ #
277
+ # @option options [String] :retry_mode ("legacy")
278
+ # Specifies which retry algorithm to use. Values are:
279
+ #
280
+ # * `legacy` - The pre-existing retry behavior. This is default value if
281
+ # no retry mode is provided.
282
+ #
283
+ # * `standard` - A standardized set of retry rules across the AWS SDKs.
284
+ # This includes support for retry quotas, which limit the number of
285
+ # unsuccessful retries a client can make.
286
+ #
287
+ # * `adaptive` - An experimental retry mode that includes all the
288
+ # functionality of `standard` mode along with automatic client side
289
+ # throttling. This is a provisional mode that may change behavior
290
+ # in the future.
291
+ #
292
+ #
293
+ # @option options [String] :sdk_ua_app_id
294
+ # A unique and opaque application ID that is appended to the
295
+ # User-Agent header as app/<sdk_ua_app_id>. It should have a
296
+ # maximum length of 50.
297
+ #
298
+ # @option options [String] :secret_access_key
299
+ #
300
+ # @option options [String] :session_token
301
+ #
302
+ # @option options [Boolean] :simple_json (false)
303
+ # Disables request parameter conversion, validation, and formatting.
304
+ # Also disable response data type conversions. This option is useful
305
+ # when you want to ensure the highest level of performance by
306
+ # avoiding overhead of walking request parameters and response data
307
+ # structures.
308
+ #
309
+ # When `:simple_json` is enabled, the request parameters hash must
310
+ # be formatted exactly as the DynamoDB API expects.
311
+ #
312
+ # @option options [Boolean] :stub_responses (false)
313
+ # Causes the client to return stubbed responses. By default
314
+ # fake responses are generated and returned. You can specify
315
+ # the response data to return or errors to raise by calling
316
+ # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
317
+ #
318
+ # ** Please note ** When response stubbing is enabled, no HTTP
319
+ # requests are made, and retries are disabled.
320
+ #
321
+ # @option options [Aws::TokenProvider] :token_provider
322
+ # A Bearer Token Provider. This can be an instance of any one of the
323
+ # following classes:
324
+ #
325
+ # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
326
+ # tokens.
327
+ #
328
+ # * `Aws::SSOTokenProvider` - Used for loading tokens from AWS SSO using an
329
+ # access token generated from `aws login`.
330
+ #
331
+ # When `:token_provider` is not configured directly, the `Aws::TokenProviderChain`
332
+ # will be used to search for tokens configured for your profile in shared configuration files.
333
+ #
334
+ # @option options [Boolean] :use_dualstack_endpoint
335
+ # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
336
+ # will be used if available.
337
+ #
338
+ # @option options [Boolean] :use_fips_endpoint
339
+ # When set to `true`, fips compatible endpoints will be used if available.
340
+ # When a `fips` region is used, the region is normalized and this config
341
+ # is set to `true`.
342
+ #
343
+ # @option options [Boolean] :validate_params (true)
344
+ # When `true`, request parameters are validated before
345
+ # sending the request.
346
+ #
347
+ # @option options [Aws::CostOptimizationHub::EndpointProvider] :endpoint_provider
348
+ # The endpoint provider used to resolve endpoints. Any object that responds to `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to `Aws::CostOptimizationHub::EndpointParameters`
349
+ #
350
+ # @option options [URI::HTTP,String] :http_proxy A proxy to send
351
+ # requests through. Formatted like 'http://proxy.com:123'.
352
+ #
353
+ # @option options [Float] :http_open_timeout (15) The number of
354
+ # seconds to wait when opening a HTTP session before raising a
355
+ # `Timeout::Error`.
356
+ #
357
+ # @option options [Float] :http_read_timeout (60) The default
358
+ # number of seconds to wait for response data. This value can
359
+ # safely be set per-request on the session.
360
+ #
361
+ # @option options [Float] :http_idle_timeout (5) The number of
362
+ # seconds a connection is allowed to sit idle before it is
363
+ # considered stale. Stale connections are closed and removed
364
+ # from the pool before making a request.
365
+ #
366
+ # @option options [Float] :http_continue_timeout (1) The number of
367
+ # seconds to wait for a 100-continue response before sending the
368
+ # request body. This option has no effect unless the request has
369
+ # "Expect" header set to "100-continue". Defaults to `nil` which
370
+ # disables this behaviour. This value can safely be set per
371
+ # request on the session.
372
+ #
373
+ # @option options [Float] :ssl_timeout (nil) Sets the SSL timeout
374
+ # in seconds.
375
+ #
376
+ # @option options [Boolean] :http_wire_trace (false) When `true`,
377
+ # HTTP debug output will be sent to the `:logger`.
378
+ #
379
+ # @option options [Boolean] :ssl_verify_peer (true) When `true`,
380
+ # SSL peer certificates are verified when establishing a
381
+ # connection.
382
+ #
383
+ # @option options [String] :ssl_ca_bundle Full path to the SSL
384
+ # certificate authority bundle file that should be used when
385
+ # verifying peer certificates. If you do not pass
386
+ # `:ssl_ca_bundle` or `:ssl_ca_directory` the the system default
387
+ # will be used if available.
388
+ #
389
+ # @option options [String] :ssl_ca_directory Full path of the
390
+ # directory that contains the unbundled SSL certificate
391
+ # authority files for verifying peer certificates. If you do
392
+ # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the
393
+ # system default will be used if available.
394
+ #
395
+ def initialize(*args)
396
+ super
397
+ end
398
+
399
+ # @!group API Operations
400
+
401
+ # Returns a set of preferences for an account in order to add
402
+ # account-specific preferences into the service. These preferences
403
+ # impact how the savings associated with recommendations are
404
+ # presented—estimated savings after discounts or estimated savings
405
+ # before discounts, for example.
406
+ #
407
+ # @return [Types::GetPreferencesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
408
+ #
409
+ # * {Types::GetPreferencesResponse#member_account_discount_visibility #member_account_discount_visibility} => String
410
+ # * {Types::GetPreferencesResponse#savings_estimation_mode #savings_estimation_mode} => String
411
+ #
412
+ # @example Response structure
413
+ #
414
+ # resp.member_account_discount_visibility #=> String, one of "All", "None"
415
+ # resp.savings_estimation_mode #=> String, one of "BeforeDiscounts", "AfterDiscounts"
416
+ #
417
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cost-optimization-hub-2022-07-26/GetPreferences AWS API Documentation
418
+ #
419
+ # @overload get_preferences(params = {})
420
+ # @param [Hash] params ({})
421
+ def get_preferences(params = {}, options = {})
422
+ req = build_request(:get_preferences, params)
423
+ req.send_request(options)
424
+ end
425
+
426
+ # Returns both the current and recommended resource configuration and
427
+ # the estimated cost impact for a recommendation.
428
+ #
429
+ # The `recommendationId` is only valid for up to a maximum of 24 hours
430
+ # as recommendations are refreshed daily. To retrieve the
431
+ # `recommendationId`, use the `ListRecommendations` API.
432
+ #
433
+ # @option params [required, String] :recommendation_id
434
+ # The ID for the recommendation.
435
+ #
436
+ # @return [Types::GetRecommendationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
437
+ #
438
+ # * {Types::GetRecommendationResponse#account_id #account_id} => String
439
+ # * {Types::GetRecommendationResponse#action_type #action_type} => String
440
+ # * {Types::GetRecommendationResponse#cost_calculation_lookback_period_in_days #cost_calculation_lookback_period_in_days} => Integer
441
+ # * {Types::GetRecommendationResponse#currency_code #currency_code} => String
442
+ # * {Types::GetRecommendationResponse#current_resource_details #current_resource_details} => Types::ResourceDetails
443
+ # * {Types::GetRecommendationResponse#current_resource_type #current_resource_type} => String
444
+ # * {Types::GetRecommendationResponse#estimated_monthly_cost #estimated_monthly_cost} => Float
445
+ # * {Types::GetRecommendationResponse#estimated_monthly_savings #estimated_monthly_savings} => Float
446
+ # * {Types::GetRecommendationResponse#estimated_savings_over_cost_calculation_lookback_period #estimated_savings_over_cost_calculation_lookback_period} => Float
447
+ # * {Types::GetRecommendationResponse#estimated_savings_percentage #estimated_savings_percentage} => Float
448
+ # * {Types::GetRecommendationResponse#implementation_effort #implementation_effort} => String
449
+ # * {Types::GetRecommendationResponse#last_refresh_timestamp #last_refresh_timestamp} => Time
450
+ # * {Types::GetRecommendationResponse#recommendation_id #recommendation_id} => String
451
+ # * {Types::GetRecommendationResponse#recommendation_lookback_period_in_days #recommendation_lookback_period_in_days} => Integer
452
+ # * {Types::GetRecommendationResponse#recommended_resource_details #recommended_resource_details} => Types::ResourceDetails
453
+ # * {Types::GetRecommendationResponse#recommended_resource_type #recommended_resource_type} => String
454
+ # * {Types::GetRecommendationResponse#region #region} => String
455
+ # * {Types::GetRecommendationResponse#resource_arn #resource_arn} => String
456
+ # * {Types::GetRecommendationResponse#resource_id #resource_id} => String
457
+ # * {Types::GetRecommendationResponse#restart_needed #restart_needed} => Boolean
458
+ # * {Types::GetRecommendationResponse#rollback_possible #rollback_possible} => Boolean
459
+ # * {Types::GetRecommendationResponse#source #source} => String
460
+ # * {Types::GetRecommendationResponse#tags #tags} => Array&lt;Types::Tag&gt;
461
+ #
462
+ # @example Request syntax with placeholder values
463
+ #
464
+ # resp = client.get_recommendation({
465
+ # recommendation_id: "String", # required
466
+ # })
467
+ #
468
+ # @example Response structure
469
+ #
470
+ # resp.account_id #=> String
471
+ # resp.action_type #=> String, one of "Rightsize", "Stop", "Upgrade", "PurchaseSavingsPlans", "PurchaseReservedInstances", "MigrateToGraviton"
472
+ # resp.cost_calculation_lookback_period_in_days #=> Integer
473
+ # resp.currency_code #=> String
474
+ # resp.current_resource_details.compute_savings_plans.configuration.account_scope #=> String
475
+ # resp.current_resource_details.compute_savings_plans.configuration.hourly_commitment #=> String
476
+ # resp.current_resource_details.compute_savings_plans.configuration.payment_option #=> String
477
+ # resp.current_resource_details.compute_savings_plans.configuration.term #=> String
478
+ # resp.current_resource_details.compute_savings_plans.cost_calculation.pricing.estimated_monthly_commitment #=> Float
479
+ # resp.current_resource_details.compute_savings_plans.cost_calculation.pricing.estimated_on_demand_cost #=> Float
480
+ # resp.current_resource_details.compute_savings_plans.cost_calculation.pricing.monthly_savings_plans_eligible_cost #=> Float
481
+ # resp.current_resource_details.compute_savings_plans.cost_calculation.pricing.savings_percentage #=> Float
482
+ # resp.current_resource_details.ebs_volume.configuration.attachment_state #=> String
483
+ # resp.current_resource_details.ebs_volume.configuration.performance.iops #=> Float
484
+ # resp.current_resource_details.ebs_volume.configuration.performance.throughput #=> Float
485
+ # resp.current_resource_details.ebs_volume.configuration.storage.size_in_gb #=> Float
486
+ # resp.current_resource_details.ebs_volume.configuration.storage.type #=> String
487
+ # resp.current_resource_details.ebs_volume.cost_calculation.pricing.estimated_cost_after_discounts #=> Float
488
+ # resp.current_resource_details.ebs_volume.cost_calculation.pricing.estimated_cost_before_discounts #=> Float
489
+ # resp.current_resource_details.ebs_volume.cost_calculation.pricing.estimated_discounts.other_discount #=> Float
490
+ # resp.current_resource_details.ebs_volume.cost_calculation.pricing.estimated_discounts.reserved_instances_discount #=> Float
491
+ # resp.current_resource_details.ebs_volume.cost_calculation.pricing.estimated_discounts.savings_plans_discount #=> Float
492
+ # resp.current_resource_details.ebs_volume.cost_calculation.pricing.estimated_net_unused_amortized_commitments #=> Float
493
+ # resp.current_resource_details.ebs_volume.cost_calculation.usages #=> Array
494
+ # resp.current_resource_details.ebs_volume.cost_calculation.usages[0].operation #=> String
495
+ # resp.current_resource_details.ebs_volume.cost_calculation.usages[0].product_code #=> String
496
+ # resp.current_resource_details.ebs_volume.cost_calculation.usages[0].unit #=> String
497
+ # resp.current_resource_details.ebs_volume.cost_calculation.usages[0].usage_amount #=> Float
498
+ # resp.current_resource_details.ebs_volume.cost_calculation.usages[0].usage_type #=> String
499
+ # resp.current_resource_details.ec2_auto_scaling_group.configuration.instance.type #=> String
500
+ # resp.current_resource_details.ec2_auto_scaling_group.cost_calculation.pricing.estimated_cost_after_discounts #=> Float
501
+ # resp.current_resource_details.ec2_auto_scaling_group.cost_calculation.pricing.estimated_cost_before_discounts #=> Float
502
+ # resp.current_resource_details.ec2_auto_scaling_group.cost_calculation.pricing.estimated_discounts.other_discount #=> Float
503
+ # resp.current_resource_details.ec2_auto_scaling_group.cost_calculation.pricing.estimated_discounts.reserved_instances_discount #=> Float
504
+ # resp.current_resource_details.ec2_auto_scaling_group.cost_calculation.pricing.estimated_discounts.savings_plans_discount #=> Float
505
+ # resp.current_resource_details.ec2_auto_scaling_group.cost_calculation.pricing.estimated_net_unused_amortized_commitments #=> Float
506
+ # resp.current_resource_details.ec2_auto_scaling_group.cost_calculation.usages #=> Array
507
+ # resp.current_resource_details.ec2_auto_scaling_group.cost_calculation.usages[0].operation #=> String
508
+ # resp.current_resource_details.ec2_auto_scaling_group.cost_calculation.usages[0].product_code #=> String
509
+ # resp.current_resource_details.ec2_auto_scaling_group.cost_calculation.usages[0].unit #=> String
510
+ # resp.current_resource_details.ec2_auto_scaling_group.cost_calculation.usages[0].usage_amount #=> Float
511
+ # resp.current_resource_details.ec2_auto_scaling_group.cost_calculation.usages[0].usage_type #=> String
512
+ # resp.current_resource_details.ec2_instance.configuration.instance.type #=> String
513
+ # resp.current_resource_details.ec2_instance.cost_calculation.pricing.estimated_cost_after_discounts #=> Float
514
+ # resp.current_resource_details.ec2_instance.cost_calculation.pricing.estimated_cost_before_discounts #=> Float
515
+ # resp.current_resource_details.ec2_instance.cost_calculation.pricing.estimated_discounts.other_discount #=> Float
516
+ # resp.current_resource_details.ec2_instance.cost_calculation.pricing.estimated_discounts.reserved_instances_discount #=> Float
517
+ # resp.current_resource_details.ec2_instance.cost_calculation.pricing.estimated_discounts.savings_plans_discount #=> Float
518
+ # resp.current_resource_details.ec2_instance.cost_calculation.pricing.estimated_net_unused_amortized_commitments #=> Float
519
+ # resp.current_resource_details.ec2_instance.cost_calculation.usages #=> Array
520
+ # resp.current_resource_details.ec2_instance.cost_calculation.usages[0].operation #=> String
521
+ # resp.current_resource_details.ec2_instance.cost_calculation.usages[0].product_code #=> String
522
+ # resp.current_resource_details.ec2_instance.cost_calculation.usages[0].unit #=> String
523
+ # resp.current_resource_details.ec2_instance.cost_calculation.usages[0].usage_amount #=> Float
524
+ # resp.current_resource_details.ec2_instance.cost_calculation.usages[0].usage_type #=> String
525
+ # resp.current_resource_details.ec2_instance_savings_plans.configuration.account_scope #=> String
526
+ # resp.current_resource_details.ec2_instance_savings_plans.configuration.hourly_commitment #=> String
527
+ # resp.current_resource_details.ec2_instance_savings_plans.configuration.instance_family #=> String
528
+ # resp.current_resource_details.ec2_instance_savings_plans.configuration.payment_option #=> String
529
+ # resp.current_resource_details.ec2_instance_savings_plans.configuration.savings_plans_region #=> String
530
+ # resp.current_resource_details.ec2_instance_savings_plans.configuration.term #=> String
531
+ # resp.current_resource_details.ec2_instance_savings_plans.cost_calculation.pricing.estimated_monthly_commitment #=> Float
532
+ # resp.current_resource_details.ec2_instance_savings_plans.cost_calculation.pricing.estimated_on_demand_cost #=> Float
533
+ # resp.current_resource_details.ec2_instance_savings_plans.cost_calculation.pricing.monthly_savings_plans_eligible_cost #=> Float
534
+ # resp.current_resource_details.ec2_instance_savings_plans.cost_calculation.pricing.savings_percentage #=> Float
535
+ # resp.current_resource_details.ec2_reserved_instances.configuration.account_scope #=> String
536
+ # resp.current_resource_details.ec2_reserved_instances.configuration.current_generation #=> String
537
+ # resp.current_resource_details.ec2_reserved_instances.configuration.instance_family #=> String
538
+ # resp.current_resource_details.ec2_reserved_instances.configuration.instance_type #=> String
539
+ # resp.current_resource_details.ec2_reserved_instances.configuration.monthly_recurring_cost #=> String
540
+ # resp.current_resource_details.ec2_reserved_instances.configuration.normalized_units_to_purchase #=> String
541
+ # resp.current_resource_details.ec2_reserved_instances.configuration.number_of_instances_to_purchase #=> String
542
+ # resp.current_resource_details.ec2_reserved_instances.configuration.offering_class #=> String
543
+ # resp.current_resource_details.ec2_reserved_instances.configuration.payment_option #=> String
544
+ # resp.current_resource_details.ec2_reserved_instances.configuration.platform #=> String
545
+ # resp.current_resource_details.ec2_reserved_instances.configuration.reserved_instances_region #=> String
546
+ # resp.current_resource_details.ec2_reserved_instances.configuration.service #=> String
547
+ # resp.current_resource_details.ec2_reserved_instances.configuration.size_flex_eligible #=> Boolean
548
+ # resp.current_resource_details.ec2_reserved_instances.configuration.tenancy #=> String
549
+ # resp.current_resource_details.ec2_reserved_instances.configuration.term #=> String
550
+ # resp.current_resource_details.ec2_reserved_instances.configuration.upfront_cost #=> String
551
+ # resp.current_resource_details.ec2_reserved_instances.cost_calculation.pricing.estimated_monthly_amortized_reservation_cost #=> Float
552
+ # resp.current_resource_details.ec2_reserved_instances.cost_calculation.pricing.estimated_on_demand_cost #=> Float
553
+ # resp.current_resource_details.ec2_reserved_instances.cost_calculation.pricing.monthly_reservation_eligible_cost #=> Float
554
+ # resp.current_resource_details.ec2_reserved_instances.cost_calculation.pricing.savings_percentage #=> Float
555
+ # resp.current_resource_details.ecs_service.configuration.compute.architecture #=> String
556
+ # resp.current_resource_details.ecs_service.configuration.compute.memory_size_in_mb #=> Integer
557
+ # resp.current_resource_details.ecs_service.configuration.compute.platform #=> String
558
+ # resp.current_resource_details.ecs_service.configuration.compute.v_cpu #=> Float
559
+ # resp.current_resource_details.ecs_service.cost_calculation.pricing.estimated_cost_after_discounts #=> Float
560
+ # resp.current_resource_details.ecs_service.cost_calculation.pricing.estimated_cost_before_discounts #=> Float
561
+ # resp.current_resource_details.ecs_service.cost_calculation.pricing.estimated_discounts.other_discount #=> Float
562
+ # resp.current_resource_details.ecs_service.cost_calculation.pricing.estimated_discounts.reserved_instances_discount #=> Float
563
+ # resp.current_resource_details.ecs_service.cost_calculation.pricing.estimated_discounts.savings_plans_discount #=> Float
564
+ # resp.current_resource_details.ecs_service.cost_calculation.pricing.estimated_net_unused_amortized_commitments #=> Float
565
+ # resp.current_resource_details.ecs_service.cost_calculation.usages #=> Array
566
+ # resp.current_resource_details.ecs_service.cost_calculation.usages[0].operation #=> String
567
+ # resp.current_resource_details.ecs_service.cost_calculation.usages[0].product_code #=> String
568
+ # resp.current_resource_details.ecs_service.cost_calculation.usages[0].unit #=> String
569
+ # resp.current_resource_details.ecs_service.cost_calculation.usages[0].usage_amount #=> Float
570
+ # resp.current_resource_details.ecs_service.cost_calculation.usages[0].usage_type #=> String
571
+ # resp.current_resource_details.elasti_cache_reserved_instances.configuration.account_scope #=> String
572
+ # resp.current_resource_details.elasti_cache_reserved_instances.configuration.current_generation #=> String
573
+ # resp.current_resource_details.elasti_cache_reserved_instances.configuration.instance_family #=> String
574
+ # resp.current_resource_details.elasti_cache_reserved_instances.configuration.instance_type #=> String
575
+ # resp.current_resource_details.elasti_cache_reserved_instances.configuration.monthly_recurring_cost #=> String
576
+ # resp.current_resource_details.elasti_cache_reserved_instances.configuration.normalized_units_to_purchase #=> String
577
+ # resp.current_resource_details.elasti_cache_reserved_instances.configuration.number_of_instances_to_purchase #=> String
578
+ # resp.current_resource_details.elasti_cache_reserved_instances.configuration.payment_option #=> String
579
+ # resp.current_resource_details.elasti_cache_reserved_instances.configuration.reserved_instances_region #=> String
580
+ # resp.current_resource_details.elasti_cache_reserved_instances.configuration.service #=> String
581
+ # resp.current_resource_details.elasti_cache_reserved_instances.configuration.size_flex_eligible #=> Boolean
582
+ # resp.current_resource_details.elasti_cache_reserved_instances.configuration.term #=> String
583
+ # resp.current_resource_details.elasti_cache_reserved_instances.configuration.upfront_cost #=> String
584
+ # resp.current_resource_details.elasti_cache_reserved_instances.cost_calculation.pricing.estimated_monthly_amortized_reservation_cost #=> Float
585
+ # resp.current_resource_details.elasti_cache_reserved_instances.cost_calculation.pricing.estimated_on_demand_cost #=> Float
586
+ # resp.current_resource_details.elasti_cache_reserved_instances.cost_calculation.pricing.monthly_reservation_eligible_cost #=> Float
587
+ # resp.current_resource_details.elasti_cache_reserved_instances.cost_calculation.pricing.savings_percentage #=> Float
588
+ # resp.current_resource_details.lambda_function.configuration.compute.architecture #=> String
589
+ # resp.current_resource_details.lambda_function.configuration.compute.memory_size_in_mb #=> Integer
590
+ # resp.current_resource_details.lambda_function.configuration.compute.platform #=> String
591
+ # resp.current_resource_details.lambda_function.configuration.compute.v_cpu #=> Float
592
+ # resp.current_resource_details.lambda_function.cost_calculation.pricing.estimated_cost_after_discounts #=> Float
593
+ # resp.current_resource_details.lambda_function.cost_calculation.pricing.estimated_cost_before_discounts #=> Float
594
+ # resp.current_resource_details.lambda_function.cost_calculation.pricing.estimated_discounts.other_discount #=> Float
595
+ # resp.current_resource_details.lambda_function.cost_calculation.pricing.estimated_discounts.reserved_instances_discount #=> Float
596
+ # resp.current_resource_details.lambda_function.cost_calculation.pricing.estimated_discounts.savings_plans_discount #=> Float
597
+ # resp.current_resource_details.lambda_function.cost_calculation.pricing.estimated_net_unused_amortized_commitments #=> Float
598
+ # resp.current_resource_details.lambda_function.cost_calculation.usages #=> Array
599
+ # resp.current_resource_details.lambda_function.cost_calculation.usages[0].operation #=> String
600
+ # resp.current_resource_details.lambda_function.cost_calculation.usages[0].product_code #=> String
601
+ # resp.current_resource_details.lambda_function.cost_calculation.usages[0].unit #=> String
602
+ # resp.current_resource_details.lambda_function.cost_calculation.usages[0].usage_amount #=> Float
603
+ # resp.current_resource_details.lambda_function.cost_calculation.usages[0].usage_type #=> String
604
+ # resp.current_resource_details.open_search_reserved_instances.configuration.account_scope #=> String
605
+ # resp.current_resource_details.open_search_reserved_instances.configuration.current_generation #=> String
606
+ # resp.current_resource_details.open_search_reserved_instances.configuration.instance_type #=> String
607
+ # resp.current_resource_details.open_search_reserved_instances.configuration.monthly_recurring_cost #=> String
608
+ # resp.current_resource_details.open_search_reserved_instances.configuration.normalized_units_to_purchase #=> String
609
+ # resp.current_resource_details.open_search_reserved_instances.configuration.number_of_instances_to_purchase #=> String
610
+ # resp.current_resource_details.open_search_reserved_instances.configuration.payment_option #=> String
611
+ # resp.current_resource_details.open_search_reserved_instances.configuration.reserved_instances_region #=> String
612
+ # resp.current_resource_details.open_search_reserved_instances.configuration.service #=> String
613
+ # resp.current_resource_details.open_search_reserved_instances.configuration.size_flex_eligible #=> Boolean
614
+ # resp.current_resource_details.open_search_reserved_instances.configuration.term #=> String
615
+ # resp.current_resource_details.open_search_reserved_instances.configuration.upfront_cost #=> String
616
+ # resp.current_resource_details.open_search_reserved_instances.cost_calculation.pricing.estimated_monthly_amortized_reservation_cost #=> Float
617
+ # resp.current_resource_details.open_search_reserved_instances.cost_calculation.pricing.estimated_on_demand_cost #=> Float
618
+ # resp.current_resource_details.open_search_reserved_instances.cost_calculation.pricing.monthly_reservation_eligible_cost #=> Float
619
+ # resp.current_resource_details.open_search_reserved_instances.cost_calculation.pricing.savings_percentage #=> Float
620
+ # resp.current_resource_details.rds_reserved_instances.configuration.account_scope #=> String
621
+ # resp.current_resource_details.rds_reserved_instances.configuration.current_generation #=> String
622
+ # resp.current_resource_details.rds_reserved_instances.configuration.database_edition #=> String
623
+ # resp.current_resource_details.rds_reserved_instances.configuration.database_engine #=> String
624
+ # resp.current_resource_details.rds_reserved_instances.configuration.deployment_option #=> String
625
+ # resp.current_resource_details.rds_reserved_instances.configuration.instance_family #=> String
626
+ # resp.current_resource_details.rds_reserved_instances.configuration.instance_type #=> String
627
+ # resp.current_resource_details.rds_reserved_instances.configuration.license_model #=> String
628
+ # resp.current_resource_details.rds_reserved_instances.configuration.monthly_recurring_cost #=> String
629
+ # resp.current_resource_details.rds_reserved_instances.configuration.normalized_units_to_purchase #=> String
630
+ # resp.current_resource_details.rds_reserved_instances.configuration.number_of_instances_to_purchase #=> String
631
+ # resp.current_resource_details.rds_reserved_instances.configuration.payment_option #=> String
632
+ # resp.current_resource_details.rds_reserved_instances.configuration.reserved_instances_region #=> String
633
+ # resp.current_resource_details.rds_reserved_instances.configuration.service #=> String
634
+ # resp.current_resource_details.rds_reserved_instances.configuration.size_flex_eligible #=> Boolean
635
+ # resp.current_resource_details.rds_reserved_instances.configuration.term #=> String
636
+ # resp.current_resource_details.rds_reserved_instances.configuration.upfront_cost #=> String
637
+ # resp.current_resource_details.rds_reserved_instances.cost_calculation.pricing.estimated_monthly_amortized_reservation_cost #=> Float
638
+ # resp.current_resource_details.rds_reserved_instances.cost_calculation.pricing.estimated_on_demand_cost #=> Float
639
+ # resp.current_resource_details.rds_reserved_instances.cost_calculation.pricing.monthly_reservation_eligible_cost #=> Float
640
+ # resp.current_resource_details.rds_reserved_instances.cost_calculation.pricing.savings_percentage #=> Float
641
+ # resp.current_resource_details.redshift_reserved_instances.configuration.account_scope #=> String
642
+ # resp.current_resource_details.redshift_reserved_instances.configuration.current_generation #=> String
643
+ # resp.current_resource_details.redshift_reserved_instances.configuration.instance_family #=> String
644
+ # resp.current_resource_details.redshift_reserved_instances.configuration.instance_type #=> String
645
+ # resp.current_resource_details.redshift_reserved_instances.configuration.monthly_recurring_cost #=> String
646
+ # resp.current_resource_details.redshift_reserved_instances.configuration.normalized_units_to_purchase #=> String
647
+ # resp.current_resource_details.redshift_reserved_instances.configuration.number_of_instances_to_purchase #=> String
648
+ # resp.current_resource_details.redshift_reserved_instances.configuration.payment_option #=> String
649
+ # resp.current_resource_details.redshift_reserved_instances.configuration.reserved_instances_region #=> String
650
+ # resp.current_resource_details.redshift_reserved_instances.configuration.service #=> String
651
+ # resp.current_resource_details.redshift_reserved_instances.configuration.size_flex_eligible #=> Boolean
652
+ # resp.current_resource_details.redshift_reserved_instances.configuration.term #=> String
653
+ # resp.current_resource_details.redshift_reserved_instances.configuration.upfront_cost #=> String
654
+ # resp.current_resource_details.redshift_reserved_instances.cost_calculation.pricing.estimated_monthly_amortized_reservation_cost #=> Float
655
+ # resp.current_resource_details.redshift_reserved_instances.cost_calculation.pricing.estimated_on_demand_cost #=> Float
656
+ # resp.current_resource_details.redshift_reserved_instances.cost_calculation.pricing.monthly_reservation_eligible_cost #=> Float
657
+ # resp.current_resource_details.redshift_reserved_instances.cost_calculation.pricing.savings_percentage #=> Float
658
+ # resp.current_resource_details.sage_maker_savings_plans.configuration.account_scope #=> String
659
+ # resp.current_resource_details.sage_maker_savings_plans.configuration.hourly_commitment #=> String
660
+ # resp.current_resource_details.sage_maker_savings_plans.configuration.payment_option #=> String
661
+ # resp.current_resource_details.sage_maker_savings_plans.configuration.term #=> String
662
+ # resp.current_resource_details.sage_maker_savings_plans.cost_calculation.pricing.estimated_monthly_commitment #=> Float
663
+ # resp.current_resource_details.sage_maker_savings_plans.cost_calculation.pricing.estimated_on_demand_cost #=> Float
664
+ # resp.current_resource_details.sage_maker_savings_plans.cost_calculation.pricing.monthly_savings_plans_eligible_cost #=> Float
665
+ # resp.current_resource_details.sage_maker_savings_plans.cost_calculation.pricing.savings_percentage #=> Float
666
+ # resp.current_resource_type #=> String, one of "Ec2Instance", "LambdaFunction", "EbsVolume", "EcsService", "Ec2AutoScalingGroup", "Ec2InstanceSavingsPlans", "ComputeSavingsPlans", "SageMakerSavingsPlans", "Ec2ReservedInstances", "RdsReservedInstances", "OpenSearchReservedInstances", "RedshiftReservedInstances", "ElastiCacheReservedInstances"
667
+ # resp.estimated_monthly_cost #=> Float
668
+ # resp.estimated_monthly_savings #=> Float
669
+ # resp.estimated_savings_over_cost_calculation_lookback_period #=> Float
670
+ # resp.estimated_savings_percentage #=> Float
671
+ # resp.implementation_effort #=> String, one of "VeryLow", "Low", "Medium", "High", "VeryHigh"
672
+ # resp.last_refresh_timestamp #=> Time
673
+ # resp.recommendation_id #=> String
674
+ # resp.recommendation_lookback_period_in_days #=> Integer
675
+ # resp.recommended_resource_details.compute_savings_plans.configuration.account_scope #=> String
676
+ # resp.recommended_resource_details.compute_savings_plans.configuration.hourly_commitment #=> String
677
+ # resp.recommended_resource_details.compute_savings_plans.configuration.payment_option #=> String
678
+ # resp.recommended_resource_details.compute_savings_plans.configuration.term #=> String
679
+ # resp.recommended_resource_details.compute_savings_plans.cost_calculation.pricing.estimated_monthly_commitment #=> Float
680
+ # resp.recommended_resource_details.compute_savings_plans.cost_calculation.pricing.estimated_on_demand_cost #=> Float
681
+ # resp.recommended_resource_details.compute_savings_plans.cost_calculation.pricing.monthly_savings_plans_eligible_cost #=> Float
682
+ # resp.recommended_resource_details.compute_savings_plans.cost_calculation.pricing.savings_percentage #=> Float
683
+ # resp.recommended_resource_details.ebs_volume.configuration.attachment_state #=> String
684
+ # resp.recommended_resource_details.ebs_volume.configuration.performance.iops #=> Float
685
+ # resp.recommended_resource_details.ebs_volume.configuration.performance.throughput #=> Float
686
+ # resp.recommended_resource_details.ebs_volume.configuration.storage.size_in_gb #=> Float
687
+ # resp.recommended_resource_details.ebs_volume.configuration.storage.type #=> String
688
+ # resp.recommended_resource_details.ebs_volume.cost_calculation.pricing.estimated_cost_after_discounts #=> Float
689
+ # resp.recommended_resource_details.ebs_volume.cost_calculation.pricing.estimated_cost_before_discounts #=> Float
690
+ # resp.recommended_resource_details.ebs_volume.cost_calculation.pricing.estimated_discounts.other_discount #=> Float
691
+ # resp.recommended_resource_details.ebs_volume.cost_calculation.pricing.estimated_discounts.reserved_instances_discount #=> Float
692
+ # resp.recommended_resource_details.ebs_volume.cost_calculation.pricing.estimated_discounts.savings_plans_discount #=> Float
693
+ # resp.recommended_resource_details.ebs_volume.cost_calculation.pricing.estimated_net_unused_amortized_commitments #=> Float
694
+ # resp.recommended_resource_details.ebs_volume.cost_calculation.usages #=> Array
695
+ # resp.recommended_resource_details.ebs_volume.cost_calculation.usages[0].operation #=> String
696
+ # resp.recommended_resource_details.ebs_volume.cost_calculation.usages[0].product_code #=> String
697
+ # resp.recommended_resource_details.ebs_volume.cost_calculation.usages[0].unit #=> String
698
+ # resp.recommended_resource_details.ebs_volume.cost_calculation.usages[0].usage_amount #=> Float
699
+ # resp.recommended_resource_details.ebs_volume.cost_calculation.usages[0].usage_type #=> String
700
+ # resp.recommended_resource_details.ec2_auto_scaling_group.configuration.instance.type #=> String
701
+ # resp.recommended_resource_details.ec2_auto_scaling_group.cost_calculation.pricing.estimated_cost_after_discounts #=> Float
702
+ # resp.recommended_resource_details.ec2_auto_scaling_group.cost_calculation.pricing.estimated_cost_before_discounts #=> Float
703
+ # resp.recommended_resource_details.ec2_auto_scaling_group.cost_calculation.pricing.estimated_discounts.other_discount #=> Float
704
+ # resp.recommended_resource_details.ec2_auto_scaling_group.cost_calculation.pricing.estimated_discounts.reserved_instances_discount #=> Float
705
+ # resp.recommended_resource_details.ec2_auto_scaling_group.cost_calculation.pricing.estimated_discounts.savings_plans_discount #=> Float
706
+ # resp.recommended_resource_details.ec2_auto_scaling_group.cost_calculation.pricing.estimated_net_unused_amortized_commitments #=> Float
707
+ # resp.recommended_resource_details.ec2_auto_scaling_group.cost_calculation.usages #=> Array
708
+ # resp.recommended_resource_details.ec2_auto_scaling_group.cost_calculation.usages[0].operation #=> String
709
+ # resp.recommended_resource_details.ec2_auto_scaling_group.cost_calculation.usages[0].product_code #=> String
710
+ # resp.recommended_resource_details.ec2_auto_scaling_group.cost_calculation.usages[0].unit #=> String
711
+ # resp.recommended_resource_details.ec2_auto_scaling_group.cost_calculation.usages[0].usage_amount #=> Float
712
+ # resp.recommended_resource_details.ec2_auto_scaling_group.cost_calculation.usages[0].usage_type #=> String
713
+ # resp.recommended_resource_details.ec2_instance.configuration.instance.type #=> String
714
+ # resp.recommended_resource_details.ec2_instance.cost_calculation.pricing.estimated_cost_after_discounts #=> Float
715
+ # resp.recommended_resource_details.ec2_instance.cost_calculation.pricing.estimated_cost_before_discounts #=> Float
716
+ # resp.recommended_resource_details.ec2_instance.cost_calculation.pricing.estimated_discounts.other_discount #=> Float
717
+ # resp.recommended_resource_details.ec2_instance.cost_calculation.pricing.estimated_discounts.reserved_instances_discount #=> Float
718
+ # resp.recommended_resource_details.ec2_instance.cost_calculation.pricing.estimated_discounts.savings_plans_discount #=> Float
719
+ # resp.recommended_resource_details.ec2_instance.cost_calculation.pricing.estimated_net_unused_amortized_commitments #=> Float
720
+ # resp.recommended_resource_details.ec2_instance.cost_calculation.usages #=> Array
721
+ # resp.recommended_resource_details.ec2_instance.cost_calculation.usages[0].operation #=> String
722
+ # resp.recommended_resource_details.ec2_instance.cost_calculation.usages[0].product_code #=> String
723
+ # resp.recommended_resource_details.ec2_instance.cost_calculation.usages[0].unit #=> String
724
+ # resp.recommended_resource_details.ec2_instance.cost_calculation.usages[0].usage_amount #=> Float
725
+ # resp.recommended_resource_details.ec2_instance.cost_calculation.usages[0].usage_type #=> String
726
+ # resp.recommended_resource_details.ec2_instance_savings_plans.configuration.account_scope #=> String
727
+ # resp.recommended_resource_details.ec2_instance_savings_plans.configuration.hourly_commitment #=> String
728
+ # resp.recommended_resource_details.ec2_instance_savings_plans.configuration.instance_family #=> String
729
+ # resp.recommended_resource_details.ec2_instance_savings_plans.configuration.payment_option #=> String
730
+ # resp.recommended_resource_details.ec2_instance_savings_plans.configuration.savings_plans_region #=> String
731
+ # resp.recommended_resource_details.ec2_instance_savings_plans.configuration.term #=> String
732
+ # resp.recommended_resource_details.ec2_instance_savings_plans.cost_calculation.pricing.estimated_monthly_commitment #=> Float
733
+ # resp.recommended_resource_details.ec2_instance_savings_plans.cost_calculation.pricing.estimated_on_demand_cost #=> Float
734
+ # resp.recommended_resource_details.ec2_instance_savings_plans.cost_calculation.pricing.monthly_savings_plans_eligible_cost #=> Float
735
+ # resp.recommended_resource_details.ec2_instance_savings_plans.cost_calculation.pricing.savings_percentage #=> Float
736
+ # resp.recommended_resource_details.ec2_reserved_instances.configuration.account_scope #=> String
737
+ # resp.recommended_resource_details.ec2_reserved_instances.configuration.current_generation #=> String
738
+ # resp.recommended_resource_details.ec2_reserved_instances.configuration.instance_family #=> String
739
+ # resp.recommended_resource_details.ec2_reserved_instances.configuration.instance_type #=> String
740
+ # resp.recommended_resource_details.ec2_reserved_instances.configuration.monthly_recurring_cost #=> String
741
+ # resp.recommended_resource_details.ec2_reserved_instances.configuration.normalized_units_to_purchase #=> String
742
+ # resp.recommended_resource_details.ec2_reserved_instances.configuration.number_of_instances_to_purchase #=> String
743
+ # resp.recommended_resource_details.ec2_reserved_instances.configuration.offering_class #=> String
744
+ # resp.recommended_resource_details.ec2_reserved_instances.configuration.payment_option #=> String
745
+ # resp.recommended_resource_details.ec2_reserved_instances.configuration.platform #=> String
746
+ # resp.recommended_resource_details.ec2_reserved_instances.configuration.reserved_instances_region #=> String
747
+ # resp.recommended_resource_details.ec2_reserved_instances.configuration.service #=> String
748
+ # resp.recommended_resource_details.ec2_reserved_instances.configuration.size_flex_eligible #=> Boolean
749
+ # resp.recommended_resource_details.ec2_reserved_instances.configuration.tenancy #=> String
750
+ # resp.recommended_resource_details.ec2_reserved_instances.configuration.term #=> String
751
+ # resp.recommended_resource_details.ec2_reserved_instances.configuration.upfront_cost #=> String
752
+ # resp.recommended_resource_details.ec2_reserved_instances.cost_calculation.pricing.estimated_monthly_amortized_reservation_cost #=> Float
753
+ # resp.recommended_resource_details.ec2_reserved_instances.cost_calculation.pricing.estimated_on_demand_cost #=> Float
754
+ # resp.recommended_resource_details.ec2_reserved_instances.cost_calculation.pricing.monthly_reservation_eligible_cost #=> Float
755
+ # resp.recommended_resource_details.ec2_reserved_instances.cost_calculation.pricing.savings_percentage #=> Float
756
+ # resp.recommended_resource_details.ecs_service.configuration.compute.architecture #=> String
757
+ # resp.recommended_resource_details.ecs_service.configuration.compute.memory_size_in_mb #=> Integer
758
+ # resp.recommended_resource_details.ecs_service.configuration.compute.platform #=> String
759
+ # resp.recommended_resource_details.ecs_service.configuration.compute.v_cpu #=> Float
760
+ # resp.recommended_resource_details.ecs_service.cost_calculation.pricing.estimated_cost_after_discounts #=> Float
761
+ # resp.recommended_resource_details.ecs_service.cost_calculation.pricing.estimated_cost_before_discounts #=> Float
762
+ # resp.recommended_resource_details.ecs_service.cost_calculation.pricing.estimated_discounts.other_discount #=> Float
763
+ # resp.recommended_resource_details.ecs_service.cost_calculation.pricing.estimated_discounts.reserved_instances_discount #=> Float
764
+ # resp.recommended_resource_details.ecs_service.cost_calculation.pricing.estimated_discounts.savings_plans_discount #=> Float
765
+ # resp.recommended_resource_details.ecs_service.cost_calculation.pricing.estimated_net_unused_amortized_commitments #=> Float
766
+ # resp.recommended_resource_details.ecs_service.cost_calculation.usages #=> Array
767
+ # resp.recommended_resource_details.ecs_service.cost_calculation.usages[0].operation #=> String
768
+ # resp.recommended_resource_details.ecs_service.cost_calculation.usages[0].product_code #=> String
769
+ # resp.recommended_resource_details.ecs_service.cost_calculation.usages[0].unit #=> String
770
+ # resp.recommended_resource_details.ecs_service.cost_calculation.usages[0].usage_amount #=> Float
771
+ # resp.recommended_resource_details.ecs_service.cost_calculation.usages[0].usage_type #=> String
772
+ # resp.recommended_resource_details.elasti_cache_reserved_instances.configuration.account_scope #=> String
773
+ # resp.recommended_resource_details.elasti_cache_reserved_instances.configuration.current_generation #=> String
774
+ # resp.recommended_resource_details.elasti_cache_reserved_instances.configuration.instance_family #=> String
775
+ # resp.recommended_resource_details.elasti_cache_reserved_instances.configuration.instance_type #=> String
776
+ # resp.recommended_resource_details.elasti_cache_reserved_instances.configuration.monthly_recurring_cost #=> String
777
+ # resp.recommended_resource_details.elasti_cache_reserved_instances.configuration.normalized_units_to_purchase #=> String
778
+ # resp.recommended_resource_details.elasti_cache_reserved_instances.configuration.number_of_instances_to_purchase #=> String
779
+ # resp.recommended_resource_details.elasti_cache_reserved_instances.configuration.payment_option #=> String
780
+ # resp.recommended_resource_details.elasti_cache_reserved_instances.configuration.reserved_instances_region #=> String
781
+ # resp.recommended_resource_details.elasti_cache_reserved_instances.configuration.service #=> String
782
+ # resp.recommended_resource_details.elasti_cache_reserved_instances.configuration.size_flex_eligible #=> Boolean
783
+ # resp.recommended_resource_details.elasti_cache_reserved_instances.configuration.term #=> String
784
+ # resp.recommended_resource_details.elasti_cache_reserved_instances.configuration.upfront_cost #=> String
785
+ # resp.recommended_resource_details.elasti_cache_reserved_instances.cost_calculation.pricing.estimated_monthly_amortized_reservation_cost #=> Float
786
+ # resp.recommended_resource_details.elasti_cache_reserved_instances.cost_calculation.pricing.estimated_on_demand_cost #=> Float
787
+ # resp.recommended_resource_details.elasti_cache_reserved_instances.cost_calculation.pricing.monthly_reservation_eligible_cost #=> Float
788
+ # resp.recommended_resource_details.elasti_cache_reserved_instances.cost_calculation.pricing.savings_percentage #=> Float
789
+ # resp.recommended_resource_details.lambda_function.configuration.compute.architecture #=> String
790
+ # resp.recommended_resource_details.lambda_function.configuration.compute.memory_size_in_mb #=> Integer
791
+ # resp.recommended_resource_details.lambda_function.configuration.compute.platform #=> String
792
+ # resp.recommended_resource_details.lambda_function.configuration.compute.v_cpu #=> Float
793
+ # resp.recommended_resource_details.lambda_function.cost_calculation.pricing.estimated_cost_after_discounts #=> Float
794
+ # resp.recommended_resource_details.lambda_function.cost_calculation.pricing.estimated_cost_before_discounts #=> Float
795
+ # resp.recommended_resource_details.lambda_function.cost_calculation.pricing.estimated_discounts.other_discount #=> Float
796
+ # resp.recommended_resource_details.lambda_function.cost_calculation.pricing.estimated_discounts.reserved_instances_discount #=> Float
797
+ # resp.recommended_resource_details.lambda_function.cost_calculation.pricing.estimated_discounts.savings_plans_discount #=> Float
798
+ # resp.recommended_resource_details.lambda_function.cost_calculation.pricing.estimated_net_unused_amortized_commitments #=> Float
799
+ # resp.recommended_resource_details.lambda_function.cost_calculation.usages #=> Array
800
+ # resp.recommended_resource_details.lambda_function.cost_calculation.usages[0].operation #=> String
801
+ # resp.recommended_resource_details.lambda_function.cost_calculation.usages[0].product_code #=> String
802
+ # resp.recommended_resource_details.lambda_function.cost_calculation.usages[0].unit #=> String
803
+ # resp.recommended_resource_details.lambda_function.cost_calculation.usages[0].usage_amount #=> Float
804
+ # resp.recommended_resource_details.lambda_function.cost_calculation.usages[0].usage_type #=> String
805
+ # resp.recommended_resource_details.open_search_reserved_instances.configuration.account_scope #=> String
806
+ # resp.recommended_resource_details.open_search_reserved_instances.configuration.current_generation #=> String
807
+ # resp.recommended_resource_details.open_search_reserved_instances.configuration.instance_type #=> String
808
+ # resp.recommended_resource_details.open_search_reserved_instances.configuration.monthly_recurring_cost #=> String
809
+ # resp.recommended_resource_details.open_search_reserved_instances.configuration.normalized_units_to_purchase #=> String
810
+ # resp.recommended_resource_details.open_search_reserved_instances.configuration.number_of_instances_to_purchase #=> String
811
+ # resp.recommended_resource_details.open_search_reserved_instances.configuration.payment_option #=> String
812
+ # resp.recommended_resource_details.open_search_reserved_instances.configuration.reserved_instances_region #=> String
813
+ # resp.recommended_resource_details.open_search_reserved_instances.configuration.service #=> String
814
+ # resp.recommended_resource_details.open_search_reserved_instances.configuration.size_flex_eligible #=> Boolean
815
+ # resp.recommended_resource_details.open_search_reserved_instances.configuration.term #=> String
816
+ # resp.recommended_resource_details.open_search_reserved_instances.configuration.upfront_cost #=> String
817
+ # resp.recommended_resource_details.open_search_reserved_instances.cost_calculation.pricing.estimated_monthly_amortized_reservation_cost #=> Float
818
+ # resp.recommended_resource_details.open_search_reserved_instances.cost_calculation.pricing.estimated_on_demand_cost #=> Float
819
+ # resp.recommended_resource_details.open_search_reserved_instances.cost_calculation.pricing.monthly_reservation_eligible_cost #=> Float
820
+ # resp.recommended_resource_details.open_search_reserved_instances.cost_calculation.pricing.savings_percentage #=> Float
821
+ # resp.recommended_resource_details.rds_reserved_instances.configuration.account_scope #=> String
822
+ # resp.recommended_resource_details.rds_reserved_instances.configuration.current_generation #=> String
823
+ # resp.recommended_resource_details.rds_reserved_instances.configuration.database_edition #=> String
824
+ # resp.recommended_resource_details.rds_reserved_instances.configuration.database_engine #=> String
825
+ # resp.recommended_resource_details.rds_reserved_instances.configuration.deployment_option #=> String
826
+ # resp.recommended_resource_details.rds_reserved_instances.configuration.instance_family #=> String
827
+ # resp.recommended_resource_details.rds_reserved_instances.configuration.instance_type #=> String
828
+ # resp.recommended_resource_details.rds_reserved_instances.configuration.license_model #=> String
829
+ # resp.recommended_resource_details.rds_reserved_instances.configuration.monthly_recurring_cost #=> String
830
+ # resp.recommended_resource_details.rds_reserved_instances.configuration.normalized_units_to_purchase #=> String
831
+ # resp.recommended_resource_details.rds_reserved_instances.configuration.number_of_instances_to_purchase #=> String
832
+ # resp.recommended_resource_details.rds_reserved_instances.configuration.payment_option #=> String
833
+ # resp.recommended_resource_details.rds_reserved_instances.configuration.reserved_instances_region #=> String
834
+ # resp.recommended_resource_details.rds_reserved_instances.configuration.service #=> String
835
+ # resp.recommended_resource_details.rds_reserved_instances.configuration.size_flex_eligible #=> Boolean
836
+ # resp.recommended_resource_details.rds_reserved_instances.configuration.term #=> String
837
+ # resp.recommended_resource_details.rds_reserved_instances.configuration.upfront_cost #=> String
838
+ # resp.recommended_resource_details.rds_reserved_instances.cost_calculation.pricing.estimated_monthly_amortized_reservation_cost #=> Float
839
+ # resp.recommended_resource_details.rds_reserved_instances.cost_calculation.pricing.estimated_on_demand_cost #=> Float
840
+ # resp.recommended_resource_details.rds_reserved_instances.cost_calculation.pricing.monthly_reservation_eligible_cost #=> Float
841
+ # resp.recommended_resource_details.rds_reserved_instances.cost_calculation.pricing.savings_percentage #=> Float
842
+ # resp.recommended_resource_details.redshift_reserved_instances.configuration.account_scope #=> String
843
+ # resp.recommended_resource_details.redshift_reserved_instances.configuration.current_generation #=> String
844
+ # resp.recommended_resource_details.redshift_reserved_instances.configuration.instance_family #=> String
845
+ # resp.recommended_resource_details.redshift_reserved_instances.configuration.instance_type #=> String
846
+ # resp.recommended_resource_details.redshift_reserved_instances.configuration.monthly_recurring_cost #=> String
847
+ # resp.recommended_resource_details.redshift_reserved_instances.configuration.normalized_units_to_purchase #=> String
848
+ # resp.recommended_resource_details.redshift_reserved_instances.configuration.number_of_instances_to_purchase #=> String
849
+ # resp.recommended_resource_details.redshift_reserved_instances.configuration.payment_option #=> String
850
+ # resp.recommended_resource_details.redshift_reserved_instances.configuration.reserved_instances_region #=> String
851
+ # resp.recommended_resource_details.redshift_reserved_instances.configuration.service #=> String
852
+ # resp.recommended_resource_details.redshift_reserved_instances.configuration.size_flex_eligible #=> Boolean
853
+ # resp.recommended_resource_details.redshift_reserved_instances.configuration.term #=> String
854
+ # resp.recommended_resource_details.redshift_reserved_instances.configuration.upfront_cost #=> String
855
+ # resp.recommended_resource_details.redshift_reserved_instances.cost_calculation.pricing.estimated_monthly_amortized_reservation_cost #=> Float
856
+ # resp.recommended_resource_details.redshift_reserved_instances.cost_calculation.pricing.estimated_on_demand_cost #=> Float
857
+ # resp.recommended_resource_details.redshift_reserved_instances.cost_calculation.pricing.monthly_reservation_eligible_cost #=> Float
858
+ # resp.recommended_resource_details.redshift_reserved_instances.cost_calculation.pricing.savings_percentage #=> Float
859
+ # resp.recommended_resource_details.sage_maker_savings_plans.configuration.account_scope #=> String
860
+ # resp.recommended_resource_details.sage_maker_savings_plans.configuration.hourly_commitment #=> String
861
+ # resp.recommended_resource_details.sage_maker_savings_plans.configuration.payment_option #=> String
862
+ # resp.recommended_resource_details.sage_maker_savings_plans.configuration.term #=> String
863
+ # resp.recommended_resource_details.sage_maker_savings_plans.cost_calculation.pricing.estimated_monthly_commitment #=> Float
864
+ # resp.recommended_resource_details.sage_maker_savings_plans.cost_calculation.pricing.estimated_on_demand_cost #=> Float
865
+ # resp.recommended_resource_details.sage_maker_savings_plans.cost_calculation.pricing.monthly_savings_plans_eligible_cost #=> Float
866
+ # resp.recommended_resource_details.sage_maker_savings_plans.cost_calculation.pricing.savings_percentage #=> Float
867
+ # resp.recommended_resource_type #=> String, one of "Ec2Instance", "LambdaFunction", "EbsVolume", "EcsService", "Ec2AutoScalingGroup", "Ec2InstanceSavingsPlans", "ComputeSavingsPlans", "SageMakerSavingsPlans", "Ec2ReservedInstances", "RdsReservedInstances", "OpenSearchReservedInstances", "RedshiftReservedInstances", "ElastiCacheReservedInstances"
868
+ # resp.region #=> String
869
+ # resp.resource_arn #=> String
870
+ # resp.resource_id #=> String
871
+ # resp.restart_needed #=> Boolean
872
+ # resp.rollback_possible #=> Boolean
873
+ # resp.source #=> String, one of "ComputeOptimizer", "CostExplorer"
874
+ # resp.tags #=> Array
875
+ # resp.tags[0].key #=> String
876
+ # resp.tags[0].value #=> String
877
+ #
878
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cost-optimization-hub-2022-07-26/GetRecommendation AWS API Documentation
879
+ #
880
+ # @overload get_recommendation(params = {})
881
+ # @param [Hash] params ({})
882
+ def get_recommendation(params = {}, options = {})
883
+ req = build_request(:get_recommendation, params)
884
+ req.send_request(options)
885
+ end
886
+
887
+ # Retrieves the enrollment status for an account. It can also return the
888
+ # list of accounts that are enrolled under the organization.
889
+ #
890
+ # @option params [String] :account_id
891
+ # The enrollment status of a specific account ID in the organization.
892
+ #
893
+ # @option params [Boolean] :include_organization_info
894
+ # Indicates whether to return the enrollment status for the
895
+ # organization.
896
+ #
897
+ # @option params [Integer] :max_results
898
+ # The maximum number of objects that are returned for the request.
899
+ #
900
+ # @option params [String] :next_token
901
+ # The token to retrieve the next set of results.
902
+ #
903
+ # @return [Types::ListEnrollmentStatusesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
904
+ #
905
+ # * {Types::ListEnrollmentStatusesResponse#items #items} => Array&lt;Types::AccountEnrollmentStatus&gt;
906
+ # * {Types::ListEnrollmentStatusesResponse#next_token #next_token} => String
907
+ #
908
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
909
+ #
910
+ # @example Request syntax with placeholder values
911
+ #
912
+ # resp = client.list_enrollment_statuses({
913
+ # account_id: "AccountId",
914
+ # include_organization_info: false,
915
+ # max_results: 1,
916
+ # next_token: "String",
917
+ # })
918
+ #
919
+ # @example Response structure
920
+ #
921
+ # resp.items #=> Array
922
+ # resp.items[0].account_id #=> String
923
+ # resp.items[0].created_timestamp #=> Time
924
+ # resp.items[0].last_updated_timestamp #=> Time
925
+ # resp.items[0].status #=> String, one of "Active", "Inactive"
926
+ # resp.next_token #=> String
927
+ #
928
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cost-optimization-hub-2022-07-26/ListEnrollmentStatuses AWS API Documentation
929
+ #
930
+ # @overload list_enrollment_statuses(params = {})
931
+ # @param [Hash] params ({})
932
+ def list_enrollment_statuses(params = {}, options = {})
933
+ req = build_request(:list_enrollment_statuses, params)
934
+ req.send_request(options)
935
+ end
936
+
937
+ # Returns a concise representation of savings estimates for resources.
938
+ # Also returns de-duped savings across different types of
939
+ # recommendations.
940
+ #
941
+ # <note markdown="1"> The following filters are not supported for this API:
942
+ # `recommendationIds`, `resourceArns`, and `resourceIds`.
943
+ #
944
+ # </note>
945
+ #
946
+ # @option params [Types::Filter] :filter
947
+ # Describes a filter that returns a more specific list of
948
+ # recommendations. Filters recommendations by different dimensions.
949
+ #
950
+ # @option params [required, String] :group_by
951
+ # The grouping of recommendations by a dimension.
952
+ #
953
+ # @option params [Integer] :max_results
954
+ # The maximum number of recommendations that are returned for the
955
+ # request.
956
+ #
957
+ # @option params [String] :next_token
958
+ # The token to retrieve the next set of results.
959
+ #
960
+ # @return [Types::ListRecommendationSummariesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
961
+ #
962
+ # * {Types::ListRecommendationSummariesResponse#currency_code #currency_code} => String
963
+ # * {Types::ListRecommendationSummariesResponse#estimated_total_deduped_savings #estimated_total_deduped_savings} => Float
964
+ # * {Types::ListRecommendationSummariesResponse#group_by #data.group_by} => String (This method conflicts with a method on Response, call it through the data member)
965
+ # * {Types::ListRecommendationSummariesResponse#items #items} => Array&lt;Types::RecommendationSummary&gt;
966
+ # * {Types::ListRecommendationSummariesResponse#next_token #next_token} => String
967
+ #
968
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
969
+ #
970
+ # @example Request syntax with placeholder values
971
+ #
972
+ # resp = client.list_recommendation_summaries({
973
+ # filter: {
974
+ # account_ids: ["AccountId"],
975
+ # action_types: ["Rightsize"], # accepts Rightsize, Stop, Upgrade, PurchaseSavingsPlans, PurchaseReservedInstances, MigrateToGraviton
976
+ # implementation_efforts: ["VeryLow"], # accepts VeryLow, Low, Medium, High, VeryHigh
977
+ # recommendation_ids: ["String"],
978
+ # regions: ["String"],
979
+ # resource_arns: ["String"],
980
+ # resource_ids: ["String"],
981
+ # resource_types: ["Ec2Instance"], # accepts Ec2Instance, LambdaFunction, EbsVolume, EcsService, Ec2AutoScalingGroup, Ec2InstanceSavingsPlans, ComputeSavingsPlans, SageMakerSavingsPlans, Ec2ReservedInstances, RdsReservedInstances, OpenSearchReservedInstances, RedshiftReservedInstances, ElastiCacheReservedInstances
982
+ # restart_needed: false,
983
+ # rollback_possible: false,
984
+ # tags: [
985
+ # {
986
+ # key: "String",
987
+ # value: "String",
988
+ # },
989
+ # ],
990
+ # },
991
+ # group_by: "String", # required
992
+ # max_results: 1,
993
+ # next_token: "String",
994
+ # })
995
+ #
996
+ # @example Response structure
997
+ #
998
+ # resp.currency_code #=> String
999
+ # resp.estimated_total_deduped_savings #=> Float
1000
+ # resp.data.group_by #=> String
1001
+ # resp.items #=> Array
1002
+ # resp.items[0].estimated_monthly_savings #=> Float
1003
+ # resp.items[0].group #=> String
1004
+ # resp.items[0].recommendation_count #=> Integer
1005
+ # resp.next_token #=> String
1006
+ #
1007
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cost-optimization-hub-2022-07-26/ListRecommendationSummaries AWS API Documentation
1008
+ #
1009
+ # @overload list_recommendation_summaries(params = {})
1010
+ # @param [Hash] params ({})
1011
+ def list_recommendation_summaries(params = {}, options = {})
1012
+ req = build_request(:list_recommendation_summaries, params)
1013
+ req.send_request(options)
1014
+ end
1015
+
1016
+ # Returns a list of recommendations.
1017
+ #
1018
+ # @option params [Types::Filter] :filter
1019
+ # The constraints that you want all returned recommendations to match.
1020
+ #
1021
+ # @option params [Boolean] :include_all_recommendations
1022
+ # List of all recommendations for a resource, or a single recommendation
1023
+ # if de-duped by `resourceId`.
1024
+ #
1025
+ # @option params [Integer] :max_results
1026
+ # The maximum number of recommendations that are returned for the
1027
+ # request.
1028
+ #
1029
+ # @option params [String] :next_token
1030
+ # The token to retrieve the next set of results.
1031
+ #
1032
+ # @option params [Types::OrderBy] :order_by
1033
+ # The ordering of recommendations by a dimension.
1034
+ #
1035
+ # @return [Types::ListRecommendationsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1036
+ #
1037
+ # * {Types::ListRecommendationsResponse#items #items} => Array&lt;Types::Recommendation&gt;
1038
+ # * {Types::ListRecommendationsResponse#next_token #next_token} => String
1039
+ #
1040
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1041
+ #
1042
+ # @example Request syntax with placeholder values
1043
+ #
1044
+ # resp = client.list_recommendations({
1045
+ # filter: {
1046
+ # account_ids: ["AccountId"],
1047
+ # action_types: ["Rightsize"], # accepts Rightsize, Stop, Upgrade, PurchaseSavingsPlans, PurchaseReservedInstances, MigrateToGraviton
1048
+ # implementation_efforts: ["VeryLow"], # accepts VeryLow, Low, Medium, High, VeryHigh
1049
+ # recommendation_ids: ["String"],
1050
+ # regions: ["String"],
1051
+ # resource_arns: ["String"],
1052
+ # resource_ids: ["String"],
1053
+ # resource_types: ["Ec2Instance"], # accepts Ec2Instance, LambdaFunction, EbsVolume, EcsService, Ec2AutoScalingGroup, Ec2InstanceSavingsPlans, ComputeSavingsPlans, SageMakerSavingsPlans, Ec2ReservedInstances, RdsReservedInstances, OpenSearchReservedInstances, RedshiftReservedInstances, ElastiCacheReservedInstances
1054
+ # restart_needed: false,
1055
+ # rollback_possible: false,
1056
+ # tags: [
1057
+ # {
1058
+ # key: "String",
1059
+ # value: "String",
1060
+ # },
1061
+ # ],
1062
+ # },
1063
+ # include_all_recommendations: false,
1064
+ # max_results: 1,
1065
+ # next_token: "String",
1066
+ # order_by: {
1067
+ # dimension: "String",
1068
+ # order: "Asc", # accepts Asc, Desc
1069
+ # },
1070
+ # })
1071
+ #
1072
+ # @example Response structure
1073
+ #
1074
+ # resp.items #=> Array
1075
+ # resp.items[0].account_id #=> String
1076
+ # resp.items[0].action_type #=> String
1077
+ # resp.items[0].currency_code #=> String
1078
+ # resp.items[0].current_resource_summary #=> String
1079
+ # resp.items[0].current_resource_type #=> String
1080
+ # resp.items[0].estimated_monthly_cost #=> Float
1081
+ # resp.items[0].estimated_monthly_savings #=> Float
1082
+ # resp.items[0].estimated_savings_percentage #=> Float
1083
+ # resp.items[0].implementation_effort #=> String
1084
+ # resp.items[0].last_refresh_timestamp #=> Time
1085
+ # resp.items[0].recommendation_id #=> String
1086
+ # resp.items[0].recommendation_lookback_period_in_days #=> Integer
1087
+ # resp.items[0].recommended_resource_summary #=> String
1088
+ # resp.items[0].recommended_resource_type #=> String
1089
+ # resp.items[0].region #=> String
1090
+ # resp.items[0].resource_arn #=> String
1091
+ # resp.items[0].resource_id #=> String
1092
+ # resp.items[0].restart_needed #=> Boolean
1093
+ # resp.items[0].rollback_possible #=> Boolean
1094
+ # resp.items[0].source #=> String, one of "ComputeOptimizer", "CostExplorer"
1095
+ # resp.items[0].tags #=> Array
1096
+ # resp.items[0].tags[0].key #=> String
1097
+ # resp.items[0].tags[0].value #=> String
1098
+ # resp.next_token #=> String
1099
+ #
1100
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cost-optimization-hub-2022-07-26/ListRecommendations AWS API Documentation
1101
+ #
1102
+ # @overload list_recommendations(params = {})
1103
+ # @param [Hash] params ({})
1104
+ def list_recommendations(params = {}, options = {})
1105
+ req = build_request(:list_recommendations, params)
1106
+ req.send_request(options)
1107
+ end
1108
+
1109
+ # Updates the enrollment (opt in and opt out) status of an account to
1110
+ # the Cost Optimization Hub service.
1111
+ #
1112
+ # If the account is a management account of an organization, this action
1113
+ # can also be used to enroll member accounts of the organization.
1114
+ #
1115
+ # You must have the appropriate permissions to opt in to Cost
1116
+ # Optimization Hub and to view its recommendations. When you opt in,
1117
+ # Cost Optimization Hub automatically creates a service-linked role in
1118
+ # your account to access its data.
1119
+ #
1120
+ # @option params [Boolean] :include_member_accounts
1121
+ # Indicates whether to enroll member accounts of the organization if the
1122
+ # account is the management account.
1123
+ #
1124
+ # @option params [required, String] :status
1125
+ # Sets the account status.
1126
+ #
1127
+ # @return [Types::UpdateEnrollmentStatusResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1128
+ #
1129
+ # * {Types::UpdateEnrollmentStatusResponse#status #status} => String
1130
+ #
1131
+ # @example Request syntax with placeholder values
1132
+ #
1133
+ # resp = client.update_enrollment_status({
1134
+ # include_member_accounts: false,
1135
+ # status: "Active", # required, accepts Active, Inactive
1136
+ # })
1137
+ #
1138
+ # @example Response structure
1139
+ #
1140
+ # resp.status #=> String
1141
+ #
1142
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cost-optimization-hub-2022-07-26/UpdateEnrollmentStatus AWS API Documentation
1143
+ #
1144
+ # @overload update_enrollment_status(params = {})
1145
+ # @param [Hash] params ({})
1146
+ def update_enrollment_status(params = {}, options = {})
1147
+ req = build_request(:update_enrollment_status, params)
1148
+ req.send_request(options)
1149
+ end
1150
+
1151
+ # Updates a set of preferences for an account in order to add
1152
+ # account-specific preferences into the service. These preferences
1153
+ # impact how the savings associated with recommendations are presented.
1154
+ #
1155
+ # @option params [String] :member_account_discount_visibility
1156
+ # Sets the "member account discount visibility" preference.
1157
+ #
1158
+ # @option params [String] :savings_estimation_mode
1159
+ # Sets the "savings estimation mode" preference.
1160
+ #
1161
+ # @return [Types::UpdatePreferencesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1162
+ #
1163
+ # * {Types::UpdatePreferencesResponse#member_account_discount_visibility #member_account_discount_visibility} => String
1164
+ # * {Types::UpdatePreferencesResponse#savings_estimation_mode #savings_estimation_mode} => String
1165
+ #
1166
+ # @example Request syntax with placeholder values
1167
+ #
1168
+ # resp = client.update_preferences({
1169
+ # member_account_discount_visibility: "All", # accepts All, None
1170
+ # savings_estimation_mode: "BeforeDiscounts", # accepts BeforeDiscounts, AfterDiscounts
1171
+ # })
1172
+ #
1173
+ # @example Response structure
1174
+ #
1175
+ # resp.member_account_discount_visibility #=> String, one of "All", "None"
1176
+ # resp.savings_estimation_mode #=> String, one of "BeforeDiscounts", "AfterDiscounts"
1177
+ #
1178
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cost-optimization-hub-2022-07-26/UpdatePreferences AWS API Documentation
1179
+ #
1180
+ # @overload update_preferences(params = {})
1181
+ # @param [Hash] params ({})
1182
+ def update_preferences(params = {}, options = {})
1183
+ req = build_request(:update_preferences, params)
1184
+ req.send_request(options)
1185
+ end
1186
+
1187
+ # @!endgroup
1188
+
1189
+ # @param params ({})
1190
+ # @api private
1191
+ def build_request(operation_name, params = {})
1192
+ handlers = @handlers.for(operation_name)
1193
+ context = Seahorse::Client::RequestContext.new(
1194
+ operation_name: operation_name,
1195
+ operation: config.api.operation(operation_name),
1196
+ client: self,
1197
+ params: params,
1198
+ config: config)
1199
+ context[:gem_name] = 'aws-sdk-costoptimizationhub'
1200
+ context[:gem_version] = '1.0.0'
1201
+ Seahorse::Client::Request.new(handlers, context)
1202
+ end
1203
+
1204
+ # @api private
1205
+ # @deprecated
1206
+ def waiter_names
1207
+ []
1208
+ end
1209
+
1210
+ class << self
1211
+
1212
+ # @api private
1213
+ attr_reader :identifier
1214
+
1215
+ # @api private
1216
+ def errors_module
1217
+ Errors
1218
+ end
1219
+
1220
+ end
1221
+ end
1222
+ end