aws-sdk-costexplorer 1.33.0 → 1.34.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -14,11 +14,21 @@ module Aws::CostExplorer
14
14
  AccountScope = Shapes::StringShape.new(name: 'AccountScope')
15
15
  AmortizedRecurringFee = Shapes::StringShape.new(name: 'AmortizedRecurringFee')
16
16
  AmortizedUpfrontFee = Shapes::StringShape.new(name: 'AmortizedUpfrontFee')
17
+ Arn = Shapes::StringShape.new(name: 'Arn')
17
18
  AttributeType = Shapes::StringShape.new(name: 'AttributeType')
18
19
  AttributeValue = Shapes::StringShape.new(name: 'AttributeValue')
19
20
  Attributes = Shapes::MapShape.new(name: 'Attributes')
20
21
  BillExpirationException = Shapes::StructureShape.new(name: 'BillExpirationException')
21
22
  Context = Shapes::StringShape.new(name: 'Context')
23
+ CostCategory = Shapes::StructureShape.new(name: 'CostCategory')
24
+ CostCategoryName = Shapes::StringShape.new(name: 'CostCategoryName')
25
+ CostCategoryReference = Shapes::StructureShape.new(name: 'CostCategoryReference')
26
+ CostCategoryReferencesList = Shapes::ListShape.new(name: 'CostCategoryReferencesList')
27
+ CostCategoryRule = Shapes::StructureShape.new(name: 'CostCategoryRule')
28
+ CostCategoryRuleVersion = Shapes::StringShape.new(name: 'CostCategoryRuleVersion')
29
+ CostCategoryRulesList = Shapes::ListShape.new(name: 'CostCategoryRulesList')
30
+ CostCategoryValue = Shapes::StringShape.new(name: 'CostCategoryValue')
31
+ CostCategoryValues = Shapes::StructureShape.new(name: 'CostCategoryValues')
22
32
  Coverage = Shapes::StructureShape.new(name: 'Coverage')
23
33
  CoverageByTime = Shapes::StructureShape.new(name: 'CoverageByTime')
24
34
  CoverageCost = Shapes::StructureShape.new(name: 'CoverageCost')
@@ -27,9 +37,15 @@ module Aws::CostExplorer
27
37
  CoverageNormalizedUnits = Shapes::StructureShape.new(name: 'CoverageNormalizedUnits')
28
38
  CoverageNormalizedUnitsPercentage = Shapes::StringShape.new(name: 'CoverageNormalizedUnitsPercentage')
29
39
  CoveragesByTime = Shapes::ListShape.new(name: 'CoveragesByTime')
40
+ CreateCostCategoryDefinitionRequest = Shapes::StructureShape.new(name: 'CreateCostCategoryDefinitionRequest')
41
+ CreateCostCategoryDefinitionResponse = Shapes::StructureShape.new(name: 'CreateCostCategoryDefinitionResponse')
30
42
  CurrentInstance = Shapes::StructureShape.new(name: 'CurrentInstance')
31
43
  DataUnavailableException = Shapes::StructureShape.new(name: 'DataUnavailableException')
32
44
  DateInterval = Shapes::StructureShape.new(name: 'DateInterval')
45
+ DeleteCostCategoryDefinitionRequest = Shapes::StructureShape.new(name: 'DeleteCostCategoryDefinitionRequest')
46
+ DeleteCostCategoryDefinitionResponse = Shapes::StructureShape.new(name: 'DeleteCostCategoryDefinitionResponse')
47
+ DescribeCostCategoryDefinitionRequest = Shapes::StructureShape.new(name: 'DescribeCostCategoryDefinitionRequest')
48
+ DescribeCostCategoryDefinitionResponse = Shapes::StructureShape.new(name: 'DescribeCostCategoryDefinitionResponse')
33
49
  Dimension = Shapes::StringShape.new(name: 'Dimension')
34
50
  DimensionValues = Shapes::StructureShape.new(name: 'DimensionValues')
35
51
  DimensionValuesWithAttributes = Shapes::StructureShape.new(name: 'DimensionValuesWithAttributes')
@@ -89,6 +105,8 @@ module Aws::CostExplorer
89
105
  Key = Shapes::StringShape.new(name: 'Key')
90
106
  Keys = Shapes::ListShape.new(name: 'Keys')
91
107
  LimitExceededException = Shapes::StructureShape.new(name: 'LimitExceededException')
108
+ ListCostCategoryDefinitionsRequest = Shapes::StructureShape.new(name: 'ListCostCategoryDefinitionsRequest')
109
+ ListCostCategoryDefinitionsResponse = Shapes::StructureShape.new(name: 'ListCostCategoryDefinitionsResponse')
92
110
  LookbackPeriodInDays = Shapes::StringShape.new(name: 'LookbackPeriodInDays')
93
111
  MaxResults = Shapes::IntegerShape.new(name: 'MaxResults')
94
112
  Metric = Shapes::StringShape.new(name: 'Metric')
@@ -131,6 +149,7 @@ module Aws::CostExplorer
131
149
  ReservedHours = Shapes::StringShape.new(name: 'ReservedHours')
132
150
  ReservedNormalizedUnits = Shapes::StringShape.new(name: 'ReservedNormalizedUnits')
133
151
  ResourceDetails = Shapes::StructureShape.new(name: 'ResourceDetails')
152
+ ResourceNotFoundException = Shapes::StructureShape.new(name: 'ResourceNotFoundException')
134
153
  ResourceUtilization = Shapes::StructureShape.new(name: 'ResourceUtilization')
135
154
  ResultByTime = Shapes::StructureShape.new(name: 'ResultByTime')
136
155
  ResultsByTime = Shapes::ListShape.new(name: 'ResultsByTime')
@@ -158,6 +177,7 @@ module Aws::CostExplorer
158
177
  SavingsPlansUtilizationDetails = Shapes::ListShape.new(name: 'SavingsPlansUtilizationDetails')
159
178
  SavingsPlansUtilizationsByTime = Shapes::ListShape.new(name: 'SavingsPlansUtilizationsByTime')
160
179
  SearchString = Shapes::StringShape.new(name: 'SearchString')
180
+ ServiceQuotaExceededException = Shapes::StructureShape.new(name: 'ServiceQuotaExceededException')
161
181
  ServiceSpecification = Shapes::StructureShape.new(name: 'ServiceSpecification')
162
182
  SupportedSavingsPlansType = Shapes::StringShape.new(name: 'SupportedSavingsPlansType')
163
183
  TagKey = Shapes::StringShape.new(name: 'TagKey')
@@ -177,6 +197,8 @@ module Aws::CostExplorer
177
197
  UnresolvableUsageUnitException = Shapes::StructureShape.new(name: 'UnresolvableUsageUnitException')
178
198
  UnusedHours = Shapes::StringShape.new(name: 'UnusedHours')
