aws-sdk-computeoptimizer 1.46.0 → 1.47.0

Sign up to get free protection for your applications and to get access to all the features.
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