Creates a new Cost Category with the requested name and rules.
See also: AWS API Documentation
See ‘aws help’ for descriptions of global parameters.
create-cost-category-definition
--name <value>
--rule-version <value>
--rules <value>
[--cli-input-json | --cli-input-yaml]
[--generate-cli-skeleton <value>]
[--cli-auto-prompt <value>]
--name (string)
The unique name of the Cost Category.
--rule-version (string)
The rule schema version in this particular Cost Category.
Possible values:
CostCategoryExpression.v1
--rules (list)
The Cost Category rules used to categorize costs. For more information, see CostCategoryRule .
(structure)
Rules are processed in order. If there are multiple rules that match the line item, then the first rule to match is used to determine that Cost Category value.
Value -> (string)
The value a line item will be categorized as, if it matches the rule.
Rule -> (structure)
An Expression object used to categorize costs. This supports dimensions, Tags, and nested expressions. Currently the only dimensions supported are
LINKED_ACCOUNT,SERVICE_CODE,RECORD_TYPE, andLINKED_ACCOUNT_NAME.Root level
ORis not supported. We recommend that you create a separate rule instead.
RECORD_TYPEis a dimension used for Cost Explorer APIs, and is also supported for Cost Category expressions. This dimension uses different terms, depending on whether you’re using the console or API/JSON editor. For a detailed comparison, see Term Comparisons in the AWS Billing and Cost Management User Guide .Or -> (list)
Return results that match either
Dimensionobject.(structure)
Use
Expressionto filter by cost or by usage. There are two patterns:
Simple dimension values - You can set the dimension name and values for the filters that you plan to use. For example, you can filter for
REGION==us-east-1 OR REGION==us-west-1. TheExpressionfor that looks like this:{ "Dimensions": { "Key": "REGION", "Values": [ "us-east-1", “us-west-1” ] } }The list of dimension values are OR’d together to retrieve cost or usage data. You can createExpressionandDimensionValuesobjects using eitherwith*methods orset*methods in multiple lines.Compound dimension values with logical operations - You can use multiple
Expressiontypes and the logical operatorsAND/OR/NOTto create a list of one or moreExpressionobjects. This allows you to filter on more advanced options. For example, you can filter on((REGION == us-east-1 OR REGION == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer). TheExpressionfor that looks like this:{ "And": [ {"Or": [ {"Dimensions": { "Key": "REGION", "Values": [ "us-east-1", "us-west-1" ] }}, {"Tags": { "Key": "TagName", "Values": ["Value1"] } } ]}, {"Not": {"Dimensions": { "Key": "USAGE_TYPE", "Values": ["DataTransfer"] }}} ] }Note
Because each
Expressioncan have only one operator, the service returns an error if more than one is specified. The following example shows anExpressionobject that creates an error.
{ "And": [ ... ], "DimensionValues": { "Dimension": "USAGE_TYPE", "Values": [ "DataTransfer" ] } }Note
For
GetRightsizingRecommendationaction, a combination of OR and NOT is not supported. OR is not supported between different dimensions, or dimensions and tags. NOT operators aren’t supported. Dimensions are also limited toLINKED_ACCOUNT,REGION, orRIGHTSIZING_TYPE.Or -> (list)
Return results that match either
Dimensionobject.( … recursive … )
And -> (list)
Return results that match both
Dimensionobjects.( … recursive … )
( … recursive … )Dimensions -> (structure)
The specific
Dimensionto use forExpression.Key -> (string)
The names of the metadata types that you can use to filter and group your results. For example,
AZreturns a list of Availability Zones.Values -> (list)
The metadata values that you can use to filter and group your results. You can use
GetDimensionValuesto find specific values.(string)
MatchOptions -> (list)
The match options that you can use to filter your results.
MatchOptionsis only applicable for actions related to Cost Category. The default values forMatchOptionsisEQUALSandCASE_SENSITIVE.(string)
Tags -> (structure)
The specific
Tagto use forExpression.Key -> (string)
The key for the tag.
Values -> (list)
The specific value of the tag.
(string)
MatchOptions -> (list)
The match options that you can use to filter your results.
MatchOptionsis only applicable for only applicable for actions related to Cost Category. The default values forMatchOptionsisEQUALSandCASE_SENSITIVE.(string)
CostCategories -> (structure)
The filter based on
CostCategoryvalues.Key -> (string)
The unique name of the Cost Category.
Values -> (list)
The specific value of the Cost Category.
(string)
And -> (list)
Return results that match both
Dimensionobjects.(structure)
Use
Expressionto filter by cost or by usage. There are two patterns:
Simple dimension values - You can set the dimension name and values for the filters that you plan to use. For example, you can filter for
REGION==us-east-1 OR REGION==us-west-1. TheExpressionfor that looks like this:{ "Dimensions": { "Key": "REGION", "Values": [ "us-east-1", “us-west-1” ] } }The list of dimension values are OR’d together to retrieve cost or usage data. You can createExpressionandDimensionValuesobjects using eitherwith*methods orset*methods in multiple lines.Compound dimension values with logical operations - You can use multiple
Expressiontypes and the logical operatorsAND/OR/NOTto create a list of one or moreExpressionobjects. This allows you to filter on more advanced options. For example, you can filter on((REGION == us-east-1 OR REGION == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer). TheExpressionfor that looks like this:{ "And": [ {"Or": [ {"Dimensions": { "Key": "REGION", "Values": [ "us-east-1", "us-west-1" ] }}, {"Tags": { "Key": "TagName", "Values": ["Value1"] } } ]}, {"Not": {"Dimensions": { "Key": "USAGE_TYPE", "Values": ["DataTransfer"] }}} ] }Note
Because each
Expressioncan have only one operator, the service returns an error if more than one is specified. The following example shows anExpressionobject that creates an error.
{ "And": [ ... ], "DimensionValues": { "Dimension": "USAGE_TYPE", "Values": [ "DataTransfer" ] } }Note
For
GetRightsizingRecommendationaction, a combination of OR and NOT is not supported. OR is not supported between different dimensions, or dimensions and tags. NOT operators aren’t supported. Dimensions are also limited toLINKED_ACCOUNT,REGION, orRIGHTSIZING_TYPE.Or -> (list)
Return results that match either
Dimensionobject.( … recursive … )
And -> (list)
Return results that match both
Dimensionobjects.( … recursive … )
( … recursive … )Dimensions -> (structure)
The specific
Dimensionto use forExpression.Key -> (string)
The names of the metadata types that you can use to filter and group your results. For example,
AZreturns a list of Availability Zones.Values -> (list)
The metadata values that you can use to filter and group your results. You can use
GetDimensionValuesto find specific values.(string)
MatchOptions -> (list)
The match options that you can use to filter your results.
MatchOptionsis only applicable for actions related to Cost Category. The default values forMatchOptionsisEQUALSandCASE_SENSITIVE.(string)
Tags -> (structure)
The specific
Tagto use forExpression.Key -> (string)
The key for the tag.
Values -> (list)
The specific value of the tag.
(string)
MatchOptions -> (list)
The match options that you can use to filter your results.
MatchOptionsis only applicable for only applicable for actions related to Cost Category. The default values forMatchOptionsisEQUALSandCASE_SENSITIVE.(string)
CostCategories -> (structure)
The filter based on
CostCategoryvalues.Key -> (string)
The unique name of the Cost Category.
Values -> (list)
The specific value of the Cost Category.
(string)
Not -> (structure)
Return results that don’t match a
Dimensionobject.Or -> (list)
Return results that match either
Dimensionobject.( … recursive … )
And -> (list)
Return results that match both
Dimensionobjects.( … recursive … )
( … recursive … )Dimensions -> (structure)
The specific
Dimensionto use forExpression.Key -> (string)
The names of the metadata types that you can use to filter and group your results. For example,
AZreturns a list of Availability Zones.Values -> (list)
The metadata values that you can use to filter and group your results. You can use
GetDimensionValuesto find specific values.(string)
MatchOptions -> (list)
The match options that you can use to filter your results.
MatchOptionsis only applicable for actions related to Cost Category. The default values forMatchOptionsisEQUALSandCASE_SENSITIVE.(string)
Tags -> (structure)
The specific
Tagto use forExpression.Key -> (string)
The key for the tag.
Values -> (list)
The specific value of the tag.
(string)
MatchOptions -> (list)
The match options that you can use to filter your results.
MatchOptionsis only applicable for only applicable for actions related to Cost Category. The default values forMatchOptionsisEQUALSandCASE_SENSITIVE.(string)
CostCategories -> (structure)
The filter based on
CostCategoryvalues.Key -> (string)
The unique name of the Cost Category.
Values -> (list)
The specific value of the Cost Category.
(string)
Dimensions -> (structure)
The specific
Dimensionto use forExpression.Key -> (string)
The names of the metadata types that you can use to filter and group your results. For example,
AZreturns a list of Availability Zones.Values -> (list)
The metadata values that you can use to filter and group your results. You can use
GetDimensionValuesto find specific values.(string)
MatchOptions -> (list)
The match options that you can use to filter your results.
MatchOptionsis only applicable for actions related to Cost Category. The default values forMatchOptionsisEQUALSandCASE_SENSITIVE.(string)
Tags -> (structure)
The specific
Tagto use forExpression.Key -> (string)
The key for the tag.
Values -> (list)
The specific value of the tag.
(string)
MatchOptions -> (list)
The match options that you can use to filter your results.
MatchOptionsis only applicable for only applicable for actions related to Cost Category. The default values forMatchOptionsisEQUALSandCASE_SENSITIVE.(string)
CostCategories -> (structure)
The filter based on
CostCategoryvalues.Key -> (string)
The unique name of the Cost Category.
Values -> (list)
The specific value of the Cost Category.
(string)
JSON Syntax:
[
{
"Value": "string",
"Rule": {
"Or": [
{
"Or": [
{ ... recursive ... }
...
],
"And": [
{ ... recursive ... }
...
],
"Not": { ... recursive ... },
"Dimensions": {
"Key": "AZ"|"INSTANCE_TYPE"|"LINKED_ACCOUNT"|"LINKED_ACCOUNT_NAME"|"OPERATION"|"PURCHASE_TYPE"|"REGION"|"SERVICE"|"SERVICE_CODE"|"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",
"Values": ["string", ...],
"MatchOptions": ["EQUALS"|"STARTS_WITH"|"ENDS_WITH"|"CONTAINS"|"CASE_SENSITIVE"|"CASE_INSENSITIVE", ...]
},
"Tags": {
"Key": "string",
"Values": ["string", ...],
"MatchOptions": ["EQUALS"|"STARTS_WITH"|"ENDS_WITH"|"CONTAINS"|"CASE_SENSITIVE"|"CASE_INSENSITIVE", ...]
},
"CostCategories": {
"Key": "string",
"Values": ["string", ...]
}
}
...
],
"And": [
{
"Or": [
{ ... recursive ... }
...
],
"And": [
{ ... recursive ... }
...
],
"Not": { ... recursive ... },
"Dimensions": {
"Key": "AZ"|"INSTANCE_TYPE"|"LINKED_ACCOUNT"|"LINKED_ACCOUNT_NAME"|"OPERATION"|"PURCHASE_TYPE"|"REGION"|"SERVICE"|"SERVICE_CODE"|"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",
"Values": ["string", ...],
"MatchOptions": ["EQUALS"|"STARTS_WITH"|"ENDS_WITH"|"CONTAINS"|"CASE_SENSITIVE"|"CASE_INSENSITIVE", ...]
},
"Tags": {
"Key": "string",
"Values": ["string", ...],
"MatchOptions": ["EQUALS"|"STARTS_WITH"|"ENDS_WITH"|"CONTAINS"|"CASE_SENSITIVE"|"CASE_INSENSITIVE", ...]
},
"CostCategories": {
"Key": "string",
"Values": ["string", ...]
}
}
...
],
"Not": {
"Or": [
{ ... recursive ... }
...
],
"And": [
{ ... recursive ... }
...
],
"Not": { ... recursive ... },
"Dimensions": {
"Key": "AZ"|"INSTANCE_TYPE"|"LINKED_ACCOUNT"|"LINKED_ACCOUNT_NAME"|"OPERATION"|"PURCHASE_TYPE"|"REGION"|"SERVICE"|"SERVICE_CODE"|"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",
"Values": ["string", ...],
"MatchOptions": ["EQUALS"|"STARTS_WITH"|"ENDS_WITH"|"CONTAINS"|"CASE_SENSITIVE"|"CASE_INSENSITIVE", ...]
},
"Tags": {
"Key": "string",
"Values": ["string", ...],
"MatchOptions": ["EQUALS"|"STARTS_WITH"|"ENDS_WITH"|"CONTAINS"|"CASE_SENSITIVE"|"CASE_INSENSITIVE", ...]
},
"CostCategories": {
"Key": "string",
"Values": ["string", ...]
}
},
"Dimensions": {
"Key": "AZ"|"INSTANCE_TYPE"|"LINKED_ACCOUNT"|"LINKED_ACCOUNT_NAME"|"OPERATION"|"PURCHASE_TYPE"|"REGION"|"SERVICE"|"SERVICE_CODE"|"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",
"Values": ["string", ...],
"MatchOptions": ["EQUALS"|"STARTS_WITH"|"ENDS_WITH"|"CONTAINS"|"CASE_SENSITIVE"|"CASE_INSENSITIVE", ...]
},
"Tags": {
"Key": "string",
"Values": ["string", ...],
"MatchOptions": ["EQUALS"|"STARTS_WITH"|"ENDS_WITH"|"CONTAINS"|"CASE_SENSITIVE"|"CASE_INSENSITIVE", ...]
},
"CostCategories": {
"Key": "string",
"Values": ["string", ...]
}
}
}
...
]
--cli-input-json | --cli-input-yaml (string)
Reads arguments from the JSON string provided. The JSON string follows the format provided by --generate-cli-skeleton. If other arguments are provided on the command line, those values will override the JSON-provided values. It is not possible to pass arbitrary binary values using a JSON-provided value as the string will be taken literally. This may not be specified along with --cli-input-yaml.
--generate-cli-skeleton (string)
Prints a JSON skeleton to standard output without sending an API request. If provided with no value or the value input, prints a sample input JSON that can be used as an argument for --cli-input-json. Similarly, if provided yaml-input it will print a sample input YAML that can be used with --cli-input-yaml. If provided with the value output, it validates the command inputs and returns a sample output JSON for that command.
--cli-auto-prompt (boolean)
Automatically prompt for CLI input parameters.
See ‘aws help’ for descriptions of global parameters.
CostCategoryArn -> (string)
The unique identifier for your newly created Cost Category.
EffectiveStart -> (string)
The Cost Category’s effective start date.