179
199
  UnusedUnits = Shapes::StringShape.new(name: 'UnusedUnits')
200
+ UpdateCostCategoryDefinitionRequest = Shapes::StructureShape.new(name: 'UpdateCostCategoryDefinitionRequest')
201
+ UpdateCostCategoryDefinitionResponse = Shapes::StructureShape.new(name: 'UpdateCostCategoryDefinitionResponse')
180
202
  UtilizationByTime = Shapes::StructureShape.new(name: 'UtilizationByTime')
181
203
  UtilizationPercentage = Shapes::StringShape.new(name: 'UtilizationPercentage')
182
204
  UtilizationPercentageInUnits = Shapes::StringShape.new(name: 'UtilizationPercentageInUnits')
@@ -184,6 +206,7 @@ module Aws::CostExplorer
184
206
  Value = Shapes::StringShape.new(name: 'Value')
185
207
  Values = Shapes::ListShape.new(name: 'Values')
186
208
  YearMonthDay = Shapes::StringShape.new(name: 'YearMonthDay')
209
+ ZonedDateTime = Shapes::StringShape.new(name: 'ZonedDateTime')
187
210
 
188
211
  Attributes.key = Shapes::ShapeRef.new(shape: AttributeType)
189
212
  Attributes.value = Shapes::ShapeRef.new(shape: AttributeValue)
@@ -191,6 +214,32 @@ module Aws::CostExplorer
191
214
  BillExpirationException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
192
215
  BillExpirationException.struct_class = Types::BillExpirationException
193
216
 
217
+ CostCategory.add_member(:cost_category_arn, Shapes::ShapeRef.new(shape: Arn, required: true, location_name: "CostCategoryArn"))
218
+ CostCategory.add_member(:effective_start, Shapes::ShapeRef.new(shape: ZonedDateTime, required: true, location_name: "EffectiveStart"))
219
+ CostCategory.add_member(:effective_end, Shapes::ShapeRef.new(shape: ZonedDateTime, location_name: "EffectiveEnd"))
220
+ CostCategory.add_member(:name, Shapes::ShapeRef.new(shape: CostCategoryName, required: true, location_name: "Name"))
221
+ CostCategory.add_member(:rule_version, Shapes::ShapeRef.new(shape: CostCategoryRuleVersion, required: true, location_name: "RuleVersion"))
222
+ CostCategory.add_member(:rules, Shapes::ShapeRef.new(shape: CostCategoryRulesList, required: true, location_name: "Rules"))
223
+ CostCategory.struct_class = Types::CostCategory
224
+
225
+ CostCategoryReference.add_member(:cost_category_arn, Shapes::ShapeRef.new(shape: Arn, location_name: "CostCategoryArn"))
226
+ CostCategoryReference.add_member(:name, Shapes::ShapeRef.new(shape: CostCategoryName, location_name: "Name"))
227
+ CostCategoryReference.add_member(:effective_start, Shapes::ShapeRef.new(shape: ZonedDateTime, location_name: "EffectiveStart"))
228
+ CostCategoryReference.add_member(:effective_end, Shapes::ShapeRef.new(shape: ZonedDateTime, location_name: "EffectiveEnd"))
229
+ CostCategoryReference.struct_class = Types::CostCategoryReference
230
+
231
+ CostCategoryReferencesList.member = Shapes::ShapeRef.new(shape: CostCategoryReference)
232
+
233
+ CostCategoryRule.add_member(:value, Shapes::ShapeRef.new(shape: CostCategoryValue, required: true, location_name: "Value"))
234
+ CostCategoryRule.add_member(:rule, Shapes::ShapeRef.new(shape: Expression, required: true, location_name: "Rule"))
235
+ CostCategoryRule.struct_class = Types::CostCategoryRule
236
+
237
+ CostCategoryRulesList.member = Shapes::ShapeRef.new(shape: CostCategoryRule)
238
+
239
+ CostCategoryValues.add_member(:key, Shapes::ShapeRef.new(shape: CostCategoryName, location_name: "Key"))
240
+ CostCategoryValues.add_member(:values, Shapes::ShapeRef.new(shape: Values, location_name: "Values"))
241
+ CostCategoryValues.struct_class = Types::CostCategoryValues
242
+
194
243
  Coverage.add_member(:coverage_hours, Shapes::ShapeRef.new(shape: CoverageHours, location_name: "CoverageHours"))
195
244
  Coverage.add_member(:coverage_normalized_units, Shapes::ShapeRef.new(shape: CoverageNormalizedUnits, location_name: "CoverageNormalizedUnits"))
196
245
  Coverage.add_member(:coverage_cost, Shapes::ShapeRef.new(shape: CoverageCost, location_name: "CoverageCost"))
@@ -218,6 +267,15 @@ module Aws::CostExplorer
218
267
 
219
268
  CoveragesByTime.member = Shapes::ShapeRef.new(shape: CoverageByTime)
220
269
 
270
+ CreateCostCategoryDefinitionRequest.add_member(:name, Shapes::ShapeRef.new(shape: CostCategoryName, required: true, location_name: "Name"))
271
+ CreateCostCategoryDefinitionRequest.add_member(:rule_version, Shapes::ShapeRef.new(shape: CostCategoryRuleVersion, required: true, location_name: "RuleVersion"))
272
+ CreateCostCategoryDefinitionRequest.add_member(:rules, Shapes::ShapeRef.new(shape: CostCategoryRulesList, required: true, location_name: "Rules"))
273
+ CreateCostCategoryDefinitionRequest.struct_class = Types::CreateCostCategoryDefinitionRequest
274
+
275
+ CreateCostCategoryDefinitionResponse.add_member(:cost_category_arn, Shapes::ShapeRef.new(shape: Arn, location_name: "CostCategoryArn"))
276
+ CreateCostCategoryDefinitionResponse.add_member(:effective_start, Shapes::ShapeRef.new(shape: ZonedDateTime, location_name: "EffectiveStart"))
277
+ CreateCostCategoryDefinitionResponse.struct_class = Types::CreateCostCategoryDefinitionResponse
278
+
221
279
  CurrentInstance.add_member(:resource_id, Shapes::ShapeRef.new(shape: GenericString, location_name: "ResourceId"))
222
280
  CurrentInstance.add_member(:tags, Shapes::ShapeRef.new(shape: TagValuesList, location_name: "Tags"))
223
281
  CurrentInstance.add_member(:resource_details, Shapes::ShapeRef.new(shape: ResourceDetails, location_name: "ResourceDetails"))
@@ -237,6 +295,20 @@ module Aws::CostExplorer
237
295
  DateInterval.add_member(:end, Shapes::ShapeRef.new(shape: YearMonthDay, required: true, location_name: "End"))
238
296
  DateInterval.struct_class = Types::DateInterval
239
297
 
