// Code generated by smithy-go-codegen DO NOT EDIT. package types import ( smithydocument "github.com/aws/smithy-go/document" ) // An unusual cost pattern. This consists of the detailed metadata and the current // status of the anomaly object. type Anomaly struct { // The unique identifier for the anomaly. // // This member is required. AnomalyId *string // The latest and maximum score for the anomaly. // // This member is required. AnomalyScore *AnomalyScore // The dollar impact for the anomaly. // // This member is required. Impact *Impact // The Amazon Resource Name (ARN) for the cost monitor that generated this anomaly. // // This member is required. MonitorArn *string // The last day the anomaly is detected. AnomalyEndDate *string // The first day the anomaly is detected. AnomalyStartDate *string // The dimension for the anomaly (for example, an Amazon Web Service in a service // monitor). DimensionValue *string // The feedback value. Feedback AnomalyFeedbackType // The list of identified root causes for the anomaly. RootCauses []RootCause noSmithyDocumentSerde } // The time period for an anomaly. type AnomalyDateInterval struct { // The first date an anomaly was observed. // // This member is required. StartDate *string // The last date an anomaly was observed. EndDate *string noSmithyDocumentSerde } // This object continuously inspects your account's cost data for anomalies. It's // based on MonitorType and MonitorSpecification . The content consists of detailed // metadata and the current status of the monitor object. type AnomalyMonitor struct { // The name of the monitor. // // This member is required. MonitorName *string // The possible type values. // // This member is required. MonitorType MonitorType // The date when the monitor was created. CreationDate *string // The value for evaluated dimensions. DimensionalValueCount int32 // The date when the monitor last evaluated for anomalies. LastEvaluatedDate *string // The date when the monitor was last updated. LastUpdatedDate *string // The Amazon Resource Name (ARN) value. MonitorArn *string // The dimensions to evaluate. MonitorDimension MonitorDimension // Use Expression to filter in various Cost Explorer APIs. Not all Expression // types are supported in each API. Refer to the documentation for each specific // API to see what is supported. There are two patterns: // - Simple dimension values. // - There are three types of simple dimension values: CostCategories , Tags , // and Dimensions . // - Specify the CostCategories field to define a filter that acts on Cost // Categories. // - Specify the Tags field to define a filter that acts on Cost Allocation Tags. // - Specify the Dimensions field to define a filter that acts on the // DimensionValues (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_DimensionValues.html) // . // - For each filter type, you can set the dimension name and values for the // filters that you plan to use. // - For example, you can filter for REGION==us-east-1 OR REGION==us-west-1 . For // GetRightsizingRecommendation , the Region is a full name (for example, // REGION==US East (N. Virginia) . // - The corresponding Expression for this example is as follows: { // "Dimensions": { "Key": "REGION", "Values": [ "us-east-1", "us-west-1" ] } } // - As shown in the previous example, lists of dimension values are combined // with OR when applying the filter. // - You can also set different match options to further control how the filter // behaves. Not all APIs support match options. Refer to the documentation for each // specific API to see what is supported. // - For example, you can filter for linked account names that start with "a". // - The corresponding Expression for this example is as follows: { // "Dimensions": { "Key": "LINKED_ACCOUNT_NAME", "MatchOptions": [ "STARTS_WITH" ], // "Values": [ "a" ] } } // - Compound Expression types with logical operations. // - You can use multiple Expression types and the logical operators AND/OR/NOT // to create a list of one or more Expression objects. By doing this, you can // filter by more advanced options. // - For example, you can filter by ((REGION == us-east-1 OR REGION == // us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer) . // - The corresponding Expression for this example is as follows: { "And": [ // {"Or": [ {"Dimensions": { "Key": "REGION", "Values": [ "us-east-1", "us-west-1" // ] }}, {"Tags": { "Key": "TagName", "Values": ["Value1"] } } ]}, {"Not": // {"Dimensions": { "Key": "USAGE_TYPE", "Values": ["DataTransfer"] }}} ] } // Because each Expression can have only one operator, the service returns an // error if more than one is specified. The following example shows an Expression // object that creates an error: { "And": [ ... ], "Dimensions": { "Key": // "USAGE_TYPE", "Values": [ "DataTransfer" ] } } The following is an example of // the corresponding error message: "Expression has more than one roots. Only // one root operator is allowed for each expression: And, Or, Not, Dimensions, // Tags, CostCategories" // For the GetRightsizingRecommendation action, a combination of OR and NOT isn't // supported. OR isn't supported between different dimensions, or dimensions and // tags. NOT operators aren't supported. Dimensions are also limited to // LINKED_ACCOUNT , REGION , or RIGHTSIZING_TYPE . For the // GetReservationPurchaseRecommendation action, only NOT is supported. AND and OR // aren't supported. Dimensions are limited to LINKED_ACCOUNT . MonitorSpecification *Expression noSmithyDocumentSerde } // Quantifies the anomaly. The higher score means that it's more anomalous. type AnomalyScore struct { // The last observed score. // // This member is required. CurrentScore float64 // The maximum score that's observed during the AnomalyDateInterval . // // This member is required. MaxScore float64 noSmithyDocumentSerde } // An AnomalySubscription resource (also referred to as an alert subscription) // sends notifications about specific anomalies that meet an alerting criteria // defined by you. You can specify the frequency of the alerts and the subscribers // to notify. Anomaly subscriptions can be associated with one or more // AnomalyMonitor (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_AnomalyMonitor.html) // resources, and they only send notifications about anomalies detected by those // associated monitors. You can also configure a threshold to further control which // anomalies are included in the notifications. Anomalies that don’t exceed the // chosen threshold and therefore don’t trigger notifications from an anomaly // subscription will still be available on the console and from the GetAnomalies (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_GetAnomalies.html) // API. type AnomalySubscription struct { // The frequency that anomaly notifications are sent. Notifications are sent // either over email (for DAILY and WEEKLY frequencies) or SNS (for IMMEDIATE // frequency). For more information, see Creating an Amazon SNS topic for anomaly // notifications (https://docs.aws.amazon.com/cost-management/latest/userguide/ad-SNS.html) // . // // This member is required. Frequency AnomalySubscriptionFrequency // A list of cost anomaly monitors. // // This member is required. MonitorArnList []string // A list of subscribers to notify. // // This member is required. Subscribers []Subscriber // The name for the subscription. // // This member is required. SubscriptionName *string // Your unique account identifier. AccountId *string // The AnomalySubscription Amazon Resource Name (ARN). SubscriptionArn *string // (deprecated) An absolute dollar value that must be exceeded by the anomaly's // total impact (see Impact (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Impact.html) // for more details) for an anomaly notification to be generated. This field has // been deprecated. To specify a threshold, use ThresholdExpression. Continued use // of Threshold will be treated as shorthand syntax for a ThresholdExpression. One // of Threshold or ThresholdExpression is required for this resource. You cannot // specify both. // // Deprecated: Threshold has been deprecated in favor of ThresholdExpression Threshold *float64 // An Expression (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html) // object used to specify the anomalies that you want to generate alerts for. This // supports dimensions and nested expressions. The supported dimensions are // ANOMALY_TOTAL_IMPACT_ABSOLUTE and ANOMALY_TOTAL_IMPACT_PERCENTAGE , // corresponding to an anomaly’s TotalImpact and TotalImpactPercentage, // respectively (see Impact (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Impact.html) // for more details). The supported nested expression types are AND and OR . The // match option GREATER_THAN_OR_EQUAL is required. Values must be numbers between // 0 and 10,000,000,000 in string format. One of Threshold or ThresholdExpression // is required for this resource. You cannot specify both. The following are // examples of valid ThresholdExpressions: // - Absolute threshold: { "Dimensions": { "Key": // "ANOMALY_TOTAL_IMPACT_ABSOLUTE", "MatchOptions": [ "GREATER_THAN_OR_EQUAL" ], // "Values": [ "100" ] } } // - Percentage threshold: { "Dimensions": { "Key": // "ANOMALY_TOTAL_IMPACT_PERCENTAGE", "MatchOptions": [ "GREATER_THAN_OR_EQUAL" ], // "Values": [ "100" ] } } // - AND two thresholds together: { "And": [ { "Dimensions": { "Key": // "ANOMALY_TOTAL_IMPACT_ABSOLUTE", "MatchOptions": [ "GREATER_THAN_OR_EQUAL" ], // "Values": [ "100" ] } }, { "Dimensions": { "Key": // "ANOMALY_TOTAL_IMPACT_PERCENTAGE", "MatchOptions": [ "GREATER_THAN_OR_EQUAL" ], // "Values": [ "100" ] } } ] } // - OR two thresholds together: { "Or": [ { "Dimensions": { "Key": // "ANOMALY_TOTAL_IMPACT_ABSOLUTE", "MatchOptions": [ "GREATER_THAN_OR_EQUAL" ], // "Values": [ "100" ] } }, { "Dimensions": { "Key": // "ANOMALY_TOTAL_IMPACT_PERCENTAGE", "MatchOptions": [ "GREATER_THAN_OR_EQUAL" ], // "Values": [ "100" ] } } ] } ThresholdExpression *Expression noSmithyDocumentSerde } // The cost allocation tag structure. This includes detailed metadata for the // CostAllocationTag object. type CostAllocationTag struct { // The status of a cost allocation tag. // // This member is required. Status CostAllocationTagStatus // The key for the cost allocation tag. // // This member is required. TagKey *string // The type of cost allocation tag. You can use AWSGenerated or UserDefined type // tags. AWSGenerated type tags are tags that Amazon Web Services defines and // applies to support Amazon Web Services resources for cost allocation purposes. // UserDefined type tags are tags that you define, create, and apply to resources. // // This member is required. Type CostAllocationTagType noSmithyDocumentSerde } // The cost allocation tag status. The status of a key can either be active or // inactive. type CostAllocationTagStatusEntry struct { // The status of a cost allocation tag. // // This member is required. Status CostAllocationTagStatus // The key for the cost allocation tag. // // This member is required. TagKey *string noSmithyDocumentSerde } // The structure of Cost Categories. This includes detailed metadata and the set // of rules for the CostCategory object. type CostCategory struct { // The unique identifier for your Cost Category. // // This member is required. CostCategoryArn *string // The effective start date of your Cost Category. // // This member is required. EffectiveStart *string // The unique name of the Cost Category. // // This member is required. Name *string // The rule schema version in this particular Cost Category. // // This member is required. RuleVersion CostCategoryRuleVersion // The rules are processed in order. If there are multiple rules that match the // line item, then the first rule to match is used to determine that Cost Category // value. // // This member is required. Rules []CostCategoryRule // The default value for the cost category. DefaultValue *string // The effective end date of your Cost Category. EffectiveEnd *string // The list of processing statuses for Cost Management products for a specific // cost category. ProcessingStatus []CostCategoryProcessingStatus // The split charge rules that are used to allocate your charges between your Cost // Category values. SplitChargeRules []CostCategorySplitChargeRule noSmithyDocumentSerde } // When you create or update a cost category, you can define the CostCategoryRule // rule type as INHERITED_VALUE . This rule type adds the flexibility to define a // rule that dynamically inherits the cost category value from the dimension value // that's defined by CostCategoryInheritedValueDimension . For example, suppose // that you want to dynamically group costs that are based on the value of a // specific tag key. First, choose an inherited value rule type, and then choose // the tag dimension and specify the tag key to use. type CostCategoryInheritedValueDimension struct { // The key to extract cost category values. DimensionKey *string // The name of the dimension that's used to group costs. If you specify // LINKED_ACCOUNT_NAME , the cost category value is based on account name. If you // specify TAG , the cost category value is based on the value of the specified tag // key. DimensionName CostCategoryInheritedValueDimensionName noSmithyDocumentSerde } // The list of processing statuses for Cost Management products for a specific // cost category. type CostCategoryProcessingStatus struct { // The Cost Management product name of the applied status. Component CostCategoryStatusComponent // The process status for a specific cost category. Status CostCategoryStatus noSmithyDocumentSerde } // A reference to a Cost Category containing only enough information to identify // the Cost Category. You can use this information to retrieve the full Cost // Category information using DescribeCostCategory . type CostCategoryReference struct { // The unique identifier for your Cost Category. CostCategoryArn *string // The default value for the cost category. DefaultValue *string // The Cost Category's effective end date. EffectiveEnd *string // The Cost Category's effective start date. EffectiveStart *string // The unique name of the Cost Category. Name *string // The number of rules that are associated with a specific Cost Category. NumberOfRules int32 // The list of processing statuses for Cost Management products for a specific // cost category. ProcessingStatus []CostCategoryProcessingStatus // A list of unique cost category values in a specific cost category. Values []string noSmithyDocumentSerde } // Rules are processed in order. If there are multiple rules that match the line // item, then the first rule to match is used to determine that Cost Category // value. type CostCategoryRule struct { // The value the line item is categorized as if the line item contains the matched // dimension. InheritedValue *CostCategoryInheritedValueDimension // An Expression (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html) // object used to categorize costs. This supports dimensions, tags, and nested // expressions. Currently the only dimensions supported are LINKED_ACCOUNT , // SERVICE_CODE , RECORD_TYPE , LINKED_ACCOUNT_NAME , REGION , and USAGE_TYPE . // RECORD_TYPE is a dimension used for Cost Explorer APIs, and is also supported // for Cost Category expressions. This dimension uses different terms, depending on // whether you're using the console or API/JSON editor. For a detailed comparison, // see Term Comparisons (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/manage-cost-categories.html#cost-categories-terms) // in the Billing and Cost Management User Guide. Rule *Expression // You can define the CostCategoryRule rule type as either REGULAR or // INHERITED_VALUE . The INHERITED_VALUE rule type adds the flexibility to define // a rule that dynamically inherits the cost category value. This value is from the // dimension value that's defined by CostCategoryInheritedValueDimension . For // example, suppose that you want to costs to be dynamically grouped based on the // value of a specific tag key. First, choose an inherited value rule type, and // then choose the tag dimension and specify the tag key to use. Type CostCategoryRuleType // The default value for the cost category. Value *string noSmithyDocumentSerde } // Use the split charge rule to split the cost of one Cost Category value across // several other target values. type CostCategorySplitChargeRule struct { // The method that's used to define how to split your source costs across your // targets. Proportional - Allocates charges across your targets based on the // proportional weighted cost of each target. Fixed - Allocates charges across // your targets based on your defined allocation percentage. > Even - Allocates // costs evenly across all targets. // // This member is required. Method CostCategorySplitChargeMethod // The Cost Category value that you want to split. That value can't be used as a // source or a target in other split charge rules. To indicate uncategorized costs, // you can use an empty string as the source. // // This member is required. Source *string // The Cost Category values that you want to split costs across. These values // can't be used as a source in other split charge rules. // // This member is required. Targets []string // The parameters for a split charge method. This is only required for the FIXED // method. Parameters []CostCategorySplitChargeRuleParameter noSmithyDocumentSerde } // The parameters for a split charge method. type CostCategorySplitChargeRuleParameter struct { // The parameter type. // // This member is required. Type CostCategorySplitChargeRuleParameterType // The parameter values. // // This member is required. Values []string noSmithyDocumentSerde } // The Cost Categories values used for filtering the costs. If Values and Key are // not specified, the ABSENT MatchOption is applied to all Cost Categories. That // is, it filters on resources that aren't mapped to any Cost Categories. If Values // is provided and Key isn't specified, the ABSENT MatchOption is applied to the // Cost Categories Key only. That is, it filters on resources without the given // Cost Categories key. type CostCategoryValues struct { // The unique name of the Cost Category. Key *string // The match options that you can use to filter your results. MatchOptions is only // applicable for actions related to cost category. The default values for // MatchOptions is EQUALS and CASE_SENSITIVE . MatchOptions []MatchOption // The specific value of the Cost Category. Values []string noSmithyDocumentSerde } // The amount of instance usage that a reservation covered. type Coverage struct { // The amount of cost that the reservation covered. CoverageCost *CoverageCost // The amount of instance usage that the reservation covered, in hours. CoverageHours *CoverageHours // The amount of instance usage that the reservation covered, in normalized units. CoverageNormalizedUnits *CoverageNormalizedUnits noSmithyDocumentSerde } // Reservation coverage for a specified period, in hours. type CoverageByTime struct { // The groups of instances that the reservation covered. Groups []ReservationCoverageGroup // The period that this coverage was used over. TimePeriod *DateInterval // The total reservation coverage, in hours. Total *Coverage noSmithyDocumentSerde } // How much it costs to run an instance. type CoverageCost struct { // How much an On-Demand Instance costs. OnDemandCost *string noSmithyDocumentSerde } // How long a running instance either used a reservation or was On-Demand. type CoverageHours struct { // The percentage of instance hours that a reservation covered. CoverageHoursPercentage *string // The number of instance running hours that On-Demand Instances covered. OnDemandHours *string // The number of instance running hours that reservations covered. ReservedHours *string // The total instance usage, in hours. TotalRunningHours *string noSmithyDocumentSerde } // The amount of instance usage, in normalized units. You can use normalized units // to see your EC2 usage for multiple sizes of instances in a uniform way. For // example, suppose that you run an xlarge instance and a 2xlarge instance. If you // run both instances for the same amount of time, the 2xlarge instance uses twice // as much of your reservation as the xlarge instance, even though both instances // show only one instance-hour. When you use normalized units instead of // instance-hours, the xlarge instance used 8 normalized units, and the 2xlarge // instance used 16 normalized units. For more information, see Modifying Reserved // Instances (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-modifying.html) // in the Amazon Elastic Compute Cloud User Guide for Linux Instances. type CoverageNormalizedUnits struct { // The percentage of your used instance normalized units that a reservation covers. CoverageNormalizedUnitsPercentage *string // The number of normalized units that are covered by On-Demand Instances instead // of a reservation. OnDemandNormalizedUnits *string // The number of normalized units that a reservation covers. ReservedNormalizedUnits *string // The total number of normalized units that you used. TotalRunningNormalizedUnits *string noSmithyDocumentSerde } // Context about the current instance. type CurrentInstance struct { // The currency code that Amazon Web Services used to calculate the costs for this // instance. CurrencyCode *string // The name that you given an instance. This field shows as blank if you haven't // given the instance a name. InstanceName *string // The current On-Demand cost of operating this instance on a monthly basis. MonthlyCost *string // The number of hours during the lookback period that's billed at On-Demand rates. OnDemandHoursInLookbackPeriod *string // The number of hours during the lookback period that's covered by reservations. ReservationCoveredHoursInLookbackPeriod *string // Details about the resource and utilization. ResourceDetails *ResourceDetails // Resource ID of the current instance. ResourceId *string // Utilization information of the current instance during the lookback period. ResourceUtilization *ResourceUtilization // The number of hours during the lookback period that's covered by Savings Plans. SavingsPlansCoveredHoursInLookbackPeriod *string // Cost allocation resource tags that are applied to the instance. Tags []TagValues // The total number of hours that the instance ran during the lookback period. TotalRunningHoursInLookbackPeriod *string noSmithyDocumentSerde } // The time period of the request. type DateInterval struct { // The end of the time period. The end date is exclusive. For example, if end is // 2017-05-01 , Amazon Web Services retrieves cost and usage data from the start // date up to, but not including, 2017-05-01 . // // This member is required. End *string // The beginning of the time period. The start date is inclusive. For example, if // start is 2017-01-01 , Amazon Web Services retrieves cost and usage data starting // at 2017-01-01 up to the end date. The start date must be equal to or no later // than the current date to avoid a validation error. // // This member is required. Start *string noSmithyDocumentSerde } // The metadata that you can use to filter and group your results. You can use // GetDimensionValues to find specific values. type DimensionValues struct { // The names of the metadata types that you can use to filter and group your // results. For example, AZ returns a list of Availability Zones. Not all // dimensions are supported in each API. Refer to the documentation for each // specific API to see what is supported. LINK_ACCOUNT_NAME and SERVICE_CODE can // only be used in CostCategoryRule (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_CostCategoryRule.html) // . ANOMALY_TOTAL_IMPACT_ABSOLUTE and ANOMALY_TOTAL_IMPACT_PERCENTAGE can only be // used in AnomalySubscriptions (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_AnomalySubscription.html) // . Key Dimension // The match options that you can use to filter your results. MatchOptions is only // applicable for actions related to Cost Category and Anomaly Subscriptions. Refer // to the documentation for each specific API to see what is supported. The default // values for MatchOptions are EQUALS and CASE_SENSITIVE . MatchOptions []MatchOption // The metadata values that you can use to filter and group your results. You can // use GetDimensionValues to find specific values. Values []string noSmithyDocumentSerde } // The metadata of a specific type that you can use to filter and group your // results. You can use GetDimensionValues to find specific values. type DimensionValuesWithAttributes struct { // The attribute that applies to a specific Dimension . Attributes map[string]string // The value of a dimension with a specific attribute. Value *string noSmithyDocumentSerde } // The field that contains a list of disk (local storage) metrics that are // associated with the current instance. type DiskResourceUtilization struct { // The maximum read throughput operations per second. DiskReadBytesPerSecond *string // The maximum number of read operations per second. DiskReadOpsPerSecond *string // The maximum write throughput operations per second. DiskWriteBytesPerSecond *string // The maximum number of write operations per second. DiskWriteOpsPerSecond *string noSmithyDocumentSerde } // The EBS field that contains a list of EBS metrics that are associated with the // current instance. type EBSResourceUtilization struct { // The maximum size of read operations per second EbsReadBytesPerSecond *string // The maximum number of read operations per second. EbsReadOpsPerSecond *string // The maximum size of write operations per second. EbsWriteBytesPerSecond *string // The maximum number of write operations per second. EbsWriteOpsPerSecond *string noSmithyDocumentSerde } // Details about the Amazon EC2 instances that Amazon Web Services recommends that // you purchase. type EC2InstanceDetails struct { // The Availability Zone of the recommended reservation. AvailabilityZone *string // Determines whether the recommendation is for a current-generation instance. CurrentGeneration bool // The instance family of the recommended reservation. Family *string // The type of instance that Amazon Web Services recommends. InstanceType *string // The platform of the recommended reservation. The platform is the specific // combination of operating system, license model, and software on an instance. Platform *string // The Amazon Web Services Region of the recommended reservation. Region *string // Determines whether the recommended reservation is size flexible. SizeFlexEligible bool // Determines whether the recommended reservation is dedicated or shared. Tenancy *string noSmithyDocumentSerde } // Details on the Amazon EC2 Resource. type EC2ResourceDetails struct { // The hourly public On-Demand rate for the instance type. HourlyOnDemandRate *string // The type of Amazon Web Services instance. InstanceType *string // The memory capacity of the Amazon Web Services instance. Memory *string // The network performance capacity of the Amazon Web Services instance. NetworkPerformance *string // The platform of the Amazon Web Services instance. The platform is the specific // combination of operating system, license model, and software on an instance. Platform *string // The Amazon Web Services Region of the instance. Region *string // The SKU of the product. Sku *string // The disk storage of the Amazon Web Services instance. This doesn't include EBS // storage. Storage *string // The number of VCPU cores in the Amazon Web Services instance type. Vcpu *string noSmithyDocumentSerde } // Utilization metrics for the instance. type EC2ResourceUtilization struct { // The field that contains a list of disk (local storage) metrics that are // associated with the current instance. DiskResourceUtilization *DiskResourceUtilization // The EBS field that contains a list of EBS metrics that are associated with the // current instance. EBSResourceUtilization *EBSResourceUtilization // The maximum observed or expected CPU utilization of the instance. MaxCpuUtilizationPercentage *string // The maximum observed or expected memory utilization of the instance. MaxMemoryUtilizationPercentage *string // The maximum observed or expected storage utilization of the instance. This // doesn't include EBS storage. MaxStorageUtilizationPercentage *string // The network field that contains a list of network metrics that are associated // with the current instance. NetworkResourceUtilization *NetworkResourceUtilization noSmithyDocumentSerde } // The Amazon EC2 hardware specifications that you want Amazon Web Services to // provide recommendations for. type EC2Specification struct { // Indicates whether you want a recommendation for standard or convertible // reservations. OfferingClass OfferingClass noSmithyDocumentSerde } // Details about the Amazon ElastiCache instances that Amazon Web Services // recommends that you purchase. type ElastiCacheInstanceDetails struct { // Determines whether the recommendation is for a current generation instance. CurrentGeneration bool // The instance family of the recommended reservation. Family *string // The type of node that Amazon Web Services recommends. NodeType *string // The description of the recommended reservation. ProductDescription *string // The Amazon Web Services Region of the recommended reservation. Region *string // Determines whether the recommended reservation is size flexible. SizeFlexEligible bool noSmithyDocumentSerde } // Details about the Amazon OpenSearch Service instances that Amazon Web Services // recommends that you purchase. type ESInstanceDetails struct { // Determines whether the recommendation is for a current-generation instance. CurrentGeneration bool // The class of instance that Amazon Web Services recommends. InstanceClass *string // The size of instance that Amazon Web Services recommends. InstanceSize *string // The Amazon Web Services Region of the recommended reservation. Region *string // Determines whether the recommended reservation is size flexible. SizeFlexEligible bool noSmithyDocumentSerde } // Use Expression to filter in various Cost Explorer APIs. Not all Expression // types are supported in each API. Refer to the documentation for each specific // API to see what is supported. There are two patterns: // - Simple dimension values. // - There are three types of simple dimension values: CostCategories , Tags , // and Dimensions . // - Specify the CostCategories field to define a filter that acts on Cost // Categories. // - Specify the Tags field to define a filter that acts on Cost Allocation Tags. // - Specify the Dimensions field to define a filter that acts on the // DimensionValues (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_DimensionValues.html) // . // - For each filter type, you can set the dimension name and values for the // filters that you plan to use. // - For example, you can filter for REGION==us-east-1 OR REGION==us-west-1 . For // GetRightsizingRecommendation , the Region is a full name (for example, // REGION==US East (N. Virginia) . // - The corresponding Expression for this example is as follows: { // "Dimensions": { "Key": "REGION", "Values": [ "us-east-1", "us-west-1" ] } } // - As shown in the previous example, lists of dimension values are combined // with OR when applying the filter. // - You can also set different match options to further control how the filter // behaves. Not all APIs support match options. Refer to the documentation for each // specific API to see what is supported. // - For example, you can filter for linked account names that start with "a". // - The corresponding Expression for this example is as follows: { // "Dimensions": { "Key": "LINKED_ACCOUNT_NAME", "MatchOptions": [ "STARTS_WITH" ], // "Values": [ "a" ] } } // - Compound Expression types with logical operations. // - You can use multiple Expression types and the logical operators AND/OR/NOT // to create a list of one or more Expression objects. By doing this, you can // filter by more advanced options. // - For example, you can filter by ((REGION == us-east-1 OR REGION == // us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer) . // - The corresponding Expression for this example is as follows: { "And": [ // {"Or": [ {"Dimensions": { "Key": "REGION", "Values": [ "us-east-1", "us-west-1" // ] }}, {"Tags": { "Key": "TagName", "Values": ["Value1"] } } ]}, {"Not": // {"Dimensions": { "Key": "USAGE_TYPE", "Values": ["DataTransfer"] }}} ] } // Because each Expression can have only one operator, the service returns an // error if more than one is specified. The following example shows an Expression // object that creates an error: { "And": [ ... ], "Dimensions": { "Key": // "USAGE_TYPE", "Values": [ "DataTransfer" ] } } The following is an example of // the corresponding error message: "Expression has more than one roots. Only // one root operator is allowed for each expression: And, Or, Not, Dimensions, // Tags, CostCategories" // // For the GetRightsizingRecommendation action, a combination of OR and NOT isn't // supported. OR isn't supported between different dimensions, or dimensions and // tags. NOT operators aren't supported. Dimensions are also limited to // LINKED_ACCOUNT , REGION , or RIGHTSIZING_TYPE . For the // GetReservationPurchaseRecommendation action, only NOT is supported. AND and OR // aren't supported. Dimensions are limited to LINKED_ACCOUNT . type Expression struct { // Return results that match both Dimension objects. And []Expression // The filter that's based on CostCategory values. CostCategories *CostCategoryValues // The specific Dimension to use for Expression . Dimensions *DimensionValues // Return results that don't match a Dimension object. Not *Expression // Return results that match either Dimension object. Or []Expression // The specific Tag to use for Expression . Tags *TagValues noSmithyDocumentSerde } // The forecast that's created for your query. type ForecastResult struct { // The mean value of the forecast. MeanValue *string // The lower limit for the prediction interval. PredictionIntervalLowerBound *string // The upper limit for the prediction interval. PredictionIntervalUpperBound *string // The period of time that the forecast covers. TimePeriod *DateInterval noSmithyDocumentSerde } // The summary of the Savings Plans recommendation generation. type GenerationSummary struct { // Indicates the estimated time for when the recommendation generation will // complete. EstimatedCompletionTime *string // Indicates the completion time of the recommendation generation. GenerationCompletionTime *string // Indicates the start time of the recommendation generation. GenerationStartedTime *string // Indicates whether the recommendation generation succeeded, is processing, or // failed. GenerationStatus GenerationStatus // Indicates the ID for this specific recommendation. RecommendationId *string noSmithyDocumentSerde } // One level of grouped data in the results. type Group struct { // The keys that are included in this group. Keys []string // The metrics that are included in this group. Metrics map[string]MetricValue noSmithyDocumentSerde } // Represents a group when you specify a group by criteria or in the response to a // query with a specific grouping. type GroupDefinition struct { // The string that represents a key for a specified group. Key *string // The string that represents the type of group. Type GroupDefinitionType noSmithyDocumentSerde } // The dollar value of the anomaly. type Impact struct { // The maximum dollar value that's observed for an anomaly. // // This member is required. MaxImpact float64 // The cumulative dollar amount that was actually spent during the anomaly. TotalActualSpend *float64 // The cumulative dollar amount that was expected to be spent during the anomaly. // It is calculated using advanced machine learning models to determine the typical // spending pattern based on historical data for a customer. TotalExpectedSpend *float64 // The cumulative dollar difference between the total actual spend and total // expected spend. It is calculated as TotalActualSpend - TotalExpectedSpend . TotalImpact float64 // The cumulative percentage difference between the total actual spend and total // expected spend. It is calculated as (TotalImpact / TotalExpectedSpend) * 100 . // When TotalExpectedSpend is zero, this field is omitted. Expected spend can be // zero in situations such as when you start to use a service for the first time. TotalImpactPercentage *float64 noSmithyDocumentSerde } // Details about the instances that Amazon Web Services recommends that you // purchase. type InstanceDetails struct { // The Amazon EC2 instances that Amazon Web Services recommends that you purchase. EC2InstanceDetails *EC2InstanceDetails // The Amazon OpenSearch Service instances that Amazon Web Services recommends // that you purchase. ESInstanceDetails *ESInstanceDetails // The ElastiCache instances that Amazon Web Services recommends that you purchase. ElastiCacheInstanceDetails *ElastiCacheInstanceDetails // The Amazon RDS instances that Amazon Web Services recommends that you purchase. RDSInstanceDetails *RDSInstanceDetails // The Amazon Redshift instances that Amazon Web Services recommends that you // purchase. RedshiftInstanceDetails *RedshiftInstanceDetails noSmithyDocumentSerde } // The aggregated value for a metric. type MetricValue struct { // The actual number that represents the metric. Amount *string // The unit that the metric is given in. Unit *string noSmithyDocumentSerde } // Details for the modification recommendation. type ModifyRecommendationDetail struct { // Determines whether this instance type is the Amazon Web Services default // recommendation. TargetInstances []TargetInstance noSmithyDocumentSerde } // The network field that contains a list of network metrics that are associated // with the current instance. type NetworkResourceUtilization struct { // The network inbound throughput utilization measured in Bytes per second (Bps). NetworkInBytesPerSecond *string // The network outbound throughput utilization measured in Bytes per second (Bps). NetworkOutBytesPerSecond *string // The network inbound packets that are measured in packets per second. NetworkPacketsInPerSecond *string // The network outbound packets that are measured in packets per second. NetworkPacketsOutPerSecond *string noSmithyDocumentSerde } // Details about the Amazon RDS instances that Amazon Web Services recommends that // you purchase. type RDSInstanceDetails struct { // Determines whether the recommendation is for a current-generation instance. CurrentGeneration bool // The database edition that the recommended reservation supports. DatabaseEdition *string // The database engine that the recommended reservation supports. DatabaseEngine *string // Determines whether the recommendation is for a reservation in a single // Availability Zone or a reservation with a backup in a second Availability Zone. DeploymentOption *string // The instance family of the recommended reservation. Family *string // The type of instance that Amazon Web Services recommends. InstanceType *string // The license model that the recommended reservation supports. LicenseModel *string // The Amazon Web Services Region of the recommended reservation. Region *string // Determines whether the recommended reservation is size flexible. SizeFlexEligible bool noSmithyDocumentSerde } // The details and metrics for the given recommendation. type RecommendationDetailData struct { // The AccountID that the recommendation is generated for. AccountId *string // The account scope that you want your recommendations for. Amazon Web Services // calculates recommendations including the management account and member accounts // if the value is set to PAYER. If the value is LINKED, recommendations are // calculated for individual member accounts only. AccountScope AccountScope // The currency code that Amazon Web Services used to generate the recommendation // and present potential savings. CurrencyCode *string // The average value of hourly coverage over the lookback period. CurrentAverageCoverage *string // The average value of hourly On-Demand spend over the lookback period of the // applicable usage type. CurrentAverageHourlyOnDemandSpend *string // The highest value of hourly On-Demand spend over the lookback period of the // applicable usage type. CurrentMaximumHourlyOnDemandSpend *string // The lowest value of hourly On-Demand spend over the lookback period of the // applicable usage type. CurrentMinimumHourlyOnDemandSpend *string // The estimated coverage of the recommended Savings Plan. EstimatedAverageCoverage *string // The estimated utilization of the recommended Savings Plan. EstimatedAverageUtilization *string // The estimated monthly savings amount based on the recommended Savings Plan. EstimatedMonthlySavingsAmount *string // The remaining On-Demand cost estimated to not be covered by the recommended // Savings Plan, over the length of the lookback period. EstimatedOnDemandCost *string // The estimated On-Demand costs you expect with no additional commitment, based // on your usage of the selected time period and the Savings Plan you own. EstimatedOnDemandCostWithCurrentCommitment *string // The estimated return on investment that's based on the recommended Savings Plan // that you purchased. This is calculated as // estimatedSavingsAmount/estimatedSPCost*100. EstimatedROI *string // The cost of the recommended Savings Plan over the length of the lookback period. EstimatedSPCost *string // The estimated savings amount that's based on the recommended Savings Plan over // the length of the lookback period. EstimatedSavingsAmount *string // The estimated savings percentage relative to the total cost of applicable // On-Demand usage over the lookback period. EstimatedSavingsPercentage *string // The existing hourly commitment for the Savings Plan type. ExistingHourlyCommitment *string // The period of time that you want the usage and costs for. GenerationTimestamp *string // The recommended hourly commitment level for the Savings Plan type and the // configuration that's based on the usage during the lookback period. HourlyCommitmentToPurchase *string // The instance family of the recommended Savings Plan. InstanceFamily *string // The period of time that you want the usage and costs for. LatestUsageTimestamp *string // How many days of previous usage that Amazon Web Services considers when making // this recommendation. LookbackPeriodInDays LookbackPeriodInDays // The related hourly cost, coverage, and utilization metrics over the lookback // period. MetricsOverLookbackPeriod []RecommendationDetailHourlyMetrics // The unique ID that's used to distinguish Savings Plans from one another. OfferingId *string // The payment option for the commitment (for example, All Upfront or No Upfront). PaymentOption PaymentOption // The region the recommendation is generated for. Region *string // The requested Savings Plan recommendation type. SavingsPlansType SupportedSavingsPlansType // The term of the commitment in years. TermInYears TermInYears // The upfront cost of the recommended Savings Plan, based on the selected payment // option. UpfrontCost *string noSmithyDocumentSerde } // Contains the hourly metrics for the given recommendation over the lookback // period. type RecommendationDetailHourlyMetrics struct { // The current amount of Savings Plans eligible usage that the Savings Plan // covered. CurrentCoverage *string // The estimated coverage amount based on the recommended Savings Plan. EstimatedCoverage *string // The estimated utilization for the recommended Savings Plan. EstimatedNewCommitmentUtilization *string // The remaining On-Demand cost estimated to not be covered by the recommended // Savings Plan, over the length of the lookback period. EstimatedOnDemandCost *string // The period of time that you want the usage and costs for. StartTime *string noSmithyDocumentSerde } // Details about the Amazon Redshift instances that Amazon Web Services recommends // that you purchase. type RedshiftInstanceDetails struct { // Determines whether the recommendation is for a current-generation instance. CurrentGeneration bool // The instance family of the recommended reservation. Family *string // The type of node that Amazon Web Services recommends. NodeType *string // The Amazon Web Services Region of the recommended reservation. Region *string // Determines whether the recommended reservation is size flexible. SizeFlexEligible bool noSmithyDocumentSerde } // The aggregated numbers for your reservation usage. type ReservationAggregates struct { // The monthly cost of your reservation. It's amortized over the reservation // period. AmortizedRecurringFee *string // The upfront cost of your reservation. It's amortized over the reservation // period. AmortizedUpfrontFee *string // How much you saved due to purchasing and utilizing reservation. Amazon Web // Services calculates this by subtracting TotalAmortizedFee from // OnDemandCostOfRIHoursUsed . NetRISavings *string // How much your reservation costs if charged On-Demand rates. OnDemandCostOfRIHoursUsed *string // How many reservation hours that you purchased. PurchasedHours *string // The number of Amazon EC2 reservation hours that you purchased. It's converted // to normalized units. Normalized units are available only for Amazon EC2 usage // after November 11, 2017. PurchasedUnits *string // The cost of unused hours for your reservation. RICostForUnusedHours *string // The realized savings because of purchasing and using a reservation. RealizedSavings *string // The total number of reservation hours that you used. TotalActualHours *string // The total number of Amazon EC2 reservation hours that you used. It's converted // to normalized units. Normalized units are available only for Amazon EC2 usage // after November 11, 2017. TotalActualUnits *string // The total cost of your reservation. It's amortized over the reservation period. TotalAmortizedFee *string // How much you might save if you use your entire reservation. TotalPotentialRISavings *string // The unrealized savings because of purchasing and using a reservation. UnrealizedSavings *string // The number of reservation hours that you didn't use. UnusedHours *string // The number of Amazon EC2 reservation hours that you didn't use. It's converted // to normalized units. Normalized units are available only for Amazon EC2 usage // after November 11, 2017. UnusedUnits *string // The percentage of reservation time that you used. UtilizationPercentage *string // The percentage of Amazon EC2 reservation time that you used. It's converted to // normalized units. Normalized units are available only for Amazon EC2 usage after // November 11, 2017. UtilizationPercentageInUnits *string noSmithyDocumentSerde } // A group of reservations that share a set of attributes. type ReservationCoverageGroup struct { // The attributes for this group of reservations. Attributes map[string]string // How much instance usage this group of reservations covered. Coverage *Coverage noSmithyDocumentSerde } // A specific reservation that Amazon Web Services recommends for purchase. type ReservationPurchaseRecommendation struct { // The account scope that Amazon Web Services recommends that you purchase this // instance for. For example, you can purchase this reservation for an entire // organization in Amazon Web Services Organizations. AccountScope AccountScope // How many days of previous usage that Amazon Web Services considers when making // this recommendation. LookbackPeriodInDays LookbackPeriodInDays // The payment option for the reservation (for example, AllUpfront or NoUpfront ). PaymentOption PaymentOption // Details about the recommended purchases. RecommendationDetails []ReservationPurchaseRecommendationDetail // A summary about the recommended purchase. RecommendationSummary *ReservationPurchaseRecommendationSummary // Hardware specifications for the service that you want recommendations for. ServiceSpecification *ServiceSpecification // The term of the reservation that you want recommendations for, in years. TermInYears TermInYears noSmithyDocumentSerde } // Details about your recommended reservation purchase. type ReservationPurchaseRecommendationDetail struct { // The account that this Reserved Instance (RI) recommendation is for. AccountId *string // The average number of normalized units that you used in an hour during the // historical period. Amazon Web Services uses this to calculate your recommended // reservation purchases. AverageNormalizedUnitsUsedPerHour *string // The average number of instances that you used in an hour during the historical // period. Amazon Web Services uses this to calculate your recommended reservation // purchases. AverageNumberOfInstancesUsedPerHour *string // The average utilization of your instances. Amazon Web Services uses this to // calculate your recommended reservation purchases. AverageUtilization *string // The currency code that Amazon Web Services used to calculate the costs for this // instance. CurrencyCode *string // How long Amazon Web Services estimates that it takes for this instance to start // saving you money, in months. EstimatedBreakEvenInMonths *string // How much Amazon Web Services estimates that you spend on On-Demand Instances in // a month. EstimatedMonthlyOnDemandCost *string // How much Amazon Web Services estimates that this specific recommendation might // save you in a month. EstimatedMonthlySavingsAmount *string // How much Amazon Web Services estimates that this specific recommendation might // save you in a month, as a percentage of your overall costs. EstimatedMonthlySavingsPercentage *string // How much Amazon Web Services estimates that you might spend for all usage // during the specified historical period if you had a reservation. EstimatedReservationCostForLookbackPeriod *string // Details about the instances that Amazon Web Services recommends that you // purchase. InstanceDetails *InstanceDetails // The maximum number of normalized units that you used in an hour during the // historical period. Amazon Web Services uses this to calculate your recommended // reservation purchases. MaximumNormalizedUnitsUsedPerHour *string // The maximum number of instances that you used in an hour during the historical // period. Amazon Web Services uses this to calculate your recommended reservation // purchases. MaximumNumberOfInstancesUsedPerHour *string // The minimum number of normalized units that you used in an hour during the // historical period. Amazon Web Services uses this to calculate your recommended // reservation purchases. MinimumNormalizedUnitsUsedPerHour *string // The minimum number of instances that you used in an hour during the historical // period. Amazon Web Services uses this to calculate your recommended reservation // purchases. MinimumNumberOfInstancesUsedPerHour *string // The number of normalized units that Amazon Web Services recommends that you // purchase. RecommendedNormalizedUnitsToPurchase *string // The number of instances that Amazon Web Services recommends that you purchase. RecommendedNumberOfInstancesToPurchase *string // How much purchasing this instance costs you on a monthly basis. RecurringStandardMonthlyCost *string // How much purchasing this instance costs you upfront. UpfrontCost *string noSmithyDocumentSerde } // Information about this specific recommendation, such as the timestamp for when // Amazon Web Services made a specific recommendation. type ReservationPurchaseRecommendationMetadata struct { // The timestamp for when Amazon Web Services made this recommendation. GenerationTimestamp *string // The ID for this specific recommendation. RecommendationId *string noSmithyDocumentSerde } // A summary about this recommendation, such as the currency code, the amount that // Amazon Web Services estimates that you could save, and the total amount of // reservation to purchase. type ReservationPurchaseRecommendationSummary struct { // The currency code used for this recommendation. CurrencyCode *string // The total amount that Amazon Web Services estimates that this recommendation // could save you in a month. TotalEstimatedMonthlySavingsAmount *string // The total amount that Amazon Web Services estimates that this recommendation // could save you in a month, as a percentage of your costs. TotalEstimatedMonthlySavingsPercentage *string noSmithyDocumentSerde } // A group of reservations that share a set of attributes. type ReservationUtilizationGroup struct { // The attributes for this group of reservations. Attributes map[string]string // The key for a specific reservation attribute. Key *string // How much you used this group of reservations. Utilization *ReservationAggregates // The value of a specific reservation attribute. Value *string noSmithyDocumentSerde } // Details for the resource. type ResourceDetails struct { // Details for the Amazon EC2 resource. EC2ResourceDetails *EC2ResourceDetails noSmithyDocumentSerde } // The tag structure that contains a tag key and value. Tagging is supported only // for the following Cost Explorer resource types: AnomalyMonitor (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_AnomalyMonitor.html) // , AnomalySubscription (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_AnomalySubscription.html) // , CostCategory (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_CostCategory.html) // . type ResourceTag struct { // The key that's associated with the tag. // // This member is required. Key *string // The value that's associated with the tag. // // This member is required. Value *string noSmithyDocumentSerde } // Resource utilization of current resource. type ResourceUtilization struct { // The utilization of current Amazon EC2 instance. EC2ResourceUtilization *EC2ResourceUtilization noSmithyDocumentSerde } // The result that's associated with a time period. type ResultByTime struct { // Determines whether the result is estimated. Estimated bool // The groups that this time period includes. Groups []Group // The time period that the result covers. TimePeriod *DateInterval // The total amount of cost or usage accrued during the time period. Total map[string]MetricValue noSmithyDocumentSerde } // Recommendations to rightsize resources. type RightsizingRecommendation struct { // The account that this recommendation is for. AccountId *string // Context regarding the current instance. CurrentInstance *CurrentInstance // The list of possible reasons why the recommendation is generated, such as // under- or over-utilization of specific metrics (for example, CPU, Memory, // Network). FindingReasonCodes []FindingReasonCode // The details for the modification recommendations. ModifyRecommendationDetail *ModifyRecommendationDetail // A recommendation to either terminate or modify the resource. RightsizingType RightsizingType // The details for termination recommendations. TerminateRecommendationDetail *TerminateRecommendationDetail noSmithyDocumentSerde } // You can use RightsizingRecommendationConfiguration to customize recommendations // across two attributes. You can choose to view recommendations for instances // within the same instance families or across different instance families. You can // also choose to view your estimated savings that are associated with // recommendations with consideration of existing Savings Plans or Reserved // Instance (RI) benefits, or neither. type RightsizingRecommendationConfiguration struct { // The option to consider RI or Savings Plans discount benefits in your savings // calculation. The default value is TRUE . // // This member is required. BenefitsConsidered bool // The option to see recommendations within the same instance family or // recommendations for instances across other families. The default value is // SAME_INSTANCE_FAMILY . // // This member is required. RecommendationTarget RecommendationTarget noSmithyDocumentSerde } // Metadata for this recommendation set. type RightsizingRecommendationMetadata struct { // Additional metadata that might be applicable to the recommendation. AdditionalMetadata *string // The timestamp for when Amazon Web Services made this recommendation. GenerationTimestamp *string // The number of days of previous usage that Amazon Web Services considers when // making this recommendation. LookbackPeriodInDays LookbackPeriodInDays // The ID for this specific recommendation. RecommendationId *string noSmithyDocumentSerde } // The summary of rightsizing recommendations type RightsizingRecommendationSummary struct { // The estimated total savings resulting from modifications, on a monthly basis. EstimatedTotalMonthlySavingsAmount *string // The currency code that Amazon Web Services used to calculate the savings. SavingsCurrencyCode *string // The savings percentage based on the recommended modifications. It's relative to // the total On-Demand costs that are associated with these instances. SavingsPercentage *string // The total number of instance recommendations. TotalRecommendationCount *string noSmithyDocumentSerde } // The combination of Amazon Web Service, linked account, linked account name, // Region, and usage type where a cost anomaly is observed. The linked account name // will only be available when the account name can be identified. type RootCause struct { // The member account value that's associated with the cost anomaly. LinkedAccount *string // The member account name value that's associated with the cost anomaly. LinkedAccountName *string // The Amazon Web Services Region that's associated with the cost anomaly. Region *string // The Amazon Web Service name that's associated with the cost anomaly. Service *string // The UsageType value that's associated with the cost anomaly. UsageType *string noSmithyDocumentSerde } // The amortized amount of Savings Plans purchased in a specific account during a // specific time interval. type SavingsPlansAmortizedCommitment struct { // The amortized amount of your Savings Plans commitment that was purchased with // either a Partial or a NoUpfront . AmortizedRecurringCommitment *string // The amortized amount of your Savings Plans commitment that was purchased with // an Upfront or PartialUpfront Savings Plans. AmortizedUpfrontCommitment *string // The total amortized amount of your Savings Plans commitment, regardless of your // Savings Plans purchase method. TotalAmortizedCommitment *string noSmithyDocumentSerde } // The amount of Savings Plans eligible usage that's covered by Savings Plans. All // calculations consider the On-Demand equivalent of your Savings Plans usage. type SavingsPlansCoverage struct { // The attribute that applies to a specific Dimension . Attributes map[string]string // The amount of Savings Plans eligible usage that the Savings Plans covered. Coverage *SavingsPlansCoverageData // The time period of the request. TimePeriod *DateInterval noSmithyDocumentSerde } // Specific coverage percentage, On-Demand costs, and spend covered by Savings // Plans, and total Savings Plans costs for an account. type SavingsPlansCoverageData struct { // The percentage of your existing Savings Plans covered usage, divided by all of // your eligible Savings Plans usage in an account (or set of accounts). CoveragePercentage *string // The cost of your Amazon Web Services usage at the public On-Demand rate. OnDemandCost *string // The amount of your Amazon Web Services usage that's covered by a Savings Plans. SpendCoveredBySavingsPlans *string // The total cost of your Amazon Web Services usage, regardless of your purchase // option. TotalCost *string noSmithyDocumentSerde } // The attribute details on a specific Savings Plan. type SavingsPlansDetails struct { // A group of instance types that Savings Plans applies to. InstanceFamily *string // The unique ID that's used to distinguish Savings Plans from one another. OfferingId *string // A collection of Amazon Web Services resources in a geographic area. Each Amazon // Web Services Region is isolated and independent of the other Regions. Region *string noSmithyDocumentSerde } // Contains your request parameters, Savings Plan Recommendations Summary, and // Details. type SavingsPlansPurchaseRecommendation struct { // The account scope that you want your recommendations for. Amazon Web Services // calculates recommendations that include the management account and member // accounts if the value is set to PAYER . If the value is LINKED , recommendations // are calculated for individual member accounts only. AccountScope AccountScope // The lookback period in days that's used to generate the recommendation. LookbackPeriodInDays LookbackPeriodInDays // The payment option that's used to generate the recommendation. PaymentOption PaymentOption // Details for the Savings Plans that we recommend that you purchase to cover // existing Savings Plans eligible workloads. SavingsPlansPurchaseRecommendationDetails []SavingsPlansPurchaseRecommendationDetail // Summary metrics for your Savings Plans Recommendations. SavingsPlansPurchaseRecommendationSummary *SavingsPlansPurchaseRecommendationSummary // The requested Savings Plans recommendation type. SavingsPlansType SupportedSavingsPlansType // The Savings Plans recommendation term in years. It's used to generate the // recommendation. TermInYears TermInYears noSmithyDocumentSerde } // Details for your recommended Savings Plans. type SavingsPlansPurchaseRecommendationDetail struct { // The AccountID the recommendation is generated for. AccountId *string // The currency code that Amazon Web Services used to generate the recommendations // and present potential savings. CurrencyCode *string // The average value of hourly On-Demand spend over the lookback period of the // applicable usage type. CurrentAverageHourlyOnDemandSpend *string // The highest value of hourly On-Demand spend over the lookback period of the // applicable usage type. CurrentMaximumHourlyOnDemandSpend *string // The lowest value of hourly On-Demand spend over the lookback period of the // applicable usage type. CurrentMinimumHourlyOnDemandSpend *string // The estimated utilization of the recommended Savings Plans. EstimatedAverageUtilization *string // The estimated monthly savings amount based on the recommended Savings Plans. EstimatedMonthlySavingsAmount *string // The remaining On-Demand cost estimated to not be covered by the recommended // Savings Plans, over the length of the lookback period. EstimatedOnDemandCost *string // The estimated On-Demand costs you expect with no additional commitment, based // on your usage of the selected time period and the Savings Plans you own. EstimatedOnDemandCostWithCurrentCommitment *string // The estimated return on investment that's based on the recommended Savings // Plans that you purchased. This is calculated as estimatedSavingsAmount / // estimatedSPCost *100. EstimatedROI *string // The cost of the recommended Savings Plans over the length of the lookback // period. EstimatedSPCost *string // The estimated savings amount that's based on the recommended Savings Plans over // the length of the lookback period. EstimatedSavingsAmount *string // The estimated savings percentage relative to the total cost of applicable // On-Demand usage over the lookback period. EstimatedSavingsPercentage *string // The recommended hourly commitment level for the Savings Plans type and the // configuration that's based on the usage during the lookback period. HourlyCommitmentToPurchase *string // Contains detailed information about a specific Savings Plan recommendation. RecommendationDetailId *string // Details for your recommended Savings Plans. SavingsPlansDetails *SavingsPlansDetails // The upfront cost of the recommended Savings Plans, based on the selected // payment option. UpfrontCost *string noSmithyDocumentSerde } // Metadata about your Savings Plans Purchase Recommendations. type SavingsPlansPurchaseRecommendationMetadata struct { // Additional metadata that might be applicable to the recommendation. AdditionalMetadata *string // The timestamp that shows when the recommendations were generated. GenerationTimestamp *string // The unique identifier for the recommendation set. RecommendationId *string noSmithyDocumentSerde } // Summary metrics for your Savings Plans Purchase Recommendations. type SavingsPlansPurchaseRecommendationSummary struct { // The currency code that Amazon Web Services used to generate the recommendations // and present potential savings. CurrencyCode *string // The current total on demand spend of the applicable usage types over the // lookback period. CurrentOnDemandSpend *string // The recommended Savings Plans cost on a daily (24 hourly) basis. DailyCommitmentToPurchase *string // The estimated monthly savings amount that's based on the recommended Savings // Plans purchase. EstimatedMonthlySavingsAmount *string // The estimated On-Demand costs you expect with no additional commitment. It's // based on your usage of the selected time period and the Savings Plans you own. EstimatedOnDemandCostWithCurrentCommitment *string // The estimated return on investment that's based on the recommended Savings // Plans and estimated savings. EstimatedROI *string // The estimated total savings over the lookback period, based on the purchase of // the recommended Savings Plans. EstimatedSavingsAmount *string // The estimated savings relative to the total cost of On-Demand usage, over the // lookback period. This is calculated as estimatedSavingsAmount / // CurrentOnDemandSpend *100. EstimatedSavingsPercentage *string // The estimated total cost of the usage after purchasing the recommended Savings // Plans. This is a sum of the cost of Savings Plans during this term, and the // remaining On-Demand usage. EstimatedTotalCost *string // The recommended hourly commitment that's based on the recommendation parameters. HourlyCommitmentToPurchase *string // The aggregate number of Savings Plans recommendations that exist for your // account. TotalRecommendationCount *string noSmithyDocumentSerde } // The amount of savings that you're accumulating, against the public On-Demand // rate of the usage accrued in an account. type SavingsPlansSavings struct { // The savings amount that you're accumulating for the usage that's covered by a // Savings Plans, when compared to the On-Demand equivalent of the same usage. NetSavings *string // How much the amount that the usage would have cost if it was accrued at the // On-Demand rate. OnDemandCostEquivalent *string noSmithyDocumentSerde } // The measurement of how well you're using your existing Savings Plans. type SavingsPlansUtilization struct { // The total amount of Savings Plans commitment that's been purchased in an // account (or set of accounts). TotalCommitment *string // The amount of your Savings Plans commitment that wasn't consumed from Savings // Plans eligible usage in a specific period. UnusedCommitment *string // The amount of your Savings Plans commitment that was consumed from Savings // Plans eligible usage in a specific period. UsedCommitment *string // The amount of UsedCommitment divided by the TotalCommitment for your Savings // Plans. UtilizationPercentage *string noSmithyDocumentSerde } // The aggregated utilization metrics for your Savings Plans usage. type SavingsPlansUtilizationAggregates struct { // A ratio of your effectiveness of using existing Savings Plans to apply to // workloads that are Savings Plans eligible. // // This member is required. Utilization *SavingsPlansUtilization // The total amortized commitment for a Savings Plans. This includes the sum of // the upfront and recurring Savings Plans fees. AmortizedCommitment *SavingsPlansAmortizedCommitment // The amount that's saved by using existing Savings Plans. Savings returns both // net savings from Savings Plans and also the onDemandCostEquivalent of the // Savings Plans when considering the utilization rate. Savings *SavingsPlansSavings noSmithyDocumentSerde } // The amount of Savings Plans utilization (in hours). type SavingsPlansUtilizationByTime struct { // The time period of the request. // // This member is required. TimePeriod *DateInterval // A ratio of your effectiveness of using existing Savings Plans to apply to // workloads that are Savings Plans eligible. // // This member is required. Utilization *SavingsPlansUtilization // The total amortized commitment for a Savings Plans. This includes the sum of // the upfront and recurring Savings Plans fees. AmortizedCommitment *SavingsPlansAmortizedCommitment // The amount that's saved by using existing Savings Plans. Savings returns both // net savings from Savings Plans and also the onDemandCostEquivalent of the // Savings Plans when considering the utilization rate. Savings *SavingsPlansSavings noSmithyDocumentSerde } // A single daily or monthly Savings Plans utilization rate and details for your // account. A management account in an organization have access to member accounts. // You can use GetDimensionValues to determine the possible dimension values. type SavingsPlansUtilizationDetail struct { // The total amortized commitment for a Savings Plans. Includes the sum of the // upfront and recurring Savings Plans fees. AmortizedCommitment *SavingsPlansAmortizedCommitment // The attribute that applies to a specific Dimension . Attributes map[string]string // The amount saved by using existing Savings Plans. Savings returns both net // savings from savings plans and also the onDemandCostEquivalent of the Savings // Plans when considering the utilization rate. Savings *SavingsPlansSavings // The unique Amazon Resource Name (ARN) for a particular Savings Plan. SavingsPlanArn *string // A ratio of your effectiveness of using existing Savings Plans to apply to // workloads that are Savings Plans eligible. Utilization *SavingsPlansUtilization noSmithyDocumentSerde } // Hardware specifications for the service that you want recommendations for. type ServiceSpecification struct { // The Amazon EC2 hardware specifications that you want Amazon Web Services to // provide recommendations for. EC2Specification *EC2Specification noSmithyDocumentSerde } // The details for how to sort the data. type SortDefinition struct { // The key that's used to sort the data. // // This member is required. Key *string // The order that's used to sort the data. SortOrder SortOrder noSmithyDocumentSerde } // The recipient of AnomalySubscription notifications. type Subscriber struct { // The email address or SNS Amazon Resource Name (ARN). This depends on the Type . Address *string // Indicates if the subscriber accepts the notifications. Status SubscriberStatus // The notification delivery channel. Type SubscriberType noSmithyDocumentSerde } // The values that are available for a tag. If Values and Key aren't specified, // the ABSENT MatchOption is applied to all tags. That is, it's filtered on // resources with no tags. If Key is provided and Values isn't specified, the // ABSENT MatchOption is applied to the tag Key only. That is, it's filtered on // resources without the given tag key. type TagValues struct { // The key for the tag. Key *string // The match options that you can use to filter your results. MatchOptions is only // applicable for actions related to Cost Category. The default values for // MatchOptions are EQUALS and CASE_SENSITIVE . MatchOptions []MatchOption // The specific value of the tag. Values []string noSmithyDocumentSerde } // Details on recommended instance. type TargetInstance struct { // The currency code that Amazon Web Services used to calculate the costs for this // instance. CurrencyCode *string // Determines whether this recommendation is the defaulted Amazon Web Services // recommendation. DefaultTargetInstance bool // The expected cost to operate this instance type on a monthly basis. EstimatedMonthlyCost *string // The estimated savings that result from modification, on a monthly basis. EstimatedMonthlySavings *string // The expected utilization metrics for target instance type. ExpectedResourceUtilization *ResourceUtilization // Explains the actions that you might need to take to successfully migrate your // workloads from the current instance type to the recommended instance type. PlatformDifferences []PlatformDifference // Details on the target instance type. ResourceDetails *ResourceDetails noSmithyDocumentSerde } // Details on termination recommendation. type TerminateRecommendationDetail struct { // The currency code that Amazon Web Services used to calculate the costs for this // instance. CurrencyCode *string // The estimated savings that result from modification, on a monthly basis. EstimatedMonthlySavings *string noSmithyDocumentSerde } // Filters cost anomalies based on the total impact. type TotalImpactFilter struct { // The comparing value that's used in the filter. // // This member is required. NumericOperator NumericOperator // The lower bound dollar value that's used in the filter. // // This member is required. StartValue float64 // The upper bound dollar value that's used in the filter. EndValue float64 noSmithyDocumentSerde } // Gives a detailed description of the result of an action. It's on each cost // allocation tag entry in the request. type UpdateCostAllocationTagsStatusError struct { // An error code representing why the action failed on this entry. Code *string // A message explaining why the action failed on this entry. Message *string // The key for the cost allocation tag. TagKey *string noSmithyDocumentSerde } // The amount of utilization, in hours. type UtilizationByTime struct { // The groups that this utilization result uses. Groups []ReservationUtilizationGroup // The period of time that this utilization was used for. TimePeriod *DateInterval // The total number of reservation hours that were used. Total *ReservationAggregates noSmithyDocumentSerde } type noSmithyDocumentSerde = smithydocument.NoSerde