Table of Contents
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:
import boto3
client = boto3.client('cur')
These are the available methods:
can_paginate()
close()
delete_report_definition()
describe_report_definitions()
get_paginator()
get_waiter()
modify_report_definition()
put_report_definition()
can_paginate
(operation_name)¶Check if an operation can be paginated.
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")
.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'
)
{
'ResponseMessage': 'string'
}
Response Structure
If the action is successful, the service sends back an HTTP 200 response.
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'
)
dict
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-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'|'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.
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")
.client.can_paginate
method to
check if an operation is pageable.get_waiter
(waiter_name)¶Returns an object that can wait for some condition.
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-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'|'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'
}
)
[REQUIRED]
The name of the report that you want to create. The name must be unique, is case sensitive, and can't include spaces.
[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.
The name of the report that you want to create. The name must be unique, is case sensitive, and can't include spaces.
The length of time covered by the report.
The format that AWS saves the report in.
The compression format that AWS uses for the report.
A list of strings that indicate additional content that Amazon Web Services includes in the report, such as individual resource IDs.
Whether or not AWS includes resource IDs in the report.
The S3 bucket where AWS delivers the report.
The prefix that AWS adds to the report name when AWS delivers the report. Your prefix can't include spaces.
The region of the S3 bucket that AWS delivers the report into.
A list of manifests that you want Amazon Web Services to create for this report.
The types of manifest that you want AWS to create for this report.
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.
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.
The Amazon resource name of the billing view. You can get this value by using the billing view service public APIs.
dict
Response Syntax
{}
Response Structure
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-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'|'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'
}
)
[REQUIRED]
Represents the output of the PutReportDefinition operation. The content consists of the detailed metadata and data file information.
The name of the report that you want to create. The name must be unique, is case sensitive, and can't include spaces.
The length of time covered by the report.
The format that AWS saves the report in.
The compression format that AWS uses for the report.
A list of strings that indicate additional content that Amazon Web Services includes in the report, such as individual resource IDs.
Whether or not AWS includes resource IDs in the report.
The S3 bucket where AWS delivers the report.
The prefix that AWS adds to the report name when AWS delivers the report. Your prefix can't include spaces.
The region of the S3 bucket that AWS delivers the report into.
A list of manifests that you want Amazon Web Services to create for this report.
The types of manifest that you want AWS to create for this report.
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.
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.
The Amazon resource name of the billing view. You can get this value by using the billing view service public APIs.
{}
Response Structure
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': {
'...': '...',
},
}
The available paginators are:
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'
}
)
A dictionary that provides parameters to control pagination.
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.
The size of each page.
A token to specify where to start paginating. This is the NextToken
from a previous response.
{
'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-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'|'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
If the action is successful, the service sends back an HTTP 200 response.
A list of AWS Cost and Usage reports owned by the account.
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.
The name of the report that you want to create. The name must be unique, is case sensitive, and can't include spaces.
The length of time covered by the report.
The format that AWS saves the report in.
The compression format that AWS uses for the report.
A list of strings that indicate additional content that Amazon Web Services includes in the report, such as individual resource IDs.
Whether or not AWS includes resource IDs in the report.
The S3 bucket where AWS delivers the report.
The prefix that AWS adds to the report name when AWS delivers the report. Your prefix can't include spaces.
The region of the S3 bucket that AWS delivers the report into.
A list of manifests that you want Amazon Web Services to create for this report.
The types of manifest that you want AWS to create for this report.
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.
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.
The Amazon resource name of the billing view. You can get this value by using the billing view service public APIs.