298
+ DeleteCostCategoryDefinitionRequest.add_member(:cost_category_arn, Shapes::ShapeRef.new(shape: Arn, required: true, location_name: "CostCategoryArn"))
299
+ DeleteCostCategoryDefinitionRequest.struct_class = Types::DeleteCostCategoryDefinitionRequest
300
+
301
+ DeleteCostCategoryDefinitionResponse.add_member(:cost_category_arn, Shapes::ShapeRef.new(shape: Arn, location_name: "CostCategoryArn"))
302
+ DeleteCostCategoryDefinitionResponse.add_member(:effective_end, Shapes::ShapeRef.new(shape: ZonedDateTime, location_name: "EffectiveEnd"))
303
+ DeleteCostCategoryDefinitionResponse.struct_class = Types::DeleteCostCategoryDefinitionResponse
304
+
305
+ DescribeCostCategoryDefinitionRequest.add_member(:cost_category_arn, Shapes::ShapeRef.new(shape: Arn, required: true, location_name: "CostCategoryArn"))
306
+ DescribeCostCategoryDefinitionRequest.add_member(:effective_on, Shapes::ShapeRef.new(shape: ZonedDateTime, location_name: "EffectiveOn"))
307
+ DescribeCostCategoryDefinitionRequest.struct_class = Types::DescribeCostCategoryDefinitionRequest
308
+
309
+ DescribeCostCategoryDefinitionResponse.add_member(:cost_category, Shapes::ShapeRef.new(shape: CostCategory, location_name: "CostCategory"))
310
+ DescribeCostCategoryDefinitionResponse.struct_class = Types::DescribeCostCategoryDefinitionResponse
311
+
240
312
  DimensionValues.add_member(:key, Shapes::ShapeRef.new(shape: Dimension, location_name: "Key"))
241
313
  DimensionValues.add_member(:values, Shapes::ShapeRef.new(shape: Values, location_name: "Values"))
242
314
  DimensionValues.struct_class = Types::DimensionValues
@@ -296,6 +368,7 @@ module Aws::CostExplorer
296
368
  Expression.add_member(:not, Shapes::ShapeRef.new(shape: Expression, location_name: "Not"))
297
369
  Expression.add_member(:dimensions, Shapes::ShapeRef.new(shape: DimensionValues, location_name: "Dimensions"))
298
370
  Expression.add_member(:tags, Shapes::ShapeRef.new(shape: TagValues, location_name: "Tags"))
371
+ Expression.add_member(:cost_categories, Shapes::ShapeRef.new(shape: CostCategoryValues, location_name: "CostCategories"))
299
372
  Expression.struct_class = Types::Expression
300
373
 
301
374
  Expressions.member = Shapes::ShapeRef.new(shape: Expression)
@@ -508,6 +581,14 @@ module Aws::CostExplorer
508
581
  LimitExceededException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
509
582
  LimitExceededException.struct_class = Types::LimitExceededException
510
583
 
584
+ ListCostCategoryDefinitionsRequest.add_member(:effective_on, Shapes::ShapeRef.new(shape: ZonedDateTime, location_name: "EffectiveOn"))
585
+ ListCostCategoryDefinitionsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextToken"))
586
+ ListCostCategoryDefinitionsRequest.struct_class = Types::ListCostCategoryDefinitionsRequest
587
+
588
+ ListCostCategoryDefinitionsResponse.add_member(:cost_category_references, Shapes::ShapeRef.new(shape: CostCategoryReferencesList, location_name: "CostCategoryReferences"))
589
+ ListCostCategoryDefinitionsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: NextPageToken, location_name: "NextToken"))
590
+ ListCostCategoryDefinitionsResponse.struct_class = Types::ListCostCategoryDefinitionsResponse
591
+
511
592
  MetricNames.member = Shapes::ShapeRef.new(shape: MetricName)
512
593
 
513
594
  MetricValue.add_member(:amount, Shapes::ShapeRef.new(shape: MetricAmount, location_name: "Amount"))
@@ -617,6 +698,9 @@ module Aws::CostExplorer
617
698
  ResourceDetails.add_member(:ec2_resource_details, Shapes::ShapeRef.new(shape: EC2ResourceDetails, location_name: "EC2ResourceDetails"))
618
699
  ResourceDetails.struct_class = Types::ResourceDetails
619
700
 
701
+ ResourceNotFoundException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
702
+ ResourceNotFoundException.struct_class = Types::ResourceNotFoundException
703
+
620
704
  ResourceUtilization.add_member(:ec2_resource_utilization, Shapes::ShapeRef.new(shape: EC2ResourceUtilization, location_name: "EC2ResourceUtilization"))
621
705
  ResourceUtilization.struct_class = Types::ResourceUtilization
622
706
 
@@ -748,6 +832,9 @@ module Aws::CostExplorer
748
832
 
749
833
  SavingsPlansUtilizationsByTime.member = Shapes::ShapeRef.new(shape: SavingsPlansUtilizationByTime)
750
834
 
835
+ ServiceQuotaExceededException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
836
+ ServiceQuotaExceededException.struct_class = Types::ServiceQuotaExceededException
837
+
751
838
  ServiceSpecification.add_member(:ec2_specification, Shapes::ShapeRef.new(shape: EC2Specification, location_name: "EC2Specification"))
752
839
  ServiceSpecification.struct_class = Types::ServiceSpecification
753
840
 
@@ -776,6 +863,15 @@ module Aws::CostExplorer
776
863
  UnresolvableUsageUnitException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
777
864
  UnresolvableUsageUnitException.struct_class = Types::UnresolvableUsageUnitException
778
865
 
866
+ UpdateCostCategoryDefinitionRequest.add_member(:cost_category_arn, Shapes::ShapeRef.new(shape: Arn, required: true, location_name: "CostCategoryArn"))
867
+ UpdateCostCategoryDefinitionRequest.add_member(:rule_version, Shapes::ShapeRef.new(shape: CostCategoryRuleVersion, required: true, location_name: "RuleVersion"))
868
+ UpdateCostCategoryDefinitionRequest.add_member(:rules, Shapes::ShapeRef.new(shape: CostCategoryRulesList, required: true, location_name: "Rules"))
869
+ UpdateCostCategoryDefinitionRequest.struct_class = Types::UpdateCostCategoryDefinitionRequest
870
+
871
+ UpdateCostCategoryDefinitionResponse.add_member(:cost_category_arn, Shapes::ShapeRef.new(shape: Arn, location_name: "CostCategoryArn"))
872
+ UpdateCostCategoryDefinitionResponse.add_member(:effective_start, Shapes::ShapeRef.new(shape: ZonedDateTime, location_name: "EffectiveStart"))
873
+ UpdateCostCategoryDefinitionResponse.struct_class = Types::UpdateCostCategoryDefinitionResponse
874
+
779
875
  UtilizationByTime.add_member(:time_period, Shapes::ShapeRef.new(shape: DateInterval, location_name: "TimePeriod"))
