Pricing

Table of Contents

Client

class Pricing.Client

A low-level client representing AWS Price List Service (Pricing):

import boto3

client = boto3.client('pricing')

These are the available methods:

can_paginate(operation_name)

Check if an operation can be paginated.

Parameters
operation_name (string) -- The operation name. This is the same name as the method name on the client. For example, if the method name is create_foo, and you'd normally invoke the operation as client.create_foo(**kwargs), if the create_foo operation can be paginated, you can use the call client.get_paginator("create_foo").
Returns
True if the operation can be paginated, False otherwise.
describe_services(**kwargs)

Returns the metadata for one service or a list of the metadata for all services. Use this without a service code to get the service codes for all services. Use it with a service code, such as AmazonEC2 , to get information specific to that service, such as the attribute names available for that service. For example, some of the attribute names available for EC2 are volumeType , maxIopsVolume , operation , locationType , and instanceCapacity10xlarge .

See also: AWS API Documentation

Request Syntax

response = client.describe_services(
    ServiceCode='string',
    FormatVersion='string',
    NextToken='string',
    MaxResults=123
)
Parameters
  • ServiceCode (string) -- The code for the service whose information you want to retrieve, such as AmazonEC2 . You can use the ServiceCode to filter the results in a GetProducts call. To retrieve a list of all services, leave this blank.
  • FormatVersion (string) --

    The format version that you want the response to be in.

    Valid values are: aws_v1

  • NextToken (string) -- The pagination token that indicates the next set of results that you want to retrieve.
  • MaxResults (integer) -- The maximum number of results that you want returned in the response.
Return type

dict

Returns

Response Syntax

{
    'Services': [
        {
            'ServiceCode': 'string',
            'AttributeNames': [
                'string',
            ]
        },
    ],
    'FormatVersion': 'string',
    'NextToken': 'string'
}

Response Structure

  • (dict) --

    • Services (list) --

      The service metadata for the service or services in the response.

      • (dict) --

        The metadata for a service, such as the service code and available attribute names.

        • ServiceCode (string) --

          The code for the AWS service.

        • AttributeNames (list) --

          The attributes that are available for this service.

          • (string) --
    • FormatVersion (string) --

      The format version of the response. For example, aws_v1 .

    • NextToken (string) --

      The pagination token for the next set of retreivable results.

Exceptions

  • Pricing.Client.exceptions.InternalErrorException
  • Pricing.Client.exceptions.InvalidParameterException
  • Pricing.Client.exceptions.NotFoundException
  • Pricing.Client.exceptions.InvalidNextTokenException
  • Pricing.Client.exceptions.ExpiredNextTokenException

Examples

response = client.describe_services(
    FormatVersion='aws_v1',
    MaxResults=1,
    ServiceCode='AmazonEC2',
)

print(response)

Expected Output:

{
    'FormatVersion': 'aws_v1',
    'NextToken': 'abcdefg123',
    'Services': [
        {
            'AttributeNames': [
                'volumeType',
                'maxIopsvolume',
                'instanceCapacity10xlarge',
                'locationType',
                'operation',
            ],
            'ServiceCode': 'AmazonEC2',
        },
    ],
    'ResponseMetadata': {
        '...': '...',
    },
}
generate_presigned_url(ClientMethod, Params=None, ExpiresIn=3600, HttpMethod=None)

Generate a presigned url given a client, its method, and arguments

Parameters
  • ClientMethod (string) -- The client method to presign for
  • Params (dict) -- The parameters normally passed to ClientMethod.
  • ExpiresIn (int) -- The number of seconds the presigned url is valid for. By default it expires in an hour (3600 seconds)
  • HttpMethod (string) -- The http method to use on the generated url. By default, the http method is whatever is used in the method's model.
Returns

The presigned url

get_attribute_values(**kwargs)

Returns a list of attribute values. Attibutes are similar to the details in a Price List API offer file. For a list of available attributes, see Offer File Definitions in the AWS Billing and Cost Management User Guide .

See also: AWS API Documentation

Request Syntax

response = client.get_attribute_values(
    ServiceCode='string',
    AttributeName='string',
    NextToken='string',
    MaxResults=123
)
Parameters
  • ServiceCode (string) --

    [REQUIRED]

    The service code for the service whose attributes you want to retrieve. For example, if you want the retrieve an EC2 attribute, use AmazonEC2 .

  • AttributeName (string) --

    [REQUIRED]

    The name of the attribute that you want to retrieve the values for, such as volumeType .

  • NextToken (string) -- The pagination token that indicates the next set of results that you want to retrieve.
  • MaxResults (integer) -- The maximum number of results to return in response.
Return type

dict

Returns

Response Syntax

{
    'AttributeValues': [
        {
            'Value': 'string'
        },
    ],
    'NextToken': 'string'
}

