aws-sdk-computeoptimizer 1.46.0 → 1.47.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d4e9e8fa795e26f2156382f6daf5554546a41d9fa9b7cc9a74047608153fe943
4
- data.tar.gz: 4c49f8295714c49f412573e57599ec7b837541a4b09f851d9daf576a5a7666fc
3
+ metadata.gz: 4276765406440eabb7cfa7d4a64645505339cb29ec3aacc1389516443d5eb0a3
4
+ data.tar.gz: 1915b2ce87188c5da31e1bbcf297fc375005e2423b4e2093fb27eda13dbe0fa9
5
5
  SHA512:
6
- metadata.gz: 7fbfcaff83f6ccb047571908aac494195f173c178190d87c19a28bc3e278078176811fd863665da5812e9f2f05baa2a31071fe51665d9b37887f3c18c991550f
7
- data.tar.gz: c0c23c1b80f41cd816e1c3cb1a3494bd66bb1859316bc0b9ef57fc9daf64e53037de93f78f012b401d79f3acb5a9123e1f319dee467ec418601466dd306567f1
6
+ metadata.gz: 5e2bb0a10db425e122b20cd873d0e1a3a04bf9711ce6d08ec102769f4e75dee03e8e657eedc136d185ec7779072e6cde9db3b51e3d5e3b2bde7b93c7b527db3d
7
+ data.tar.gz: a66058caf1baed2d640e049d17be3ba7b2786d1595ee2c09c02b41ea6db382bf1360a44c65b0973557418635d2b57364440b8977646deb3f7df05c3b4a0b3ca5
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.47.0 (2023-08-28)
5
+ ------------------
6
+
7
+ * Feature - This release enables AWS Compute Optimizer to analyze and generate licensing optimization recommendations for sql server running on EC2 instances.
8
+
4
9
  1.46.0 (2023-07-11)
5
10
  ------------------
6
11
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.46.0
1
+ 1.47.0
@@ -443,7 +443,7 @@ module Aws::ComputeOptimizer
443
443
  # @example Request syntax with placeholder values
444
444
  #
445
445
  # resp = client.delete_recommendation_preferences({
446
- # resource_type: "Ec2Instance", # required, accepts Ec2Instance, AutoScalingGroup, EbsVolume, LambdaFunction, NotApplicable, EcsService
446
+ # resource_type: "Ec2Instance", # required, accepts Ec2Instance, AutoScalingGroup, EbsVolume, LambdaFunction, NotApplicable, EcsService, License
447
447
  # scope: {
448
448
  # name: "Organization", # accepts Organization, AccountId, ResourceArn
449
449
  # value: "ScopeValue",
@@ -518,7 +518,7 @@ module Aws::ComputeOptimizer
518
518
  # resp.recommendation_export_jobs[0].destination.s3.bucket #=> String
519
519
  # resp.recommendation_export_jobs[0].destination.s3.key #=> String
520
520
  # resp.recommendation_export_jobs[0].destination.s3.metadata_key #=> String
521
- # resp.recommendation_export_jobs[0].resource_type #=> String, one of "Ec2Instance", "AutoScalingGroup", "EbsVolume", "LambdaFunction", "NotApplicable", "EcsService"
521
+ # resp.recommendation_export_jobs[0].resource_type #=> String, one of "Ec2Instance", "AutoScalingGroup", "EbsVolume", "LambdaFunction", "NotApplicable", "EcsService", "License"
522
522
  # resp.recommendation_export_jobs[0].status #=> String, one of "Queued", "InProgress", "Complete", "Failed"
523
523
  # resp.recommendation_export_jobs[0].creation_timestamp #=> Time
524
524
  # resp.recommendation_export_jobs[0].last_updated_timestamp #=> Time
@@ -1199,6 +1199,134 @@ module Aws::ComputeOptimizer
1199
1199
  req.send_request(options)
1200
1200
  end
1201
1201
 
1202
+ # Export optimization recommendations for your licenses.
1203
+ #
1204
+ # Recommendations are exported in a comma-separated values (CSV) file,
1205
+ # and its metadata in a JavaScript Object Notation (JSON) file, to an
1206
+ # existing Amazon Simple Storage Service (Amazon S3) bucket that you
1207
+ # specify. For more information, see [Exporting Recommendations][1] in
1208
+ # the *Compute Optimizer User Guide*.
1209
+ #
1210
+ # You can have only one license export job in progress per Amazon Web
1211
+ # Services Region.
1212
+ #
1213
+ #
1214
+ #
1215
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/exporting-recommendations.html
1216
+ #
1217
+ # @option params [Array<String>] :account_ids
1218
+ # The IDs of the Amazon Web Services accounts for which to export
1219
+ # license recommendations.
1220
+ #
1221
+ # If your account is the management account of an organization, use this
1222
+ # parameter to specify the member account for which you want to export
1223
+ # recommendations.
1224
+ #
1225
+ # This parameter can't be specified together with the include member
1226
+ # accounts parameter. The parameters are mutually exclusive.
1227
+ #
1228
+ # If this parameter is omitted, recommendations for member accounts
1229
+ # aren't included in the export.
1230
+ #
1231
+ # You can specify multiple account IDs per request.
1232
+ #
1233
+ # @option params [Array<Types::LicenseRecommendationFilter>] :filters
1234
+ # An array of objects to specify a filter that exports a more specific
1235
+ # set of license recommendations.
1236
+ #
1237
+ # @option params [Array<String>] :fields_to_export
1238
+ # The recommendations data to include in the export file. For more
1239
+ # information about the fields that can be exported, see [Exported
1240
+ # files][1] in the *Compute Optimizer User Guide*.
1241
+ #
1242
+ #
1243
+ #
1244
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/exporting-recommendations.html#exported-files
1245
+ #
1246
+ # @option params [required, Types::S3DestinationConfig] :s3_destination_config
1247
+ # Describes the destination Amazon Simple Storage Service (Amazon S3)
1248
+ # bucket name and key prefix for a recommendations export job.
1249
+ #
1250
+ # You must create the destination Amazon S3 bucket for your
1251
+ # recommendations export before you create the export job. Compute
1252
+ # Optimizer does not create the S3 bucket for you. After you create the
1253
+ # S3 bucket, ensure that it has the required permission policy to allow
1254
+ # Compute Optimizer to write the export file to it. If you plan to
1255
+ # specify an object prefix when you create the export job, you must
1256
+ # include the object prefix in the policy that you add to the S3 bucket.
1257
+ # For more information, see [Amazon S3 Bucket Policy for Compute
1258
+ # Optimizer][1] in the *Compute Optimizer User Guide*.
1259
+ #
1260
+ #
1261
+ #
1262
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/create-s3-bucket-policy-for-compute-optimizer.html
1263
+ #
1264
+ # @option params [String] :file_format
1265
+ # The format of the export file.
1266
+ #
1267
+ # A CSV file is the only export format currently supported.
1268
+ #
1269
+ # @option params [Boolean] :include_member_accounts
1270
+ # Indicates whether to include recommendations for resources in all
1271
+ # member accounts of the organization if your account is the management
1272
+ # account of an organization.
1273
+ #
1274
+ # The member accounts must also be opted in to Compute Optimizer, and
1275
+ # trusted access for Compute Optimizer must be enabled in the
1276
+ # organization account. For more information, see [Compute Optimizer and
1277
+ # Amazon Web Services Organizations trusted access][1] in the *Compute
1278
+ # Optimizer User Guide*.
1279
+ #
1280
+ # If this parameter is omitted, recommendations for member accounts of
1281
+ # the organization aren't included in the export file .
1282
+ #
1283
+ # This parameter cannot be specified together with the account IDs
1284
+ # parameter. The parameters are mutually exclusive.
1285
+ #
1286
+ #
1287
+ #
1288
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/security-iam.html#trusted-service-access
1289
+ #
1290
+ # @return [Types::ExportLicenseRecommendationsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1291
+ #
1292
+ # * {Types::ExportLicenseRecommendationsResponse#job_id #job_id} => String
1293
+ # * {Types::ExportLicenseRecommendationsResponse#s3_destination #s3_destination} => Types::S3Destination
1294
+ #
1295
+ # @example Request syntax with placeholder values
1296
+ #
1297
+ # resp = client.export_license_recommendations({
1298
+ # account_ids: ["AccountId"],
1299
+ # filters: [
1300
+ # {
1301
+ # name: "Finding", # accepts Finding, FindingReasonCode, LicenseName
1302
+ # values: ["FilterValue"],
1303
+ # },
1304
+ # ],
1305
+ # fields_to_export: ["AccountId"], # accepts AccountId, ResourceArn, LookbackPeriodInDays, LastRefreshTimestamp, Finding, FindingReasonCodes, CurrentLicenseConfigurationNumberOfCores, CurrentLicenseConfigurationInstanceType, CurrentLicenseConfigurationOperatingSystem, CurrentLicenseConfigurationLicenseName, CurrentLicenseConfigurationLicenseEdition, CurrentLicenseConfigurationLicenseModel, CurrentLicenseConfigurationLicenseVersion, CurrentLicenseConfigurationMetricsSource, RecommendationOptionsOperatingSystem, RecommendationOptionsLicenseEdition, RecommendationOptionsLicenseModel, RecommendationOptionsSavingsOpportunityPercentage, RecommendationOptionsEstimatedMonthlySavingsCurrency, RecommendationOptionsEstimatedMonthlySavingsValue, Tags
1306
+ # s3_destination_config: { # required
1307
+ # bucket: "DestinationBucket",
1308
+ # key_prefix: "DestinationKeyPrefix",
1309
+ # },
1310
+ # file_format: "Csv", # accepts Csv
1311
+ # include_member_accounts: false,
1312
+ # })
1313
+ #
1314
+ # @example Response structure
1315
+ #
1316
+ # resp.job_id #=> String
1317
+ # resp.s3_destination.bucket #=> String
1318
+ # resp.s3_destination.key #=> String
1319
+ # resp.s3_destination.metadata_key #=> String
1320
+ #
1321
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/ExportLicenseRecommendations AWS API Documentation
1322
+ #
1323
+ # @overload export_license_recommendations(params = {})
1324
+ # @param [Hash] params ({})
1325
+ def export_license_recommendations(params = {}, options = {})
1326
+ req = build_request(:export_license_recommendations, params)
1327
+ req.send_request(options)
1328
+ end
1329
+
1202
1330
  # Returns Auto Scaling group recommendations.