780
876
  UtilizationByTime.add_member(:groups, Shapes::ShapeRef.new(shape: ReservationUtilizationGroups, location_name: "Groups"))
781
877
  UtilizationByTime.add_member(:total, Shapes::ShapeRef.new(shape: ReservationAggregates, location_name: "Total"))
@@ -805,6 +901,36 @@ module Aws::CostExplorer
805
901
  "uid" => "ce-2017-10-25",
806
902
  }
807
903
 
904
+ api.add_operation(:create_cost_category_definition, Seahorse::Model::Operation.new.tap do |o|
905
+ o.name = "CreateCostCategoryDefinition"
906
+ o.http_method = "POST"
907
+ o.http_request_uri = "/"
908
+ o.input = Shapes::ShapeRef.new(shape: CreateCostCategoryDefinitionRequest)
909
+ o.output = Shapes::ShapeRef.new(shape: CreateCostCategoryDefinitionResponse)
910
+ o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException)
911
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
912
+ end)
913
+
914
+ api.add_operation(:delete_cost_category_definition, Seahorse::Model::Operation.new.tap do |o|
915
+ o.name = "DeleteCostCategoryDefinition"
916
+ o.http_method = "POST"
917
+ o.http_request_uri = "/"
918
+ o.input = Shapes::ShapeRef.new(shape: DeleteCostCategoryDefinitionRequest)
919
+ o.output = Shapes::ShapeRef.new(shape: DeleteCostCategoryDefinitionResponse)
920
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
921
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
922
+ end)
923
+
924
+ api.add_operation(:describe_cost_category_definition, Seahorse::Model::Operation.new.tap do |o|
925
+ o.name = "DescribeCostCategoryDefinition"
926
+ o.http_method = "POST"
927
+ o.http_request_uri = "/"
928
+ o.input = Shapes::ShapeRef.new(shape: DescribeCostCategoryDefinitionRequest)
929
+ o.output = Shapes::ShapeRef.new(shape: DescribeCostCategoryDefinitionResponse)
930
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
931
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
932
+ end)
933
+
808
934
  api.add_operation(:get_cost_and_usage, Seahorse::Model::Operation.new.tap do |o|
809
935
  o.name = "GetCostAndUsage"
810
936
  o.http_method = "POST"
@@ -974,6 +1100,26 @@ module Aws::CostExplorer
974
1100
  o.errors << Shapes::ShapeRef.new(shape: DataUnavailableException)
975
1101
  o.errors << Shapes::ShapeRef.new(shape: UnresolvableUsageUnitException)
976
1102
  end)
1103
+
1104
+ api.add_operation(:list_cost_category_definitions, Seahorse::Model::Operation.new.tap do |o|
1105
+ o.name = "ListCostCategoryDefinitions"
1106
+ o.http_method = "POST"
1107
+ o.http_request_uri = "/"
1108
+ o.input = Shapes::ShapeRef.new(shape: ListCostCategoryDefinitionsRequest)
1109
+ o.output = Shapes::ShapeRef.new(shape: ListCostCategoryDefinitionsResponse)
1110
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
1111
+ end)
1112
+
1113
+ api.add_operation(:update_cost_category_definition, Seahorse::Model::Operation.new.tap do |o|
1114
+ o.name = "UpdateCostCategoryDefinition"
1115
+ o.http_method = "POST"
1116
+ o.http_request_uri = "/"
1117
+ o.input = Shapes::ShapeRef.new(shape: UpdateCostCategoryDefinitionRequest)
1118
+ o.output = Shapes::ShapeRef.new(shape: UpdateCostCategoryDefinitionResponse)
1119
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
1120
+ o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException)
1121
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
1122
+ end)
977
1123
  end
978
1124
 
979
1125
  end
@@ -90,6 +90,38 @@ module Aws::CostExplorer
90
90
 
91
91
  end
92
92
 
93
+ class ResourceNotFoundException < ServiceError
94
+
95
+ # @param [Seahorse::Client::RequestContext] context
96
+ # @param [String] message
97
+ # @param [Aws::CostExplorer::Types::ResourceNotFoundException] data
98
+ def initialize(context, message, data = Aws::EmptyStructure.new)
99
+ super(context, message, data)
100
+ end
101
+
102
+ # @return [String]
103
+ def message
104
+ @message || @data[:message]
105
+ end
106
+
107
+ end
108
+
109
+ class ServiceQuotaExceededException < ServiceError
110
+
111
+ # @param [Seahorse::Client::RequestContext] context
112
+ # @param [String] message
113
+ # @param [Aws::CostExplorer::Types::ServiceQuotaExceededException] data
114
+ def initialize(context, message, data = Aws::EmptyStructure.new)
115
+ super(context, message, data)
116
+ end
117
+
118
+ # @return [String]
119
+ def message
120
+ @message || @data[:message]
121
+ end
122
+
123
+ end
124
+
93
125
  class UnresolvableUsageUnitException < ServiceError
94
126
 
95
127
  # @param [Seahorse::Client::RequestContext] context
@@ -20,6 +20,193 @@ module Aws::CostExplorer
20
20
  include Aws::Structure
21
21
  end
22
22
 
