AWS::BillingConductor::PricingRule
Creates a pricing rule which can be associated with a pricing plan, or a set of pricing plans.
Syntax
To declare this entity in your AWS CloudFormation template, use the following syntax:
JSON
{ "Type" : "AWS::BillingConductor::PricingRule", "Properties" : { "BillingEntity" :
String
, "Description" :String
, "ModifierPercentage" :Number
, "Name" :String
, "Operation" :String
, "Scope" :String
, "Service" :String
, "Tags" :[ Tag, ... ]
, "Tiering" :Tiering
, "Type" :String
, "UsageType" :String
} }
YAML
Type: AWS::BillingConductor::PricingRule Properties: BillingEntity:
String
Description:String
ModifierPercentage:Number
Name:String
Operation:String
Scope:String
Service:String
Tags:- Tag
Tiering:Tiering
Type:String
UsageType:String
Properties
BillingEntity
-
The seller of services provided by AWS, their affiliates, or third-party providers selling services via AWS Marketplace.
Required: No
Type: String
Allowed values:
AWS | AWS Marketplace | AISPL
Update requires: Replacement
Description
-
The pricing rule description.
Required: No
Type: String
Maximum:
1024
Update requires: No interruption
ModifierPercentage
-
A percentage modifier applied on the public pricing rates.
Required: No
Type: Number
Minimum:
0
Update requires: No interruption
Name
-
The name of a pricing rule.
Required: Yes
Type: String
Pattern:
[a-zA-Z0-9_\+=\.\-@]+
Minimum:
1
Maximum:
128
Update requires: No interruption
Operation
-
Operation is the specific AWS action covered by this line item. This describes the specific usage of the line item.
If the
Scope
attribute is set toSKU
, this attribute indicates which operation thePricingRule
is modifying. For example, a value ofRunInstances:0202
indicates the operation of running an Amazon EC2 instance.Required: No
Type: String
Pattern:
^\S+$
Minimum:
1
Maximum:
256
Update requires: Replacement
Scope
-
The scope of pricing rule that indicates if it's globally applicable or service-specific.
Required: Yes
Type: String
Allowed values:
GLOBAL | SERVICE | BILLING_ENTITY | SKU
Update requires: Replacement
Service
-
If the
Scope
attribute isSERVICE
, this attribute indicates which service thePricingRule
is applicable for.Required: No
Type: String
Pattern:
[a-zA-Z0-9\.\-]+
Minimum:
1
Maximum:
128
Update requires: Replacement
-
A map that contains tag keys and tag values that are attached to a pricing rule.
Required: No
Type: Array of Tag
Update requires: No interruption
Tiering
-
The set of tiering configurations for the pricing rule.
Required: No
Type: Tiering
Update requires: No interruption
Type
-
The type of pricing rule.
Required: Yes
Type: String
Allowed values:
MARKUP | DISCOUNT | TIERING
Update requires: No interruption
UsageType
-
Usage Type is the unit that each service uses to measure the usage of a specific type of resource.
Required: No
Type: String
Pattern:
^\S+$
Minimum:
1
Maximum:
256
Update requires: Replacement
Return values
Ref
For more information about using the Ref
function, see Ref
.
Fn::GetAtt
Arn
-
The Amazon Resource Name (ARN) used to uniquely identify a pricing rule.
AssociatedPricingPlanCount
-
The pricing plans count that this pricing rule is associated with.
CreationTime
-
The time the pricing rule was created.
LastModifiedTime
-
The most recent time the pricing rule was modified.
Examples
Simple pricing rule
The following example shows a pricing rule that applies a 10% global markup.
JSON
{ "Resources": { "TestPricingRule": { "Type": "AWS::BillingConductor::PricingRule", "Properties": { "Name": "TestPricingRule", "Description": "Test pricing rule created through CloudFormation. Mark everything by 10%.", "Type": "MARKUP", "Scope": "GLOBAL", "ModifierPercentage": 10 } } } }
YAML
Resources: TestPricingRule: Type: 'AWS::BillingConductor::PricingRule' Properties: Name: 'TestPricingRule' Description: 'Test pricing rule created through CloudFormation. Mark everything by 10%.' Type: 'MARKUP' Scope: 'GLOBAL' ModifierPercentage: 10
AWS Marketplace pricing rule
The following example shows a pricing rule that targets only AWS Marketplace charges.
JSON
{ "Resources": { "TestPricingRule": { "Type": "AWS::BillingConductor::PricingRule", "Properties": { "Name": "TestPricingRule", "Description": "Test pricing rule created through CloudFormation. Keep all MP charges at public on demand rate. " "Type": "MARKUP", "Scope": "BILLING_ENTITY", "BillingEntity": "AWS Marketplace", "ModifierPercentage": 0 } } } }
YAML
Resources: TestPricingRule: Type: 'AWS::BillingConductor::PricingRule' Properties: Name: 'TestPricingRule' Description: 'Test pricing rule created through CloudFormation. Keep all MP charges at public on demand rate.' Type: 'MARKUP' Scope: 'BILLING_ENTITY' BillingEntity: 'AWS Marketplace' ModifierPercentage: 0