1// Code generated by smithy-go-codegen DO NOT EDIT. 2 3package types 4 5import ( 6 smithydocument "github.com/aws/smithy-go/document" 7 "time" 8) 9 10// Describes the enrollment status of an organization's member accounts in Compute 11// Optimizer. 12type AccountEnrollmentStatus struct { 13 14 // The Amazon Web Services account ID. 15 AccountId *string 16 17 // The Unix epoch timestamp, in seconds, of when the account enrollment status was 18 // last updated. 19 LastUpdatedTimestamp *time.Time 20 21 // The account enrollment status. 22 Status Status 23 24 // The reason for the account enrollment status. For example, an account might show 25 // a status of Pending because member accounts of an organization require more time 26 // to be enrolled in the service. 27 StatusReason *string 28 29 noSmithyDocumentSerde 30} 31 32// Describes the configuration of an Auto Scaling group. 33type AutoScalingGroupConfiguration struct { 34 35 // The desired capacity, or number of instances, for the Auto Scaling group. 36 DesiredCapacity int32 37 38 // The instance type for the Auto Scaling group. 39 InstanceType *string 40 41 // The maximum size, or maximum number of instances, for the Auto Scaling group. 42 MaxSize int32 43 44 // The minimum size, or minimum number of instances, for the Auto Scaling group. 45 MinSize int32 46 47 noSmithyDocumentSerde 48} 49 50// Describes an Auto Scaling group recommendation. 51type AutoScalingGroupRecommendation struct { 52 53 // The Amazon Web Services account ID of the Auto Scaling group. 54 AccountId *string 55 56 // The Amazon Resource Name (ARN) of the Auto Scaling group. 57 AutoScalingGroupArn *string 58 59 // The name of the Auto Scaling group. 60 AutoScalingGroupName *string 61 62 // An array of objects that describe the current configuration of the Auto Scaling 63 // group. 64 CurrentConfiguration *AutoScalingGroupConfiguration 65 66 // The finding classification of the Auto Scaling group. Findings for Auto Scaling 67 // groups include: 68 // 69 // * NotOptimized —An Auto Scaling group is considered not 70 // optimized when Compute Optimizer identifies a recommendation that can provide 71 // better performance for your workload. 72 // 73 // * Optimized —An Auto Scaling group is 74 // considered optimized when Compute Optimizer determines that the group is 75 // correctly provisioned to run your workload based on the chosen instance type. 76 // For optimized resources, Compute Optimizer might recommend a new generation 77 // instance type. 78 Finding Finding 79 80 // The timestamp of when the Auto Scaling group recommendation was last refreshed. 81 LastRefreshTimestamp *time.Time 82 83 // The number of days for which utilization metrics were analyzed for the Auto 84 // Scaling group. 85 LookBackPeriodInDays float64 86 87 // An array of objects that describe the recommendation options for the Auto 88 // Scaling group. 89 RecommendationOptions []AutoScalingGroupRecommendationOption 90 91 // An array of objects that describe the utilization metrics of the Auto Scaling 92 // group. 93 UtilizationMetrics []UtilizationMetric 94 95 noSmithyDocumentSerde 96} 97 98// Describes a recommendation option for an Auto Scaling group. 99type AutoScalingGroupRecommendationOption struct { 100 101 // An array of objects that describe an Auto Scaling group configuration. 102 Configuration *AutoScalingGroupConfiguration 103 104 // The performance risk of the Auto Scaling group configuration recommendation. 105 // Performance risk indicates the likelihood of the recommended instance type not 106 // meeting the resource needs of your workload. Compute Optimizer calculates an 107 // individual performance risk score for each specification of the recommended 108 // instance, including CPU, memory, EBS throughput, EBS IOPS, disk throughput, disk 109 // IOPS, network throughput, and network PPS. The performance risk of the 110 // recommended instance is calculated as the maximum performance risk score across 111 // the analyzed resource specifications. The value ranges from 0 - 4, with 0 112 // meaning that the recommended resource is predicted to always provide enough 113 // hardware capability. The higher the performance risk is, the more likely you 114 // should validate whether the recommendation will meet the performance 115 // requirements of your workload before migrating your resource. 116 PerformanceRisk float64 117 118 // An array of objects that describe the projected utilization metrics of the Auto 119 // Scaling group recommendation option. The Cpu and Memory metrics are the only 120 // projected utilization metrics returned. Additionally, the Memory metric is 121 // returned only for resources that have the unified CloudWatch agent installed on 122 // them. For more information, see Enabling Memory Utilization with the CloudWatch 123 // Agent 124 // (https://docs.aws.amazon.com/compute-optimizer/latest/ug/metrics.html#cw-agent). 125 ProjectedUtilizationMetrics []UtilizationMetric 126 127 // The rank of the Auto Scaling group recommendation option. The top recommendation 128 // option is ranked as 1. 129 Rank int32 130 131 noSmithyDocumentSerde 132} 133 134// Describes a filter that returns a more specific list of Amazon Elastic Block 135// Store (Amazon EBS) volume recommendations. Use this filter with the 136// GetEBSVolumeRecommendations action. You can use 137// LambdaFunctionRecommendationFilter with the GetLambdaFunctionRecommendations 138// action, JobFilter with the DescribeRecommendationExportJobs action, and Filter 139// with the GetAutoScalingGroupRecommendations and GetEC2InstanceRecommendations 140// actions. 141type EBSFilter struct { 142 143 // The name of the filter. Specify Finding to return recommendations with a 144 // specific finding classification (for example, NotOptimized). 145 Name EBSFilterName 146 147 // The value of the filter. The valid values are Optimized, or NotOptimized. 148 Values []string 149 150 noSmithyDocumentSerde 151} 152 153// Describes a utilization metric of an Amazon Elastic Block Store (Amazon EBS) 154// volume. Compare the utilization metric data of your resource against its 155// projected utilization metric data to determine the performance difference 156// between your current resource and the recommended option. 157type EBSUtilizationMetric struct { 158 159 // The name of the utilization metric. The following utilization metrics are 160 // available: 161 // 162 // * VolumeReadOpsPerSecond - The completed read operations per second 163 // from the volume in a specified period of time. Unit: Count 164 // 165 // * 166 // VolumeWriteOpsPerSecond - The completed write operations per second to the 167 // volume in a specified period of time. Unit: Count 168 // 169 // * VolumeReadBytesPerSecond - 170 // The bytes read per second from the volume in a specified period of time. Unit: 171 // Bytes 172 // 173 // * VolumeWriteBytesPerSecond - The bytes written to the volume in a 174 // specified period of time. Unit: Bytes 175 Name EBSMetricName 176 177 // The statistic of the utilization metric. The Compute Optimizer API, Command Line 178 // Interface (CLI), and SDKs return utilization metrics using only the Maximum 179 // statistic, which is the highest value observed during the specified period. The 180 // Compute Optimizer console displays graphs for some utilization metrics using the 181 // Average statistic, which is the value of Sum / SampleCount during the specified 182 // period. For more information, see Viewing resource recommendations 183 // (https://docs.aws.amazon.com/compute-optimizer/latest/ug/viewing-recommendations.html) 184 // in the Compute Optimizer User Guide. You can also get averaged utilization 185 // metric data for your resources using Amazon CloudWatch. For more information, 186 // see the Amazon CloudWatch User Guide 187 // (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html). 188 Statistic MetricStatistic 189 190 // The value of the utilization metric. 191 Value float64 192 193 noSmithyDocumentSerde 194} 195 196// Describes a filter that returns a more specific list of account enrollment 197// statuses. Use this filter with the GetEnrollmentStatusesForOrganization action. 198type EnrollmentFilter struct { 199 200 // The name of the filter. Specify Status to return accounts with a specific 201 // enrollment status (for example, Active). 202 Name EnrollmentFilterName 203 204 // The value of the filter. The valid values are Active, Inactive, Pending, and 205 // Failed. 206 Values []string 207 208 noSmithyDocumentSerde 209} 210 211// Describes the destination of the recommendations export and metadata files. 212type ExportDestination struct { 213 214 // An object that describes the destination Amazon Simple Storage Service (Amazon 215 // S3) bucket name and object keys of a recommendations export file, and its 216 // associated metadata file. 217 S3 *S3Destination 218 219 noSmithyDocumentSerde 220} 221 222// Describes a filter that returns a more specific list of recommendations. Use 223// this filter with the GetAutoScalingGroupRecommendations and 224// GetEC2InstanceRecommendations actions. You can use EBSFilter with the 225// GetEBSVolumeRecommendations action, LambdaFunctionRecommendationFilter with the 226// GetLambdaFunctionRecommendations action, and JobFilter with the 227// DescribeRecommendationExportJobs action. 228type Filter struct { 229 230 // The name of the filter. Specify Finding to return recommendations with a 231 // specific finding classification (for example, Underprovisioned). Specify 232 // RecommendationSourceType to return recommendations of a specific resource type 233 // (for example, Ec2Instance). Specify FindingReasonCodes to return recommendations 234 // with a specific finding reason code (for example, CPUUnderprovisioned). 235 Name FilterName 236 237 // The value of the filter. The valid values for this parameter are as follows, 238 // depending on what you specify for the name parameter and the resource type that 239 // you wish to filter results for: 240 // 241 // * Specify Optimized or NotOptimized if you 242 // specify the name parameter as Finding and you want to filter results for Auto 243 // Scaling groups. 244 // 245 // * Specify Underprovisioned, Overprovisioned, or Optimized if 246 // you specify the name parameter as Finding and you want to filter results for EC2 247 // instances. 248 // 249 // * Specify Ec2Instance or AutoScalingGroup if you specify the name 250 // parameter as RecommendationSourceType. 251 // 252 // * Specify one of the following options 253 // if you specify the name parameter as FindingReasonCodes: 254 // 255 // * CPUOverprovisioned — 256 // The instance’s CPU configuration can be sized down while still meeting the 257 // performance requirements of your workload. 258 // 259 // * CPUUnderprovisioned — The 260 // instance’s CPU configuration doesn't meet the performance requirements of your 261 // workload and there is an alternative instance type that provides better CPU 262 // performance. 263 // 264 // * MemoryOverprovisioned — The instance’s memory configuration can 265 // be sized down while still meeting the performance requirements of your 266 // workload. 267 // 268 // * MemoryUnderprovisioned — The instance’s memory configuration 269 // doesn't meet the performance requirements of your workload and there is an 270 // alternative instance type that provides better memory performance. 271 // 272 // * 273 // EBSThroughputOverprovisioned — The instance’s EBS throughput configuration can 274 // be sized down while still meeting the performance requirements of your 275 // workload. 276 // 277 // * EBSThroughputUnderprovisioned — The instance’s EBS throughput 278 // configuration doesn't meet the performance requirements of your workload and 279 // there is an alternative instance type that provides better EBS throughput 280 // performance. 281 // 282 // * EBSIOPSOverprovisioned — The instance’s EBS IOPS configuration 283 // can be sized down while still meeting the performance requirements of your 284 // workload. 285 // 286 // * EBSIOPSUnderprovisioned — The instance’s EBS IOPS configuration 287 // doesn't meet the performance requirements of your workload and there is an 288 // alternative instance type that provides better EBS IOPS performance. 289 // 290 // * 291 // NetworkBandwidthOverprovisioned — The instance’s network bandwidth configuration 292 // can be sized down while still meeting the performance requirements of your 293 // workload. 294 // 295 // * NetworkBandwidthUnderprovisioned — The instance’s network bandwidth 296 // configuration doesn't meet the performance requirements of your workload and 297 // there is an alternative instance type that provides better network bandwidth 298 // performance. This finding reason happens when the NetworkIn or NetworkOut 299 // performance of an instance is impacted. 300 // 301 // * NetworkPPSOverprovisioned — The 302 // instance’s network PPS (packets per second) configuration can be sized down 303 // while still meeting the performance requirements of your workload. 304 // 305 // * 306 // NetworkPPSUnderprovisioned — The instance’s network PPS (packets per second) 307 // configuration doesn't meet the performance requirements of your workload and 308 // there is an alternative instance type that provides better network PPS 309 // performance. 310 // 311 // * DiskIOPSOverprovisioned — The instance’s disk IOPS configuration 312 // can be sized down while still meeting the performance requirements of your 313 // workload. 314 // 315 // * DiskIOPSUnderprovisioned — The instance’s disk IOPS configuration 316 // doesn't meet the performance requirements of your workload and there is an 317 // alternative instance type that provides better disk IOPS performance. 318 // 319 // * 320 // DiskThroughputOverprovisioned — The instance’s disk throughput configuration can 321 // be sized down while still meeting the performance requirements of your 322 // workload. 323 // 324 // * DiskThroughputUnderprovisioned — The instance’s disk throughput 325 // configuration doesn't meet the performance requirements of your workload and 326 // there is an alternative instance type that provides better disk throughput 327 // performance. 328 Values []string 329 330 noSmithyDocumentSerde 331} 332 333// Describes an error experienced when getting recommendations. For example, an 334// error is returned if you request recommendations for an unsupported Auto Scaling 335// group, or if you request recommendations for an instance of an unsupported 336// instance family. 337type GetRecommendationError struct { 338 339 // The error code. 340 Code *string 341 342 // The ID of the error. 343 Identifier *string 344 345 // The message, or reason, for the error. 346 Message *string 347 348 noSmithyDocumentSerde 349} 350 351// Describes an Amazon EC2 instance recommendation. 352type InstanceRecommendation struct { 353 354 // The Amazon Web Services account ID of the instance. 355 AccountId *string 356 357 // The instance type of the current instance. 358 CurrentInstanceType *string 359 360 // The finding classification of the instance. Findings for instances include: 361 // 362 // * 363 // Underprovisioned —An instance is considered under-provisioned when at least one 364 // specification of your instance, such as CPU, memory, or network, does not meet 365 // the performance requirements of your workload. Under-provisioned instances may 366 // lead to poor application performance. 367 // 368 // * Overprovisioned —An instance is 369 // considered over-provisioned when at least one specification of your instance, 370 // such as CPU, memory, or network, can be sized down while still meeting the 371 // performance requirements of your workload, and no specification is 372 // under-provisioned. Over-provisioned instances may lead to unnecessary 373 // infrastructure cost. 374 // 375 // * Optimized —An instance is considered optimized when all 376 // specifications of your instance, such as CPU, memory, and network, meet the 377 // performance requirements of your workload and is not over provisioned. For 378 // optimized resources, Compute Optimizer might recommend a new generation instance 379 // type. 380 Finding Finding 381 382 // The reason for the finding classification of the instance. Finding reason codes 383 // for instances include: 384 // 385 // * CPUOverprovisioned — The instance’s CPU configuration 386 // can be sized down while still meeting the performance requirements of your 387 // workload. This is identified by analyzing the CPUUtilization metric of the 388 // current instance during the look-back period. 389 // 390 // * CPUUnderprovisioned — The 391 // instance’s CPU configuration doesn't meet the performance requirements of your 392 // workload and there is an alternative instance type that provides better CPU 393 // performance. This is identified by analyzing the CPUUtilization metric of the 394 // current instance during the look-back period. 395 // 396 // * MemoryOverprovisioned — The 397 // instance’s memory configuration can be sized down while still meeting the 398 // performance requirements of your workload. This is identified by analyzing the 399 // memory utilization metric of the current instance during the look-back 400 // period. 401 // 402 // * MemoryUnderprovisioned — The instance’s memory configuration doesn't 403 // meet the performance requirements of your workload and there is an alternative 404 // instance type that provides better memory performance. This is identified by 405 // analyzing the memory utilization metric of the current instance during the 406 // look-back period. Memory utilization is analyzed only for resources that have 407 // the unified CloudWatch agent installed on them. For more information, see 408 // Enabling memory utilization with the Amazon CloudWatch Agent 409 // (https://docs.aws.amazon.com/compute-optimizer/latest/ug/metrics.html#cw-agent) 410 // in the Compute Optimizer User Guide. On Linux instances, Compute Optimizer 411 // analyses the mem_used_percent metric in the CWAgent namespace, or the legacy 412 // MemoryUtilization metric in the System/Linux namespace. On Windows instances, 413 // Compute Optimizer analyses the Memory % Committed Bytes In Use metric in the 414 // CWAgent namespace. 415 // 416 // * EBSThroughputOverprovisioned — The instance’s EBS 417 // throughput configuration can be sized down while still meeting the performance 418 // requirements of your workload. This is identified by analyzing the VolumeReadOps 419 // and VolumeWriteOps metrics of EBS volumes attached to the current instance 420 // during the look-back period. 421 // 422 // * EBSThroughputUnderprovisioned — The instance’s 423 // EBS throughput configuration doesn't meet the performance requirements of your 424 // workload and there is an alternative instance type that provides better EBS 425 // throughput performance. This is identified by analyzing the VolumeReadOps and 426 // VolumeWriteOps metrics of EBS volumes attached to the current instance during 427 // the look-back period. 428 // 429 // * EBSIOPSOverprovisioned — The instance’s EBS IOPS 430 // configuration can be sized down while still meeting the performance requirements 431 // of your workload. This is identified by analyzing the VolumeReadBytes and 432 // VolumeWriteBytes metric of EBS volumes attached to the current instance during 433 // the look-back period. 434 // 435 // * EBSIOPSUnderprovisioned — The instance’s EBS IOPS 436 // configuration doesn't meet the performance requirements of your workload and 437 // there is an alternative instance type that provides better EBS IOPS performance. 438 // This is identified by analyzing the VolumeReadBytes and VolumeWriteBytes metric 439 // of EBS volumes attached to the current instance during the look-back period. 440 // 441 // * 442 // NetworkBandwidthOverprovisioned — The instance’s network bandwidth configuration 443 // can be sized down while still meeting the performance requirements of your 444 // workload. This is identified by analyzing the NetworkIn and NetworkOut metrics 445 // of the current instance during the look-back period. 446 // 447 // * 448 // NetworkBandwidthUnderprovisioned — The instance’s network bandwidth 449 // configuration doesn't meet the performance requirements of your workload and 450 // there is an alternative instance type that provides better network bandwidth 451 // performance. This is identified by analyzing the NetworkIn and NetworkOut 452 // metrics of the current instance during the look-back period. This finding reason 453 // happens when the NetworkIn or NetworkOut performance of an instance is 454 // impacted. 455 // 456 // * NetworkPPSOverprovisioned — The instance’s network PPS (packets per 457 // second) configuration can be sized down while still meeting the performance 458 // requirements of your workload. This is identified by analyzing the 459 // NetworkPacketsIn and NetworkPacketsIn metrics of the current instance during the 460 // look-back period. 461 // 462 // * NetworkPPSUnderprovisioned — The instance’s network PPS 463 // (packets per second) configuration doesn't meet the performance requirements of 464 // your workload and there is an alternative instance type that provides better 465 // network PPS performance. This is identified by analyzing the NetworkPacketsIn 466 // and NetworkPacketsIn metrics of the current instance during the look-back 467 // period. 468 // 469 // * DiskIOPSOverprovisioned — The instance’s disk IOPS configuration can 470 // be sized down while still meeting the performance requirements of your workload. 471 // This is identified by analyzing the DiskReadOps and DiskWriteOps metrics of the 472 // current instance during the look-back period. 473 // 474 // * DiskIOPSUnderprovisioned — The 475 // instance’s disk IOPS configuration doesn't meet the performance requirements of 476 // your workload and there is an alternative instance type that provides better 477 // disk IOPS performance. This is identified by analyzing the DiskReadOps and 478 // DiskWriteOps metrics of the current instance during the look-back period. 479 // 480 // * 481 // DiskThroughputOverprovisioned — The instance’s disk throughput configuration can 482 // be sized down while still meeting the performance requirements of your workload. 483 // This is identified by analyzing the DiskReadBytes and DiskWriteBytes metrics of 484 // the current instance during the look-back period. 485 // 486 // * 487 // DiskThroughputUnderprovisioned — The instance’s disk throughput configuration 488 // doesn't meet the performance requirements of your workload and there is an 489 // alternative instance type that provides better disk throughput performance. This 490 // is identified by analyzing the DiskReadBytes and DiskWriteBytes metrics of the 491 // current instance during the look-back period. 492 // 493 // For more information about 494 // instance metrics, see List the available CloudWatch metrics for your instances 495 // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html) 496 // in the Amazon Elastic Compute Cloud User Guide. For more information about EBS 497 // volume metrics, see Amazon CloudWatch metrics for Amazon EBS 498 // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using_cloudwatch_ebs.html) 499 // in the Amazon Elastic Compute Cloud User Guide. 500 FindingReasonCodes []InstanceRecommendationFindingReasonCode 501 502 // The Amazon Resource Name (ARN) of the current instance. 503 InstanceArn *string 504 505 // The name of the current instance. 506 InstanceName *string 507 508 // The timestamp of when the instance recommendation was last refreshed. 509 LastRefreshTimestamp *time.Time 510 511 // The number of days for which utilization metrics were analyzed for the instance. 512 LookBackPeriodInDays float64 513 514 // An array of objects that describe the recommendation options for the instance. 515 RecommendationOptions []InstanceRecommendationOption 516 517 // An array of objects that describe the source resource of the recommendation. 518 RecommendationSources []RecommendationSource 519 520 // An array of objects that describe the utilization metrics of the instance. 521 UtilizationMetrics []UtilizationMetric 522 523 noSmithyDocumentSerde 524} 525 526// Describes a recommendation option for an Amazon EC2 instance. 527type InstanceRecommendationOption struct { 528 529 // The instance type of the instance recommendation. 530 InstanceType *string 531 532 // The performance risk of the instance recommendation option. Performance risk 533 // indicates the likelihood of the recommended instance type not meeting the 534 // resource needs of your workload. Compute Optimizer calculates an individual 535 // performance risk score for each specification of the recommended instance, 536 // including CPU, memory, EBS throughput, EBS IOPS, disk throughput, disk IOPS, 537 // network throughput, and network PPS. The performance risk of the recommended 538 // instance is calculated as the maximum performance risk score across the analyzed 539 // resource specifications. The value ranges from 0 - 4, with 0 meaning that the 540 // recommended resource is predicted to always provide enough hardware capability. 541 // The higher the performance risk is, the more likely you should validate whether 542 // the recommendation will meet the performance requirements of your workload 543 // before migrating your resource. 544 PerformanceRisk float64 545 546 // Describes the configuration differences between the current instance and the 547 // recommended instance type. You should consider the configuration differences 548 // before migrating your workloads from the current instance to the recommended 549 // instance type. The Change the instance type guide for Linux 550 // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-resize.html) 551 // and Change the instance type guide for Windows 552 // (https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-instance-resize.html) 553 // provide general guidance for getting started with an instance migration. 554 // Platform differences include: 555 // 556 // * Hypervisor — The hypervisor of the recommended 557 // instance type is different than that of the current instance. For example, the 558 // recommended instance type uses a Nitro hypervisor and the current instance uses 559 // a Xen hypervisor. The differences that you should consider between these 560 // hypervisors are covered in the Nitro Hypervisor 561 // (http://aws.amazon.com/ec2/faqs/#Nitro_Hypervisor) section of the Amazon EC2 562 // frequently asked questions. For more information, see Instances built on the 563 // Nitro System 564 // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances) 565 // in the Amazon EC2 User Guide for Linux, or Instances built on the Nitro System 566 // (https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/instance-types.html#ec2-nitro-instances) 567 // in the Amazon EC2 User Guide for Windows. 568 // 569 // * NetworkInterface — The network 570 // interface of the recommended instance type is different than that of the current 571 // instance. For example, the recommended instance type supports enhanced 572 // networking and the current instance might not. To enable enhanced networking for 573 // the recommended instance type, you must install the Elastic Network Adapter 574 // (ENA) driver or the Intel 82599 Virtual Function driver. For more information, 575 // see Networking and storage features 576 // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#instance-networking-storage) 577 // and Enhanced networking on Linux 578 // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking.html) 579 // in the Amazon EC2 User Guide for Linux, or Networking and storage features 580 // (https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/instance-types.html#instance-networking-storage) 581 // and Enhanced networking on Windows 582 // (https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/enhanced-networking.html) 583 // in the Amazon EC2 User Guide for Windows. 584 // 585 // * StorageInterface — The storage 586 // interface of the recommended instance type is different than that of the current 587 // instance. For example, the recommended instance type uses an NVMe storage 588 // interface and the current instance does not. To access NVMe volumes for the 589 // recommended instance type, you will need to install or upgrade the NVMe driver. 590 // For more information, see Networking and storage features 591 // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#instance-networking-storage) 592 // and Amazon EBS and NVMe on Linux instances 593 // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nvme-ebs-volumes.html) in 594 // the Amazon EC2 User Guide for Linux, or Networking and storage features 595 // (https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/instance-types.html#instance-networking-storage) 596 // and Amazon EBS and NVMe on Windows instances 597 // (https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/nvme-ebs-volumes.html) 598 // in the Amazon EC2 User Guide for Windows. 599 // 600 // * InstanceStoreAvailability — The 601 // recommended instance type does not support instance store volumes and the 602 // current instance does. Before migrating, you might need to back up the data on 603 // your instance store volumes if you want to preserve them. For more information, 604 // see How do I back up an instance store volume on my Amazon EC2 instance to 605 // Amazon EBS? 606 // (https://aws.amazon.com/premiumsupport/knowledge-center/back-up-instance-store-ebs/) 607 // in the Amazon Web Services Premium Support Knowledge Base. For more information, 608 // see Networking and storage features 609 // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#instance-networking-storage) 610 // and Amazon EC2 instance store 611 // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html) in 612 // the Amazon EC2 User Guide for Linux, or see Networking and storage features 613 // (https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/instance-types.html#instance-networking-storage) 614 // and Amazon EC2 instance store 615 // (https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/InstanceStorage.html) in 616 // the Amazon EC2 User Guide for Windows. 617 // 618 // * VirtualizationType — The recommended 619 // instance type uses the hardware virtual machine (HVM) virtualization type and 620 // the current instance uses the paravirtual (PV) virtualization type. For more 621 // information about the differences between these virtualization types, see Linux 622 // AMI virtualization types 623 // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/virtualization_types.html) 624 // in the Amazon EC2 User Guide for Linux, or Windows AMI virtualization types 625 // (https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/windows-ami-version-history.html#virtualization-types) 626 // in the Amazon EC2 User Guide for Windows. 627 // 628 // * Architecture — The CPU architecture 629 // between the recommended instance type and the current instance is different. For 630 // example, the recommended instance type might use an Arm CPU architecture and the 631 // current instance type might use a different one, such as x86. Before migrating, 632 // you should consider recompiling the software on your instance for the new 633 // architecture. Alternatively, you might switch to an Amazon Machine Image (AMI) 634 // that supports the new architecture. For more information about the CPU 635 // architecture for each instance type, see Amazon EC2 Instance Types 636 // (http://aws.amazon.com/ec2/instance-types/). 637 PlatformDifferences []PlatformDifference 638 639 // An array of objects that describe the projected utilization metrics of the 640 // instance recommendation option. The Cpu and Memory metrics are the only 641 // projected utilization metrics returned. Additionally, the Memory metric is 642 // returned only for resources that have the unified CloudWatch agent installed on 643 // them. For more information, see Enabling Memory Utilization with the CloudWatch 644 // Agent 645 // (https://docs.aws.amazon.com/compute-optimizer/latest/ug/metrics.html#cw-agent). 646 ProjectedUtilizationMetrics []UtilizationMetric 647 648 // The rank of the instance recommendation option. The top recommendation option is 649 // ranked as 1. 650 Rank int32 651 652 noSmithyDocumentSerde 653} 654 655// Describes a filter that returns a more specific list of recommendation export 656// jobs. Use this filter with the DescribeRecommendationExportJobs action. You can 657// use EBSFilter with the GetEBSVolumeRecommendations action, 658// LambdaFunctionRecommendationFilter with the GetLambdaFunctionRecommendations 659// action, and Filter with the GetAutoScalingGroupRecommendations and 660// GetEC2InstanceRecommendations actions. 661type JobFilter struct { 662 663 // The name of the filter. Specify ResourceType to return export jobs of a specific 664 // resource type (for example, Ec2Instance). Specify JobStatus to return export 665 // jobs with a specific status (e.g, Complete). 666 Name JobFilterName 667 668 // The value of the filter. The valid values for this parameter are as follows, 669 // depending on what you specify for the name parameter: 670 // 671 // * Specify Ec2Instance or 672 // AutoScalingGroup if you specify the name parameter as ResourceType. There is no 673 // filter for EBS volumes because volume recommendations cannot be exported at this 674 // time. 675 // 676 // * Specify Queued, InProgress, Complete, or Failed if you specify the name 677 // parameter as JobStatus. 678 Values []string 679 680 noSmithyDocumentSerde 681} 682 683// Describes a projected utilization metric of an Lambda function recommendation 684// option. 685type LambdaFunctionMemoryProjectedMetric struct { 686 687 // The name of the projected utilization metric. 688 Name LambdaFunctionMemoryMetricName 689 690 // The statistic of the projected utilization metric. 691 Statistic LambdaFunctionMemoryMetricStatistic 692 693 // The values of the projected utilization metrics. 694 Value float64 695 696 noSmithyDocumentSerde 697} 698 699// Describes a recommendation option for an Lambda function. 700type LambdaFunctionMemoryRecommendationOption struct { 701 702 // The memory size, in MB, of the function recommendation option. 703 MemorySize int32 704 705 // An array of objects that describe the projected utilization metrics of the 706 // function recommendation option. 707 ProjectedUtilizationMetrics []LambdaFunctionMemoryProjectedMetric 708 709 // The rank of the function recommendation option. The top recommendation option is 710 // ranked as 1. 711 Rank int32 712 713 noSmithyDocumentSerde 714} 715 716// Describes an Lambda function recommendation. 717type LambdaFunctionRecommendation struct { 718 719 // The Amazon Web Services account ID of the function. 720 AccountId *string 721 722 // The amount of memory, in MB, that's allocated to the current function. 723 CurrentMemorySize int32 724 725 // The finding classification of the function. Findings for functions include: 726 // 727 // * 728 // Optimized — The function is correctly provisioned to run your workload based on 729 // its current configuration and its utilization history. This finding 730 // classification does not include finding reason codes. 731 // 732 // * NotOptimized — The 733 // function is performing at a higher level (over-provisioned) or at a lower level 734 // (under-provisioned) than required for your workload because its current 735 // configuration is not optimal. Over-provisioned resources might lead to 736 // unnecessary infrastructure cost, and under-provisioned resources might lead to 737 // poor application performance. This finding classification can include the 738 // MemoryUnderprovisioned and MemoryUnderprovisioned finding reason codes. 739 // 740 // * 741 // Unavailable — Compute Optimizer was unable to generate a recommendation for the 742 // function. This could be because the function has not accumulated sufficient 743 // metric data, or the function does not qualify for a recommendation. This finding 744 // classification can include the InsufficientData and Inconclusive finding reason 745 // codes. Functions with a finding of unavailable are not returned unless you 746 // specify the filter parameter with a value of Unavailable in your 747 // GetLambdaFunctionRecommendations request. 748 Finding LambdaFunctionRecommendationFinding 749 750 // The reason for the finding classification of the function. Functions that have a 751 // finding classification of Optimized don't have a finding reason code. Finding 752 // reason codes for functions include: 753 // 754 // * MemoryOverprovisioned — The function is 755 // over-provisioned when its memory configuration can be sized down while still 756 // meeting the performance requirements of your workload. An over-provisioned 757 // function might lead to unnecessary infrastructure cost. This finding reason code 758 // is part of the NotOptimized finding classification. 759 // 760 // * MemoryUnderprovisioned — 761 // The function is under-provisioned when its memory configuration doesn't meet the 762 // performance requirements of the workload. An under-provisioned function might 763 // lead to poor application performance. This finding reason code is part of the 764 // NotOptimized finding classification. 765 // 766 // * InsufficientData — The function does not 767 // have sufficient metric data for Compute Optimizer to generate a recommendation. 768 // For more information, see the Supported resources and requirements 769 // (https://docs.aws.amazon.com/compute-optimizer/latest/ug/requirements.html) in 770 // the Compute Optimizer User Guide. This finding reason code is part of the 771 // Unavailable finding classification. 772 // 773 // * Inconclusive — The function does not 774 // qualify for a recommendation because Compute Optimizer cannot generate a 775 // recommendation with a high degree of confidence. This finding reason code is 776 // part of the Unavailable finding classification. 777 FindingReasonCodes []LambdaFunctionRecommendationFindingReasonCode 778 779 // The Amazon Resource Name (ARN) of the current function. 780 FunctionArn *string 781 782 // The version number of the current function. 783 FunctionVersion *string 784 785 // The timestamp of when the function recommendation was last refreshed. 786 LastRefreshTimestamp *time.Time 787 788 // The number of days for which utilization metrics were analyzed for the function. 789 LookbackPeriodInDays float64 790 791 // An array of objects that describe the memory configuration recommendation 792 // options for the function. 793 MemorySizeRecommendationOptions []LambdaFunctionMemoryRecommendationOption 794 795 // The number of times your function code was applied during the look-back period. 796 NumberOfInvocations int64 797 798 // An array of objects that describe the utilization metrics of the function. 799 UtilizationMetrics []LambdaFunctionUtilizationMetric 800 801 noSmithyDocumentSerde 802} 803 804// Describes a filter that returns a more specific list of Lambda function 805// recommendations. Use this filter with the GetLambdaFunctionRecommendations 806// action. You can use EBSFilter with the GetEBSVolumeRecommendations action, 807// JobFilter with the DescribeRecommendationExportJobs action, and Filter with the 808// GetAutoScalingGroupRecommendations and GetEC2InstanceRecommendations actions. 809type LambdaFunctionRecommendationFilter struct { 810 811 // The name of the filter. Specify Finding to return recommendations with a 812 // specific finding classification (for example, NotOptimized). Specify 813 // FindingReasonCode to return recommendations with a specific finding reason code 814 // (for example, MemoryUnderprovisioned). 815 Name LambdaFunctionRecommendationFilterName 816 817 // The value of the filter. The valid values for this parameter are as follows, 818 // depending on what you specify for the name parameter: 819 // 820 // * Specify Optimized, 821 // NotOptimized, or Unavailable if you specify the name parameter as Finding. 822 // 823 // * 824 // Specify MemoryOverprovisioned, MemoryUnderprovisioned, InsufficientData, or 825 // Inconclusive if you specify the name parameter as FindingReasonCode. 826 Values []string 827 828 noSmithyDocumentSerde 829} 830 831// Describes a utilization metric of an Lambda function. 832type LambdaFunctionUtilizationMetric struct { 833 834 // The name of the utilization metric. The following utilization metrics are 835 // available: 836 // 837 // * Duration - The amount of time that your function code spends 838 // processing an event. 839 // 840 // * Memory - The amount of memory used per invocation. 841 Name LambdaFunctionMetricName 842 843 // The statistic of the utilization metric. The Compute Optimizer API, Command Line 844 // Interface (CLI), and SDKs return utilization metrics using only the Maximum 845 // statistic, which is the highest value observed during the specified period. The 846 // Compute Optimizer console displays graphs for some utilization metrics using the 847 // Average statistic, which is the value of Sum / SampleCount during the specified 848 // period. For more information, see Viewing resource recommendations 849 // (https://docs.aws.amazon.com/compute-optimizer/latest/ug/viewing-recommendations.html) 850 // in the Compute Optimizer User Guide. You can also get averaged utilization 851 // metric data for your resources using Amazon CloudWatch. For more information, 852 // see the Amazon CloudWatch User Guide 853 // (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html). 854 Statistic LambdaFunctionMetricStatistic 855 856 // The value of the utilization metric. 857 Value float64 858 859 noSmithyDocumentSerde 860} 861 862// Describes a projected utilization metric of a recommendation option, such as an 863// Amazon EC2 instance. This represents the projected utilization of a 864// recommendation option had you used that resource during the analyzed period. 865// Compare the utilization metric data of your resource against its projected 866// utilization metric data to determine the performance difference between your 867// current resource and the recommended option. The Cpu and Memory metrics are the 868// only projected utilization metrics returned when you run the 869// GetEC2RecommendationProjectedMetrics action. Additionally, the Memory metric is 870// returned only for resources that have the unified CloudWatch agent installed on 871// them. For more information, see Enabling Memory Utilization with the CloudWatch 872// Agent 873// (https://docs.aws.amazon.com/compute-optimizer/latest/ug/metrics.html#cw-agent). 874type ProjectedMetric struct { 875 876 // The name of the projected utilization metric. The following projected 877 // utilization metrics are returned: 878 // 879 // * Cpu - The projected percentage of allocated 880 // EC2 compute units that would be in use on the recommendation option had you used 881 // that resource during the analyzed period. This metric identifies the processing 882 // power required to run an application on the recommendation option. Depending on 883 // the instance type, tools in your operating system can show a lower percentage 884 // than CloudWatch when the instance is not allocated a full processor core. Units: 885 // Percent 886 // 887 // * Memory - The percentage of memory that would be in use on the 888 // recommendation option had you used that resource during the analyzed period. 889 // This metric identifies the amount of memory required to run an application on 890 // the recommendation option. Units: Percent The Memory metric is returned only for 891 // resources that have the unified CloudWatch agent installed on them. For more 892 // information, see Enabling Memory Utilization with the CloudWatch Agent 893 // (https://docs.aws.amazon.com/compute-optimizer/latest/ug/metrics.html#cw-agent). 894 Name MetricName 895 896 // The timestamps of the projected utilization metric. 897 Timestamps []time.Time 898 899 // The values of the projected utilization metrics. 900 Values []float64 901 902 noSmithyDocumentSerde 903} 904 905// A summary of a finding reason code. 906type ReasonCodeSummary struct { 907 908 // The name of the finding reason code. 909 Name FindingReasonCode 910 911 // The value of the finding reason code summary. 912 Value float64 913 914 noSmithyDocumentSerde 915} 916 917// Describes a recommendation export job. Use the DescribeRecommendationExportJobs 918// action to view your recommendation export jobs. Use the 919// ExportAutoScalingGroupRecommendations or ExportEC2InstanceRecommendations 920// actions to request an export of your recommendations. 921type RecommendationExportJob struct { 922 923 // The timestamp of when the export job was created. 924 CreationTimestamp *time.Time 925 926 // An object that describes the destination of the export file. 927 Destination *ExportDestination 928 929 // The reason for an export job failure. 930 FailureReason *string 931 932 // The identification number of the export job. 933 JobId *string 934 935 // The timestamp of when the export job was last updated. 936 LastUpdatedTimestamp *time.Time 937 938 // The resource type of the exported recommendations. 939 ResourceType ResourceType 940 941 // The status of the export job. 942 Status JobStatus 943 944 noSmithyDocumentSerde 945} 946 947// Describes preferences for recommendations. 948type RecommendationPreferences struct { 949 950 // Specifies the CPU vendor and architecture for Amazon EC2 instance and Auto 951 // Scaling group recommendations. For example, when you specify AWS_ARM64 with: 952 // 953 // * 954 // A GetEC2InstanceRecommendations or GetAutoScalingGroupRecommendations request, 955 // Compute Optimizer returns recommendations that consist of Graviton2 instance 956 // types only. 957 // 958 // * A GetEC2RecommendationProjectedMetrics request, Compute Optimizer 959 // returns projected utilization metrics for Graviton2 instance type 960 // recommendations only. 961 // 962 // * A ExportEC2InstanceRecommendations or 963 // ExportAutoScalingGroupRecommendations request, Compute Optimizer exports 964 // recommendations that consist of Graviton2 instance types only. 965 CpuVendorArchitectures []CpuVendorArchitecture 966 967 noSmithyDocumentSerde 968} 969 970// Describes the source of a recommendation, such as an Amazon EC2 instance or Auto 971// Scaling group. 972type RecommendationSource struct { 973 974 // The Amazon Resource Name (ARN) of the recommendation source. 975 RecommendationSourceArn *string 976 977 // The resource type of the recommendation source. 978 RecommendationSourceType RecommendationSourceType 979 980 noSmithyDocumentSerde 981} 982 983// A summary of a recommendation. 984type RecommendationSummary struct { 985 986 // The Amazon Web Services account ID of the recommendation summary. 987 AccountId *string 988 989 // The resource type of the recommendation. 990 RecommendationResourceType RecommendationSourceType 991 992 // An array of objects that describe a recommendation summary. 993 Summaries []Summary 994 995 noSmithyDocumentSerde 996} 997 998// Describes a projected utilization metric of a recommendation option. The Cpu and 999// Memory metrics are the only projected utilization metrics returned when you run 1000// the GetEC2RecommendationProjectedMetrics action. Additionally, the Memory metric 1001// is returned only for resources that have the unified CloudWatch agent installed 1002// on them. For more information, see Enabling Memory Utilization with the 1003// CloudWatch Agent 1004// (https://docs.aws.amazon.com/compute-optimizer/latest/ug/metrics.html#cw-agent). 1005type RecommendedOptionProjectedMetric struct { 1006 1007 // An array of objects that describe a projected utilization metric. 1008 ProjectedMetrics []ProjectedMetric 1009 1010 // The rank of the recommendation option projected metric. The top recommendation 1011 // option is ranked as 1. The projected metric rank correlates to the 1012 // recommendation option rank. For example, the projected metric ranked as 1 is 1013 // related to the recommendation option that is also ranked as 1 in the same 1014 // response. 1015 Rank int32 1016 1017 // The recommended instance type. 1018 RecommendedInstanceType *string 1019 1020 noSmithyDocumentSerde 1021} 1022 1023// Describes the destination Amazon Simple Storage Service (Amazon S3) bucket name 1024// and object keys of a recommendations export file, and its associated metadata 1025// file. 1026type S3Destination struct { 1027 1028 // The name of the Amazon S3 bucket used as the destination of an export file. 1029 Bucket *string 1030 1031 // The Amazon S3 bucket key of an export file. The key uniquely identifies the 1032 // object, or export file, in the S3 bucket. 1033 Key *string 1034 1035 // The Amazon S3 bucket key of a metadata file. The key uniquely identifies the 1036 // object, or metadata file, in the S3 bucket. 1037 MetadataKey *string 1038 1039 noSmithyDocumentSerde 1040} 1041 1042// Describes the destination Amazon Simple Storage Service (Amazon S3) bucket name 1043// and key prefix for a recommendations export job. You must create the destination 1044// Amazon S3 bucket for your recommendations export before you create the export 1045// job. Compute Optimizer does not create the S3 bucket for you. After you create 1046// the S3 bucket, ensure that it has the required permission policy to allow 1047// Compute Optimizer to write the export file to it. If you plan to specify an 1048// object prefix when you create the export job, you must include the object prefix 1049// in the policy that you add to the S3 bucket. For more information, see Amazon S3 1050// Bucket Policy for Compute Optimizer 1051// (https://docs.aws.amazon.com/compute-optimizer/latest/ug/create-s3-bucket-policy-for-compute-optimizer.html) 1052// in the Compute Optimizer User Guide. 1053type S3DestinationConfig struct { 1054 1055 // The name of the Amazon S3 bucket to use as the destination for an export job. 1056 Bucket *string 1057 1058 // The Amazon S3 bucket prefix for an export job. 1059 KeyPrefix *string 1060 1061 noSmithyDocumentSerde 1062} 1063 1064// The summary of a recommendation. 1065type Summary struct { 1066 1067 // The finding classification of the recommendation. 1068 Name Finding 1069 1070 // An array of objects that summarize a finding reason code. 1071 ReasonCodeSummaries []ReasonCodeSummary 1072 1073 // The value of the recommendation summary. 1074 Value float64 1075 1076 noSmithyDocumentSerde 1077} 1078 1079// Describes a utilization metric of a resource, such as an Amazon EC2 instance. 1080// Compare the utilization metric data of your resource against its projected 1081// utilization metric data to determine the performance difference between your 1082// current resource and the recommended option. 1083type UtilizationMetric struct { 1084 1085 // The name of the utilization metric. The following utilization metrics are 1086 // available: 1087 // 1088 // * Cpu - The percentage of allocated EC2 compute units that are 1089 // currently in use on the instance. This metric identifies the processing power 1090 // required to run an application on the instance. Depending on the instance type, 1091 // tools in your operating system can show a lower percentage than CloudWatch when 1092 // the instance is not allocated a full processor core. Units: Percent 1093 // 1094 // * Memory - 1095 // The percentage of memory that is currently in use on the instance. This metric 1096 // identifies the amount of memory required to run an application on the instance. 1097 // Units: Percent The Memory metric is returned only for resources that have the 1098 // unified CloudWatch agent installed on them. For more information, see Enabling 1099 // Memory Utilization with the CloudWatch Agent 1100 // (https://docs.aws.amazon.com/compute-optimizer/latest/ug/metrics.html#cw-agent). 1101 // 1102 // * 1103 // EBS_READ_OPS_PER_SECOND - The completed read operations from all EBS volumes 1104 // attached to the instance in a specified period of time. Unit: Count 1105 // 1106 // * 1107 // EBS_WRITE_OPS_PER_SECOND - The completed write operations to all EBS volumes 1108 // attached to the instance in a specified period of time. Unit: Count 1109 // 1110 // * 1111 // EBS_READ_BYTES_PER_SECOND - The bytes read from all EBS volumes attached to the 1112 // instance in a specified period of time. Unit: Bytes 1113 // 1114 // * 1115 // EBS_WRITE_BYTES_PER_SECOND - The bytes written to all EBS volumes attached to 1116 // the instance in a specified period of time. Unit: Bytes 1117 // 1118 // * 1119 // DISK_READ_OPS_PER_SECOND - The completed read operations from all instance store 1120 // volumes available to the instance in a specified period of time. If there are no 1121 // instance store volumes, either the value is 0 or the metric is not reported. 1122 // 1123 // * 1124 // DISK_WRITE_OPS_PER_SECOND - The completed write operations from all instance 1125 // store volumes available to the instance in a specified period of time. If there 1126 // are no instance store volumes, either the value is 0 or the metric is not 1127 // reported. 1128 // 1129 // * DISK_READ_BYTES_PER_SECOND - The bytes read from all instance store 1130 // volumes available to the instance. This metric is used to determine the volume 1131 // of the data the application reads from the disk of the instance. This can be 1132 // used to determine the speed of the application. If there are no instance store 1133 // volumes, either the value is 0 or the metric is not reported. 1134 // 1135 // * 1136 // DISK_WRITE_BYTES_PER_SECOND - The bytes written to all instance store volumes 1137 // available to the instance. This metric is used to determine the volume of the 1138 // data the application writes onto the disk of the instance. This can be used to 1139 // determine the speed of the application. If there are no instance store volumes, 1140 // either the value is 0 or the metric is not reported. 1141 // 1142 // * 1143 // NETWORK_IN_BYTES_PER_SECOND - The number of bytes received by the instance on 1144 // all network interfaces. This metric identifies the volume of incoming network 1145 // traffic to a single instance. 1146 // 1147 // * NETWORK_OUT_BYTES_PER_SECOND - The number of 1148 // bytes sent out by the instance on all network interfaces. This metric identifies 1149 // the volume of outgoing network traffic from a single instance. 1150 // 1151 // * 1152 // NETWORK_PACKETS_IN_PER_SECOND - The number of packets received by the instance 1153 // on all network interfaces. This metric identifies the volume of incoming traffic 1154 // in terms of the number of packets on a single instance. 1155 // 1156 // * 1157 // NETWORK_PACKETS_OUT_PER_SECOND - The number of packets sent out by the instance 1158 // on all network interfaces. This metric identifies the volume of outgoing traffic 1159 // in terms of the number of packets on a single instance. 1160 Name MetricName 1161 1162 // The statistic of the utilization metric. The Compute Optimizer API, Command Line 1163 // Interface (CLI), and SDKs return utilization metrics using only the Maximum 1164 // statistic, which is the highest value observed during the specified period. The 1165 // Compute Optimizer console displays graphs for some utilization metrics using the 1166 // Average statistic, which is the value of Sum / SampleCount during the specified 1167 // period. For more information, see Viewing resource recommendations 1168 // (https://docs.aws.amazon.com/compute-optimizer/latest/ug/viewing-recommendations.html) 1169 // in the Compute Optimizer User Guide. You can also get averaged utilization 1170 // metric data for your resources using Amazon CloudWatch. For more information, 1171 // see the Amazon CloudWatch User Guide 1172 // (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html). 1173 Statistic MetricStatistic 1174 1175 // The value of the utilization metric. 1176 Value float64 1177 1178 noSmithyDocumentSerde 1179} 1180 1181// Describes the configuration of an Amazon Elastic Block Store (Amazon EBS) 1182// volume. 1183type VolumeConfiguration struct { 1184 1185 // The baseline IOPS of the volume. 1186 VolumeBaselineIOPS int32 1187 1188 // The baseline throughput of the volume. 1189 VolumeBaselineThroughput int32 1190 1191 // The burst IOPS of the volume. 1192 VolumeBurstIOPS int32 1193 1194 // The burst throughput of the volume. 1195 VolumeBurstThroughput int32 1196 1197 // The size of the volume, in GiB. 1198 VolumeSize int32 1199 1200 // The volume type. This can be gp2 for General Purpose SSD, io1 or io2 for 1201 // Provisioned IOPS SSD, st1 for Throughput Optimized HDD, sc1 for Cold HDD, or 1202 // standard for Magnetic volumes. 1203 VolumeType *string 1204 1205 noSmithyDocumentSerde 1206} 1207 1208// Describes an Amazon Elastic Block Store (Amazon EBS) volume recommendation. 1209type VolumeRecommendation struct { 1210 1211 // The Amazon Web Services account ID of the volume. 1212 AccountId *string 1213 1214 // An array of objects that describe the current configuration of the volume. 1215 CurrentConfiguration *VolumeConfiguration 1216 1217 // The finding classification of the volume. Findings for volumes include: 1218 // 1219 // * 1220 // NotOptimized —A volume is considered not optimized when Compute Optimizer 1221 // identifies a recommendation that can provide better performance for your 1222 // workload. 1223 // 1224 // * Optimized —An volume is considered optimized when Compute Optimizer 1225 // determines that the volume is correctly provisioned to run your workload based 1226 // on the chosen volume type. For optimized resources, Compute Optimizer might 1227 // recommend a new generation volume type. 1228 Finding EBSFinding 1229 1230 // The timestamp of when the volume recommendation was last refreshed. 1231 LastRefreshTimestamp *time.Time 1232 1233 // The number of days for which utilization metrics were analyzed for the volume. 1234 LookBackPeriodInDays float64 1235 1236 // An array of objects that describe the utilization metrics of the volume. 1237 UtilizationMetrics []EBSUtilizationMetric 1238 1239 // The Amazon Resource Name (ARN) of the current volume. 1240 VolumeArn *string 1241 1242 // An array of objects that describe the recommendation options for the volume. 1243 VolumeRecommendationOptions []VolumeRecommendationOption 1244 1245 noSmithyDocumentSerde 1246} 1247 1248// Describes a recommendation option for an Amazon Elastic Block Store (Amazon EBS) 1249// instance. 1250type VolumeRecommendationOption struct { 1251 1252 // An array of objects that describe a volume configuration. 1253 Configuration *VolumeConfiguration 1254 1255 // The performance risk of the volume recommendation option. Performance risk is 1256 // the likelihood of the recommended volume type meeting the performance 1257 // requirement of your workload. The value ranges from 0 - 4, with 0 meaning that 1258 // the recommended resource is predicted to always provide enough hardware 1259 // capability. The higher the performance risk is, the more likely you should 1260 // validate whether the recommendation will meet the performance requirements of 1261 // your workload before migrating your resource. 1262 PerformanceRisk float64 1263 1264 // The rank of the volume recommendation option. The top recommendation option is 1265 // ranked as 1. 1266 Rank int32 1267 1268 noSmithyDocumentSerde 1269} 1270 1271type noSmithyDocumentSerde = smithydocument.NoSerde 1272