23
+ # <i> <b>Cost Category is in preview release for AWS Billing and Cost
24
+ # Management and is subject to change. Your use of Cost Categories is
25
+ # subject to the Beta Service Participation terms of the <a
26
+ # href="https://aws.amazon.com/service-terms/">AWS Service Terms</a>
27
+ # (Section 1.10).</b> </i>
28
+ #
29
+ # The structure of Cost Categories. This includes detailed metadata and
30
+ # the set of rules for the `CostCategory` object.
31
+ #
32
+ # @!attribute [rw] cost_category_arn
33
+ # The unique identifier for your Cost Category.
34
+ # @return [String]
35
+ #
36
+ # @!attribute [rw] effective_start
37
+ # The Cost Category's effective start date.
38
+ # @return [String]
39
+ #
40
+ # @!attribute [rw] effective_end
41
+ # The Cost Category's effective end date.
42
+ # @return [String]
43
+ #
44
+ # @!attribute [rw] name
45
+ # The unique name of the Cost Category.
46
+ # @return [String]
47
+ #
48
+ # @!attribute [rw] rule_version
49
+ # The rule schema version in this particular Cost Category.
50
+ # @return [String]
51
+ #
52
+ # @!attribute [rw] rules
53
+ # Rules are processed in order. If there are multiple rules that match
54
+ # the line item, then the first rule to match is used to determine
55
+ # that Cost Category value.
56
+ # @return [Array<Types::CostCategoryRule>]
57
+ #
58
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CostCategory AWS API Documentation
59
+ #
60
+ class CostCategory < Struct.new(
61
+ :cost_category_arn,
62
+ :effective_start,
63
+ :effective_end,
64
+ :name,
65
+ :rule_version,
66
+ :rules)
67
+ include Aws::Structure
68
+ end
69
+
70
+ # <i> <b>Cost Category is in preview release for AWS Billing and Cost
71
+ # Management and is subject to change. Your use of Cost Categories is
72
+ # subject to the Beta Service Participation terms of the <a
73
+ # href="https://aws.amazon.com/service-terms/">AWS Service Terms</a>
74
+ # (Section 1.10).</b> </i>
75
+ #
76
+ # A reference to a Cost Category containing only enough information to
77
+ # identify the Cost Category.
78
+ #
79
+ # You can use this information to retrieve the full Cost Category
80
+ # information using `DescribeCostCategory`.
81
+ #
82
+ # @!attribute [rw] cost_category_arn
83
+ # The unique identifier for your Cost Category Reference.
84
+ # @return [String]
85
+ #
86
+ # @!attribute [rw] name
87
+ # The unique name of the Cost Category.
88
+ # @return [String]
89
+ #
90
+ # @!attribute [rw] effective_start
91
+ # The Cost Category's effective start date.
92
+ # @return [String]
93
+ #
94
+ # @!attribute [rw] effective_end
95
+ # The Cost Category's effective end date.
96
+ # @return [String]
97
+ #
98
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CostCategoryReference AWS API Documentation
99
+ #
100
+ class CostCategoryReference < Struct.new(
101
+ :cost_category_arn,
102
+ :name,
103
+ :effective_start,
104
+ :effective_end)
105
+ include Aws::Structure
106
+ end
107
+
108
+ # <i> <b>Cost Category is in preview release for AWS Billing and Cost
109
+ # Management and is subject to change. Your use of Cost Categories is
110
+ # subject to the Beta Service Participation terms of the <a
111
+ # href="https://aws.amazon.com/service-terms/">AWS Service Terms</a>
112
+ # (Section 1.10).</b> </i>
113
+ #
114
+ # Rules are processed in order. If there are multiple rules that match
115
+ # the line item, then the first rule to match is used to determine that
116
+ # Cost Category value.
117
+ #
118
+ # @note When making an API call, you may pass CostCategoryRule
119
+ # data as a hash:
120
+ #
121
+ # {
122
+ # value: "CostCategoryValue", # required
123
+ # rule: { # required
124
+ # or: [
125
+ # {
126
+ # # recursive Expression
127
+ # },
128
+ # ],
129
+ # and: [
130
+ # {
131
+ # # recursive Expression
132
+ # },
133
+ # ],
134
+ # not: {
135
+ # # recursive Expression
136
+ # },
137
+ # dimensions: {
138
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
139
+ # values: ["Value"],
140
+ # },
141
+ # tags: {
142
+ # key: "TagKey",
143
+ # values: ["Value"],
144
+ # },
145
+ # cost_categories: {
146
+ # key: "CostCategoryName",
147
+ # values: ["Value"],
148
+ # },
149
+ # },
150
+ # }
151
+ #
152
+ # @!attribute [rw] value
153
+ # The value a line item will be categorized as, if it matches the
154
+ # rule.
155
+ # @return [String]
156
+ #
157
+ # @!attribute [rw] rule
158
+ # An [Expression][1] object used to categorize costs. This supports
159
+ # dimensions, Tags, and nested expressions. Currently the only
160
+ # dimensions supported is `LINKED_ACCOUNT`.
161
+ #
162
+ # Root level `OR` is not supported. We recommend you create a separate
163
+ # rule instead.
164
+ #
165
+ #
166
+ #
167
+ # [1]: http://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html
168
+ # @return [Types::Expression]
169
+ #
170
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CostCategoryRule AWS API Documentation
171
+ #
172
+ class CostCategoryRule < Struct.new(
173
+ :value,
174
+ :rule)
175
+ include Aws::Structure
176
+ end
177
+
178
+ # <i> <b>Cost Category is in preview release for AWS Billing and Cost
179
+ # Management and is subject to change. Your use of Cost Categories is
180
+ # subject to the Beta Service Participation terms of the <a
181
+ # href="https://aws.amazon.com/service-terms/">AWS Service Terms</a>
182
+ # (Section 1.10).</b> </i>
183
+ #
184
+ # The values that are available for Cost Categories.
185
+ #
186
+ # @note When making an API call, you may pass CostCategoryValues
187
+ # data as a hash:
188
+ #
189
+ # {
190
+ # key: "CostCategoryName",
191
+ # values: ["Value"],
192
+ # }
193
+ #
194
+ # @!attribute [rw] key
195
+ # The unique name of the Cost Category.
196
+ # @return [String]
197
+ #
198
+ # @!attribute [rw] values
199
+ # The specific value of the Cost Category.
200
+ # @return [Array<String>]
201
+ #
202
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CostCategoryValues AWS API Documentation
203
+ #
204
+ class CostCategoryValues < Struct.new(
205
+ :key,
206
+ :values)
207
+ include Aws::Structure
208
+ end
209
+
23
210
  # The amount of instance usage that a reservation covered.
24
211
  #
25
212
  # @!attribute [rw] coverage_hours
@@ -155,6 +342,85 @@ module Aws::CostExplorer
155
342
  include Aws::Structure
156
343
  end
157
344
 
345
+ # @note When making an API call, you may pass CreateCostCategoryDefinitionRequest
346
+ # data as a hash:
347
+ #
348
+ # {
349
+ # name: "CostCategoryName", # required
350
+ # rule_version: "CostCategoryExpression.v1", # required, accepts CostCategoryExpression.v1
351
+ # rules: [ # required
352
+ # {
353
+ # value: "CostCategoryValue", # required
354
+ # rule: { # required
355
+ # or: [
356
+ # {
357
+ # # recursive Expression
358
+ # },
359
+ # ],
360
+ # and: [
361
+ # {
362
+ # # recursive Expression
363
+ # },
364
+ # ],
365
+ # not: {
366
+ # # recursive Expression
367
+ # },
368
+ # dimensions: {
369
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
370
+ # values: ["Value"],
371
+ # },
372
+ # tags: {
373
+ # key: "TagKey",
374
+ # values: ["Value"],
375
+ # },
376
+ # cost_categories: {
377
+ # key: "CostCategoryName",
378
+ # values: ["Value"],
379
+ # },
380
+ # },
381
+ # },
382
+ # ],
383
+ # }
384
+ #
385
+ # @!attribute [rw] name
386
+ # The unique name of the Cost Category.
387
+ # @return [String]
388
+ #
389
+ # @!attribute [rw] rule_version
390
+ # The rule schema version in this particular Cost Category.
391
+ # @return [String]
392
+ #
393
+ # @!attribute [rw] rules
394
+ # Rules are processed in order. If there are multiple rules that match
395
+ # the line item, then the first rule to match is used to determine
396
+ # that Cost Category value.
397
+ # @return [Array<Types::CostCategoryRule>]
398
+ #
399
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CreateCostCategoryDefinitionRequest AWS API Documentation
400
+ #
401
+ class CreateCostCategoryDefinitionRequest < Struct.new(
402
+ :name,
403
+ :rule_version,
404
+ :rules)
405
+ include Aws::Structure
406
+ end
407
+
408
+ # @!attribute [rw] cost_category_arn
409
+ # The unique identifier for your newly created Cost Category.
410
+ # @return [String]
411
+ #
412
+ # @!attribute [rw] effective_start
413
+ # The Cost Category's effective start date.
414
+ # @return [String]
415
+ #
416
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CreateCostCategoryDefinitionResponse AWS API Documentation
417
+ #
418
+ class CreateCostCategoryDefinitionResponse < Struct.new(
419
+ :cost_category_arn,
420
+ :effective_start)
421
+ include Aws::Structure
422
+ end
423
+
158
424
  # Context about the current instance.