1203
1331
  #
1204
1332
  # Compute Optimizer generates recommendations for Amazon EC2 Auto
@@ -1533,7 +1661,7 @@ module Aws::ComputeOptimizer
1533
1661
  # resp.instance_recommendations[0].recommendation_options[0].migration_effort #=> String, one of "VeryLow", "Low", "Medium", "High"
1534
1662
  # resp.instance_recommendations[0].recommendation_sources #=> Array
1535
1663
  # resp.instance_recommendations[0].recommendation_sources[0].recommendation_source_arn #=> String
1536
- # resp.instance_recommendations[0].recommendation_sources[0].recommendation_source_type #=> String, one of "Ec2Instance", "AutoScalingGroup", "EbsVolume", "LambdaFunction", "EcsService"
1664
+ # resp.instance_recommendations[0].recommendation_sources[0].recommendation_source_type #=> String, one of "Ec2Instance", "AutoScalingGroup", "EbsVolume", "LambdaFunction", "EcsService", "License"
1537
1665
  # resp.instance_recommendations[0].last_refresh_timestamp #=> Time
1538
1666
  # resp.instance_recommendations[0].current_performance_risk #=> String, one of "VeryLow", "Low", "Medium", "High"
1539
1667
  # resp.instance_recommendations[0].effective_recommendation_preferences.cpu_vendor_architectures #=> Array
@@ -2064,6 +2192,115 @@ module Aws::ComputeOptimizer
2064
2192
  req.send_request(options)
2065
2193
  end
2066
2194
 
2195
+ # Returns license recommendations for Amazon EC2 instances that run on a
2196
+ # specific license.
2197
+ #
2198
+ # Compute Optimizer generates recommendations for licenses that meet a
2199
+ # specific set of requirements. For more information, see the [Supported
2200
+ # resources and requirements][1] in the *Compute Optimizer User Guide*.
2201
+ #
2202
+ #
2203
+ #
2204
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/requirements.html
2205
+ #
2206
+ # @option params [Array<String>] :resource_arns
2207
+ # The ARN that identifies the Amazon EC2 instance.
2208
+ #
2209
+ # The following is the format of the ARN:
2210
+ #
2211
+ # `arn:aws:ec2:region:aws_account_id:instance/instance-id`
2212
+ #
2213
+ # @option params [String] :next_token
2214
+ # The token to advance to the next page of license recommendations.
2215
+ #
2216
+ # @option params [Integer] :max_results
2217
+ # The maximum number of license recommendations to return with a single
2218
+ # request.
2219
+ #
2220
+ # To retrieve the remaining results, make another request with the
2221
+ # returned `nextToken` value.
2222
+ #
2223
+ # @option params [Array<Types::LicenseRecommendationFilter>] :filters
2224
+ # An array of objects to specify a filter that returns a more specific
2225
+ # list of license recommendations.
2226
+ #
2227
+ # @option params [Array<String>] :account_ids
2228
+ # The ID of the Amazon Web Services account for which to return license
2229
+ # recommendations.
2230
+ #
2231
+ # If your account is the management account of an organization, use this
2232
+ # parameter to specify the member account for which you want to return
2233
+ # license recommendations.
2234
+ #
2235
+ # Only one account ID can be specified per request.
2236
+ #
2237
+ # @return [Types::GetLicenseRecommendationsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2238
+ #
2239
+ # * {Types::GetLicenseRecommendationsResponse#next_token #next_token} => String
2240
+ # * {Types::GetLicenseRecommendationsResponse#license_recommendations #license_recommendations} => Array&lt;Types::LicenseRecommendation&gt;
2241
+ # * {Types::GetLicenseRecommendationsResponse#errors #errors} => Array&lt;Types::GetRecommendationError&gt;
2242
+ #
2243
+ # @example Request syntax with placeholder values
2244
+ #
2245
+ # resp = client.get_license_recommendations({
2246
+ # resource_arns: ["ResourceArn"],
2247
+ # next_token: "NextToken",
2248
+ # max_results: 1,
2249
+ # filters: [
2250
+ # {
2251
+ # name: "Finding", # accepts Finding, FindingReasonCode, LicenseName
2252
+ # values: ["FilterValue"],
2253
+ # },
2254
+ # ],
2255
+ # account_ids: ["AccountId"],
2256
+ # })
2257
+ #
2258
+ # @example Response structure
2259
+ #
2260
+ # resp.next_token #=> String
2261
+ # resp.license_recommendations #=> Array
2262
+ # resp.license_recommendations[0].resource_arn #=> String
2263
+ # resp.license_recommendations[0].account_id #=> String
2264
+ # resp.license_recommendations[0].current_license_configuration.number_of_cores #=> Integer
2265
+ # resp.license_recommendations[0].current_license_configuration.instance_type #=> String
2266
+ # resp.license_recommendations[0].current_license_configuration.operating_system #=> String
2267
+ # resp.license_recommendations[0].current_license_configuration.license_edition #=> String, one of "Enterprise", "Standard", "Free", "NoLicenseEditionFound"
2268
+ # resp.license_recommendations[0].current_license_configuration.license_name #=> String, one of "SQLServer"
2269
+ # resp.license_recommendations[0].current_license_configuration.license_model #=> String, one of "LicenseIncluded", "BringYourOwnLicense"
2270
+ # resp.license_recommendations[0].current_license_configuration.license_version #=> String
2271
+ # resp.license_recommendations[0].current_license_configuration.metrics_source #=> Array
2272
+ # resp.license_recommendations[0].current_license_configuration.metrics_source[0].provider #=> String, one of "CloudWatchApplicationInsights"
2273
+ # resp.license_recommendations[0].current_license_configuration.metrics_source[0].provider_arn #=> String
2274
+ # resp.license_recommendations[0].lookback_period_in_days #=> Float
2275
+ # resp.license_recommendations[0].last_refresh_timestamp #=> Time
2276
+ # resp.license_recommendations[0].finding #=> String, one of "InsufficientMetrics", "Optimized", "NotOptimized"
2277
+ # resp.license_recommendations[0].finding_reason_codes #=> Array
2278
+ # resp.license_recommendations[0].finding_reason_codes[0] #=> String, one of "InvalidCloudWatchApplicationInsightsSetup", "CloudWatchApplicationInsightsError", "LicenseOverprovisioned", "Optimized"
2279
+ # resp.license_recommendations[0].license_recommendation_options #=> Array
2280
+ # resp.license_recommendations[0].license_recommendation_options[0].rank #=> Integer
2281
+ # resp.license_recommendations[0].license_recommendation_options[0].operating_system #=> String
2282
+ # resp.license_recommendations[0].license_recommendation_options[0].license_edition #=> String, one of "Enterprise", "Standard", "Free", "NoLicenseEditionFound"
2283
+ # resp.license_recommendations[0].license_recommendation_options[0].license_model #=> String, one of "LicenseIncluded", "BringYourOwnLicense"
2284
+ # resp.license_recommendations[0].license_recommendation_options[0].savings_opportunity.savings_opportunity_percentage #=> Float
2285
+ # resp.license_recommendations[0].license_recommendation_options[0].savings_opportunity.estimated_monthly_savings.currency #=> String, one of "USD", "CNY"
2286
+ # resp.license_recommendations[0].license_recommendation_options[0].savings_opportunity.estimated_monthly_savings.value #=> Float
2287
+ # resp.license_recommendations[0].tags #=> Array
2288
+ # resp.license_recommendations[0].tags[0].key #=> String
2289
+ # resp.license_recommendations[0].tags[0].value #=> String
2290
+ # resp.errors #=> Array
2291
+ # resp.errors[0].identifier #=> String
2292
+ # resp.errors[0].code #=> String
2293
+ # resp.errors[0].message #=> String
2294
+ #
2295
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetLicenseRecommendations AWS API Documentation
2296
+ #
2297
+ # @overload get_license_recommendations(params = {})
2298
+ # @param [Hash] params ({})
2299
+ def get_license_recommendations(params = {}, options = {})
2300
+ req = build_request(:get_license_recommendations, params)
2301
+ req.send_request(options)
2302
+ end
2303
+
2067
2304
  # Returns existing recommendation preferences, such as enhanced
