CostandUsageReportService

Client

class CostandUsageReportService.Client

A low-level client representing AWS Cost and Usage Report Service

The AWS Cost and Usage Report API enables you to programmatically create, query, and delete AWS Cost and Usage report definitions.

AWS Cost and Usage reports track the monthly AWS costs and usage associated with your AWS account. The report contains line items for each unique combination of AWS product, usage type, and operation that your AWS account uses. You can configure the AWS Cost and Usage report to show only the data that you want, using the AWS Cost and Usage API.

Service Endpoint

The AWS Cost and Usage Report API provides the following endpoint:

  • cur.us-east-1.amazonaws.com
import boto3

client = boto3.client('cur')

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.
close()

Closes underlying endpoint connections.

delete_report_definition(**kwargs)

Deletes the specified report.

See also: AWS API Documentation

Request Syntax

response = client.delete_report_definition(
    ReportName='string'
)
Parameters
ReportName (string) -- The name of the report that you want to delete. The name must be unique, is case sensitive, and can't include spaces.
Return type
dict
Returns
Response Syntax
{
    'ResponseMessage': 'string'
}

Response Structure

  • (dict) --

    If the action is successful, the service sends back an HTTP 200 response.

    • ResponseMessage (string) --

      Whether the deletion was successful or not.

Exceptions

  • CostandUsageReportService.Client.exceptions.InternalErrorException
  • CostandUsageReportService.Client.exceptions.ValidationException

Examples

The following example deletes the AWS Cost and Usage report named ExampleReport.

response = client.delete_report_definition(
    ReportName='ExampleReport',
)

print(response)

Expected Output:

{
    'ResponseMetadata': {
        '...': '...',
    },
}
describe_report_definitions(**kwargs)

Lists the AWS Cost and Usage reports available to this account.

See also: AWS API Documentation

Request Syntax

response = client.describe_report_definitions(
    MaxResults=123,
    NextToken='string'
)
Parameters
  • MaxResults (integer) -- The maximum number of results that AWS returns for the operation.
  • NextToken (string) -- A generic string.
Return type

dict

Returns

Response Syntax

{
    'ReportDefinitions': [
        {
            'ReportName': 'string',
            'TimeUnit': 'HOURLY'|'DAILY'|'MONTHLY',
            'Format': 'textORcsv'|'Parquet',
            'Compression': 'ZIP'|'GZIP'|'Parquet',
            'AdditionalSchemaElements': [
                'RESOURCES',
            ],
            'S3Bucket': 'string',
            'S3Prefix': 'string',
            'S3Region': 'af-south-1'|'ap-east-1'|'ap-south-1'|'ap-southeast-1'|'ap-southeast-2'|'ap-southeast-3'|'ap-northeast-1'|'ap-northeast-2'|'ap-northeast-3'|'ca-central-1'|'eu-central-1'|'eu-west-1'|'eu-west-2'|'eu-west-3'|'eu-north-1'|'eu-south-1'|'eu-south-2'|'me-central-1'|'me-south-1'|'sa-east-1'|'us-east-1'|'us-east-2'|'us-west-1'|'us-west-2'|'cn-north-1'|'cn-northwest-1',
            'AdditionalArtifacts': [
                'REDSHIFT'|'QUICKSIGHT'|'ATHENA',
            ],
            'RefreshClosedReports': True|False,
            'ReportVersioning': 'CREATE_NEW_REPORT'|'OVERWRITE_REPORT',
            'BillingViewArn': 'string'
        },
    ],
    'NextToken': 'string'
}

Response Structure

  • (dict) --

    If the action is successful, the service sends back an HTTP 200 response.

    • ReportDefinitions (list) --

      A list of AWS Cost and Usage reports owned by the account.

      • (dict) --

        The definition of AWS Cost and Usage Report. You can specify the report name, time unit, report format, compression format, S3 bucket, additional artifacts, and schema elements in the definition.

        • ReportName (string) --

          The name of the report that you want to create. The name must be unique, is case sensitive, and can't include spaces.

        • TimeUnit (string) --

          The length of time covered by the report.

        • Format (string) --

          The format that AWS saves the report in.

        • Compression (string) --

          The compression format that AWS uses for the report.

        • AdditionalSchemaElements (list) --

          A list of strings that indicate additional content that Amazon Web Services includes in the report, such as individual resource IDs.

          • (string) --

            Whether or not AWS includes resource IDs in the report.

        • S3Bucket (string) --

          The S3 bucket where AWS delivers the report.

        • S3Prefix (string) --

          The prefix that AWS adds to the report name when AWS delivers the report. Your prefix can't include spaces.

        • S3Region (string) --

          The region of the S3 bucket that AWS delivers the report into.

        • AdditionalArtifacts (list) --

          A list of manifests that you want Amazon Web Services to create for this report.

          • (string) --

            The types of manifest that you want AWS to create for this report.

        • RefreshClosedReports (boolean) --

          Whether you want Amazon Web Services to update your reports after they have been finalized if Amazon Web Services detects charges related to previous months. These charges can include refunds, credits, or support fees.

        • ReportVersioning (string) --

          Whether you want Amazon Web Services to overwrite the previous version of each report or to deliver the report in addition to the previous versions.

        • BillingViewArn (string) --

          The Amazon resource name of the billing view. You can get this value by using the billing view service public APIs.

    • NextToken (string) --

      A generic string.

