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