1// Code generated by smithy-go-codegen DO NOT EDIT. 2 3package types 4 5import ( 6 smithydocument "github.com/aws/smithy-go/document" 7) 8 9// An unusual cost pattern. This consists of the detailed metadata and the current 10// status of the anomaly object. 11type Anomaly struct { 12 13 // The unique identifier for the anomaly. 14 // 15 // This member is required. 16 AnomalyId *string 17 18 // The latest and maximum score for the anomaly. 19 // 20 // This member is required. 21 AnomalyScore *AnomalyScore 22 23 // The dollar impact for the anomaly. 24 // 25 // This member is required. 26 Impact *Impact 27 28 // The Amazon Resource Name (ARN) for the cost monitor that generated this anomaly. 29 // 30 // This member is required. 31 MonitorArn *string 32 33 // The last day the anomaly is detected. 34 AnomalyEndDate *string 35 36 // The first day the anomaly is detected. 37 AnomalyStartDate *string 38 39 // The dimension for the anomaly (for example, an Amazon Web Services service in a 40 // service monitor). 41 DimensionValue *string 42 43 // The feedback value. 44 Feedback AnomalyFeedbackType 45 46 // The list of identified root causes for the anomaly. 47 RootCauses []RootCause 48 49 noSmithyDocumentSerde 50} 51 52// The time period for an anomaly. 53type AnomalyDateInterval struct { 54 55 // The first date an anomaly was observed. 56 // 57 // This member is required. 58 StartDate *string 59 60 // The last date an anomaly was observed. 61 EndDate *string 62 63 noSmithyDocumentSerde 64} 65 66// This object continuously inspects your account's cost data for anomalies. It's 67// based on MonitorType and MonitorSpecification. The content consists of detailed 68// metadata and the current status of the monitor object. 69type AnomalyMonitor struct { 70 71 // The name of the monitor. 72 // 73 // This member is required. 74 MonitorName *string 75 76 // The possible type values. 77 // 78 // This member is required. 79 MonitorType MonitorType 80 81 // The date when the monitor was created. 82 CreationDate *string 83 84 // The value for evaluated dimensions. 85 DimensionalValueCount int32 86 87 // The date when the monitor last evaluated for anomalies. 88 LastEvaluatedDate *string 89 90 // The date when the monitor was last updated. 91 LastUpdatedDate *string 92 93 // The Amazon Resource Name (ARN) value. 94 MonitorArn *string 95 96 // The dimensions to evaluate. 97 MonitorDimension MonitorDimension 98 99 // Use Expression to filter by cost or by usage. There are two patterns: 100 // 101 // * Simple 102 // dimension values - You can set the dimension name and values for the filters 103 // that you plan to use. For example, you can filter for REGION==us-east-1 OR 104 // REGION==us-west-1. For GetRightsizingRecommendation, the Region is a full name 105 // (for example, REGION==US East (N. Virginia). The Expression example is as 106 // follows: { "Dimensions": { "Key": "REGION", "Values": [ "us-east-1", “us-west-1” 107 // ] } } The list of dimension values are OR'd together to retrieve cost or usage 108 // data. You can create Expression and DimensionValues objects using either with* 109 // methods or set* methods in multiple lines. 110 // 111 // * Compound dimension values with 112 // logical operations - You can use multiple Expression types and the logical 113 // operators AND/OR/NOT to create a list of one or more Expression objects. By 114 // doing this, you can filter on more advanced options. For example, you can filter 115 // on ((REGION == us-east-1 OR REGION == us-west-1) OR (TAG.Type == Type1)) AND 116 // (USAGE_TYPE != DataTransfer). The Expression for that is as follows: { "And": [ 117 // {"Or": [ {"Dimensions": { "Key": "REGION", "Values": [ "us-east-1", "us-west-1" 118 // ] }}, {"Tags": { "Key": "TagName", "Values": ["Value1"] } } ]}, {"Not": 119 // {"Dimensions": { "Key": "USAGE_TYPE", "Values": ["DataTransfer"] }}} ] } 120 // Because each Expression can have only one operator, the service returns an error 121 // if more than one is specified. The following example shows an Expression object 122 // that creates an error. { "And": [ ... ], "DimensionValues": { "Dimension": 123 // "USAGE_TYPE", "Values": [ "DataTransfer" ] } } 124 // 125 // For the 126 // GetRightsizingRecommendation action, a combination of OR and NOT isn't 127 // supported. OR isn't supported between different dimensions, or dimensions and 128 // tags. NOT operators aren't supported. Dimensions are also limited to 129 // LINKED_ACCOUNT, REGION, or RIGHTSIZING_TYPE. For the 130 // GetReservationPurchaseRecommendation action, only NOT is supported. AND and OR 131 // aren't supported. Dimensions are limited to LINKED_ACCOUNT. 132 MonitorSpecification *Expression 133 134 noSmithyDocumentSerde 135} 136 137// Quantifies the anomaly. The higher score means that it's more anomalous. 138type AnomalyScore struct { 139 140 // The last observed score. 141 // 142 // This member is required. 143 CurrentScore float64 144 145 // The maximum score that's observed during the AnomalyDateInterval. 146 // 147 // This member is required. 148 MaxScore float64 149 150 noSmithyDocumentSerde 151} 152 153// The association between a monitor, threshold, and list of subscribers used to 154// deliver notifications about anomalies detected by a monitor that exceeds a 155// threshold. The content consists of the detailed metadata and the current status 156// of the AnomalySubscription object. 157type AnomalySubscription struct { 158 159 // The frequency that anomaly reports are sent over email. 160 // 161 // This member is required. 162 Frequency AnomalySubscriptionFrequency 163 164 // A list of cost anomaly monitors. 165 // 166 // This member is required. 167 MonitorArnList []string 168 169 // A list of subscribers to notify. 170 // 171 // This member is required. 172 Subscribers []Subscriber 173 174 // The name for the subscription. 175 // 176 // This member is required. 177 SubscriptionName *string 178 179 // The dollar value that triggers a notification if the threshold is exceeded. 180 // 181 // This member is required. 182 Threshold *float64 183 184 // Your unique account identifier. 185 AccountId *string 186 187 // The AnomalySubscription Amazon Resource Name (ARN). 188 SubscriptionArn *string 189 190 noSmithyDocumentSerde 191} 192 193// The structure of Cost Categories. This includes detailed metadata and the set of 194// rules for the CostCategory object. 195type CostCategory struct { 196 197 // The unique identifier for your Cost Category. 198 // 199 // This member is required. 200 CostCategoryArn *string 201 202 // The effective state data of your Cost Category. 203 // 204 // This member is required. 205 EffectiveStart *string 206 207 // The unique name of the Cost Category. 208 // 209 // This member is required. 210 Name *string 211 212 // The rule schema version in this particular Cost Category. 213 // 214 // This member is required. 215 RuleVersion CostCategoryRuleVersion 216 217 // The rules are processed in order. If there are multiple rules that match the 218 // line item, then the first rule to match is used to determine that Cost Category 219 // value. 220 // 221 // This member is required. 222 Rules []CostCategoryRule 223 224 // The default value for the cost category. 225 DefaultValue *string 226 227 // The effective end data of your Cost Category. 228 EffectiveEnd *string 229 230 // The list of processing statuses for Cost Management products for a specific cost 231 // category. 232 ProcessingStatus []CostCategoryProcessingStatus 233 234 // The split charge rules that are used to allocate your charges between your Cost 235 // Category values. 236 SplitChargeRules []CostCategorySplitChargeRule 237 238 noSmithyDocumentSerde 239} 240 241// When creating or updating a cost category, you can define the CostCategoryRule 242// rule type as INHERITED_VALUE. This rule type adds the flexibility of defining a 243// rule that dynamically inherits the cost category value from the dimension value 244// defined by CostCategoryInheritedValueDimension. For example, if you want to 245// dynamically group costs that are based on the value of a specific tag key, first 246// choose an inherited value rule type, then choose the tag dimension and specify 247// the tag key to use. 248type CostCategoryInheritedValueDimension struct { 249 250 // The key to extract cost category values. 251 DimensionKey *string 252 253 // The name of the dimension that's used to group costs. If you specify 254 // LINKED_ACCOUNT_NAME, the cost category value is based on account name. If you 255 // specify TAG, the cost category value will be based on the value of the specified 256 // tag key. 257 DimensionName CostCategoryInheritedValueDimensionName 258 259 noSmithyDocumentSerde 260} 261 262// The list of processing statuses for Cost Management products for a specific cost 263// category. 264type CostCategoryProcessingStatus struct { 265 266 // The Cost Management product name of the applied status. 267 Component CostCategoryStatusComponent 268 269 // The process status for a specific cost category. 270 Status CostCategoryStatus 271 272 noSmithyDocumentSerde 273} 274 275// A reference to a Cost Category containing only enough information to identify 276// the Cost Category. You can use this information to retrieve the full Cost 277// Category information using DescribeCostCategory. 278type CostCategoryReference struct { 279 280 // The unique identifier for your Cost Category. 281 CostCategoryArn *string 282 283 // The default value for the cost category. 284 DefaultValue *string 285 286 // The Cost Category's effective end date. 287 EffectiveEnd *string 288 289 // The Cost Category's effective start date. 290 EffectiveStart *string 291 292 // The unique name of the Cost Category. 293 Name *string 294 295 // The number of rules that are associated with a specific Cost Category. 296 NumberOfRules int32 297 298 // The list of processing statuses for Cost Management products for a specific cost 299 // category. 300 ProcessingStatus []CostCategoryProcessingStatus 301 302 // A list of unique cost category values in a specific cost category. 303 Values []string 304 305 noSmithyDocumentSerde 306} 307 308// Rules are processed in order. If there are multiple rules that match the line 309// item, then the first rule to match is used to determine that Cost Category 310// value. 311type CostCategoryRule struct { 312 313 // The value the line item is categorized as if the line item contains the matched 314 // dimension. 315 InheritedValue *CostCategoryInheritedValueDimension 316 317 // An Expression 318 // (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html) 319 // object used to categorize costs. This supports dimensions, tags, and nested 320 // expressions. Currently the only dimensions supported are LINKED_ACCOUNT, 321 // SERVICE_CODE, RECORD_TYPE, and LINKED_ACCOUNT_NAME. Root level OR isn't 322 // supported. We recommend that you create a separate rule instead. RECORD_TYPE is 323 // a dimension used for Cost Explorer APIs, and is also supported for Cost Category 324 // expressions. This dimension uses different terms, depending on whether you're 325 // using the console or API/JSON editor. For a detailed comparison, see Term 326 // Comparisons 327 // (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/manage-cost-categories.html#cost-categories-terms) 328 // in the Billing and Cost Management User Guide. 329 Rule *Expression 330 331 // You can define the CostCategoryRule rule type as either REGULAR or 332 // INHERITED_VALUE. The INHERITED_VALUE rule type adds the flexibility of defining 333 // a rule that dynamically inherits the cost category value from the dimension 334 // value defined by CostCategoryInheritedValueDimension. For example, if you want 335 // to dynamically group costs based on the value of a specific tag key, first 336 // choose an inherited value rule type, then choose the tag dimension and specify 337 // the tag key to use. 338 Type CostCategoryRuleType 339 340 // The default value for the cost category. 341 Value *string 342 343 noSmithyDocumentSerde 344} 345 346// Use the split charge rule to split the cost of one Cost Category value across 347// several other target values. 348type CostCategorySplitChargeRule struct { 349 350 // The method that's used to define how to split your source costs across your 351 // targets. Proportional - Allocates charges across your targets based on the 352 // proportional weighted cost of each target. Fixed - Allocates charges across your 353 // targets based on your defined allocation percentage. >Even - Allocates costs 354 // evenly across all targets. 355 // 356 // This member is required. 357 Method CostCategorySplitChargeMethod 358 359 // The Cost Category value that you want to split. That value can't be used as a 360 // source or a target in other split charge rules. To indicate uncategorized costs, 361 // you can use an empty string as the source. 362 // 363 // This member is required. 364 Source *string 365 366 // The Cost Category values that you want to split costs across. These values can't 367 // be used as a source in other split charge rules. 368 // 369 // This member is required. 370 Targets []string 371 372 // The parameters for a split charge method. This is only required for the FIXED 373 // method. 374 Parameters []CostCategorySplitChargeRuleParameter 375 376 noSmithyDocumentSerde 377} 378 379// The parameters for a split charge method. 380type CostCategorySplitChargeRuleParameter struct { 381 382 // The parameter type. 383 // 384 // This member is required. 385 Type CostCategorySplitChargeRuleParameterType 386 387 // The parameter values. 388 // 389 // This member is required. 390 Values []string 391 392 noSmithyDocumentSerde 393} 394 395// The Cost Categories values used for filtering the costs. If Values and Key are 396// not specified, the ABSENTMatchOption is applied to all Cost Categories. That is, 397// it filters on resources that aren't mapped to any Cost Categories. If Values is 398// provided and Key isn't specified, the ABSENTMatchOption is applied to the Cost 399// Categories Key only. That is, it filters on resources without the given Cost 400// Categories key. 401type CostCategoryValues struct { 402 403 // The unique name of the Cost Category. 404 Key *string 405 406 // The match options that you can use to filter your results. MatchOptions is only 407 // applicable for actions related to cost category. The default values for 408 // MatchOptions is EQUALS and CASE_SENSITIVE. 409 MatchOptions []MatchOption 410 411 // The specific value of the Cost Category. 412 Values []string 413 414 noSmithyDocumentSerde 415} 416 417// The amount of instance usage that a reservation covered. 418type Coverage struct { 419 420 // The amount of cost that the reservation covered. 421 CoverageCost *CoverageCost 422 423 // The amount of instance usage that the reservation covered, in hours. 424 CoverageHours *CoverageHours 425 426 // The amount of instance usage that the reservation covered, in normalized units. 427 CoverageNormalizedUnits *CoverageNormalizedUnits 428 429 noSmithyDocumentSerde 430} 431 432// Reservation coverage for a specified period, in hours. 433type CoverageByTime struct { 434 435 // The groups of instances that the reservation covered. 436 Groups []ReservationCoverageGroup 437 438 // The period that this coverage was used over. 439 TimePeriod *DateInterval 440 441 // The total reservation coverage, in hours. 442 Total *Coverage 443 444 noSmithyDocumentSerde 445} 446 447// How much it costs to run an instance. 448type CoverageCost struct { 449 450 // How much an On-Demand Instance costs. 451 OnDemandCost *string 452 453 noSmithyDocumentSerde 454} 455 456// How long a running instance either used a reservation or was On-Demand. 457type CoverageHours struct { 458 459 // The percentage of instance hours that a reservation covered. 460 CoverageHoursPercentage *string 461 462 // The number of instance running hours that On-Demand Instances covered. 463 OnDemandHours *string 464 465 // The number of instance running hours that reservations covered. 466 ReservedHours *string 467 468 // The total instance usage, in hours. 469 TotalRunningHours *string 470 471 noSmithyDocumentSerde 472} 473 474// The amount of instance usage, in normalized units. You can use normalized units 475// to see your EC2 usage for multiple sizes of instances in a uniform way. For 476// example, suppose that you run an xlarge instance and a 2xlarge instance. If you 477// run both instances for the same amount of time, the 2xlarge instance uses twice 478// as much of your reservation as the xlarge instance, even though both instances 479// show only one instance-hour. When you use normalized units instead of 480// instance-hours, the xlarge instance used 8 normalized units, and the 2xlarge 481// instance used 16 normalized units. For more information, see Modifying Reserved 482// Instances 483// (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-modifying.html) in the 484// Amazon Elastic Compute Cloud User Guide for Linux Instances. 485type CoverageNormalizedUnits struct { 486 487 // The percentage of your used instance normalized units that a reservation covers. 488 CoverageNormalizedUnitsPercentage *string 489 490 // The number of normalized units that are covered by On-Demand Instances instead 491 // of a reservation. 492 OnDemandNormalizedUnits *string 493 494 // The number of normalized units that a reservation covers. 495 ReservedNormalizedUnits *string 496 497 // The total number of normalized units that you used. 498 TotalRunningNormalizedUnits *string 499 500 noSmithyDocumentSerde 501} 502 503// Context about the current instance. 504type CurrentInstance struct { 505 506 // The currency code that Amazon Web Services used to calculate the costs for this 507 // instance. 508 CurrencyCode *string 509 510 // The name that you given an instance. This field shows as blank if you haven't 511 // given the instance a name. 512 InstanceName *string 513 514 // The current On-Demand cost of operating this instance on a monthly basis. 515 MonthlyCost *string 516 517 // The number of hours during the lookback period that's billed at On-Demand rates. 518 OnDemandHoursInLookbackPeriod *string 519 520 // The number of hours during the lookback period that's covered by reservations. 521 ReservationCoveredHoursInLookbackPeriod *string 522 523 // Details about the resource and utilization. 524 ResourceDetails *ResourceDetails 525 526 // Resource ID of the current instance. 527 ResourceId *string 528 529 // Utilization information of the current instance during the lookback period. 530 ResourceUtilization *ResourceUtilization 531 532 // The number of hours during the lookback period that's covered by Savings Plans. 533 SavingsPlansCoveredHoursInLookbackPeriod *string 534 535 // Cost allocation resource tags that are applied to the instance. 536 Tags []TagValues 537 538 // The total number of hours that the instance ran during the lookback period. 539 TotalRunningHoursInLookbackPeriod *string 540 541 noSmithyDocumentSerde 542} 543 544// The time period of the request. 545type DateInterval struct { 546 547 // The end of the time period. The end date is exclusive. For example, if end is 548 // 2017-05-01, Amazon Web Services retrieves cost and usage data from the start 549 // date up to, but not including, 2017-05-01. 550 // 551 // This member is required. 552 End *string 553 554 // The beginning of the time period. The start date is inclusive. For example, if 555 // start is 2017-01-01, Amazon Web Services retrieves cost and usage data starting 556 // at 2017-01-01 up to the end date. The start date must be equal to or no later 557 // than the current date to avoid a validation error. 558 // 559 // This member is required. 560 Start *string 561 562 noSmithyDocumentSerde 563} 564 565// The metadata that you can use to filter and group your results. You can use 566// GetDimensionValues to find specific values. 567type DimensionValues struct { 568 569 // The names of the metadata types that you can use to filter and group your 570 // results. For example, AZ returns a list of Availability Zones. 571 Key Dimension 572 573 // The match options that you can use to filter your results. MatchOptions is only 574 // applicable for actions related to Cost Category. The default values for 575 // MatchOptions are EQUALS and CASE_SENSITIVE. 576 MatchOptions []MatchOption 577 578 // The metadata values that you can use to filter and group your results. You can 579 // use GetDimensionValues to find specific values. 580 Values []string 581 582 noSmithyDocumentSerde 583} 584 585// The metadata of a specific type that you can use to filter and group your 586// results. You can use GetDimensionValues to find specific values. 587type DimensionValuesWithAttributes struct { 588 589 // The attribute that applies to a specific Dimension. 590 Attributes map[string]string 591 592 // The value of a dimension with a specific attribute. 593 Value *string 594 595 noSmithyDocumentSerde 596} 597 598// The field that contains a list of disk (local storage) metrics that are 599// associated with the current instance. 600type DiskResourceUtilization struct { 601 602 // The maximum read throughput operations per second. 603 DiskReadBytesPerSecond *string 604 605 // The maximum number of read operations per second. 606 DiskReadOpsPerSecond *string 607 608 // The maximum write throughput operations per second. 609 DiskWriteBytesPerSecond *string 610 611 // The maximum number of write operations per second. 612 DiskWriteOpsPerSecond *string 613 614 noSmithyDocumentSerde 615} 616 617// The EBS field that contains a list of EBS metrics that are associated with the 618// current instance. 619type EBSResourceUtilization struct { 620 621 // The maximum size of read operations per second 622 EbsReadBytesPerSecond *string 623 624 // The maximum number of read operations per second. 625 EbsReadOpsPerSecond *string 626 627 // The maximum size of write operations per second. 628 EbsWriteBytesPerSecond *string 629 630 // The maximum number of write operations per second. 631 EbsWriteOpsPerSecond *string 632 633 noSmithyDocumentSerde 634} 635 636// Details about the Amazon EC2 instances that Amazon Web Services recommends that 637// you purchase. 638type EC2InstanceDetails struct { 639 640 // The Availability Zone of the recommended reservation. 641 AvailabilityZone *string 642 643 // Determines whether the recommendation is for a current-generation instance. 644 CurrentGeneration bool 645 646 // The instance family of the recommended reservation. 647 Family *string 648 649 // The type of instance that Amazon Web Services recommends. 650 InstanceType *string 651 652 // The platform of the recommended reservation. The platform is the specific 653 // combination of operating system, license model, and software on an instance. 654 Platform *string 655 656 // The Amazon Web Services Region of the recommended reservation. 657 Region *string 658 659 // Determines whether the recommended reservation is size flexible. 660 SizeFlexEligible bool 661 662 // Determines whether the recommended reservation is dedicated or shared. 663 Tenancy *string 664 665 noSmithyDocumentSerde 666} 667 668// Details on the Amazon EC2 Resource. 669type EC2ResourceDetails struct { 670 671 // The hourly public On-Demand rate for the instance type. 672 HourlyOnDemandRate *string 673 674 // The type of Amazon Web Services instance. 675 InstanceType *string 676 677 // The memory capacity of the Amazon Web Services instance. 678 Memory *string 679 680 // The network performance capacity of the Amazon Web Services instance. 681 NetworkPerformance *string 682 683 // The platform of the Amazon Web Services instance. The platform is the specific 684 // combination of operating system, license model, and software on an instance. 685 Platform *string 686 687 // The Amazon Web Services Region of the instance. 688 Region *string 689 690 // The SKU of the product. 691 Sku *string 692 693 // The disk storage of the Amazon Web Services instance. This doesn't include EBS 694 // storage. 695 Storage *string 696 697 // The number of VCPU cores in the Amazon Web Services instance type. 698 Vcpu *string 699 700 noSmithyDocumentSerde 701} 702 703// Utilization metrics of the instance. 704type EC2ResourceUtilization struct { 705 706 // The field that contains a list of disk (local storage) metrics that are 707 // associated with the current instance. 708 DiskResourceUtilization *DiskResourceUtilization 709 710 // The EBS field that contains a list of EBS metrics that are associated with the 711 // current instance. 712 EBSResourceUtilization *EBSResourceUtilization 713 714 // The maximum observed or expected CPU utilization of the instance. 715 MaxCpuUtilizationPercentage *string 716 717 // The maximum observed or expected memory utilization of the instance. 718 MaxMemoryUtilizationPercentage *string 719 720 // The maximum observed or expected storage utilization of the instance. This 721 // doesn't include EBS storage. 722 MaxStorageUtilizationPercentage *string 723 724 // The network field that contains a list of network metrics that are associated 725 // with the current instance. 726 NetworkResourceUtilization *NetworkResourceUtilization 727 728 noSmithyDocumentSerde 729} 730 731// The Amazon EC2 hardware specifications that you want Amazon Web Services to 732// provide recommendations for. 733type EC2Specification struct { 734 735 // Indicates whether you want a recommendation for standard or convertible 736 // reservations. 737 OfferingClass OfferingClass 738 739 noSmithyDocumentSerde 740} 741 742// Details about the Amazon ElastiCache instances that Amazon Web Services 743// recommends that you purchase. 744type ElastiCacheInstanceDetails struct { 745 746 // Determines whether the recommendation is for a current generation instance. 747 CurrentGeneration bool 748 749 // The instance family of the recommended reservation. 750 Family *string 751 752 // The type of node that Amazon Web Services recommends. 753 NodeType *string 754 755 // The description of the recommended reservation. 756 ProductDescription *string 757 758 // The Amazon Web Services Region of the recommended reservation. 759 Region *string 760 761 // Determines whether the recommended reservation is size flexible. 762 SizeFlexEligible bool 763 764 noSmithyDocumentSerde 765} 766 767// Details about the Amazon ES instances that Amazon Web Services recommends that 768// you purchase. 769type ESInstanceDetails struct { 770 771 // Determines whether the recommendation is for a current-generation instance. 772 CurrentGeneration bool 773 774 // The class of instance that Amazon Web Services recommends. 775 InstanceClass *string 776 777 // The size of instance that Amazon Web Services recommends. 778 InstanceSize *string 779 780 // The Amazon Web Services Region of the recommended reservation. 781 Region *string 782 783 // Determines whether the recommended reservation is size flexible. 784 SizeFlexEligible bool 785 786 noSmithyDocumentSerde 787} 788 789// Use Expression to filter by cost or by usage. There are two patterns: 790// 791// * Simple 792// dimension values - You can set the dimension name and values for the filters 793// that you plan to use. For example, you can filter for REGION==us-east-1 OR 794// REGION==us-west-1. For GetRightsizingRecommendation, the Region is a full name 795// (for example, REGION==US East (N. Virginia). The Expression example is as 796// follows: { "Dimensions": { "Key": "REGION", "Values": [ "us-east-1", “us-west-1” 797// ] } } The list of dimension values are OR'd together to retrieve cost or usage 798// data. You can create Expression and DimensionValues objects using either with* 799// methods or set* methods in multiple lines. 800// 801// * Compound dimension values with 802// logical operations - You can use multiple Expression types and the logical 803// operators AND/OR/NOT to create a list of one or more Expression objects. By 804// doing this, you can filter on more advanced options. For example, you can filter 805// on ((REGION == us-east-1 OR REGION == us-west-1) OR (TAG.Type == Type1)) AND 806// (USAGE_TYPE != DataTransfer). The Expression for that is as follows: { "And": [ 807// {"Or": [ {"Dimensions": { "Key": "REGION", "Values": [ "us-east-1", "us-west-1" 808// ] }}, {"Tags": { "Key": "TagName", "Values": ["Value1"] } } ]}, {"Not": 809// {"Dimensions": { "Key": "USAGE_TYPE", "Values": ["DataTransfer"] }}} ] } 810// Because each Expression can have only one operator, the service returns an error 811// if more than one is specified. The following example shows an Expression object 812// that creates an error. { "And": [ ... ], "DimensionValues": { "Dimension": 813// "USAGE_TYPE", "Values": [ "DataTransfer" ] } } 814// 815// For the 816// GetRightsizingRecommendation action, a combination of OR and NOT isn't 817// supported. OR isn't supported between different dimensions, or dimensions and 818// tags. NOT operators aren't supported. Dimensions are also limited to 819// LINKED_ACCOUNT, REGION, or RIGHTSIZING_TYPE. For the 820// GetReservationPurchaseRecommendation action, only NOT is supported. AND and OR 821// aren't supported. Dimensions are limited to LINKED_ACCOUNT. 822type Expression struct { 823 824 // Return results that match both Dimension objects. 825 And []Expression 826 827 // The filter that's based on CostCategory values. 828 CostCategories *CostCategoryValues 829 830 // The specific Dimension to use for Expression. 831 Dimensions *DimensionValues 832 833 // Return results that don't match a Dimension object. 834 Not *Expression 835 836 // Return results that match either Dimension object. 837 Or []Expression 838 839 // The specific Tag to use for Expression. 840 Tags *TagValues 841 842 noSmithyDocumentSerde 843} 844 845// The forecast that's created for your query. 846type ForecastResult struct { 847 848 // The mean value of the forecast. 849 MeanValue *string 850 851 // The lower limit for the prediction interval. 852 PredictionIntervalLowerBound *string 853 854 // The upper limit for the prediction interval. 855 PredictionIntervalUpperBound *string 856 857 // The period of time that the forecast covers. 858 TimePeriod *DateInterval 859 860 noSmithyDocumentSerde 861} 862 863// One level of grouped data in the results. 864type Group struct { 865 866 // The keys that are included in this group. 867 Keys []string 868 869 // The metrics that are included in this group. 870 Metrics map[string]MetricValue 871 872 noSmithyDocumentSerde 873} 874 875// Represents a group when you specify a group by criteria or in the response to a 876// query with a specific grouping. 877type GroupDefinition struct { 878 879 // The string that represents a key for a specified group. 880 Key *string 881 882 // The string that represents the type of group. 883 Type GroupDefinitionType 884 885 noSmithyDocumentSerde 886} 887 888// The dollar value of the anomaly. 889type Impact struct { 890 891 // The maximum dollar value that's observed for an anomaly. 892 // 893 // This member is required. 894 MaxImpact float64 895 896 // The cumulative dollar value that's observed for an anomaly. 897 TotalImpact float64 898 899 noSmithyDocumentSerde 900} 901 902// Details about the instances that Amazon Web Services recommends that you 903// purchase. 904type InstanceDetails struct { 905 906 // The Amazon EC2 instances that Amazon Web Services recommends that you purchase. 907 EC2InstanceDetails *EC2InstanceDetails 908 909 // The Amazon ES instances that Amazon Web Services recommends that you purchase. 910 ESInstanceDetails *ESInstanceDetails 911 912 // The ElastiCache instances that Amazon Web Services recommends that you purchase. 913 ElastiCacheInstanceDetails *ElastiCacheInstanceDetails 914 915 // The Amazon RDS instances that Amazon Web Services recommends that you purchase. 916 RDSInstanceDetails *RDSInstanceDetails 917 918 // The Amazon Redshift instances that Amazon Web Services recommends that you 919 // purchase. 920 RedshiftInstanceDetails *RedshiftInstanceDetails 921 922 noSmithyDocumentSerde 923} 924 925// The aggregated value for a metric. 926type MetricValue struct { 927 928 // The actual number that represents the metric. 929 Amount *string 930 931 // The unit that the metric is given in. 932 Unit *string 933 934 noSmithyDocumentSerde 935} 936 937// Details on the modification recommendation. 938type ModifyRecommendationDetail struct { 939 940 // Determines whether this instance type is the Amazon Web Services default 941 // recommendation. 942 TargetInstances []TargetInstance 943 944 noSmithyDocumentSerde 945} 946 947// The network field that contains a list of network metrics that are associated 948// with the current instance. 949type NetworkResourceUtilization struct { 950 951 // The network inbound throughput utilization measured in Bytes per second. 952 NetworkInBytesPerSecond *string 953 954 // The network outbound throughput utilization measured in Bytes per second. 955 NetworkOutBytesPerSecond *string 956 957 // The network ingress packets that are measured in packets per second. 958 NetworkPacketsInPerSecond *string 959 960 // The network outgress packets that are measured in packets per second. 961 NetworkPacketsOutPerSecond *string 962 963 noSmithyDocumentSerde 964} 965 966// Details about the Amazon RDS instances that Amazon Web Services recommends that 967// you purchase. 968type RDSInstanceDetails struct { 969 970 // Determines whether the recommendation is for a current-generation instance. 971 CurrentGeneration bool 972 973 // The database edition that the recommended reservation supports. 974 DatabaseEdition *string 975 976 // The database engine that the recommended reservation supports. 977 DatabaseEngine *string 978 979 // Determines whether the recommendation is for a reservation in a single 980 // Availability Zone or a reservation with a backup in a second Availability Zone. 981 DeploymentOption *string 982 983 // The instance family of the recommended reservation. 984 Family *string 985 986 // The type of instance that Amazon Web Services recommends. 987 InstanceType *string 988 989 // The license model that the recommended reservation supports. 990 LicenseModel *string 991 992 // The Amazon Web Services Region of the recommended reservation. 993 Region *string 994 995 // Determines whether the recommended reservation is size flexible. 996 SizeFlexEligible bool 997 998 noSmithyDocumentSerde 999} 1000 1001// Details about the Amazon Redshift instances that Amazon Web Services recommends 1002// that you purchase. 1003type RedshiftInstanceDetails struct { 1004 1005 // Determines whether the recommendation is for a current-generation instance. 1006 CurrentGeneration bool 1007 1008 // The instance family of the recommended reservation. 1009 Family *string 1010 1011 // The type of node that Amazon Web Services recommends. 1012 NodeType *string 1013 1014 // The Amazon Web Services Region of the recommended reservation. 1015 Region *string 1016 1017 // Determines whether the recommended reservation is size flexible. 1018 SizeFlexEligible bool 1019 1020 noSmithyDocumentSerde 1021} 1022 1023// The aggregated numbers for your reservation usage. 1024type ReservationAggregates struct { 1025 1026 // The monthly cost of your reservation. It's amortized over the reservation 1027 // period. 1028 AmortizedRecurringFee *string 1029 1030 // The upfront cost of your reservation. It's amortized over the reservation 1031 // period. 1032 AmortizedUpfrontFee *string 1033 1034 // How much you saved due to purchasing and utilizing reservation. Amazon Web 1035 // Services calculates this by subtracting TotalAmortizedFee from 1036 // OnDemandCostOfRIHoursUsed. 1037 NetRISavings *string 1038 1039 // How much your reservation costs if charged On-Demand rates. 1040 OnDemandCostOfRIHoursUsed *string 1041 1042 // How many reservation hours that you purchased. 1043 PurchasedHours *string 1044 1045 // The number of Amazon EC2 reservation hours that you purchased. It's converted to 1046 // normalized units. Normalized units are available only for Amazon EC2 usage after 1047 // November 11, 2017. 1048 PurchasedUnits *string 1049 1050 // The cost of unused hours for your reservation. 1051 RICostForUnusedHours *string 1052 1053 // The realized savings because of purchasing and using a reservation. 1054 RealizedSavings *string 1055 1056 // The total number of reservation hours that you used. 1057 TotalActualHours *string 1058 1059 // The total number of Amazon EC2 reservation hours that you used. It's converted 1060 // to normalized units. Normalized units are available only for Amazon EC2 usage 1061 // after November 11, 2017. 1062 TotalActualUnits *string 1063 1064 // The total cost of your reservation. It's amortized over the reservation period. 1065 TotalAmortizedFee *string 1066 1067 // How much you might save if you use your entire reservation. 1068 TotalPotentialRISavings *string 1069 1070 // The unrealized savings because of purchasing and using a reservation. 1071 UnrealizedSavings *string 1072 1073 // The number of reservation hours that you didn't use. 1074 UnusedHours *string 1075 1076 // The number of Amazon EC2 reservation hours that you didn't use. It's converted 1077 // to normalized units. Normalized units are available only for Amazon EC2 usage 1078 // after November 11, 2017. 1079 UnusedUnits *string 1080 1081 // The percentage of reservation time that you used. 1082 UtilizationPercentage *string 1083 1084 // The percentage of Amazon EC2 reservation time that you used. It's converted to 1085 // normalized units. Normalized units are available only for Amazon EC2 usage after 1086 // November 11, 2017. 1087 UtilizationPercentageInUnits *string 1088 1089 noSmithyDocumentSerde 1090} 1091 1092// A group of reservations that share a set of attributes. 1093type ReservationCoverageGroup struct { 1094 1095 // The attributes for this group of reservations. 1096 Attributes map[string]string 1097 1098 // How much instance usage this group of reservations covered. 1099 Coverage *Coverage 1100 1101 noSmithyDocumentSerde 1102} 1103 1104// A specific reservation that Amazon Web Services recommends for purchase. 1105type ReservationPurchaseRecommendation struct { 1106 1107 // The account scope that Amazon Web Services recommends that you purchase this 1108 // instance for. For example, you can purchase this reservation for an entire 1109 // organization in Amazon Web Services Organizations. 1110 AccountScope AccountScope 1111 1112 // How many days of previous usage that Amazon Web Services considers when making 1113 // this recommendation. 1114 LookbackPeriodInDays LookbackPeriodInDays 1115 1116 // The payment option for the reservation (for example, AllUpfront or NoUpfront). 1117 PaymentOption PaymentOption 1118 1119 // Details about the recommended purchases. 1120 RecommendationDetails []ReservationPurchaseRecommendationDetail 1121 1122 // A summary about the recommended purchase. 1123 RecommendationSummary *ReservationPurchaseRecommendationSummary 1124 1125 // Hardware specifications for the service that you want recommendations for. 1126 ServiceSpecification *ServiceSpecification 1127 1128 // The term of the reservation that you want recommendations for, in years. 1129 TermInYears TermInYears 1130 1131 noSmithyDocumentSerde 1132} 1133 1134// Details about your recommended reservation purchase. 1135type ReservationPurchaseRecommendationDetail struct { 1136 1137 // The account that this RI recommendation is for. 1138 AccountId *string 1139 1140 // The average number of normalized units that you used in an hour during the 1141 // historical period. Amazon Web Services uses this to calculate your recommended 1142 // reservation purchases. 1143 AverageNormalizedUnitsUsedPerHour *string 1144 1145 // The average number of instances that you used in an hour during the historical 1146 // period. Amazon Web Services uses this to calculate your recommended reservation 1147 // purchases. 1148 AverageNumberOfInstancesUsedPerHour *string 1149 1150 // The average utilization of your instances. Amazon Web Services uses this to 1151 // calculate your recommended reservation purchases. 1152 AverageUtilization *string 1153 1154 // The currency code that Amazon Web Services used to calculate the costs for this 1155 // instance. 1156 CurrencyCode *string 1157 1158 // How long Amazon Web Services estimates that it takes for this instance to start 1159 // saving you money, in months. 1160 EstimatedBreakEvenInMonths *string 1161 1162 // How much Amazon Web Services estimates that you spend on On-Demand Instances in 1163 // a month. 1164 EstimatedMonthlyOnDemandCost *string 1165 1166 // How much Amazon Web Services estimates that this specific recommendation could 1167 // save you in a month. 1168 EstimatedMonthlySavingsAmount *string 1169 1170 // How much Amazon Web Services estimates that this specific recommendation could 1171 // save you in a month, as a percentage of your overall costs. 1172 EstimatedMonthlySavingsPercentage *string 1173 1174 // How much Amazon Web Services estimates that you would have spent for all usage 1175 // during the specified historical period if you had a reservation. 1176 EstimatedReservationCostForLookbackPeriod *string 1177 1178 // Details about the instances that Amazon Web Services recommends that you 1179 // purchase. 1180 InstanceDetails *InstanceDetails 1181 1182 // The maximum number of normalized units that you used in an hour during the 1183 // historical period. Amazon Web Services uses this to calculate your recommended 1184 // reservation purchases. 1185 MaximumNormalizedUnitsUsedPerHour *string 1186 1187 // The maximum number of instances that you used in an hour during the historical 1188 // period. Amazon Web Services uses this to calculate your recommended reservation 1189 // purchases. 1190 MaximumNumberOfInstancesUsedPerHour *string 1191 1192 // The minimum number of normalized units that you used in an hour during the 1193 // historical period. Amazon Web Services uses this to calculate your recommended 1194 // reservation purchases. 1195 MinimumNormalizedUnitsUsedPerHour *string 1196 1197 // The minimum number of instances that you used in an hour during the historical 1198 // period. Amazon Web Services uses this to calculate your recommended reservation 1199 // purchases. 1200 MinimumNumberOfInstancesUsedPerHour *string 1201 1202 // The number of normalized units that Amazon Web Services recommends that you 1203 // purchase. 1204 RecommendedNormalizedUnitsToPurchase *string 1205 1206 // The number of instances that Amazon Web Services recommends that you purchase. 1207 RecommendedNumberOfInstancesToPurchase *string 1208 1209 // How much purchasing this instance costs you on a monthly basis. 1210 RecurringStandardMonthlyCost *string 1211 1212 // How much purchasing this instance costs you upfront. 1213 UpfrontCost *string 1214 1215 noSmithyDocumentSerde 1216} 1217 1218// Information about this specific recommendation, such as the timestamp for when 1219// Amazon Web Services made a specific recommendation. 1220type ReservationPurchaseRecommendationMetadata struct { 1221 1222 // The timestamp for when Amazon Web Services made this recommendation. 1223 GenerationTimestamp *string 1224 1225 // The ID for this specific recommendation. 1226 RecommendationId *string 1227 1228 noSmithyDocumentSerde 1229} 1230 1231// A summary about this recommendation, such as the currency code, the amount that 1232// Amazon Web Services estimates that you could save, and the total amount of 1233// reservation to purchase. 1234type ReservationPurchaseRecommendationSummary struct { 1235 1236 // The currency code used for this recommendation. 1237 CurrencyCode *string 1238 1239 // The total amount that Amazon Web Services estimates that this recommendation 1240 // could save you in a month. 1241 TotalEstimatedMonthlySavingsAmount *string 1242 1243 // The total amount that Amazon Web Services estimates that this recommendation 1244 // could save you in a month, as a percentage of your costs. 1245 TotalEstimatedMonthlySavingsPercentage *string 1246 1247 noSmithyDocumentSerde 1248} 1249 1250// A group of reservations that share a set of attributes. 1251type ReservationUtilizationGroup struct { 1252 1253 // The attributes for this group of reservations. 1254 Attributes map[string]string 1255 1256 // The key for a specific reservation attribute. 1257 Key *string 1258 1259 // How much you used this group of reservations. 1260 Utilization *ReservationAggregates 1261 1262 // The value of a specific reservation attribute. 1263 Value *string 1264 1265 noSmithyDocumentSerde 1266} 1267 1268// Details on the resource. 1269type ResourceDetails struct { 1270 1271 // Details on the Amazon EC2 resource. 1272 EC2ResourceDetails *EC2ResourceDetails 1273 1274 noSmithyDocumentSerde 1275} 1276 1277// Resource utilization of current resource. 1278type ResourceUtilization struct { 1279 1280 // The utilization of current Amazon EC2 instance. 1281 EC2ResourceUtilization *EC2ResourceUtilization 1282 1283 noSmithyDocumentSerde 1284} 1285 1286// The result that's associated with a time period. 1287type ResultByTime struct { 1288 1289 // Determines whether the result is estimated. 1290 Estimated bool 1291 1292 // The groups that this time period includes. 1293 Groups []Group 1294 1295 // The time period that the result covers. 1296 TimePeriod *DateInterval 1297 1298 // The total amount of cost or usage accrued during the time period. 1299 Total map[string]MetricValue 1300 1301 noSmithyDocumentSerde 1302} 1303 1304// Recommendations to rightsize resources. 1305type RightsizingRecommendation struct { 1306 1307 // The account that this recommendation is for. 1308 AccountId *string 1309 1310 // Context regarding the current instance. 1311 CurrentInstance *CurrentInstance 1312 1313 // The list of possible reasons why the recommendation is generated such as under 1314 // or over utilization of specific metrics (for example, CPU, Memory, Network). 1315 FindingReasonCodes []FindingReasonCode 1316 1317 // The details for the modification recommendations. 1318 ModifyRecommendationDetail *ModifyRecommendationDetail 1319 1320 // A recommendation to either terminate or modify the resource. 1321 RightsizingType RightsizingType 1322 1323 // The details for termination recommendations. 1324 TerminateRecommendationDetail *TerminateRecommendationDetail 1325 1326 noSmithyDocumentSerde 1327} 1328 1329// You can use RightsizingRecommendationConfiguration to customize recommendations 1330// across two attributes. You can choose to view recommendations for instances 1331// within the same instance families or across different instance families. You can 1332// also choose to view your estimated savings that are associated with 1333// recommendations with consideration of existing Savings Plans or RI benefits, or 1334// neither. 1335type RightsizingRecommendationConfiguration struct { 1336 1337 // The option to consider RI or Savings Plans discount benefits in your savings 1338 // calculation. The default value is TRUE. 1339 // 1340 // This member is required. 1341 BenefitsConsidered bool 1342 1343 // The option to see recommendations within the same instance family or 1344 // recommendations for instances across other families. The default value is 1345 // SAME_INSTANCE_FAMILY. 1346 // 1347 // This member is required. 1348 RecommendationTarget RecommendationTarget 1349 1350 noSmithyDocumentSerde 1351} 1352 1353// Metadata for this recommendation set. 1354type RightsizingRecommendationMetadata struct { 1355 1356 // Additional metadata that might be applicable to the recommendation. 1357 AdditionalMetadata *string 1358 1359 // The timestamp for when Amazon Web Services made this recommendation. 1360 GenerationTimestamp *string 1361 1362 // The number of days of previous usage that Amazon Web Services considers when 1363 // making this recommendation. 1364 LookbackPeriodInDays LookbackPeriodInDays 1365 1366 // The ID for this specific recommendation. 1367 RecommendationId *string 1368 1369 noSmithyDocumentSerde 1370} 1371 1372// The summary of rightsizing recommendations 1373type RightsizingRecommendationSummary struct { 1374 1375 // The estimated total savings resulting from modifications, on a monthly basis. 1376 EstimatedTotalMonthlySavingsAmount *string 1377 1378 // The currency code that Amazon Web Services used to calculate the savings. 1379 SavingsCurrencyCode *string 1380 1381 // The savings percentage based on the recommended modifications. It's relative to 1382 // the total On-Demand costs that are associated with these instances. 1383 SavingsPercentage *string 1384 1385 // The total number of instance recommendations. 1386 TotalRecommendationCount *string 1387 1388 noSmithyDocumentSerde 1389} 1390 1391// The combination of Amazon Web Services service, linked account, Region, and 1392// usage type where a cost anomaly is observed. 1393type RootCause struct { 1394 1395 // The member account value that's associated with the cost anomaly. 1396 LinkedAccount *string 1397 1398 // The Amazon Web Services Region that's associated with the cost anomaly. 1399 Region *string 1400 1401 // The Amazon Web Services service name that's associated with the cost anomaly. 1402 Service *string 1403 1404 // The UsageType value that's associated with the cost anomaly. 1405 UsageType *string 1406 1407 noSmithyDocumentSerde 1408} 1409 1410// The amortized amount of Savings Plans purchased in a specific account during a 1411// specific time interval. 1412type SavingsPlansAmortizedCommitment struct { 1413 1414 // The amortized amount of your Savings Plans commitment that was purchased with 1415 // either a Partial or a NoUpfront. 1416 AmortizedRecurringCommitment *string 1417 1418 // The amortized amount of your Savings Plans commitment that was purchased with an 1419 // Upfront or PartialUpfront Savings Plans. 1420 AmortizedUpfrontCommitment *string 1421 1422 // The total amortized amount of your Savings Plans commitment, regardless of your 1423 // Savings Plans purchase method. 1424 TotalAmortizedCommitment *string 1425 1426 noSmithyDocumentSerde 1427} 1428 1429// The amount of Savings Plans eligible usage that is covered by Savings Plans. All 1430// calculations consider the On-Demand equivalent of your Savings Plans usage. 1431type SavingsPlansCoverage struct { 1432 1433 // The attribute that applies to a specific Dimension. 1434 Attributes map[string]string 1435 1436 // The amount of Savings Plans eligible usage that the Savings Plans covered. 1437 Coverage *SavingsPlansCoverageData 1438 1439 // The time period of the request. 1440 TimePeriod *DateInterval 1441 1442 noSmithyDocumentSerde 1443} 1444 1445// Specific coverage percentage, On-Demand costs, and spend covered by Savings 1446// Plans, and total Savings Plans costs for an account. 1447type SavingsPlansCoverageData struct { 1448 1449 // The percentage of your existing Savings Plans covered usage, divided by all of 1450 // your eligible Savings Plans usage in an account (or set of accounts). 1451 CoveragePercentage *string 1452 1453 // The cost of your Amazon Web Services usage at the public On-Demand rate. 1454 OnDemandCost *string 1455 1456 // The amount of your Amazon Web Services usage that is covered by a Savings Plans. 1457 SpendCoveredBySavingsPlans *string 1458 1459 // The total cost of your Amazon Web Services usage, regardless of your purchase 1460 // option. 1461 TotalCost *string 1462 1463 noSmithyDocumentSerde 1464} 1465 1466// The attribute details on a specific Savings Plan. 1467type SavingsPlansDetails struct { 1468 1469 // A group of instance types that Savings Plans applies to. 1470 InstanceFamily *string 1471 1472 // The unique ID that's used to distinguish Savings Plans from one another. 1473 OfferingId *string 1474 1475 // A collection of Amazon Web Services resources in a geographic area. Each Amazon 1476 // Web Services Region is isolated and independent of the other Regions. 1477 Region *string 1478 1479 noSmithyDocumentSerde 1480} 1481 1482// Contains your request parameters, Savings Plan Recommendations Summary, and 1483// Details. 1484type SavingsPlansPurchaseRecommendation struct { 1485 1486 // The account scope that you want your recommendations for. Amazon Web Services 1487 // calculates recommendations that include the management account and member 1488 // accounts if the value is set to PAYER. If the value is LINKED, recommendations 1489 // are calculated for individual member accounts only. 1490 AccountScope AccountScope 1491 1492 // The lookback period in days, used to generate the recommendation. 1493 LookbackPeriodInDays LookbackPeriodInDays 1494 1495 // The payment option used to generate the recommendation. 1496 PaymentOption PaymentOption 1497 1498 // Details for the Savings Plans we recommend that you purchase to cover existing 1499 // Savings Plans eligible workloads. 1500 SavingsPlansPurchaseRecommendationDetails []SavingsPlansPurchaseRecommendationDetail 1501 1502 // Summary metrics for your Savings Plans Recommendations. 1503 SavingsPlansPurchaseRecommendationSummary *SavingsPlansPurchaseRecommendationSummary 1504 1505 // The requested Savings Plans recommendation type. 1506 SavingsPlansType SupportedSavingsPlansType 1507 1508 // The Savings Plans recommendation term in years. It's used to generate the 1509 // recommendation. 1510 TermInYears TermInYears 1511 1512 noSmithyDocumentSerde 1513} 1514 1515// Details for your recommended Savings Plans. 1516type SavingsPlansPurchaseRecommendationDetail struct { 1517 1518 // The AccountID the recommendation is generated for. 1519 AccountId *string 1520 1521 // The currency code that Amazon Web Services used to generate the recommendations 1522 // and present potential savings. 1523 CurrencyCode *string 1524 1525 // The average value of hourly On-Demand spend over the lookback period of the 1526 // applicable usage type. 1527 CurrentAverageHourlyOnDemandSpend *string 1528 1529 // The highest value of hourly On-Demand spend over the lookback period of the 1530 // applicable usage type. 1531 CurrentMaximumHourlyOnDemandSpend *string 1532 1533 // The lowest value of hourly On-Demand spend over the lookback period of the 1534 // applicable usage type. 1535 CurrentMinimumHourlyOnDemandSpend *string 1536 1537 // The estimated utilization of the recommended Savings Plans. 1538 EstimatedAverageUtilization *string 1539 1540 // The estimated monthly savings amount based on the recommended Savings Plans. 1541 EstimatedMonthlySavingsAmount *string 1542 1543 // The remaining On-Demand cost estimated to not be covered by the recommended 1544 // Savings Plans, over the length of the lookback period. 1545 EstimatedOnDemandCost *string 1546 1547 // The estimated On-Demand costs you would expect with no additional commitment, 1548 // based on your usage of the selected time period and the Savings Plans you own. 1549 EstimatedOnDemandCostWithCurrentCommitment *string 1550 1551 // The estimated return on investment that's based on the recommended Savings Plans 1552 // that you purchased. This is calculated as estimatedSavingsAmount/ 1553 // estimatedSPCost*100. 1554 EstimatedROI *string 1555 1556 // The cost of the recommended Savings Plans over the length of the lookback 1557 // period. 1558 EstimatedSPCost *string 1559 1560 // The estimated savings amount that's based on the recommended Savings Plans over 1561 // the length of the lookback period. 1562 EstimatedSavingsAmount *string 1563 1564 // The estimated savings percentage relative to the total cost of applicable 1565 // On-Demand usage over the lookback period. 1566 EstimatedSavingsPercentage *string 1567 1568 // The recommended hourly commitment level for the Savings Plans type and the 1569 // configuration that's based on the usage during the lookback period. 1570 HourlyCommitmentToPurchase *string 1571 1572 // Details for your recommended Savings Plans. 1573 SavingsPlansDetails *SavingsPlansDetails 1574 1575 // The upfront cost of the recommended Savings Plans, based on the selected payment 1576 // option. 1577 UpfrontCost *string 1578 1579 noSmithyDocumentSerde 1580} 1581 1582// Metadata about your Savings Plans Purchase Recommendations. 1583type SavingsPlansPurchaseRecommendationMetadata struct { 1584 1585 // Additional metadata that might be applicable to the recommendation. 1586 AdditionalMetadata *string 1587 1588 // The timestamp showing when the recommendations were generated. 1589 GenerationTimestamp *string 1590 1591 // The unique identifier for the recommendation set. 1592 RecommendationId *string 1593 1594 noSmithyDocumentSerde 1595} 1596 1597// Summary metrics for your Savings Plans Purchase Recommendations. 1598type SavingsPlansPurchaseRecommendationSummary struct { 1599 1600 // The currency code that Amazon Web Services used to generate the recommendations 1601 // and present potential savings. 1602 CurrencyCode *string 1603 1604 // The current total on demand spend of the applicable usage types over the 1605 // lookback period. 1606 CurrentOnDemandSpend *string 1607 1608 // The recommended Savings Plans cost on a daily (24 hourly) basis. 1609 DailyCommitmentToPurchase *string 1610 1611 // The estimated monthly savings amount that's based on the recommended Savings 1612 // Plans purchase. 1613 EstimatedMonthlySavingsAmount *string 1614 1615 // The estimated On-Demand costs you would expect with no additional commitment. 1616 // It's based on your usage of the selected time period and the Savings Plans you 1617 // own. 1618 EstimatedOnDemandCostWithCurrentCommitment *string 1619 1620 // The estimated return on investment that's based on the recommended Savings Plans 1621 // and estimated savings. 1622 EstimatedROI *string 1623 1624 // The estimated total savings over the lookback period, based on the purchase of 1625 // the recommended Savings Plans. 1626 EstimatedSavingsAmount *string 1627 1628 // The estimated savings relative to the total cost of On-Demand usage, over the 1629 // lookback period. This is calculated as estimatedSavingsAmount/ 1630 // CurrentOnDemandSpend*100. 1631 EstimatedSavingsPercentage *string 1632 1633 // The estimated total cost of the usage after purchasing the recommended Savings 1634 // Plans. This is a sum of the cost of Savings Plans during this term, and the 1635 // remaining On-Demand usage. 1636 EstimatedTotalCost *string 1637 1638 // The recommended hourly commitment that's based on the recommendation parameters. 1639 HourlyCommitmentToPurchase *string 1640 1641 // The aggregate number of Savings Plans recommendations that exist for your 1642 // account. 1643 TotalRecommendationCount *string 1644 1645 noSmithyDocumentSerde 1646} 1647 1648// The amount of savings that you're accumulating, against the public On-Demand 1649// rate of the usage accrued in an account. 1650type SavingsPlansSavings struct { 1651 1652 // The savings amount that you're accumulating for the usage that's covered by a 1653 // Savings Plans, when compared to the On-Demand equivalent of the same usage. 1654 NetSavings *string 1655 1656 // How much the amount that the usage would have cost if it was accrued at the 1657 // On-Demand rate. 1658 OnDemandCostEquivalent *string 1659 1660 noSmithyDocumentSerde 1661} 1662 1663// The measurement of how well you're using your existing Savings Plans. 1664type SavingsPlansUtilization struct { 1665 1666 // The total amount of Savings Plans commitment that's been purchased in an account 1667 // (or set of accounts). 1668 TotalCommitment *string 1669 1670 // The amount of your Savings Plans commitment that wasn't consumed from Savings 1671 // Plans eligible usage in a specific period. 1672 UnusedCommitment *string 1673 1674 // The amount of your Savings Plans commitment that was consumed from Savings Plans 1675 // eligible usage in a specific period. 1676 UsedCommitment *string 1677 1678 // The amount of UsedCommitment divided by the TotalCommitment for your Savings 1679 // Plans. 1680 UtilizationPercentage *string 1681 1682 noSmithyDocumentSerde 1683} 1684 1685// The aggregated utilization metrics for your Savings Plans usage. 1686type SavingsPlansUtilizationAggregates struct { 1687 1688 // A ratio of your effectiveness of using existing Savings Plans to apply to 1689 // workloads that are Savings Plans eligible. 1690 // 1691 // This member is required. 1692 Utilization *SavingsPlansUtilization 1693 1694 // The total amortized commitment for a Savings Plans. This includes the sum of the 1695 // upfront and recurring Savings Plans fees. 1696 AmortizedCommitment *SavingsPlansAmortizedCommitment 1697 1698 // The amount saved by using existing Savings Plans. Savings returns both net 1699 // savings from Savings Plans, as well as the onDemandCostEquivalent of the Savings 1700 // Plans when considering the utilization rate. 1701 Savings *SavingsPlansSavings 1702 1703 noSmithyDocumentSerde 1704} 1705 1706// The amount of Savings Plans utilization, in hours. 1707type SavingsPlansUtilizationByTime struct { 1708 1709 // The time period of the request. 1710 // 1711 // This member is required. 1712 TimePeriod *DateInterval 1713 1714 // A ratio of your effectiveness of using existing Savings Plans to apply to 1715 // workloads that are Savings Plans eligible. 1716 // 1717 // This member is required. 1718 Utilization *SavingsPlansUtilization 1719 1720 // The total amortized commitment for a Savings Plans. This includes the sum of the 1721 // upfront and recurring Savings Plans fees. 1722 AmortizedCommitment *SavingsPlansAmortizedCommitment 1723 1724 // The amount saved by using existing Savings Plans. Savings returns both net 1725 // savings from Savings Plans as well as the onDemandCostEquivalent of the Savings 1726 // Plans when considering the utilization rate. 1727 Savings *SavingsPlansSavings 1728 1729 noSmithyDocumentSerde 1730} 1731 1732// A single daily or monthly Savings Plans utilization rate, and details for your 1733// account. A management account in an organization have access to member accounts. 1734// You can use GetDimensionValues to determine the possible dimension values. 1735type SavingsPlansUtilizationDetail struct { 1736 1737 // The total amortized commitment for a Savings Plans. Includes the sum of the 1738 // upfront and recurring Savings Plans fees. 1739 AmortizedCommitment *SavingsPlansAmortizedCommitment 1740 1741 // The attribute that applies to a specific Dimension. 1742 Attributes map[string]string 1743 1744 // The amount saved by using existing Savings Plans. Savings returns both net 1745 // savings from savings plans as well as the onDemandCostEquivalent of the Savings 1746 // Plans when considering the utilization rate. 1747 Savings *SavingsPlansSavings 1748 1749 // The unique Amazon Resource Name (ARN) for a particular Savings Plan. 1750 SavingsPlanArn *string 1751 1752 // A ratio of your effectiveness of using existing Savings Plans to apply to 1753 // workloads that are Savings Plans eligible. 1754 Utilization *SavingsPlansUtilization 1755 1756 noSmithyDocumentSerde 1757} 1758 1759// Hardware specifications for the service that you want recommendations for. 1760type ServiceSpecification struct { 1761 1762 // The Amazon EC2 hardware specifications that you want Amazon Web Services to 1763 // provide recommendations for. 1764 EC2Specification *EC2Specification 1765 1766 noSmithyDocumentSerde 1767} 1768 1769// The details of how to sort the data. 1770type SortDefinition struct { 1771 1772 // The key that's used to sort the data. 1773 // 1774 // This member is required. 1775 Key *string 1776 1777 // The order that's used to sort the data. 1778 SortOrder SortOrder 1779 1780 noSmithyDocumentSerde 1781} 1782 1783// The recipient of AnomalySubscription notifications. 1784type Subscriber struct { 1785 1786 // The email address or SNS Amazon Resource Name (ARN). This depends on the Type. 1787 Address *string 1788 1789 // Indicates if the subscriber accepts the notifications. 1790 Status SubscriberStatus 1791 1792 // The notification delivery channel. 1793 Type SubscriberType 1794 1795 noSmithyDocumentSerde 1796} 1797 1798// The values that are available for a tag. If Values and Key aren't specified, the 1799// ABSENTMatchOption is applied to all tags. That is, it's filtered on resources 1800// with no tags. If Values is provided and Key isn't specified, the 1801// ABSENTMatchOption is applied to the tag Key only. That is, it's filtered on 1802// resources without the given tag key. 1803type TagValues struct { 1804 1805 // The key for the tag. 1806 Key *string 1807 1808 // The match options that you can use to filter your results. MatchOptions is only 1809 // applicable for actions related to Cost Category. The default values for 1810 // MatchOptions are EQUALS and CASE_SENSITIVE. 1811 MatchOptions []MatchOption 1812 1813 // The specific value of the tag. 1814 Values []string 1815 1816 noSmithyDocumentSerde 1817} 1818 1819// Details on recommended instance. 1820type TargetInstance struct { 1821 1822 // The currency code that Amazon Web Services used to calculate the costs for this 1823 // instance. 1824 CurrencyCode *string 1825 1826 // Determines whether this recommendation is the defaulted Amazon Web Services 1827 // recommendation. 1828 DefaultTargetInstance bool 1829 1830 // The expected cost to operate this instance type on a monthly basis. 1831 EstimatedMonthlyCost *string 1832 1833 // The estimated savings that result from modification, on a monthly basis. 1834 EstimatedMonthlySavings *string 1835 1836 // The expected utilization metrics for target instance type. 1837 ExpectedResourceUtilization *ResourceUtilization 1838 1839 // Explains the actions you might need to take in order to successfully migrate 1840 // your workloads from the current instance type to the recommended instance type. 1841 PlatformDifferences []PlatformDifference 1842 1843 // Details on the target instance type. 1844 ResourceDetails *ResourceDetails 1845 1846 noSmithyDocumentSerde 1847} 1848 1849// Details on termination recommendation. 1850type TerminateRecommendationDetail struct { 1851 1852 // The currency code that Amazon Web Services used to calculate the costs for this 1853 // instance. 1854 CurrencyCode *string 1855 1856 // The estimated savings that result from modification, on a monthly basis. 1857 EstimatedMonthlySavings *string 1858 1859 noSmithyDocumentSerde 1860} 1861 1862// Filters cost anomalies based on the total impact. 1863type TotalImpactFilter struct { 1864 1865 // The comparing value that's used in the filter. 1866 // 1867 // This member is required. 1868 NumericOperator NumericOperator 1869 1870 // The lower bound dollar value that's used in the filter. 1871 // 1872 // This member is required. 1873 StartValue float64 1874 1875 // The upper bound dollar value that's used in the filter. 1876 EndValue float64 1877 1878 noSmithyDocumentSerde 1879} 1880 1881// The amount of utilization, in hours. 1882type UtilizationByTime struct { 1883 1884 // The groups that this utilization result uses. 1885 Groups []ReservationUtilizationGroup 1886 1887 // The period of time that this utilization was used for. 1888 TimePeriod *DateInterval 1889 1890 // The total number of reservation hours that were used. 1891 Total *ReservationAggregates 1892 1893 noSmithyDocumentSerde 1894} 1895 1896type noSmithyDocumentSerde = smithydocument.NoSerde 1897