Exceptions

  • CostandUsageReportService.Client.exceptions.InternalErrorException

Examples

The following example lists the AWS Cost and Usage reports for the account.

response = client.describe_report_definitions(
    MaxResults=5,
)

print(response)

Expected Output:

{
    'ReportDefinitions': [
        {
            'AdditionalArtifacts': [
                'QUICKSIGHT',
            ],
            'AdditionalSchemaElements': [
                'RESOURCES',
            ],
            'Compression': 'GZIP',
            'Format': 'textORcsv',
            'ReportName': 'ExampleReport',
            'S3Bucket': 'example-s3-bucket',
            'S3Prefix': 'exampleprefix',
            'S3Region': 'us-east-1',
            'TimeUnit': 'HOURLY',
        },
        {
            'AdditionalArtifacts': [
                'QUICKSIGHT',
            ],
            'AdditionalSchemaElements': [
                'RESOURCES',
            ],
            'Compression': 'GZIP',
            'Format': 'textORcsv',
            'ReportName': 'ExampleReport2',
            'S3Bucket': 'example-s3-bucket',
            'S3Prefix': 'exampleprefix',
            'S3Region': 'us-east-1',
            'TimeUnit': 'HOURLY',
        },
    ],
    '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_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
modify_report_definition(**kwargs)

Allows you to programatically update your report preferences.

See also: AWS API Documentation

Request Syntax

response = client.modify_report_definition(
    ReportName='string',
    ReportDefinition={
        'ReportName': 'string',
        'TimeUnit': 'HOURLY'|'DAILY'|'MONTHLY',
        'Format': 'textORcsv'|'Parquet',
        'Compression': 'ZIP'|'GZIP'|'Parquet',
        'AdditionalSchemaElements': [
            'RESOURCES',
        ],
        'S3Bucket': 'string',
        'S3Prefix': 'string',
        'S3Region': 'af-south-1'|'ap-east-1'|'ap-south-1'|'ap-southeast-1'|'ap-southeast-2'|'ap-southeast-3'|'ap-northeast-1'|'ap-northeast-2'|'ap-northeast-3'|'ca-central-1'|'eu-central-1'|'eu-west-1'|'eu-west-2'|'eu-west-3'|'eu-north-1'|'eu-south-1'|'eu-south-2'|'me-central-1'|'me-south-1'|'sa-east-1'|'us-east-1'|'us-east-2'|'us-west-1'|'us-west-2'|'cn-north-1'|'cn-northwest-1',
        'AdditionalArtifacts': [
            'REDSHIFT'|'QUICKSIGHT'|'ATHENA',
        ],
        'RefreshClosedReports': True|False,
        'ReportVersioning': 'CREATE_NEW_REPORT'|'OVERWRITE_REPORT',
        'BillingViewArn': 'string'
    }
)
Parameters
  • ReportName (string) --

    [REQUIRED]

    The name of the report that you want to create. The name must be unique, is case sensitive, and can't include spaces.

  • ReportDefinition (dict) --

    [REQUIRED]

    The definition of AWS Cost and Usage Report. You can specify the report name, time unit, report format, compression format, S3 bucket, additional artifacts, and schema elements in the definition.

    • ReportName (string) -- [REQUIRED]

      The name of the report that you want to create. The name must be unique, is case sensitive, and can't include spaces.

    • TimeUnit (string) -- [REQUIRED]

      The length of time covered by the report.

    • Format (string) -- [REQUIRED]

      The format that AWS saves the report in.

    • Compression (string) -- [REQUIRED]

      The compression format that AWS uses for the report.

    • AdditionalSchemaElements (list) -- [REQUIRED]

      A list of strings that indicate additional content that Amazon Web Services includes in the report, such as individual resource IDs.

      • (string) --

        Whether or not AWS includes resource IDs in the report.

    • S3Bucket (string) -- [REQUIRED]

      The S3 bucket where AWS delivers the report.

    • S3Prefix (string) -- [REQUIRED]

      The prefix that AWS adds to the report name when AWS delivers the report. Your prefix can't include spaces.

    • S3Region (string) -- [REQUIRED]

      The region of the S3 bucket that AWS delivers the report into.

    • AdditionalArtifacts (list) --

      A list of manifests that you want Amazon Web Services to create for this report.

      • (string) --

        The types of manifest that you want AWS to create for this report.

    • RefreshClosedReports (boolean) --

      Whether you want Amazon Web Services to update your reports after they have been finalized if Amazon Web Services detects charges related to previous months. These charges can include refunds, credits, or support fees.

    • ReportVersioning (string) --

      Whether you want Amazon Web Services to overwrite the previous version of each report or to deliver the report in addition to the previous versions.

    • BillingViewArn (string) --

      The Amazon resource name of the billing view. You can get this value by using the billing view service public APIs.

Return type

dict

Returns

Response Syntax

{}

Response Structure

  • (dict) --

Exceptions

  • CostandUsageReportService.Client.exceptions.InternalErrorException
  • CostandUsageReportService.Client.exceptions.ValidationException
put_report_definition(**kwargs)

Creates a new report using the description that you provide.

See also: AWS API Documentation

Request Syntax

response = client.put_report_definition(
    ReportDefinition={
        'ReportName': 'string',
        'TimeUnit': 'HOURLY'|'DAILY'|'MONTHLY',
        'Format': 'textORcsv'|'Parquet',
        'Compression': 'ZIP'|'GZIP'|'Parquet',
        'AdditionalSchemaElements': [
            'RESOURCES',
        ],
        'S3Bucket': 'string',
        'S3Prefix': 'string',
        'S3Region': 'af-south-1'|'ap-east-1'|'ap-south-1'|'ap-southeast-1'|'ap-southeast-2'|'ap-southeast-3'|'ap-northeast-1'|'ap-northeast-2'|'ap-northeast-3'|'ca-central-1'|'eu-central-1'|'eu-west-1'|'eu-west-2'|'eu-west-3'|'eu-north-1'|'eu-south-1'|'eu-south-2'|'me-central-1'|'me-south-1'|'sa-east-1'|'us-east-1'|'us-east-2'|'us-west-1'|'us-west-2'|'cn-north-1'|'cn-northwest-1',
        'AdditionalArtifacts': [
            'REDSHIFT'|'QUICKSIGHT'|'ATHENA',
        ],
        'RefreshClosedReports': True|False,
        'ReportVersioning': 'CREATE_NEW_REPORT'|'OVERWRITE_REPORT',
        'BillingViewArn': 'string'
    }
)
Parameters
ReportDefinition (dict) --

[REQUIRED]

Represents the output of the PutReportDefinition operation. The content consists of the detailed metadata and data file information.

  • ReportName (string) -- [REQUIRED]

    The name of the report that you want to create. The name must be unique, is case sensitive, and can't include spaces.

  • TimeUnit (string) -- [REQUIRED]

    The length of time covered by the report.

  • Format (string) -- [REQUIRED]

    The format that AWS saves the report in.

  • Compression (string) -- [REQUIRED]

    The compression format that AWS uses for the report.

  • AdditionalSchemaElements (list) -- [REQUIRED]

    A list of strings that indicate additional content that Amazon Web Services includes in the report, such as individual resource IDs.

    • (string) --

      Whether or not AWS includes resource IDs in the report.

  • S3Bucket (string) -- [REQUIRED]

    The S3 bucket where AWS delivers the report.

  • S3Prefix (string) -- [REQUIRED]

    The prefix that AWS adds to the report name when AWS delivers the report. Your prefix can't include spaces.

  • S3Region (string) -- [REQUIRED]

    The region of the S3 bucket that AWS delivers the report into.

  • AdditionalArtifacts (list) --

    A list of manifests that you want Amazon Web Services to create for this report.

    • (string) --

      The types of manifest that you want AWS to create for this report.

  • RefreshClosedReports (boolean) --

    Whether you want Amazon Web Services to update your reports after they have been finalized if Amazon Web Services detects charges related to previous months. These charges can include refunds, credits, or support fees.

  • ReportVersioning (string) --

    Whether you want Amazon Web Services to overwrite the previous version of each report or to deliver the report in addition to the previous versions.

  • BillingViewArn (string) --

    The Amazon resource name of the billing view. You can get this value by using the billing view service public APIs.

Return type
dict
Returns
Response Syntax
{}

Response Structure

  • (dict) --

    If the action is successful, the service sends back an HTTP 200 response with an empty HTTP body.

Exceptions

  • CostandUsageReportService.Client.exceptions.DuplicateReportNameException
  • CostandUsageReportService.Client.exceptions.ReportLimitReachedException
  • CostandUsageReportService.Client.exceptions.InternalErrorException
  • CostandUsageReportService.Client.exceptions.ValidationException

Examples

The following example creates a AWS Cost and Usage report named ExampleReport.

response = client.put_report_definition(
    ReportDefinition={
        'AdditionalArtifacts': [
            'REDSHIFT',
            'QUICKSIGHT',
        ],
        'AdditionalSchemaElements': [
            'RESOURCES',
        ],
        'Compression': 'ZIP',
        'Format': 'textORcsv',
        'ReportName': 'ExampleReport',
        'S3Bucket': 'example-s3-bucket',
        'S3Prefix': 'exampleprefix',
        'S3Region': 'us-east-1',
        'TimeUnit': 'DAILY',
    },
)

print(response)

Expected Output:

{
    'ResponseMetadata': {
        '...': '...',
    },
}

Paginators

The available paginators are:

class CostandUsageReportService.Paginator.DescribeReportDefinitions
paginator = client.get_paginator('describe_report_definitions')
paginate(**kwargs)

Creates an iterator that will paginate through responses from CostandUsageReportService.Client.describe_report_definitions().

See also: AWS API Documentation

Request Syntax

response_iterator = paginator.paginate(
    PaginationConfig={
        'MaxItems': 123,
        'PageSize': 123,
        'StartingToken': 'string'
    }
)
Parameters
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
{
    'ReportDefinitions': [
        {
            'ReportName': 'string',
            'TimeUnit': 'HOURLY'|'DAILY'|'MONTHLY',
            'Format': 'textORcsv'|'Parquet',
            'Compression': 'ZIP'|'GZIP'|'Parquet',
            'AdditionalSchemaElements': [
                'RESOURCES',
            ],
            'S3Bucket': 'string',
            'S3Prefix': 'string',
            'S3Region': 'af-south-1'|'ap-east-1'|'ap-south-1'|'ap-southeast-1'|'ap-southeast-2'|'ap-southeast-3'|'ap-northeast-1'|'ap-northeast-2'|'ap-northeast-3'|'ca-central-1'|'eu-central-1'|'eu-west-1'|'eu-west-2'|'eu-west-3'|'eu-north-1'|'eu-south-1'|'eu-south-2'|'me-central-1'|'me-south-1'|'sa-east-1'|'us-east-1'|'us-east-2'|'us-west-1'|'us-west-2'|'cn-north-1'|'cn-northwest-1',
            'AdditionalArtifacts': [
                'REDSHIFT'|'QUICKSIGHT'|'ATHENA',
            ],
            'RefreshClosedReports': True|False,
            'ReportVersioning': 'CREATE_NEW_REPORT'|'OVERWRITE_REPORT',
            'BillingViewArn': 'string'
        },
    ],

}

Response Structure

  • (dict) --

    If the action is successful, the service sends back an HTTP 200 response.

    • ReportDefinitions (list) --

      A list of AWS Cost and Usage reports owned by the account.

      • (dict) --

        The definition of AWS Cost and Usage Report. You can specify the report name, time unit, report format, compression format, S3 bucket, additional artifacts, and schema elements in the definition.

        • ReportName (string) --

          The name of the report that you want to create. The name must be unique, is case sensitive, and can't include spaces.

        • TimeUnit (string) --

          The length of time covered by the report.

        • Format (string) --

          The format that AWS saves the report in.

        • Compression (string) --

          The compression format that AWS uses for the report.

        • AdditionalSchemaElements (list) --

          A list of strings that indicate additional content that Amazon Web Services includes in the report, such as individual resource IDs.

          • (string) --

            Whether or not AWS includes resource IDs in the report.

        • S3Bucket (string) --

          The S3 bucket where AWS delivers the report.

        • S3Prefix (string) --

          The prefix that AWS adds to the report name when AWS delivers the report. Your prefix can't include spaces.

        • S3Region (string) --

          The region of the S3 bucket that AWS delivers the report into.

        • AdditionalArtifacts (list) --

          A list of manifests that you want Amazon Web Services to create for this report.

          • (string) --

            The types of manifest that you want AWS to create for this report.

        • RefreshClosedReports (boolean) --

          Whether you want Amazon Web Services to update your reports after they have been finalized if Amazon Web Services detects charges related to previous months. These charges can include refunds, credits, or support fees.

        • ReportVersioning (string) --

          Whether you want Amazon Web Services to overwrite the previous version of each report or to deliver the report in addition to the previous versions.

        • BillingViewArn (string) --

          The Amazon resource name of the billing view. You can get this value by using the billing view service public APIs.