Response Structure

  • (dict) --

    • AttributeValues (list) --

      The list of values for an attribute. For example, Throughput Optimized HDD and Provisioned IOPS are two available values for the AmazonEC2 volumeType .

      • (dict) --

        The values of a given attribute, such as Throughput Optimized HDD or Provisioned IOPS for the Amazon EC2 volumeType attribute.

        • Value (string) --

          The specific value of an attributeName .

    • NextToken (string) --

      The pagination token that indicates the next set of results to retrieve.

Exceptions

  • Pricing.Client.exceptions.InternalErrorException
  • Pricing.Client.exceptions.InvalidParameterException
  • Pricing.Client.exceptions.NotFoundException
  • Pricing.Client.exceptions.InvalidNextTokenException
  • Pricing.Client.exceptions.ExpiredNextTokenException

Examples

This operation returns a list of values available for the given attribute.

response = client.get_attribute_values(
    AttributeName='volumeType',
    MaxResults=2,
    ServiceCode='AmazonEC2',
)

print(response)

Expected Output:

{
    'AttributeValues': [
        {
            'Value': 'Throughput Optimized HDD',
        },
        {
            'Value': 'Provisioned IOPS',
        },
    ],
    'NextToken': 'GpgauEXAMPLEezucl5LV0w==:7GzYJ0nw0DBTJ2J66EoTIIynE6O1uXwQtTRqioJzQadBnDVgHPzI1en4BUQnPCLpzeBk9RQQAWaFieA4+DapFAGLgk+Z/9/cTw9GldnPOHN98+FdmJP7wKU3QQpQ8MQr5KOeBkIsAqvAQYdL0DkL7tHwPtE5iCEByAmg9gcC/yBU1vAOsf7R3VaNN4M5jMDv3woSWqASSIlBVB6tgW78YL22KhssoItM/jWW+aP6Jqtq4mldxp/ct6DWAl+xLFwHU/CbketimPPXyqHF3/UXDw==',
    'ResponseMetadata': {
        '...': '...',
    },
}
get_paginator(operation_name)

Create a paginator for an operation.

Parameters
operation_name (string) -- The operation name. This is the same name as the method name on the client. For example, if the method name is create_foo, and you'd normally invoke the operation as client.create_foo(**kwargs), if the create_foo operation can be paginated, you can use the call client.get_paginator("create_foo").
Raises OperationNotPageableError
Raised if the operation is not pageable. You can use the client.can_paginate method to check if an operation is pageable.
Return type
L{botocore.paginate.Paginator}
Returns
A paginator object.
get_products(**kwargs)

Returns a list of all products that match the filter criteria.

See also: AWS API Documentation

Request Syntax

response = client.get_products(
    ServiceCode='string',
    Filters=[
        {
            'Type': 'TERM_MATCH',
            'Field': 'string',
            'Value': 'string'
        },
    ],
    FormatVersion='string',
    NextToken='string',
    MaxResults=123
)
Parameters
  • ServiceCode (string) -- The code for the service whose products you want to retrieve.
  • Filters (list) --

    The list of filters that limit the returned products. only products that match all filters are returned.

    • (dict) --

      The constraints that you want all returned products to match.

      • Type (string) -- [REQUIRED]

        The type of filter that you want to use.

        Valid values are: TERM_MATCH . TERM_MATCH returns only products that match both the given filter field and the given value.

      • Field (string) -- [REQUIRED]

        The product metadata field that you want to filter on. You can filter by just the service code to see all products for a specific service, filter by just the attribute name to see a specific attribute for multiple services, or use both a service code and an attribute name to retrieve only products that match both fields.

        Valid values include: ServiceCode , and all attribute names

        For example, you can filter by the AmazonEC2 service code and the volumeType attribute name to get the prices for only Amazon EC2 volumes.

      • Value (string) -- [REQUIRED]

        The service code or attribute value that you want to filter by. If you are filtering by service code this is the actual service code, such as AmazonEC2 . If you are filtering by attribute name, this is the attribute value that you want the returned products to match, such as a Provisioned IOPS volume.

  • FormatVersion (string) --

    The format version that you want the response to be in.

    Valid values are: aws_v1

  • NextToken (string) -- The pagination token that indicates the next set of results that you want to retrieve.
  • MaxResults (integer) -- The maximum number of results to return in the response.
Return type

dict

Returns

Response Syntax

{
    'FormatVersion': 'string',
    'PriceList': [
        'string',
    ],
    'NextToken': 'string'
}

Response Structure

  • (dict) --

    • FormatVersion (string) --

      The format version of the response. For example, aws_v1.

    • PriceList (list) --

      The list of products that match your filters. The list contains both the product metadata and the price information.

      • (string) --
    • NextToken (string) --

      The pagination token that indicates the next set of results to retrieve.