159
425
  #
160
426
  # @!attribute [rw] resource_id
@@ -262,6 +528,84 @@ module Aws::CostExplorer
262
528
  include Aws::Structure
263
529
  end
264
530
 
531
+ # @note When making an API call, you may pass DeleteCostCategoryDefinitionRequest
532
+ # data as a hash:
533
+ #
534
+ # {
535
+ # cost_category_arn: "Arn", # required
536
+ # }
537
+ #
538
+ # @!attribute [rw] cost_category_arn
539
+ # The unique identifier for your Cost Category.
540
+ # @return [String]
541
+ #
542
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DeleteCostCategoryDefinitionRequest AWS API Documentation
543
+ #
544
+ class DeleteCostCategoryDefinitionRequest < Struct.new(
545
+ :cost_category_arn)
546
+ include Aws::Structure
547
+ end
548
+
549
+ # @!attribute [rw] cost_category_arn
550
+ # The unique identifier for your Cost Category.
551
+ # @return [String]
552
+ #
553
+ # @!attribute [rw] effective_end
554
+ # The effective end date of the Cost Category as a result of deleting
555
+ # it. No costs after this date will be categorized by the deleted Cost
556
+ # Category.
557
+ # @return [String]
558
+ #
559
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DeleteCostCategoryDefinitionResponse AWS API Documentation
560
+ #
561
+ class DeleteCostCategoryDefinitionResponse < Struct.new(
562
+ :cost_category_arn,
563
+ :effective_end)
564
+ include Aws::Structure
565
+ end
566
+
567
+ # @note When making an API call, you may pass DescribeCostCategoryDefinitionRequest
568
+ # data as a hash:
569
+ #
570
+ # {
571
+ # cost_category_arn: "Arn", # required
572
+ # effective_on: "ZonedDateTime",
573
+ # }
574
+ #
575
+ # @!attribute [rw] cost_category_arn
576
+ # The unique identifier for your Cost Category.
577
+ # @return [String]
578
+ #
579
+ # @!attribute [rw] effective_on
580
+ # The date when the Cost Category was effective.
581
+ # @return [String]
582
+ #
583
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DescribeCostCategoryDefinitionRequest AWS API Documentation
584
+ #
585
+ class DescribeCostCategoryDefinitionRequest < Struct.new(
586
+ :cost_category_arn,
587
+ :effective_on)
588
+ include Aws::Structure
589
+ end
590
+
591
+ # @!attribute [rw] cost_category
592
+ # <i> <b>Cost Category is in preview release for AWS Billing and Cost
593
+ # Management and is subject to change. Your use of Cost Categories is
594
+ # subject to the Beta Service Participation terms of the <a
595
+ # href="https://aws.amazon.com/service-terms/">AWS Service Terms</a>
596
+ # (Section 1.10).</b> </i>
597
+ #
598
+ # The structure of Cost Categories. This includes detailed metadata
599
+ # and the set of rules for the `CostCategory` object.
600
+ # @return [Types::CostCategory]
601
+ #
602
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DescribeCostCategoryDefinitionResponse AWS API Documentation
603
+ #
604
+ class DescribeCostCategoryDefinitionResponse < Struct.new(
605
+ :cost_category)
606
+ include Aws::Structure
607
+ end
608
+
265
609
  # The metadata that you can use to filter and group your results. You
266
610
  # can use `GetDimensionValues` to find specific values.
267
611
  #
@@ -611,6 +955,10 @@ module Aws::CostExplorer
611
955
  # key: "TagKey",
612
956
  # values: ["Value"],
613
957
  # },
958
+ # cost_categories: {
959
+ # key: "CostCategoryName",
960
+ # values: ["Value"],
961
+ # },
614
962
  # },
615
963
  # ],
616
964
  # and: [
@@ -632,6 +980,10 @@ module Aws::CostExplorer
632
980
  # key: "TagKey",
633
981
  # values: ["Value"],
634
982
  # },
983
+ # cost_categories: {
984
+ # key: "CostCategoryName",
985
+ # values: ["Value"],
986
+ # },
635
987
  # },
636
988
  # ],
637
989
  # not: {
@@ -656,6 +1008,10 @@ module Aws::CostExplorer
656
1008
  # key: "TagKey",
657
1009
  # values: ["Value"],
658
1010
  # },
1011
+ # cost_categories: {
1012
+ # key: "CostCategoryName",
1013
+ # values: ["Value"],
1014
+ # },
659
1015
  # },
660
1016
  # dimensions: {
661
1017
  # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
@@ -665,6 +1021,10 @@ module Aws::CostExplorer
665
1021
  # key: "TagKey",
666
1022
  # values: ["Value"],
667
1023
  # },
1024
+ # cost_categories: {
1025
+ # key: "CostCategoryName",
1026
+ # values: ["Value"],
1027
+ # },
668
1028
  # }
669
1029
  #
670
1030
  # @!attribute [rw] or
@@ -687,6 +1047,16 @@ module Aws::CostExplorer
687
1047
  # The specific `Tag` to use for `Expression`.
688
1048
  # @return [Types::TagValues]
689
1049
  #
1050
+ # @!attribute [rw] cost_categories
1051
+ # <i> <b>Cost Category is in preview release for AWS Billing and Cost
1052
+ # Management and is subject to change. Your use of Cost Categories is
1053
+ # subject to the Beta Service Participation terms of the <a
1054
+ # href="https://aws.amazon.com/service-terms/">AWS Service Terms</a>
1055
+ # (Section 1.10).</b> </i>
1056
+ #
1057
+ # The specific `CostCategory` used for `Expression`.
1058
+ # @return [Types::CostCategoryValues]
1059
+ #
690
1060
  # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/Expression AWS API Documentation
691
1061
  #