2068
2305
  # infrastructure metrics.
2069
2306
  #
@@ -2127,7 +2364,7 @@ module Aws::ComputeOptimizer
2127
2364
  # @example Request syntax with placeholder values
2128
2365
  #
2129
2366
  # resp = client.get_recommendation_preferences({
2130
- # resource_type: "Ec2Instance", # required, accepts Ec2Instance, AutoScalingGroup, EbsVolume, LambdaFunction, NotApplicable, EcsService
2367
+ # resource_type: "Ec2Instance", # required, accepts Ec2Instance, AutoScalingGroup, EbsVolume, LambdaFunction, NotApplicable, EcsService, License
2131
2368
  # scope: {
2132
2369
  # name: "Organization", # accepts Organization, AccountId, ResourceArn
2133
2370
  # value: "ScopeValue",
@@ -2142,7 +2379,7 @@ module Aws::ComputeOptimizer
2142
2379
  # resp.recommendation_preferences_details #=> Array
2143
2380
  # resp.recommendation_preferences_details[0].scope.name #=> String, one of "Organization", "AccountId", "ResourceArn"
2144
2381
  # resp.recommendation_preferences_details[0].scope.value #=> String
2145
- # resp.recommendation_preferences_details[0].resource_type #=> String, one of "Ec2Instance", "AutoScalingGroup", "EbsVolume", "LambdaFunction", "NotApplicable", "EcsService"
2382
+ # resp.recommendation_preferences_details[0].resource_type #=> String, one of "Ec2Instance", "AutoScalingGroup", "EbsVolume", "LambdaFunction", "NotApplicable", "EcsService", "License"
2146
2383
  # resp.recommendation_preferences_details[0].enhanced_infrastructure_metrics #=> String, one of "Active", "Inactive"
2147
2384
  # resp.recommendation_preferences_details[0].inferred_workload_types #=> String, one of "Active", "Inactive"
2148
2385
  # resp.recommendation_preferences_details[0].external_metrics_preference.source #=> String, one of "Datadog", "Dynatrace", "NewRelic", "Instana"
@@ -2220,7 +2457,7 @@ module Aws::ComputeOptimizer
2220
2457
  # resp.recommendation_summaries[0].summaries[0].reason_code_summaries #=> Array
2221
2458
  # resp.recommendation_summaries[0].summaries[0].reason_code_summaries[0].name #=> String, one of "MemoryOverprovisioned", "MemoryUnderprovisioned"
2222
2459
  # resp.recommendation_summaries[0].summaries[0].reason_code_summaries[0].value #=> Float
2223
- # resp.recommendation_summaries[0].recommendation_resource_type #=> String, one of "Ec2Instance", "AutoScalingGroup", "EbsVolume", "LambdaFunction", "EcsService"
2460
+ # resp.recommendation_summaries[0].recommendation_resource_type #=> String, one of "Ec2Instance", "AutoScalingGroup", "EbsVolume", "LambdaFunction", "EcsService", "License"
2224
2461
  # resp.recommendation_summaries[0].account_id #=> String
2225
2462
  # resp.recommendation_summaries[0].savings_opportunity.savings_opportunity_percentage #=> Float
2226
2463
  # resp.recommendation_summaries[0].savings_opportunity.estimated_monthly_savings.currency #=> String, one of "USD", "CNY"
@@ -2348,7 +2585,7 @@ module Aws::ComputeOptimizer
2348
2585
  # @example Request syntax with placeholder values
2349
2586
  #
2350
2587
  # resp = client.put_recommendation_preferences({
2351
- # resource_type: "Ec2Instance", # required, accepts Ec2Instance, AutoScalingGroup, EbsVolume, LambdaFunction, NotApplicable, EcsService
2588
+ # resource_type: "Ec2Instance", # required, accepts Ec2Instance, AutoScalingGroup, EbsVolume, LambdaFunction, NotApplicable, EcsService, License
2352
2589
  # scope: {
2353
2590
  # name: "Organization", # accepts Organization, AccountId, ResourceArn
2354
2591
  # value: "ScopeValue",
@@ -2458,7 +2695,7 @@ module Aws::ComputeOptimizer
2458
2695
  params: params,
2459
2696
  config: config)
2460
2697
  context[:gem_name] = 'aws-sdk-computeoptimizer'
2461
- context[:gem_version] = '1.46.0'
2698
+ context[:gem_version] = '1.47.0'
2462
2699
  Seahorse::Client::Request.new(handlers, context)
2463
2700
  end
2464
2701
 
@@ -95,6 +95,8 @@ module Aws::ComputeOptimizer
95
95
  ExportECSServiceRecommendationsResponse = Shapes::StructureShape.new(name: 'ExportECSServiceRecommendationsResponse')
96
96
  ExportLambdaFunctionRecommendationsRequest = Shapes::StructureShape.new(name: 'ExportLambdaFunctionRecommendationsRequest')
97
97
  ExportLambdaFunctionRecommendationsResponse = Shapes::StructureShape.new(name: 'ExportLambdaFunctionRecommendationsResponse')
98
+ ExportLicenseRecommendationsRequest = Shapes::StructureShape.new(name: 'ExportLicenseRecommendationsRequest')
99
+ ExportLicenseRecommendationsResponse = Shapes::StructureShape.new(name: 'ExportLicenseRecommendationsResponse')
98
100
  ExportableAutoScalingGroupField = Shapes::StringShape.new(name: 'ExportableAutoScalingGroupField')
99
101
  ExportableAutoScalingGroupFields = Shapes::ListShape.new(name: 'ExportableAutoScalingGroupFields')
100
102
  ExportableECSServiceField = Shapes::StringShape.new(name: 'ExportableECSServiceField')
@@ -103,6 +105,8 @@ module Aws::ComputeOptimizer
103
105
  ExportableInstanceFields = Shapes::ListShape.new(name: 'ExportableInstanceFields')
104
106
  ExportableLambdaFunctionField = Shapes::StringShape.new(name: 'ExportableLambdaFunctionField')
105
107
  ExportableLambdaFunctionFields = Shapes::ListShape.new(name: 'ExportableLambdaFunctionFields')
108
+ ExportableLicenseField = Shapes::StringShape.new(name: 'ExportableLicenseField')
109
+ ExportableLicenseFields = Shapes::ListShape.new(name: 'ExportableLicenseFields')
106
110
  ExportableVolumeField = Shapes::StringShape.new(name: 'ExportableVolumeField')
107
111
  ExportableVolumeFields = Shapes::ListShape.new(name: 'ExportableVolumeFields')
108
112
  ExternalMetricStatus = Shapes::StructureShape.new(name: 'ExternalMetricStatus')
@@ -142,6 +146,8 @@ module Aws::ComputeOptimizer
142
146
  GetEnrollmentStatusesForOrganizationResponse = Shapes::StructureShape.new(name: 'GetEnrollmentStatusesForOrganizationResponse')
143
147
  GetLambdaFunctionRecommendationsRequest = Shapes::StructureShape.new(name: 'GetLambdaFunctionRecommendationsRequest')
144
148
  GetLambdaFunctionRecommendationsResponse = Shapes::StructureShape.new(name: 'GetLambdaFunctionRecommendationsResponse')
149
+ GetLicenseRecommendationsRequest = Shapes::StructureShape.new(name: 'GetLicenseRecommendationsRequest')
150
+ GetLicenseRecommendationsResponse = Shapes::StructureShape.new(name: 'GetLicenseRecommendationsResponse')
145
151
  GetRecommendationError = Shapes::StructureShape.new(name: 'GetRecommendationError')
