AWS::BillingConductor::PricingRule - AWS CloudFormation

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 to SKU, this attribute indicates which operation the PricingRule is modifying. For example, a value of RunInstances: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 is SERVICE, this attribute indicates which service the PricingRule is applicable for.

Required: No

Type: String

Pattern: [a-zA-Z0-9\.\-]+

Minimum: 1

Maximum: 128

Update requires: Replacement

Tags

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