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:
client = session.create_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
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
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': {
'...': '...',
},
}
Client exceptions are available on a client instance via the exceptions
property. For more detailed instructions and examples on the exact usage of client exceptions, see the error handling user guide.
The available client exceptions are:
CostandUsageReportService.Client.exceptions.DuplicateReportNameException
CostandUsageReportService.Client.exceptions.InternalErrorException
CostandUsageReportService.Client.exceptions.ReportLimitReachedException
CostandUsageReportService.Client.exceptions.ValidationException
CostandUsageReportService.Client.exceptions.
DuplicateReportNameException
¶A report with the specified name already exists in the account. Specify a different report name.
Example
try:
...
except client.exceptions.DuplicateReportNameException as e:
print(e.response)
response
¶The parsed error response. All exceptions have a top level Error
key that provides normalized access to common exception atrributes. All other keys are specific to this service or exception class.
Syntax
{
'Message': 'string',
'Error': {
'Code': 'string',
'Message': 'string'
}
}
Structure
(dict) --
A report with the specified name already exists in the account. Specify a different report name.
Message (string) --
A message to show the detail of the exception.
Error (dict) -- Normalized access to common exception attributes.
CostandUsageReportService.Client.exceptions.
InternalErrorException
¶An error on the server occurred during the processing of your request. Try again later.
Example
try:
...
except client.exceptions.InternalErrorException as e:
print(e.response)
response
¶The parsed error response. All exceptions have a top level Error
key that provides normalized access to common exception atrributes. All other keys are specific to this service or exception class.
Syntax
{
'Message': 'string',
'Error': {
'Code': 'string',
'Message': 'string'
}
}
Structure
(dict) --
An error on the server occurred during the processing of your request. Try again later.
Message (string) --
A message to show the detail of the exception.
Error (dict) -- Normalized access to common exception attributes.
CostandUsageReportService.Client.exceptions.
ReportLimitReachedException
¶This account already has five reports defined. To define a new report, you must delete an existing report.
Example
try:
...
except client.exceptions.ReportLimitReachedException as e:
print(e.response)
response
¶The parsed error response. All exceptions have a top level Error
key that provides normalized access to common exception atrributes. All other keys are specific to this service or exception class.
Syntax
{
'Message': 'string',
'Error': {
'Code': 'string',
'Message': 'string'
}
}
Structure
(dict) --
This account already has five reports defined. To define a new report, you must delete an existing report.
Message (string) --
A message to show the detail of the exception.
Error (dict) -- Normalized access to common exception attributes.
CostandUsageReportService.Client.exceptions.
ValidationException
¶The input fails to satisfy the constraints specified by an AWS service.
Example
try:
...
except client.exceptions.ValidationException as e:
print(e.response)
response
¶The parsed error response. All exceptions have a top level Error
key that provides normalized access to common exception atrributes. All other keys are specific to this service or exception class.
Syntax
{
'Message': 'string',
'Error': {
'Code': 'string',
'Message': 'string'
}
}
Structure
(dict) --
The input fails to satisfy the constraints specified by an AWS service.
Message (string) --
A message to show the detail of the exception.
Error (dict) -- Normalized access to common exception attributes.
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.