146
152
  GetRecommendationErrors = Shapes::ListShape.new(name: 'GetRecommendationErrors')
147
153
  GetRecommendationPreferencesRequest = Shapes::StructureShape.new(name: 'GetRecommendationPreferencesRequest')
@@ -194,6 +200,21 @@ module Aws::ComputeOptimizer
194
200
  LambdaFunctionUtilizationMetrics = Shapes::ListShape.new(name: 'LambdaFunctionUtilizationMetrics')
195
201
  LastRefreshTimestamp = Shapes::TimestampShape.new(name: 'LastRefreshTimestamp')
196
202
  LastUpdatedTimestamp = Shapes::TimestampShape.new(name: 'LastUpdatedTimestamp')
203
+ LicenseConfiguration = Shapes::StructureShape.new(name: 'LicenseConfiguration')
204
+ LicenseEdition = Shapes::StringShape.new(name: 'LicenseEdition')
205
+ LicenseFinding = Shapes::StringShape.new(name: 'LicenseFinding')
206
+ LicenseFindingReasonCode = Shapes::StringShape.new(name: 'LicenseFindingReasonCode')
207
+ LicenseFindingReasonCodes = Shapes::ListShape.new(name: 'LicenseFindingReasonCodes')
208
+ LicenseModel = Shapes::StringShape.new(name: 'LicenseModel')
209
+ LicenseName = Shapes::StringShape.new(name: 'LicenseName')
210
+ LicenseRecommendation = Shapes::StructureShape.new(name: 'LicenseRecommendation')
211
+ LicenseRecommendationFilter = Shapes::StructureShape.new(name: 'LicenseRecommendationFilter')
212
+ LicenseRecommendationFilterName = Shapes::StringShape.new(name: 'LicenseRecommendationFilterName')
213
+ LicenseRecommendationFilters = Shapes::ListShape.new(name: 'LicenseRecommendationFilters')
214
+ LicenseRecommendationOption = Shapes::StructureShape.new(name: 'LicenseRecommendationOption')
215
+ LicenseRecommendationOptions = Shapes::ListShape.new(name: 'LicenseRecommendationOptions')
216
+ LicenseRecommendations = Shapes::ListShape.new(name: 'LicenseRecommendations')
217
+ LicenseVersion = Shapes::StringShape.new(name: 'LicenseVersion')
197
218
  LimitExceededException = Shapes::StructureShape.new(name: 'LimitExceededException')
198
219
  LookBackPeriodInDays = Shapes::FloatShape.new(name: 'LookBackPeriodInDays')
199
220
  Low = Shapes::IntegerShape.new(name: 'Low')
@@ -207,9 +228,13 @@ module Aws::ComputeOptimizer
207
228
  Message = Shapes::StringShape.new(name: 'Message')
208
229
  MetadataKey = Shapes::StringShape.new(name: 'MetadataKey')
209
230
  MetricName = Shapes::StringShape.new(name: 'MetricName')
231
+ MetricProviderArn = Shapes::StringShape.new(name: 'MetricProviderArn')
232
+ MetricSource = Shapes::StructureShape.new(name: 'MetricSource')
233
+ MetricSourceProvider = Shapes::StringShape.new(name: 'MetricSourceProvider')
210
234
  MetricStatistic = Shapes::StringShape.new(name: 'MetricStatistic')
211
235
  MetricValue = Shapes::FloatShape.new(name: 'MetricValue')
212
236
  MetricValues = Shapes::ListShape.new(name: 'MetricValues')
237
+ MetricsSource = Shapes::ListShape.new(name: 'MetricsSource')
213
238
  MigrationEffort = Shapes::StringShape.new(name: 'MigrationEffort')
214
239
  MinSize = Shapes::IntegerShape.new(name: 'MinSize')
215
240
  MissingAuthenticationToken = Shapes::StructureShape.new(name: 'MissingAuthenticationToken')
@@ -217,8 +242,10 @@ module Aws::ComputeOptimizer
217
242
  NullableCpu = Shapes::IntegerShape.new(name: 'NullableCpu')
218
243
  NullableMemory = Shapes::IntegerShape.new(name: 'NullableMemory')
219
244
  NullableMemoryReservation = Shapes::IntegerShape.new(name: 'NullableMemoryReservation')
245
+ NumberOfCores = Shapes::IntegerShape.new(name: 'NumberOfCores')
220
246
  NumberOfInvocations = Shapes::IntegerShape.new(name: 'NumberOfInvocations')
221
247
  NumberOfMemberAccountsOptedIn = Shapes::IntegerShape.new(name: 'NumberOfMemberAccountsOptedIn')
248
+ OperatingSystem = Shapes::StringShape.new(name: 'OperatingSystem')
222
249
  OptInRequiredException = Shapes::StructureShape.new(name: 'OptInRequiredException')
223
250
  PerformanceRisk = Shapes::FloatShape.new(name: 'PerformanceRisk')
224
251
  Period = Shapes::IntegerShape.new(name: 'Period')
@@ -250,6 +277,7 @@ module Aws::ComputeOptimizer
250
277
  RecommendedOptionProjectedMetric = Shapes::StructureShape.new(name: 'RecommendedOptionProjectedMetric')
251
278
  RecommendedOptionProjectedMetrics = Shapes::ListShape.new(name: 'RecommendedOptionProjectedMetrics')
252
279
  ResourceArn = Shapes::StringShape.new(name: 'ResourceArn')
280
+ ResourceArns = Shapes::ListShape.new(name: 'ResourceArns')
253
281
  ResourceNotFoundException = Shapes::StructureShape.new(name: 'ResourceNotFoundException')
254
282
  ResourceType = Shapes::StringShape.new(name: 'ResourceType')
255
283
  RootVolume = Shapes::BooleanShape.new(name: 'RootVolume')
@@ -541,6 +569,18 @@ module Aws::ComputeOptimizer
541
569
  ExportLambdaFunctionRecommendationsResponse.add_member(:s3_destination, Shapes::ShapeRef.new(shape: S3Destination, location_name: "s3Destination"))
542
570
  ExportLambdaFunctionRecommendationsResponse.struct_class = Types::ExportLambdaFunctionRecommendationsResponse
543
571
 
572
+ ExportLicenseRecommendationsRequest.add_member(:account_ids, Shapes::ShapeRef.new(shape: AccountIds, location_name: "accountIds"))
573
+ ExportLicenseRecommendationsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: LicenseRecommendationFilters, location_name: "filters"))
574
+ ExportLicenseRecommendationsRequest.add_member(:fields_to_export, Shapes::ShapeRef.new(shape: ExportableLicenseFields, location_name: "fieldsToExport"))
575
+ ExportLicenseRecommendationsRequest.add_member(:s3_destination_config, Shapes::ShapeRef.new(shape: S3DestinationConfig, required: true, location_name: "s3DestinationConfig"))
576
+ ExportLicenseRecommendationsRequest.add_member(:file_format, Shapes::ShapeRef.new(shape: FileFormat, location_name: "fileFormat"))
577
+ ExportLicenseRecommendationsRequest.add_member(:include_member_accounts, Shapes::ShapeRef.new(shape: IncludeMemberAccounts, location_name: "includeMemberAccounts"))
578
+ ExportLicenseRecommendationsRequest.struct_class = Types::ExportLicenseRecommendationsRequest
579
+
580
+ ExportLicenseRecommendationsResponse.add_member(:job_id, Shapes::ShapeRef.new(shape: JobId, location_name: "jobId"))
581
+ ExportLicenseRecommendationsResponse.add_member(:s3_destination, Shapes::ShapeRef.new(shape: S3Destination, location_name: "s3Destination"))
582
+ ExportLicenseRecommendationsResponse.struct_class = Types::ExportLicenseRecommendationsResponse
583
+
544
584
  ExportableAutoScalingGroupFields.member = Shapes::ShapeRef.new(shape: ExportableAutoScalingGroupField)
545
585
 
546
586
  ExportableECSServiceFields.member = Shapes::ShapeRef.new(shape: ExportableECSServiceField)
@@ -549,6 +589,8 @@ module Aws::ComputeOptimizer
549
589
 
550
590
  ExportableLambdaFunctionFields.member = Shapes::ShapeRef.new(shape: ExportableLambdaFunctionField)
551
591
 
592
+ ExportableLicenseFields.member = Shapes::ShapeRef.new(shape: ExportableLicenseField)
593
+
552
594
  ExportableVolumeFields.member = Shapes::ShapeRef.new(shape: ExportableVolumeField)
553
595
 
554
596
  ExternalMetricStatus.add_member(:status_code, Shapes::ShapeRef.new(shape: ExternalMetricStatusCode, location_name: "statusCode"))