692
1062
  class Expression < Struct.new(
@@ -694,7 +1064,8 @@ module Aws::CostExplorer
694
1064
  :and,
695
1065
  :not,
696
1066
  :dimensions,
697
- :tags)
1067
+ :tags,
1068
+ :cost_categories)
698
1069
  include Aws::Structure
699
1070
  end
700
1071
 
@@ -757,11 +1128,15 @@ module Aws::CostExplorer
757
1128
  # key: "TagKey",
758
1129
  # values: ["Value"],
759
1130
  # },
1131
+ # cost_categories: {
1132
+ # key: "CostCategoryName",
1133
+ # values: ["Value"],
1134
+ # },
760
1135
  # },
761
1136
  # metrics: ["MetricName"],
762
1137
  # group_by: [
763
1138
  # {
764
- # type: "DIMENSION", # accepts DIMENSION, TAG
1139
+ # type: "DIMENSION", # accepts DIMENSION, TAG, COST_CATEGORY
765
1140
  # key: "GroupDefinitionKey",
766
1141
  # },
767
1142
  # ],
@@ -905,11 +1280,15 @@ module Aws::CostExplorer
905
1280
  # key: "TagKey",
906
1281
  # values: ["Value"],
907
1282
  # },
1283
+ # cost_categories: {
1284
+ # key: "CostCategoryName",
1285
+ # values: ["Value"],
1286
+ # },
908
1287
  # },
909
1288
  # metrics: ["MetricName"],
910
1289
  # group_by: [
911
1290
  # {
912
- # type: "DIMENSION", # accepts DIMENSION, TAG
1291
+ # type: "DIMENSION", # accepts DIMENSION, TAG, COST_CATEGORY
913
1292
  # key: "GroupDefinitionKey",
914
1293
  # },
915
1294
  # ],
@@ -1052,6 +1431,10 @@ module Aws::CostExplorer
1052
1431
  # key: "TagKey",
1053
1432
  # values: ["Value"],
1054
1433
  # },
1434
+ # cost_categories: {
1435
+ # key: "CostCategoryName",
1436
+ # values: ["Value"],
1437
+ # },
1055
1438
  # },
1056
1439
  # prediction_interval_level: 1,
1057
1440
  # }
@@ -1434,7 +1817,7 @@ module Aws::CostExplorer
1434
1817
  # },
1435
1818
  # group_by: [
1436
1819
  # {
1437
- # type: "DIMENSION", # accepts DIMENSION, TAG
1820
+ # type: "DIMENSION", # accepts DIMENSION, TAG, COST_CATEGORY
1438
1821
  # key: "GroupDefinitionKey",
1439
1822
  # },
1440
1823
  # ],
@@ -1461,6 +1844,10 @@ module Aws::CostExplorer
1461
1844
  # key: "TagKey",
1462
1845
  # values: ["Value"],
1463
1846
  # },
1847
+ # cost_categories: {
1848
+ # key: "CostCategoryName",
1849
+ # values: ["Value"],
1850
+ # },
1464
1851
  # },
1465
1852
  # metrics: ["MetricName"],
1466
1853
  # next_page_token: "NextPageToken",
@@ -1713,7 +2100,7 @@ module Aws::CostExplorer
1713
2100
  # },
1714
2101
  # group_by: [
1715
2102
  # {
1716
- # type: "DIMENSION", # accepts DIMENSION, TAG
2103
+ # type: "DIMENSION", # accepts DIMENSION, TAG, COST_CATEGORY
1717
2104
  # key: "GroupDefinitionKey",
1718
2105
  # },
1719
2106
  # ],
@@ -1740,6 +2127,10 @@ module Aws::CostExplorer
1740
2127
  # key: "TagKey",
1741
2128
  # values: ["Value"],
1742
2129
  # },
2130
+ # cost_categories: {
2131
+ # key: "CostCategoryName",
2132
+ # values: ["Value"],
2133
+ # },
1743
2134
  # },
1744
2135
  # next_page_token: "NextPageToken",
1745
2136
  # }
@@ -1870,6 +2261,10 @@ module Aws::CostExplorer
1870
2261
  # key: "TagKey",
1871
2262
  # values: ["Value"],
1872
2263
  # },
2264
+ # cost_categories: {
2265
+ # key: "CostCategoryName",
2266
+ # values: ["Value"],
2267
+ # },
1873
2268
  # },
1874
2269
  # service: "GenericString", # required
1875
2270
  # page_size: 1,
@@ -1986,7 +2381,7 @@ module Aws::CostExplorer
1986
2381
  # },
1987
2382
  # group_by: [
1988
2383
  # {
1989
- # type: "DIMENSION", # accepts DIMENSION, TAG
2384
+ # type: "DIMENSION", # accepts DIMENSION, TAG, COST_CATEGORY
1990
2385
  # key: "GroupDefinitionKey",
1991
2386
  # },
1992
2387
  # ],
@@ -2013,6 +2408,10 @@ module Aws::CostExplorer
2013
2408
  # key: "TagKey",
2014
2409
  # values: ["Value"],
2015
2410
  # },
2411
+ # cost_categories: {
2412
+ # key: "CostCategoryName",
2413
+ # values: ["Value"],
2414
+ # },
2016
2415
  # },
2017
2416
  # metrics: ["MetricName"],
2018
2417
  # next_token: "NextPageToken",
@@ -2214,6 +2613,10 @@ module Aws::CostExplorer
2214
2613
  # key: "TagKey",
2215
2614
  # values: ["Value"],
2216
2615
  # },
2616
+ # cost_categories: {
2617
+ # key: "CostCategoryName",
2618
+ # values: ["Value"],
2619
+ # },
2217
2620
  # },
2218
2621
  # next_token: "NextPageToken",
2219
2622
  # max_results: 1,
@@ -2330,6 +2733,10 @@ module Aws::CostExplorer
2330
2733
  # key: "TagKey",
2331
2734
  # values: ["Value"],
2332
2735
  # },
2736
+ # cost_categories: {
2737
+ # key: "CostCategoryName",
2738
+ # values: ["Value"],
2739
+ # },
2333
2740
  # },
2334
2741
  # }
2335
2742
  #
@@ -2505,6 +2912,10 @@ module Aws::CostExplorer
2505
2912
  # key: "TagKey",
2506
2913
  # values: ["Value"],
2507
2914
  # },
2915
+ # cost_categories: {
2916
+ # key: "CostCategoryName",
2917
+ # values: ["Value"],
2918
+ # },
2508
2919
  # },
2509
2920
  # prediction_interval_level: 1,
2510
2921
  # }
@@ -2604,7 +3015,7 @@ module Aws::CostExplorer
2604
3015
  # data as a hash:
2605
3016
  #
2606
3017
  # {
2607
- # type: "DIMENSION", # accepts DIMENSION, TAG
3018
+ # type: "DIMENSION", # accepts DIMENSION, TAG, COST_CATEGORY
2608
3019
  # key: "GroupDefinitionKey",