Exceptions

  • Pricing.Client.exceptions.InternalErrorException
  • Pricing.Client.exceptions.InvalidParameterException
  • Pricing.Client.exceptions.NotFoundException
  • Pricing.Client.exceptions.InvalidNextTokenException
  • Pricing.Client.exceptions.ExpiredNextTokenException

Examples

This operation returns a list of products that match the given criteria.

response = client.get_products(
    Filters=[
        {
            'Field': 'ServiceCode',
            'Type': 'TERM_MATCH',
            'Value': 'AmazonEC2',
        },
        {
            'Field': 'volumeType',
            'Type': 'TERM_MATCH',
            'Value': 'Provisioned IOPS',
        },
    ],
    FormatVersion='aws_v1',
    MaxResults=1,
)

print(response)

Expected Output:

{
    'FormatVersion': 'aws_v1',
    'NextToken': '57r3EXAMPLEujbzWfHF7Ciw==:ywSmZsD3mtpQmQLQ5XfOsIMkYybSj+vAT+kGmwMFq+K9DGmIoJkz7lunVeamiOPgthdWSO2a7YKojCO+zY4dJmuNl2QvbNhXs+AJ2Ufn7xGmJncNI2TsEuAsVCUfTAvAQNcwwamtk6XuZ4YdNnooV62FjkV3ZAn40d9+wAxV7+FImvhUHi/+f8afgZdGh2zPUlH8jlV9uUtj0oHp8+DhPUuHXh+WBII1E/aoKpPSm3c=',
    'PriceList': [
        '{"product":{"productFamily":"Storage","attributes":{"storageMedia":"SSD-backed","maxThroughputvolume":"320 MB/sec","volumeType":"Provisioned IOPS","maxIopsvolume":"20000","servicecode":"AmazonEC2","usagetype":"CAN1-EBS:VolumeUsage.piops","locationType":"AWS Region","location":"Canada (Central)","servicename":"Amazon Elastic Compute Cloud","maxVolumeSize":"16 TiB","operation":""},"sku":"WQGC34PB2AWS8R4U"},"serviceCode":"AmazonEC2","terms":{"OnDemand":{"WQGC34PB2AWS8R4U.JRTCKXETXF":{"priceDimensions":{"WQGC34PB2AWS8R4U.JRTCKXETXF.6YS6EN2CT7":{"unit":"GB-Mo","endRange":"Inf","description":"$0.138 per GB-month of Provisioned IOPS SSD (io1)  provisioned storage - Canada (Central)","appliesTo":[],"rateCode":"WQGC34PB2AWS8R4U.JRTCKXETXF.6YS6EN2CT7","beginRange":"0","pricePerUnit":{"USD":"0.1380000000"}}},"sku":"WQGC34PB2AWS8R4U","effectiveDate":"2017-08-01T00:00:00Z","offerTermCode":"JRTCKXETXF","termAttributes":{}}}},"version":"20170901182201","publicationDate":"2017-09-01T18:22:01Z"}',
    ],
    'ResponseMetadata': {
        '...': '...',
    },
}
get_waiter(waiter_name)

Returns an object that can wait for some condition.

Parameters
waiter_name (str) -- The name of the waiter to get. See the waiters section of the service docs for a list of available waiters.
Returns
The specified waiter object.
Return type
botocore.waiter.Waiter

Paginators

The available paginators are:

class Pricing.Paginator.DescribeServices
paginator = client.get_paginator('describe_services')
paginate(**kwargs)

Creates an iterator that will paginate through responses from Pricing.Client.describe_services().

See also: AWS API Documentation

Request Syntax

response_iterator = paginator.paginate(
    ServiceCode='string',
    FormatVersion='string',
    PaginationConfig={
        'MaxItems': 123,
        'PageSize': 123,
        'StartingToken': 'string'
    }
)
Parameters
  • ServiceCode (string) -- The code for the service whose information you want to retrieve, such as AmazonEC2 . You can use the ServiceCode to filter the results in a GetProducts call. To retrieve a list of all services, leave this blank.
  • FormatVersion (string) --

    The format version that you want the response to be in.

    Valid values are: aws_v1

  • PaginationConfig (dict) --

    A dictionary that provides parameters to control pagination.

    • MaxItems (integer) --

      The total number of items to return. If the total number of items available is more than the value specified in max-items then a NextToken will be provided in the output that you can use to resume pagination.

    • PageSize (integer) --

      The size of each page.

    • StartingToken (string) --

      A token to specify where to start paginating. This is the NextToken from a previous response.

Return type

dict

Returns

Response Syntax

{
    'Services': [
        {
            'ServiceCode': 'string',
            'AttributeNames': [
                'string',
            ]
        },
    ],
    'FormatVersion': 'string',

}