@@ -675,6 +717,18 @@ module Aws::ComputeOptimizer
675
717
  GetLambdaFunctionRecommendationsResponse.add_member(:lambda_function_recommendations, Shapes::ShapeRef.new(shape: LambdaFunctionRecommendations, location_name: "lambdaFunctionRecommendations"))
676
718
  GetLambdaFunctionRecommendationsResponse.struct_class = Types::GetLambdaFunctionRecommendationsResponse
677
719
 
720
+ GetLicenseRecommendationsRequest.add_member(:resource_arns, Shapes::ShapeRef.new(shape: ResourceArns, location_name: "resourceArns"))
721
+ GetLicenseRecommendationsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
722
+ GetLicenseRecommendationsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "maxResults"))
723
+ GetLicenseRecommendationsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: LicenseRecommendationFilters, location_name: "filters"))
724
+ GetLicenseRecommendationsRequest.add_member(:account_ids, Shapes::ShapeRef.new(shape: AccountIds, location_name: "accountIds"))
725
+ GetLicenseRecommendationsRequest.struct_class = Types::GetLicenseRecommendationsRequest
726
+
727
+ GetLicenseRecommendationsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
728
+ GetLicenseRecommendationsResponse.add_member(:license_recommendations, Shapes::ShapeRef.new(shape: LicenseRecommendations, location_name: "licenseRecommendations"))
729
+ GetLicenseRecommendationsResponse.add_member(:errors, Shapes::ShapeRef.new(shape: GetRecommendationErrors, location_name: "errors"))
730
+ GetLicenseRecommendationsResponse.struct_class = Types::GetLicenseRecommendationsResponse
731
+
678
732
  GetRecommendationError.add_member(:identifier, Shapes::ShapeRef.new(shape: Identifier, location_name: "identifier"))
679
733
  GetRecommendationError.add_member(:code, Shapes::ShapeRef.new(shape: Code, location_name: "code"))
680
734
  GetRecommendationError.add_member(:message, Shapes::ShapeRef.new(shape: Message, location_name: "message"))
@@ -804,6 +858,46 @@ module Aws::ComputeOptimizer
804
858
 
805
859
  LambdaFunctionUtilizationMetrics.member = Shapes::ShapeRef.new(shape: LambdaFunctionUtilizationMetric)
806
860
 
861
+ LicenseConfiguration.add_member(:number_of_cores, Shapes::ShapeRef.new(shape: NumberOfCores, location_name: "numberOfCores"))
862
+ LicenseConfiguration.add_member(:instance_type, Shapes::ShapeRef.new(shape: InstanceType, location_name: "instanceType"))
863
+ LicenseConfiguration.add_member(:operating_system, Shapes::ShapeRef.new(shape: OperatingSystem, location_name: "operatingSystem"))
864
+ LicenseConfiguration.add_member(:license_edition, Shapes::ShapeRef.new(shape: LicenseEdition, location_name: "licenseEdition"))
865
+ LicenseConfiguration.add_member(:license_name, Shapes::ShapeRef.new(shape: LicenseName, location_name: "licenseName"))
866
+ LicenseConfiguration.add_member(:license_model, Shapes::ShapeRef.new(shape: LicenseModel, location_name: "licenseModel"))
867
+ LicenseConfiguration.add_member(:license_version, Shapes::ShapeRef.new(shape: LicenseVersion, location_name: "licenseVersion"))
868
+ LicenseConfiguration.add_member(:metrics_source, Shapes::ShapeRef.new(shape: MetricsSource, location_name: "metricsSource"))
869
+ LicenseConfiguration.struct_class = Types::LicenseConfiguration
870
+
871
+ LicenseFindingReasonCodes.member = Shapes::ShapeRef.new(shape: LicenseFindingReasonCode)
872
+
873
+ LicenseRecommendation.add_member(:resource_arn, Shapes::ShapeRef.new(shape: ResourceArn, location_name: "resourceArn"))
874
+ LicenseRecommendation.add_member(:account_id, Shapes::ShapeRef.new(shape: AccountId, location_name: "accountId"))
875
+ LicenseRecommendation.add_member(:current_license_configuration, Shapes::ShapeRef.new(shape: LicenseConfiguration, location_name: "currentLicenseConfiguration"))
876
+ LicenseRecommendation.add_member(:lookback_period_in_days, Shapes::ShapeRef.new(shape: LookBackPeriodInDays, location_name: "lookbackPeriodInDays"))
877
+ LicenseRecommendation.add_member(:last_refresh_timestamp, Shapes::ShapeRef.new(shape: LastRefreshTimestamp, location_name: "lastRefreshTimestamp"))
878
+ LicenseRecommendation.add_member(:finding, Shapes::ShapeRef.new(shape: LicenseFinding, location_name: "finding"))
879
+ LicenseRecommendation.add_member(:finding_reason_codes, Shapes::ShapeRef.new(shape: LicenseFindingReasonCodes, location_name: "findingReasonCodes"))
880
+ LicenseRecommendation.add_member(:license_recommendation_options, Shapes::ShapeRef.new(shape: LicenseRecommendationOptions, location_name: "licenseRecommendationOptions"))
881
+ LicenseRecommendation.add_member(:tags, Shapes::ShapeRef.new(shape: Tags, location_name: "tags"))
882
+ LicenseRecommendation.struct_class = Types::LicenseRecommendation
883
+
884
+ LicenseRecommendationFilter.add_member(:name, Shapes::ShapeRef.new(shape: LicenseRecommendationFilterName, location_name: "name"))
885
+ LicenseRecommendationFilter.add_member(:values, Shapes::ShapeRef.new(shape: FilterValues, location_name: "values"))
886
+ LicenseRecommendationFilter.struct_class = Types::LicenseRecommendationFilter
887
+
888
+ LicenseRecommendationFilters.member = Shapes::ShapeRef.new(shape: LicenseRecommendationFilter)
889
+
890
+ LicenseRecommendationOption.add_member(:rank, Shapes::ShapeRef.new(shape: Rank, location_name: "rank"))
891
+ LicenseRecommendationOption.add_member(:operating_system, Shapes::ShapeRef.new(shape: OperatingSystem, location_name: "operatingSystem"))
892
+ LicenseRecommendationOption.add_member(:license_edition, Shapes::ShapeRef.new(shape: LicenseEdition, location_name: "licenseEdition"))
893
+ LicenseRecommendationOption.add_member(:license_model, Shapes::ShapeRef.new(shape: LicenseModel, location_name: "licenseModel"))
894
+ LicenseRecommendationOption.add_member(:savings_opportunity, Shapes::ShapeRef.new(shape: SavingsOpportunity, location_name: "savingsOpportunity"))
895
+ LicenseRecommendationOption.struct_class = Types::LicenseRecommendationOption
896
+
897
+ LicenseRecommendationOptions.member = Shapes::ShapeRef.new(shape: LicenseRecommendationOption)
898
+
899
+ LicenseRecommendations.member = Shapes::ShapeRef.new(shape: LicenseRecommendation)
900
+
807
901
  LimitExceededException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "message"))
808
902
  LimitExceededException.struct_class = Types::LimitExceededException
809
903
 
@@ -811,8 +905,14 @@ module Aws::ComputeOptimizer
811
905
  MemorySizeConfiguration.add_member(:memory_reservation, Shapes::ShapeRef.new(shape: NullableMemoryReservation, location_name: "memoryReservation"))
812
906
  MemorySizeConfiguration.struct_class = Types::MemorySizeConfiguration
813
907
 
908
+ MetricSource.add_member(:provider, Shapes::ShapeRef.new(shape: MetricSourceProvider, location_name: "provider"))
909
+ MetricSource.add_member(:provider_arn, Shapes::ShapeRef.new(shape: MetricProviderArn, location_name: "providerArn"))
910
+ MetricSource.struct_class = Types::MetricSource
911
+
814
912
  MetricValues.member = Shapes::ShapeRef.new(shape: MetricValue)
815
913
 
914
+ MetricsSource.member = Shapes::ShapeRef.new(shape: MetricSource)
915
+
816
916
  MissingAuthenticationToken.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "message"))
817
917
  MissingAuthenticationToken.struct_class = Types::MissingAuthenticationToken
818
918
 
@@ -895,6 +995,8 @@ module Aws::ComputeOptimizer
895
995
 
896
996
  RecommendedOptionProjectedMetrics.member = Shapes::ShapeRef.new(shape: RecommendedOptionProjectedMetric)
897
997
 
998
+ ResourceArns.member = Shapes::ShapeRef.new(shape: ResourceArn)
999
+
898
1000
  ResourceNotFoundException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "message"))
