aws-sdk-costoptimizationhub 1.0.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,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