diff --git a/clients/client-compute-optimizer/src/commands/ExportEC2InstanceRecommendationsCommand.ts b/clients/client-compute-optimizer/src/commands/ExportEC2InstanceRecommendationsCommand.ts index b680a1447944..a85e8304c7cc 100644 --- a/clients/client-compute-optimizer/src/commands/ExportEC2InstanceRecommendationsCommand.ts +++ b/clients/client-compute-optimizer/src/commands/ExportEC2InstanceRecommendationsCommand.ts @@ -62,7 +62,7 @@ export interface ExportEC2InstanceRecommendationsCommandOutput * }, * ], * fieldsToExport: [ // ExportableInstanceFields - * "AccountId" || "InstanceArn" || "InstanceName" || "Finding" || "FindingReasonCodes" || "LookbackPeriodInDays" || "CurrentInstanceType" || "UtilizationMetricsCpuMaximum" || "UtilizationMetricsMemoryMaximum" || "UtilizationMetricsEbsReadOpsPerSecondMaximum" || "UtilizationMetricsEbsWriteOpsPerSecondMaximum" || "UtilizationMetricsEbsReadBytesPerSecondMaximum" || "UtilizationMetricsEbsWriteBytesPerSecondMaximum" || "UtilizationMetricsDiskReadOpsPerSecondMaximum" || "UtilizationMetricsDiskWriteOpsPerSecondMaximum" || "UtilizationMetricsDiskReadBytesPerSecondMaximum" || "UtilizationMetricsDiskWriteBytesPerSecondMaximum" || "UtilizationMetricsNetworkInBytesPerSecondMaximum" || "UtilizationMetricsNetworkOutBytesPerSecondMaximum" || "UtilizationMetricsNetworkPacketsInPerSecondMaximum" || "UtilizationMetricsNetworkPacketsOutPerSecondMaximum" || "CurrentOnDemandPrice" || "CurrentStandardOneYearNoUpfrontReservedPrice" || "CurrentStandardThreeYearNoUpfrontReservedPrice" || "CurrentVCpus" || "CurrentMemory" || "CurrentStorage" || "CurrentNetwork" || "RecommendationOptionsInstanceType" || "RecommendationOptionsProjectedUtilizationMetricsCpuMaximum" || "RecommendationOptionsProjectedUtilizationMetricsMemoryMaximum" || "RecommendationOptionsPlatformDifferences" || "RecommendationOptionsPerformanceRisk" || "RecommendationOptionsVcpus" || "RecommendationOptionsMemory" || "RecommendationOptionsStorage" || "RecommendationOptionsNetwork" || "RecommendationOptionsOnDemandPrice" || "RecommendationOptionsStandardOneYearNoUpfrontReservedPrice" || "RecommendationOptionsStandardThreeYearNoUpfrontReservedPrice" || "RecommendationsSourcesRecommendationSourceArn" || "RecommendationsSourcesRecommendationSourceType" || "LastRefreshTimestamp" || "CurrentPerformanceRisk" || "RecommendationOptionsSavingsOpportunityPercentage" || "RecommendationOptionsEstimatedMonthlySavingsCurrency" || "RecommendationOptionsEstimatedMonthlySavingsValue" || "EffectiveRecommendationPreferencesCpuVendorArchitectures" || "EffectiveRecommendationPreferencesEnhancedInfrastructureMetrics" || "EffectiveRecommendationPreferencesInferredWorkloadTypes" || "InferredWorkloadTypes" || "RecommendationOptionsMigrationEffort" || "EffectiveRecommendationPreferencesExternalMetricsSource" || "InstanceState" || "Tags", + * "AccountId" || "InstanceArn" || "InstanceName" || "Finding" || "FindingReasonCodes" || "LookbackPeriodInDays" || "CurrentInstanceType" || "UtilizationMetricsCpuMaximum" || "UtilizationMetricsMemoryMaximum" || "UtilizationMetricsEbsReadOpsPerSecondMaximum" || "UtilizationMetricsEbsWriteOpsPerSecondMaximum" || "UtilizationMetricsEbsReadBytesPerSecondMaximum" || "UtilizationMetricsEbsWriteBytesPerSecondMaximum" || "UtilizationMetricsDiskReadOpsPerSecondMaximum" || "UtilizationMetricsDiskWriteOpsPerSecondMaximum" || "UtilizationMetricsDiskReadBytesPerSecondMaximum" || "UtilizationMetricsDiskWriteBytesPerSecondMaximum" || "UtilizationMetricsNetworkInBytesPerSecondMaximum" || "UtilizationMetricsNetworkOutBytesPerSecondMaximum" || "UtilizationMetricsNetworkPacketsInPerSecondMaximum" || "UtilizationMetricsNetworkPacketsOutPerSecondMaximum" || "CurrentOnDemandPrice" || "CurrentStandardOneYearNoUpfrontReservedPrice" || "CurrentStandardThreeYearNoUpfrontReservedPrice" || "CurrentVCpus" || "CurrentMemory" || "CurrentStorage" || "CurrentNetwork" || "RecommendationOptionsInstanceType" || "RecommendationOptionsProjectedUtilizationMetricsCpuMaximum" || "RecommendationOptionsProjectedUtilizationMetricsMemoryMaximum" || "RecommendationOptionsPlatformDifferences" || "RecommendationOptionsPerformanceRisk" || "RecommendationOptionsVcpus" || "RecommendationOptionsMemory" || "RecommendationOptionsStorage" || "RecommendationOptionsNetwork" || "RecommendationOptionsOnDemandPrice" || "RecommendationOptionsStandardOneYearNoUpfrontReservedPrice" || "RecommendationOptionsStandardThreeYearNoUpfrontReservedPrice" || "RecommendationsSourcesRecommendationSourceArn" || "RecommendationsSourcesRecommendationSourceType" || "LastRefreshTimestamp" || "CurrentPerformanceRisk" || "RecommendationOptionsSavingsOpportunityPercentage" || "RecommendationOptionsEstimatedMonthlySavingsCurrency" || "RecommendationOptionsEstimatedMonthlySavingsValue" || "EffectiveRecommendationPreferencesCpuVendorArchitectures" || "EffectiveRecommendationPreferencesEnhancedInfrastructureMetrics" || "EffectiveRecommendationPreferencesInferredWorkloadTypes" || "InferredWorkloadTypes" || "RecommendationOptionsMigrationEffort" || "EffectiveRecommendationPreferencesExternalMetricsSource" || "InstanceState" || "Tags" || "ExternalMetricStatusCode" || "ExternalMetricStatusReason", * ], * s3DestinationConfig: { // S3DestinationConfig * bucket: "STRING_VALUE", diff --git a/clients/client-compute-optimizer/src/commands/GetEC2InstanceRecommendationsCommand.ts b/clients/client-compute-optimizer/src/commands/GetEC2InstanceRecommendationsCommand.ts index 7c68e459f088..833ac4452c2d 100644 --- a/clients/client-compute-optimizer/src/commands/GetEC2InstanceRecommendationsCommand.ts +++ b/clients/client-compute-optimizer/src/commands/GetEC2InstanceRecommendationsCommand.ts @@ -146,6 +146,10 @@ export interface GetEC2InstanceRecommendationsCommandOutput * // value: "STRING_VALUE", * // }, * // ], + * // externalMetricStatus: { // ExternalMetricStatus + * // statusCode: "NO_EXTERNAL_METRIC_SET" || "INTEGRATION_SUCCESS" || "DATADOG_INTEGRATION_ERROR" || "DYNATRACE_INTEGRATION_ERROR" || "NEWRELIC_INTEGRATION_ERROR" || "INSTANA_INTEGRATION_ERROR" || "INSUFFICIENT_DATADOG_METRICS" || "INSUFFICIENT_DYNATRACE_METRICS" || "INSUFFICIENT_NEWRELIC_METRICS" || "INSUFFICIENT_INSTANA_METRICS", + * // statusReason: "STRING_VALUE", + * // }, * // }, * // ], * // errors: [ // GetRecommendationErrors diff --git a/clients/client-compute-optimizer/src/models/models_0.ts b/clients/client-compute-optimizer/src/models/models_0.ts index 32468c436480..e01c81546dc0 100644 --- a/clients/client-compute-optimizer/src/models/models_0.ts +++ b/clients/client-compute-optimizer/src/models/models_0.ts @@ -1927,6 +1927,8 @@ export const ExportableInstanceField = { "EffectiveRecommendationPreferencesExternalMetricsSource", EFFECTIVE_RECOMMENDATION_PREFERENCES_INFERRED_WORKLOAD_TYPES: "EffectiveRecommendationPreferencesInferredWorkloadTypes", + EXTERNAL_METRIC_STATUS_CODE: "ExternalMetricStatusCode", + EXTERNAL_METRIC_STATUS_REASON: "ExternalMetricStatusReason", FINDING: "Finding", Finding_Reason_Codes: "FindingReasonCodes", INFERRED_WORKLOAD_TYPES: "InferredWorkloadTypes", @@ -2942,6 +2944,50 @@ export interface GetEC2InstanceRecommendationsRequest { recommendationPreferences?: RecommendationPreferences; } +/** + * @public + * @enum + */ +export const ExternalMetricStatusCode = { + DATADOG_INTEGRATION_ERROR: "DATADOG_INTEGRATION_ERROR", + DYNATRACE_INTEGRATION_ERROR: "DYNATRACE_INTEGRATION_ERROR", + INSTANA_INTEGRATION_ERROR: "INSTANA_INTEGRATION_ERROR", + INSUFFICIENT_DATADOG_METRICS: "INSUFFICIENT_DATADOG_METRICS", + INSUFFICIENT_DYNATRACE_METRICS: "INSUFFICIENT_DYNATRACE_METRICS", + INSUFFICIENT_INSTANA_METRICS: "INSUFFICIENT_INSTANA_METRICS", + INSUFFICIENT_NEWRELIC_METRICS: "INSUFFICIENT_NEWRELIC_METRICS", + INTEGRATION_SUCCESS: "INTEGRATION_SUCCESS", + NEWRELIC_INTEGRATION_ERROR: "NEWRELIC_INTEGRATION_ERROR", + NO_EXTERNAL_METRIC_SET: "NO_EXTERNAL_METRIC_SET", +} as const; + +/** + * @public + */ +export type ExternalMetricStatusCode = (typeof ExternalMetricStatusCode)[keyof typeof ExternalMetricStatusCode]; + +/** + * @public + *
+ * Describes Compute Optimizer's integration status with your chosen external metric provider. For example, Datadog. + *
+ */ +export interface ExternalMetricStatus { + /** + *+ * The status code for Compute Optimizer's integration with an external metrics provider. + *
+ */ + statusCode?: ExternalMetricStatusCode | string; + + /** + *+ * The reason for Compute Optimizer's integration status with your external metric provider. + *
+ */ + statusReason?: string; +} + /** * @public * @enum @@ -3577,6 +3623,13 @@ export interface InstanceRecommendation { * */ tags?: Tag[]; + + /** + *+ * An object that describes Compute Optimizer's integration status with your external metrics provider. + *
+ */ + externalMetricStatus?: ExternalMetricStatus; } /** diff --git a/clients/client-compute-optimizer/src/protocols/Aws_json1_0.ts b/clients/client-compute-optimizer/src/protocols/Aws_json1_0.ts index 092a933805cc..d924fb40778f 100644 --- a/clients/client-compute-optimizer/src/protocols/Aws_json1_0.ts +++ b/clients/client-compute-optimizer/src/protocols/Aws_json1_0.ts @@ -2457,6 +2457,8 @@ const de_EstimatedMonthlySavings = (output: any, context: __SerdeContext): Estim // de_ExternalMetricsPreference omitted. +// de_ExternalMetricStatus omitted. + /** * deserializeAws_json1_0GetAutoScalingGroupRecommendationsResponse */ @@ -2630,6 +2632,7 @@ const de_InstanceRecommendation = (output: any, context: __SerdeContext): Instan currentInstanceType: __expectString, currentPerformanceRisk: __expectString, effectiveRecommendationPreferences: _json, + externalMetricStatus: _json, finding: __expectString, findingReasonCodes: _json, inferredWorkloadTypes: _json, diff --git a/codegen/sdk-codegen/aws-models/compute-optimizer.json b/codegen/sdk-codegen/aws-models/compute-optimizer.json index 6b7c1cec5e0f..93ea80f18d92 100644 --- a/codegen/sdk-codegen/aws-models/compute-optimizer.json +++ b/codegen/sdk-codegen/aws-models/compute-optimizer.json @@ -3626,6 +3626,18 @@ "traits": { "smithy.api#enumValue": "Tags" } + }, + "EXTERNAL_METRIC_STATUS_CODE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ExternalMetricStatusCode" + } + }, + "EXTERNAL_METRIC_STATUS_REASON": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ExternalMetricStatusReason" + } } } }, @@ -3999,6 +4011,94 @@ "target": "com.amazonaws.computeoptimizer#ExportableVolumeField" } }, + "com.amazonaws.computeoptimizer#ExternalMetricStatus": { + "type": "structure", + "members": { + "statusCode": { + "target": "com.amazonaws.computeoptimizer#ExternalMetricStatusCode", + "traits": { + "smithy.api#documentation": "\n The status code for Compute Optimizer's integration with an external metrics provider.\n
" + } + }, + "statusReason": { + "target": "com.amazonaws.computeoptimizer#ExternalMetricStatusReason", + "traits": { + "smithy.api#documentation": "\n The reason for Compute Optimizer's integration status with your external metric provider.\n
" + } + } + }, + "traits": { + "smithy.api#documentation": "\n Describes Compute Optimizer's integration status with your chosen external metric provider. For example, Datadog.\n
" + } + }, + "com.amazonaws.computeoptimizer#ExternalMetricStatusCode": { + "type": "enum", + "members": { + "NO_EXTERNAL_METRIC_SET": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NO_EXTERNAL_METRIC_SET" + } + }, + "INTEGRATION_SUCCESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INTEGRATION_SUCCESS" + } + }, + "DATADOG_INTEGRATION_ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DATADOG_INTEGRATION_ERROR" + } + }, + "DYNATRACE_INTEGRATION_ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DYNATRACE_INTEGRATION_ERROR" + } + }, + "NEWRELIC_INTEGRATION_ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NEWRELIC_INTEGRATION_ERROR" + } + }, + "INSTANA_INTEGRATION_ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INSTANA_INTEGRATION_ERROR" + } + }, + "INSUFFICIENT_DATADOG_METRICS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INSUFFICIENT_DATADOG_METRICS" + } + }, + "INSUFFICIENT_DYNATRACE_METRICS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INSUFFICIENT_DYNATRACE_METRICS" + } + }, + "INSUFFICIENT_NEWRELIC_METRICS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INSUFFICIENT_NEWRELIC_METRICS" + } + }, + "INSUFFICIENT_INSTANA_METRICS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INSUFFICIENT_INSTANA_METRICS" + } + } + } + }, + "com.amazonaws.computeoptimizer#ExternalMetricStatusReason": { + "type": "string" + }, "com.amazonaws.computeoptimizer#ExternalMetricsPreference": { "type": "structure", "members": { @@ -5583,6 +5683,12 @@ "traits": { "smithy.api#documentation": "\n A list of tags assigned to your Amazon EC2 instance recommendations.\n
" } + }, + "externalMetricStatus": { + "target": "com.amazonaws.computeoptimizer#ExternalMetricStatus", + "traits": { + "smithy.api#documentation": "\n An object that describes Compute Optimizer's integration status with your external metrics provider.\n
" + } } }, "traits": {