899
1001
  ResourceNotFoundException.struct_class = Types::ResourceNotFoundException
900
1002
 
@@ -1130,6 +1232,22 @@ module Aws::ComputeOptimizer
1130
1232
  o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
1131
1233
  end)
1132
1234
 
1235
+ api.add_operation(:export_license_recommendations, Seahorse::Model::Operation.new.tap do |o|
1236
+ o.name = "ExportLicenseRecommendations"
1237
+ o.http_method = "POST"
1238
+ o.http_request_uri = "/"
1239
+ o.input = Shapes::ShapeRef.new(shape: ExportLicenseRecommendationsRequest)
1240
+ o.output = Shapes::ShapeRef.new(shape: ExportLicenseRecommendationsResponse)
1241
+ o.errors << Shapes::ShapeRef.new(shape: OptInRequiredException)
1242
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
1243
+ o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
1244
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
1245
+ o.errors << Shapes::ShapeRef.new(shape: InvalidParameterValueException)
1246
+ o.errors << Shapes::ShapeRef.new(shape: MissingAuthenticationToken)
1247
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
1248
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
1249
+ end)
1250
+
1133
1251
  api.add_operation(:get_auto_scaling_group_recommendations, Seahorse::Model::Operation.new.tap do |o|
1134
1252
  o.name = "GetAutoScalingGroupRecommendations"
1135
1253
  o.http_method = "POST"
@@ -1298,6 +1416,22 @@ module Aws::ComputeOptimizer
1298
1416
  )
1299
1417
  end)
1300
1418
 