2609
3020
  # }
2610
3021
  #
@@ -2681,6 +3092,54 @@ module Aws::CostExplorer
2681
3092
  include Aws::Structure
2682
3093
  end
2683
3094
 
3095
+ # @note When making an API call, you may pass ListCostCategoryDefinitionsRequest
3096
+ # data as a hash:
3097
+ #
3098
+ # {
3099
+ # effective_on: "ZonedDateTime",
3100
+ # next_token: "NextPageToken",
3101
+ # }
3102
+ #
3103
+ # @!attribute [rw] effective_on
3104
+ # The date when the Cost Category was effective.
3105
+ # @return [String]
3106
+ #
3107
+ # @!attribute [rw] next_token
3108
+ # The token to retrieve the next set of results. Amazon Web Services
3109
+ # provides the token when the response from a previous call has more
3110
+ # results than the maximum page size.
3111
+ #
3112
+ # You can use this information to retrieve the full Cost Category
3113
+ # information using `DescribeCostCategory`.
3114
+ # @return [String]
3115
+ #
3116
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ListCostCategoryDefinitionsRequest AWS API Documentation
3117
+ #
3118
+ class ListCostCategoryDefinitionsRequest < Struct.new(
3119
+ :effective_on,
3120
+ :next_token)
3121
+ include Aws::Structure
3122
+ end
3123
+
3124
+ # @!attribute [rw] cost_category_references
3125
+ # A reference to a Cost Category containing enough information to
3126
+ # identify the Cost Category.
3127
+ # @return [Array<Types::CostCategoryReference>]
3128
+ #
3129
+ # @!attribute [rw] next_token
3130
+ # The token to retrieve the next set of results. Amazon Web Services
3131
+ # provides the token when the response from a previous call has more
3132
+ # results than the maximum page size.
3133
+ # @return [String]
3134
+ #
3135
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ListCostCategoryDefinitionsResponse AWS API Documentation
3136
+ #
3137
+ class ListCostCategoryDefinitionsResponse < Struct.new(
3138
+ :cost_category_references,
3139
+ :next_token)
3140
+ include Aws::Structure
3141
+ end
3142
+
2684
3143
  # The aggregated value for a metric.
2685
3144
  #
2686
3145
  # @!attribute [rw] amount
@@ -3184,6 +3643,18 @@ module Aws::CostExplorer
3184
3643
  include Aws::Structure
3185
3644
  end
3186
3645
 
3646
+ # The specified ARN in the request doesn't exist.
3647
+ #
3648
+ # @!attribute [rw] message
3649
+ # @return [String]
3650
+ #
3651
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ResourceNotFoundException AWS API Documentation
3652
+ #
3653
+ class ResourceNotFoundException < Struct.new(
3654
+ :message)
3655
+ include Aws::Structure
3656
+ end
3657
+
3187
3658
  # Resource utilization of current resource.
3188
3659
  #
3189
3660
  # @!attribute [rw] ec2_resource_utilization
@@ -3819,6 +4290,19 @@ module Aws::CostExplorer
3819
4290
  include Aws::Structure
3820
4291
  end
3821
4292
 
4293
+ # You've reached the limit on the number of resources you can create,
4294
+ # or exceeded the size of an individual resources.
4295
+ #
4296
+ # @!attribute [rw] message
4297
+ # @return [String]
4298
+ #
4299
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ServiceQuotaExceededException AWS API Documentation
4300
+ #
4301
+ class ServiceQuotaExceededException < Struct.new(
4302
+ :message)
4303
+ include Aws::Structure
4304
+ end
4305
+
3822
4306
  # Hardware specifications for the service that you want recommendations
3823
4307
  # for.
3824
4308
  #
@@ -3942,6 +4426,85 @@ module Aws::CostExplorer
3942
4426
  include Aws::Structure
3943
4427
  end
3944
4428
 
4429
+ # @note When making an API call, you may pass UpdateCostCategoryDefinitionRequest
4430
+ # data as a hash:
4431
+ #
4432
+ # {
4433
+ # cost_category_arn: "Arn", # required
4434
+ # rule_version: "CostCategoryExpression.v1", # required, accepts CostCategoryExpression.v1
4435
+ # rules: [ # required
4436
+ # {
4437
+ # value: "CostCategoryValue", # required
4438
+ # rule: { # required
4439
+ # or: [
4440
+ # {
4441
+ # # recursive Expression
4442
+ # },
4443
+ # ],
4444
+ # and: [
4445
+ # {
4446
+ # # recursive Expression
4447
+ # },
4448
+ # ],
4449
+ # not: {
4450
+ # # recursive Expression
4451
+ # },
4452
+ # dimensions: {
4453
+ # key: "AZ", # accepts AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, REGION, SERVICE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION
4454
+ # values: ["Value"],
4455
+ # },
4456
+ # tags: {
4457
+ # key: "TagKey",
4458
+ # values: ["Value"],
4459
+ # },
4460
+ # cost_categories: {
4461
+ # key: "CostCategoryName",
4462
+ # values: ["Value"],
4463
+ # },
4464
+ # },
4465
+ # },
4466
+ # ],
4467
+ # }
4468
+ #
4469
+ # @!attribute [rw] cost_category_arn
4470
+ # The unique identifier for your Cost Category.
4471
+ # @return [String]
4472
+ #
4473
+ # @!attribute [rw] rule_version
4474
+ # The rule schema version in this particular Cost Category.
4475
+ # @return [String]
4476
+ #
4477
+ # @!attribute [rw] rules
4478
+ # Rules are processed in order. If there are multiple rules that match
4479
+ # the line item, then the first rule to match is used to determine
4480
+ # that Cost Category value.
4481
+ # @return [Array<Types::CostCategoryRule>]
4482
+ #
4483
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UpdateCostCategoryDefinitionRequest AWS API Documentation
4484
+ #
4485
+ class UpdateCostCategoryDefinitionRequest < Struct.new(
4486
+ :cost_category_arn,
4487
+ :rule_version,
4488
+ :rules)
4489
+ include Aws::Structure
4490
+ end
4491
+
4492
+ # @!attribute [rw] cost_category_arn
4493
+ # The unique identifier for your Cost Category.
4494
+ # @return [String]
4495
+ #
4496
+ # @!attribute [rw] effective_start
4497
+ # The Cost Category's effective start date.
4498
+ # @return [String]
4499
+ #
4500
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UpdateCostCategoryDefinitionResponse AWS API Documentation
4501
+ #
4502
+ class UpdateCostCategoryDefinitionResponse < Struct.new(
4503
+ :cost_category_arn,
4504
+ :effective_start)
4505
+ include Aws::Structure
4506
+ end
4507
+
3945
4508
  # The amount of utilization, in hours.
3946
4509
  #
3947
4510
  # @!attribute [rw] time_period