Response Structure

  • (dict) --

    • Services (list) --

      The service metadata for the service or services in the response.

      • (dict) --

        The metadata for a service, such as the service code and available attribute names.

        • ServiceCode (string) --

          The code for the AWS service.

        • AttributeNames (list) --

          The attributes that are available for this service.

          • (string) --
    • FormatVersion (string) --

      The format version of the response. For example, aws_v1 .

class Pricing.Paginator.GetAttributeValues
paginator = client.get_paginator('get_attribute_values')
paginate(**kwargs)

Creates an iterator that will paginate through responses from Pricing.Client.get_attribute_values().

See also: AWS API Documentation

Request Syntax

response_iterator = paginator.paginate(
    ServiceCode='string',
    AttributeName='string',
    PaginationConfig={
        'MaxItems': 123,
        'PageSize': 123,
        'StartingToken': 'string'
    }
)
Parameters
  • ServiceCode (string) --

    [REQUIRED]

    The service code for the service whose attributes you want to retrieve. For example, if you want the retrieve an EC2 attribute, use AmazonEC2 .

  • AttributeName (string) --

    [REQUIRED]

    The name of the attribute that you want to retrieve the values for, such as volumeType .

  • PaginationConfig (dict) --

    A dictionary that provides parameters to control pagination.

    • MaxItems (integer) --

      The total number of items to return. If the total number of items available is more than the value specified in max-items then a NextToken will be provided in the output that you can use to resume pagination.

    • PageSize (integer) --

      The size of each page.

    • StartingToken (string) --

      A token to specify where to start paginating. This is the NextToken from a previous response.

Return type

dict

Returns

Response Syntax

{
    'AttributeValues': [
        {
            'Value': 'string'
        },
    ],

}

Response Structure

  • (dict) --

    • AttributeValues (list) --

      The list of values for an attribute. For example, Throughput Optimized HDD and Provisioned IOPS are two available values for the AmazonEC2 volumeType .

      • (dict) --

        The values of a given attribute, such as Throughput Optimized HDD or Provisioned IOPS for the Amazon EC2 volumeType attribute.

        • Value (string) --

          The specific value of an attributeName .

class Pricing.Paginator.GetProducts
paginator = client.get_paginator('get_products')
paginate(**kwargs)

Creates an iterator that will paginate through responses from Pricing.Client.get_products().

See also: AWS API Documentation

Request Syntax

response_iterator = paginator.paginate(
    ServiceCode='string',
    Filters=[
        {
            'Type': 'TERM_MATCH',
            'Field': 'string',
            'Value': 'string'
        },
    ],
    FormatVersion='string',
    PaginationConfig={
        'MaxItems': 123,
        'PageSize': 123,
        'StartingToken': 'string'
    }
)
Parameters
  • ServiceCode (string) -- The code for the service whose products you want to retrieve.
  • Filters (list) --

    The list of filters that limit the returned products. only products that match all filters are returned.

    • (dict) --

      The constraints that you want all returned products to match.

      • Type (string) -- [REQUIRED]

        The type of filter that you want to use.

        Valid values are: TERM_MATCH . TERM_MATCH returns only products that match both the given filter field and the given value.

      • Field (string) -- [REQUIRED]

        The product metadata field that you want to filter on. You can filter by just the service code to see all products for a specific service, filter by just the attribute name to see a specific attribute for multiple services, or use both a service code and an attribute name to retrieve only products that match both fields.

        Valid values include: ServiceCode , and all attribute names

        For example, you can filter by the AmazonEC2 service code and the volumeType attribute name to get the prices for only Amazon EC2 volumes.

      • Value (string) -- [REQUIRED]

        The service code or attribute value that you want to filter by. If you are filtering by service code this is the actual service code, such as AmazonEC2 . If you are filtering by attribute name, this is the attribute value that you want the returned products to match, such as a Provisioned IOPS volume.

  • FormatVersion (string) --

    The format version that you want the response to be in.

    Valid values are: aws_v1

  • PaginationConfig (dict) --

    A dictionary that provides parameters to control pagination.

    • MaxItems (integer) --

      The total number of items to return. If the total number of items available is more than the value specified in max-items then a NextToken will be provided in the output that you can use to resume pagination.

    • PageSize (integer) --

      The size of each page.

    • StartingToken (string) --

      A token to specify where to start paginating. This is the NextToken from a previous response.

Return type

dict

Returns

Response Syntax

{
    'FormatVersion': 'string',
    'PriceList': [
        'string',
    ],

}

Response Structure

  • (dict) --

    • FormatVersion (string) --

      The format version of the response. For example, aws_v1.

    • PriceList (list) --

      The list of products that match your filters. The list contains both the product metadata and the price information.

      • (string) --