1419
+ api.add_operation(:get_license_recommendations, Seahorse::Model::Operation.new.tap do |o|
1420
+ o.name = "GetLicenseRecommendations"
1421
+ o.http_method = "POST"
1422
+ o.http_request_uri = "/"
1423
+ o.input = Shapes::ShapeRef.new(shape: GetLicenseRecommendationsRequest)
1424
+ o.output = Shapes::ShapeRef.new(shape: GetLicenseRecommendationsResponse)
1425
+ o.errors << Shapes::ShapeRef.new(shape: OptInRequiredException)
1426
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
1427
+ o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
1428
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
1429
+ o.errors << Shapes::ShapeRef.new(shape: InvalidParameterValueException)
1430
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
1431
+ o.errors << Shapes::ShapeRef.new(shape: MissingAuthenticationToken)
1432
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
1433
+ end)
1434
+
1301
1435
  api.add_operation(:get_recommendation_preferences, Seahorse::Model::Operation.new.tap do |o|
1302
1436
  o.name = "GetRecommendationPreferences"
1303
1437
  o.http_method = "POST"
@@ -110,6 +110,20 @@ module Aws::ComputeOptimizer
110
110
  end
111
111
  end
112
112
 
113
+ class ExportLicenseRecommendations
114
+ def self.build(context)
115
+ unless context.config.regional_endpoint
116
+ endpoint = context.config.endpoint.to_s
117
+ end
118
+ Aws::ComputeOptimizer::EndpointParameters.new(
119
+ region: context.config.region,
120
+ use_dual_stack: context.config.use_dualstack_endpoint,
121
+ use_fips: context.config.use_fips_endpoint,
122
+ endpoint: endpoint,
123
+ )
124
+ end
125
+ end
126
+
113
127
  class GetAutoScalingGroupRecommendations
114
128
  def self.build(context)
115
129
  unless context.config.regional_endpoint
@@ -250,6 +264,20 @@ module Aws::ComputeOptimizer
250
264
  end
251
265
  end
252
266
 
267
+ class GetLicenseRecommendations
268
+ def self.build(context)
269
+ unless context.config.regional_endpoint
270
+ endpoint = context.config.endpoint.to_s
271
+ end
272
+ Aws::ComputeOptimizer::EndpointParameters.new(
273
+ region: context.config.region,
274
+ use_dual_stack: context.config.use_dualstack_endpoint,
275
+ use_fips: context.config.use_fips_endpoint,
276
+ endpoint: endpoint,
277
+ )
278
+ end
279
+ end
280
+
253
281
  class GetRecommendationPreferences
254
282
  def self.build(context)
255
283
  unless context.config.regional_endpoint
@@ -70,6 +70,8 @@ module Aws::ComputeOptimizer
70
70
  Aws::ComputeOptimizer::Endpoints::ExportECSServiceRecommendations.build(context)
71
71
  when :export_lambda_function_recommendations
72
72
  Aws::ComputeOptimizer::Endpoints::ExportLambdaFunctionRecommendations.build(context)
73
+ when :export_license_recommendations
74
+ Aws::ComputeOptimizer::Endpoints::ExportLicenseRecommendations.build(context)
73
75
  when :get_auto_scaling_group_recommendations
74
76
  Aws::ComputeOptimizer::Endpoints::GetAutoScalingGroupRecommendations.build(context)
75
77
  when :get_ebs_volume_recommendations
@@ -90,6 +92,8 @@ module Aws::ComputeOptimizer
90
92
  Aws::ComputeOptimizer::Endpoints::GetEnrollmentStatusesForOrganization.build(context)
91
93
  when :get_lambda_function_recommendations
92
94
  Aws::ComputeOptimizer::Endpoints::GetLambdaFunctionRecommendations.build(context)
95
+ when :get_license_recommendations
96
+ Aws::ComputeOptimizer::Endpoints::GetLicenseRecommendations.build(context)
93
97
  when :get_recommendation_preferences
94
98
  Aws::ComputeOptimizer::Endpoints::GetRecommendationPreferences.build(context)
95
99
  when :get_recommendation_summaries
@@ -1751,6 +1751,120 @@ module Aws::ComputeOptimizer
1751
1751
  include Aws::Structure
1752
1752
  end
1753
1753
 
1754
+ # @!attribute [rw] account_ids
1755
+ # The IDs of the Amazon Web Services accounts for which to export
1756
+ # license recommendations.
1757
+ #
1758
+ # If your account is the management account of an organization, use
1759
+ # this parameter to specify the member account for which you want to
1760
+ # export recommendations.
1761
+ #
1762
+ # This parameter can't be specified together with the include member
1763
+ # accounts parameter. The parameters are mutually exclusive.
1764
+ #
1765
+ # If this parameter is omitted, recommendations for member accounts
1766
+ # aren't included in the export.
1767
+ #
1768
+ # You can specify multiple account IDs per request.
1769
+ # @return [Array<String>]
1770
+ #
1771
+ # @!attribute [rw] filters
1772
+ # An array of objects to specify a filter that exports a more specific
1773
+ # set of license recommendations.
1774
+ # @return [Array<Types::LicenseRecommendationFilter>]
1775
+ #
1776
+ # @!attribute [rw] fields_to_export
1777
+ # The recommendations data to include in the export file. For more
1778
+ # information about the fields that can be exported, see [Exported
1779
+ # files][1] in the *Compute Optimizer User Guide*.
1780
+ #
1781
+ #
1782
+ #
1783
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/exporting-recommendations.html#exported-files
1784
+ # @return [Array<String>]
1785
+ #
1786
+ # @!attribute [rw] s3_destination_config
1787
+ # Describes the destination Amazon Simple Storage Service (Amazon S3)
1788
+ # bucket name and key prefix for a recommendations export job.
1789
+ #
1790
+ # You must create the destination Amazon S3 bucket for your
1791
+ # recommendations export before you create the export job. Compute
1792
+ # Optimizer does not create the S3 bucket for you. After you create
1793
+ # the S3 bucket, ensure that it has the required permission policy to
1794
+ # allow Compute Optimizer to write the export file to it. If you plan
1795
+ # to specify an object prefix when you create the export job, you must
1796
+ # include the object prefix in the policy that you add to the S3
1797
+ # bucket. For more information, see [Amazon S3 Bucket Policy for
1798
+ # Compute Optimizer][1] in the *Compute Optimizer User Guide*.
1799
+ #
1800
+ #
1801
+ #
1802
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/create-s3-bucket-policy-for-compute-optimizer.html
1803
+ # @return [Types::S3DestinationConfig]
1804
+ #
1805
+ # @!attribute [rw] file_format
1806
+ # The format of the export file.
1807
+ #
1808
+ # A CSV file is the only export format currently supported.
1809
+ # @return [String]
1810
+ #
1811
+ # @!attribute [rw] include_member_accounts
1812
+ # Indicates whether to include recommendations for resources in all
1813
+ # member accounts of the organization if your account is the
1814
+ # management account of an organization.
1815
+ #
1816
+ # The member accounts must also be opted in to Compute Optimizer, and
1817
+ # trusted access for Compute Optimizer must be enabled in the
1818
+ # organization account. For more information, see [Compute Optimizer
1819
+ # and Amazon Web Services Organizations trusted access][1] in the
1820
+ # *Compute Optimizer User Guide*.
1821
+ #
1822
+ # If this parameter is omitted, recommendations for member accounts of
1823
+ # the organization aren't included in the export file .
1824
+ #
1825
+ # This parameter cannot be specified together with the account IDs
1826
+ # parameter. The parameters are mutually exclusive.
1827
+ #
1828
+ #
1829
+ #
1830
+ # [1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/security-iam.html#trusted-service-access
1831
+ # @return [Boolean]
1832
+ #
1833
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/ExportLicenseRecommendationsRequest AWS API Documentation
1834
+ #
1835
+ class ExportLicenseRecommendationsRequest < Struct.new(
1836
+ :account_ids,
1837
+ :filters,
1838
+ :fields_to_export,
1839
+ :s3_destination_config,
1840
+ :file_format,
1841
+ :include_member_accounts)
1842
+ SENSITIVE = []
1843
+ include Aws::Structure
1844
+ end
1845
+
1846
+ # @!attribute [rw] job_id
1847
+ # The identification number of the export job.
1848
+ #
1849
+ # To view the status of an export job, use the
1850
+ # DescribeRecommendationExportJobs action and specify the job ID.
1851
+ # @return [String]
1852
+ #
1853
+ # @!attribute [rw] s3_destination
1854
+ # Describes the destination Amazon Simple Storage Service (Amazon S3)
1855
+ # bucket name and object keys of a recommendations export file, and
1856
+ # its associated metadata file.
1857
+ # @return [Types::S3Destination]
1858
+ #
1859
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/ExportLicenseRecommendationsResponse AWS API Documentation
1860
+ #
1861
+ class ExportLicenseRecommendationsResponse < Struct.new(
1862
+ :job_id,
1863
+ :s3_destination)
1864
+ SENSITIVE = []
1865
+ include Aws::Structure
1866
+ end
1867
+
1754
1868
  # Describes Compute Optimizer's integration status with your chosen
1755
1869
  # external metric provider. For example, Datadog.
1756
1870
  #
@@ -2592,6 +2706,77 @@ module Aws::ComputeOptimizer
2592
2706
  include Aws::Structure
2593
2707
  end
2594
2708
 
2709
+ # @!attribute [rw] resource_arns
2710
+ # The ARN that identifies the Amazon EC2 instance.
2711
+ #
2712
+ # The following is the format of the ARN:
2713
+ #
2714
+ # `arn:aws:ec2:region:aws_account_id:instance/instance-id`
2715
+ # @return [Array<String>]
2716
+ #
2717
+ # @!attribute [rw] next_token
2718
+ # The token to advance to the next page of license recommendations.
2719
+ # @return [String]
2720
+ #
2721
+ # @!attribute [rw] max_results
2722
+ # The maximum number of license recommendations to return with a
2723
+ # single request.
2724
+ #
2725
+ # To retrieve the remaining results, make another request with the
2726
+ # returned `nextToken` value.
2727
+ # @return [Integer]
2728
+ #
2729
+ # @!attribute [rw] filters
2730
+ # An array of objects to specify a filter that returns a more specific
2731
+ # list of license recommendations.
2732
+ # @return [Array<Types::LicenseRecommendationFilter>]
2733
+ #
2734
+ # @!attribute [rw] account_ids
2735
+ # The ID of the Amazon Web Services account for which to return
2736
+ # license recommendations.
2737
+ #
2738
+ # If your account is the management account of an organization, use
2739
+ # this parameter to specify the member account for which you want to
2740
+ # return license recommendations.
2741
+ #
2742
+ # Only one account ID can be specified per request.
2743
+ # @return [Array<String>]
2744
+ #
2745
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetLicenseRecommendationsRequest AWS API Documentation
2746
+ #
2747
+ class GetLicenseRecommendationsRequest < Struct.new(
2748
+ :resource_arns,
2749
+ :next_token,
2750
+ :max_results,
2751
+ :filters,
2752
+ :account_ids)
2753
+ SENSITIVE = []
2754
+ include Aws::Structure
2755
+ end
2756
+
2757
+ # @!attribute [rw] next_token
2758
+ # The token to use to advance to the next page of license
2759
+ # recommendations.
2760
+ # @return [String]
2761
+ #
2762
+ # @!attribute [rw] license_recommendations
2763
+ # An array of objects that describe license recommendations.
2764
+ # @return [Array<Types::LicenseRecommendation>]
2765
+ #
2766
+ # @!attribute [rw] errors
2767
+ # An array of objects that describe errors of the request.
2768
+ # @return [Array<Types::GetRecommendationError>]
2769
+ #
2770
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/GetLicenseRecommendationsResponse AWS API Documentation
2771
+ #
2772
+ class GetLicenseRecommendationsResponse < Struct.new(
2773
+ :next_token,
2774
+ :license_recommendations,
2775
+ :errors)
2776
+ SENSITIVE = []
2777
+ include Aws::Structure
2778
+ end
2779
+
2595
2780
  # Describes an error experienced when getting recommendations.
2596
2781
  #
2597
2782
  # For example, an error is returned if you request recommendations for
@@ -3662,6 +3847,260 @@ module Aws::ComputeOptimizer
3662
3847
  include Aws::Structure
3663
3848
  end
3664
3849
 
3850
+ # Describes the configuration of a license for an Amazon EC2 instance.
3851
+ #
3852
+ # @!attribute [rw] number_of_cores
3853
+ # The current number of cores associated with the instance.
3854
+ # @return [Integer]
3855
+ #
3856
+ # @!attribute [rw] instance_type
3857
+ # The instance type used in the license.
3858
+ # @return [String]
3859
+ #
3860
+ # @!attribute [rw] operating_system
3861
+ # The operating system of the instance.
3862
+ # @return [String]
3863
+ #
3864
+ # @!attribute [rw] license_edition
3865
+ # The edition of the license for the application that runs on the
3866
+ # instance.
3867
+ # @return [String]
3868
+ #
3869
+ # @!attribute [rw] license_name
3870
+ # The name of the license for the application that runs on the
3871
+ # instance.
3872
+ # @return [String]
3873
+ #
3874
+ # @!attribute [rw] license_model
3875
+ # The license type associated with the instance.
3876
+ # @return [String]
3877
+ #
3878
+ # @!attribute [rw] license_version
3879
+ # The version of the license for the application that runs on the
3880
+ # instance.
3881
+ # @return [String]
3882
+ #
3883
+ # @!attribute [rw] metrics_source
3884
+ # The list of metric sources required to generate recommendations for
3885
+ # commercial software licenses.
3886
+ # @return [Array<Types::MetricSource>]
3887
+ #
3888
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/LicenseConfiguration AWS API Documentation
3889
+ #
3890
+ class LicenseConfiguration < Struct.new(
3891
+ :number_of_cores,
3892
+ :instance_type,
3893
+ :operating_system,
3894
+ :license_edition,
3895
+ :license_name,
3896
+ :license_model,
3897
+ :license_version,
3898
+ :metrics_source)
3899
+ SENSITIVE = []
3900
+ include Aws::Structure
3901
+ end
3902
+
3903
+ # Describes a license recommendation for an EC2 instance.
3904
+ #
3905
+ # @!attribute [rw] resource_arn
3906
+ # The ARN that identifies the Amazon EC2 instance.
3907
+ # @return [String]
3908
+ #
3909
+ # @!attribute [rw] account_id
3910
+ # The Amazon Web Services account ID of the license.
3911
+ # @return [String]
3912
+ #
3913
+ # @!attribute [rw] current_license_configuration
3914
+ # An object that describes the current configuration of an instance
3915
+ # that runs on a license.
3916
+ # @return [Types::LicenseConfiguration]
3917
+ #
3918
+ # @!attribute [rw] lookback_period_in_days
3919
+ # The number of days for which utilization metrics were analyzed for
3920
+ # an instance that runs on a license.
3921
+ # @return [Float]
3922
+ #
3923
+ # @!attribute [rw] last_refresh_timestamp
3924
+ # The timestamp of when the license recommendation was last generated.
3925
+ # @return [Time]
3926
+ #
3927
+ # @!attribute [rw] finding
3928
+ # The finding classification for an instance that runs on a license.
3929
+ #
3930
+ # Findings include:
3931
+ #
3932
+ # * `InsufficentMetrics` — When Compute Optimizer detects that your
3933
+ # CloudWatch Application Insights isn't enabled or is enabled with
3934
+ # insufficient permissions.
3935
+ #
3936
+ # * `NotOptimized` — When Compute Optimizer detects that your EC2
3937
+ # infrastructure isn't using any of the SQL server license features
3938
+ # you're paying for, a license is considered not optimized.
3939
+ #
3940
+ # * `Optimized` — When Compute Optimizer detects that all
3941
+ # specifications of your license meet the performance requirements
3942
+ # of your workload.
3943
+ # @return [String]
3944
+ #
3945
+ # @!attribute [rw] finding_reason_codes
3946
+ # The reason for the finding classification for an instance that runs
3947
+ # on a license.
3948
+ #
3949
+ # Finding reason codes include:
3950
+ #
3951
+ # * `Optimized` — All specifications of your license meet the
3952
+ # performance requirements of your workload.
3953
+ #
3954
+ # * `LicenseOverprovisioned` — A license is considered
3955
+ # over-provisioned when your license can be downgraded while still
3956
+ # meeting the performance requirements of your workload.
3957
+ #
3958
+ # * `InvalidCloudwatchApplicationInsights` — CloudWatch Application
3959
+ # Insights isn't configured properly.
3960
+ #
3961
+ # * `CloudwatchApplicationInsightsError` — There is a CloudWatch
3962
+ # Application Insights error.
3963
+ # @return [Array<String>]
3964
+ #
3965
+ # @!attribute [rw] license_recommendation_options
3966
+ # An array of objects that describe the license recommendation
3967
+ # options.
3968
+ # @return [Array<Types::LicenseRecommendationOption>]
3969
+ #
3970
+ # @!attribute [rw] tags
3971
+ # A list of tags assigned to an EC2 instance.
3972
+ # @return [Array<Types::Tag>]
3973
+ #
3974
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/LicenseRecommendation AWS API Documentation
3975
+ #
3976
+ class LicenseRecommendation < Struct.new(
3977
+ :resource_arn,
3978
+ :account_id,
3979
+ :current_license_configuration,
3980
+ :lookback_period_in_days,
3981
+ :last_refresh_timestamp,
3982
+ :finding,
3983
+ :finding_reason_codes,
3984
+ :license_recommendation_options,
3985
+ :tags)
3986
+ SENSITIVE = []
3987
+ include Aws::Structure
3988
+ end
3989
+
3990
+ # Describes a filter that returns a more specific list of license
3991
+ # recommendations. Use this filter with the `GetLicenseRecommendation`
3992
+ # action.
3993
+ #
3994
+ # @!attribute [rw] name
3995
+ # The name of the filter.
3996
+ #
3997
+ # Specify `Finding` to return recommendations with a specific finding
3998
+ # classification.
3999
+ #
4000
+ # Specify `FindingReasonCode` to return recommendations with a
4001
+ # specific finding reason code.
4002
+ #
4003
+ # You can filter your license recommendations by `tag:key` and
4004
+ # `tag-key` tags.
4005
+ #
4006
+ # A `tag:key` is a key and value combination of a tag assigned to your
4007
+ # license recommendations. Use the tag key in the filter name and the
4008
+ # tag value as the filter value. For example, to find all license
4009
+ # recommendations that have a tag with the key of `Owner` and the
4010
+ # value of `TeamA`, specify `tag:Owner` for the filter name and
4011
+ # `TeamA` for the filter value.
4012
+ #
4013
+ # A `tag-key` is the key of a tag assigned to your license
4014
+ # recommendations. Use this filter to find all of your license
4015
+ # recommendations that have a tag with a specific key. This doesn’t
4016
+ # consider the tag value. For example, you can find your license
4017
+ # recommendations with a tag key value of `Owner` or without any tag
4018
+ # keys assigned.
4019
+ # @return [String]
4020
+ #
4021
+ # @!attribute [rw] values
4022
+ # The value of the filter.
4023
+ #
4024
+ # The valid values for this parameter are as follows, depending on
4025
+ # what you specify for the `name` parameter:
4026
+ #
4027
+ # * If you specify the `name` parameter as `Finding`, then specify
4028
+ # `Optimized`, `NotOptimized`, or `InsufficentMetrics`.
4029
+ #
4030
+ # * If you specify the `name` parameter as `FindingReasonCode`, then
4031
+ # specify `Optimized`, `LicenseOverprovisioned`,
4032
+ # `InvalidCloudwatchApplicationInsights`, or
4033
+ # `CloudwatchApplicationInsightsError`.
4034
+ # @return [Array<String>]
4035
+ #
4036
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/LicenseRecommendationFilter AWS API Documentation
4037
+ #
4038
+ class LicenseRecommendationFilter < Struct.new(
4039
+ :name,
4040
+ :values)
4041
+ SENSITIVE = []
4042
+ include Aws::Structure
4043
+ end
4044
+
4045
+ # Describes the recommendation options for licenses.
4046
+ #
4047
+ # @!attribute [rw] rank
4048
+ # The rank of the license recommendation option.
4049
+ #
4050
+ # The top recommendation option is ranked as `1`.
4051
+ # @return [Integer]
4052
+ #
4053
+ # @!attribute [rw] operating_system
4054
+ # The operating system of a license recommendation option.
4055
+ # @return [String]
4056
+ #
4057
+ # @!attribute [rw] license_edition
4058
+ # The recommended edition of the license for the application that runs
4059
+ # on the instance.
4060
+ # @return [String]
4061
+ #
4062
+ # @!attribute [rw] license_model
4063
+ # The recommended license type associated with the instance.
4064
+ # @return [String]
4065
+ #
4066
+ # @!attribute [rw] savings_opportunity
4067
+ # Describes the savings opportunity for recommendations of a given
4068
+ # resource type or for the recommendation option of an individual
4069
+ # resource.
4070
+ #
4071
+ # Savings opportunity represents the estimated monthly savings you can
4072
+ # achieve by implementing a given Compute Optimizer recommendation.
4073
+ #
4074
+ # Savings opportunity data requires that you opt in to Cost Explorer,
4075
+ # as well as activate **Receive Amazon EC2 resource recommendations**
4076
+ # in the Cost Explorer preferences page. That creates a connection
4077
+ # between Cost Explorer and Compute Optimizer. With this connection,
4078
+ # Cost Explorer generates savings estimates considering the price of
4079
+ # existing resources, the price of recommended resources, and
4080
+ # historical usage data. Estimated monthly savings reflects the
4081
+ # projected dollar savings associated with each of the recommendations
4082
+ # generated. For more information, see [Enabling Cost Explorer][1] and
4083
+ # [Optimizing your cost with Rightsizing Recommendations][2] in the
4084
+ # *Cost Management User Guide*.
4085
+ #
4086
+ #
4087
+ #
4088
+ # [1]: https://docs.aws.amazon.com/cost-management/latest/userguide/ce-enable.html
4089
+ # [2]: https://docs.aws.amazon.com/cost-management/latest/userguide/ce-rightsizing.html
4090
+ # @return [Types::SavingsOpportunity]
4091
+ #
4092
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/LicenseRecommendationOption AWS API Documentation
4093
+ #
4094
+ class LicenseRecommendationOption < Struct.new(
4095
+ :rank,
4096
+ :operating_system,
4097
+ :license_edition,
4098
+ :license_model,
4099
+ :savings_opportunity)
4100
+ SENSITIVE = []
4101
+ include Aws::Structure
4102
+ end
4103
+
3665
4104
  # The request exceeds a limit of the service.
3666
4105
  #
3667
4106
  # @!attribute [rw] message
@@ -3694,6 +4133,26 @@ module Aws::ComputeOptimizer
3694
4133
  include Aws::Structure
3695
4134
  end
3696
4135
 
4136
+ # The list of metric sources required to generate recommendations for
4137
+ # commercial software licenses.
4138
+ #
4139
+ # @!attribute [rw] provider
4140
+ # The name of the metric source provider.
4141
+ # @return [String]
4142
+ #
4143
+ # @!attribute [rw] provider_arn
4144
+ # The ARN of the metric source provider.
4145
+ # @return [String]
4146
+ #
4147
+ # @see http://docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/MetricSource AWS API Documentation
4148
+ #
4149
+ class MetricSource < Struct.new(
4150
+ :provider,
4151
+ :provider_arn)
4152
+ SENSITIVE = []
4153
+ include Aws::Structure
4154
+ end
4155
+
3697
4156
  # The request must contain either a valid (registered) Amazon Web
3698
4157
  # Services access key ID or X.509 certificate.
3699
4158
  #
@@ -52,6 +52,6 @@ require_relative 'aws-sdk-computeoptimizer/customizations'
52
52
  # @!group service
53
53
  module Aws::ComputeOptimizer
54
54
 
55
- GEM_VERSION = '1.46.0'
55
+ GEM_VERSION = '1.47.0'
56
56
 
57
57
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-computeoptimizer
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.46.0
4
+ version: 1.47.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-07-11 00:00:00.000000000 Z
11
+ date: 2023-08-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-core