AWS Billing and Cost Management Dashboards

2026/04/09 - AWS Billing and Cost Management Dashboards - 6 new api methods

Changes  Scheduled email reports of Billing and Cost Management Dashboards

ExecuteScheduledReport (new) Link ¶

Triggers an immediate execution of a scheduled report, outside of its regular schedule. The scheduled report must be in ENABLED state. Calling this operation on a DISABLED scheduled report returns a ValidationException.

See also: AWS API Documentation

Request Syntax

client.execute_scheduled_report(
    arn='string',
    clientToken='string',
    dryRun=True|False
)
type arn:

string

param arn:

[REQUIRED]

The ARN of the scheduled report to execute.

type clientToken:

string

param clientToken:

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

This field is autopopulated if not provided.

type dryRun:

boolean

param dryRun:

When set to true, validates the scheduled report configuration without triggering an actual execution.

rtype:

dict

returns:

Response Syntax

{
    'healthStatus': {
        'statusCode': 'HEALTHY'|'UNHEALTHY',
        'lastRefreshedAt': datetime(2015, 1, 1),
        'statusReasons': [
            'DATA_SOURCE_ACCESS_DENIED'|'EXECUTION_ROLE_ASSUME_FAILED'|'EXECUTION_ROLE_INSUFFICIENT_PERMISSIONS'|'DASHBOARD_NOT_FOUND'|'DASHBOARD_ACCESS_DENIED'|'INTERNAL_FAILURE'|'WIDGET_ID_NOT_FOUND',
        ]
    },
    'executionTriggered': True|False
}

Response Structure

  • (dict) --

    • healthStatus (dict) --

      The health status of the scheduled report after the execution request.

      • statusCode (string) --

        The health status code. HEALTHY indicates the scheduled report is configured properly and has all required permissions to execute. UNHEALTHY indicates the scheduled report is unable to deliver the notification to the default Amazon EventBridge EventBus in your account and your action is needed. The reason for the unhealthy state is captured in the health status reasons.

      • lastRefreshedAt (datetime) --

        The timestamp when the health status was last refreshed.

      • statusReasons (list) --

        The list of reasons for the current health status. Only present when the status is UNHEALTHY.

        • (string) --

    • executionTriggered (boolean) --

      Indicates whether the execution was successfully triggered.

ListScheduledReports (new) Link ¶

Returns a list of scheduled reports in your account.

See also: AWS API Documentation

Request Syntax

client.list_scheduled_reports(
    nextToken='string',
    maxResults=123
)
type nextToken:

string

param nextToken:

The token for the next page of results. Use the value returned in the previous response.

type maxResults:

integer

param maxResults:

The maximum number of results to return in a single call. Valid range is 1 to 100. The default value is 50.

rtype:

dict

returns:

Response Syntax

{
    'scheduledReports': [
        {
            'arn': 'string',
            'name': 'string',
            'dashboardArn': 'string',
            'scheduleExpression': 'string',
            'state': 'ENABLED'|'DISABLED',
            'healthStatus': {
                'statusCode': 'HEALTHY'|'UNHEALTHY',
                'lastRefreshedAt': datetime(2015, 1, 1),
                'statusReasons': [
                    'DATA_SOURCE_ACCESS_DENIED'|'EXECUTION_ROLE_ASSUME_FAILED'|'EXECUTION_ROLE_INSUFFICIENT_PERMISSIONS'|'DASHBOARD_NOT_FOUND'|'DASHBOARD_ACCESS_DENIED'|'INTERNAL_FAILURE'|'WIDGET_ID_NOT_FOUND',
                ]
            },
            'scheduleExpressionTimeZone': 'string',
            'widgetIds': [
                'string',
            ]
        },
    ],
    'nextToken': 'string'
}

Response Structure

  • (dict) --

    • scheduledReports (list) --

      An array of scheduled report summaries, containing basic information about each scheduled report.

      • (dict) --

        Contains summary information for a scheduled report.

        • arn (string) --

          The ARN of the scheduled report.

        • name (string) --

          The name of the scheduled report.

        • dashboardArn (string) --

          The ARN of the dashboard associated with the scheduled report.

        • scheduleExpression (string) --

          The schedule expression that defines when the report runs.

        • state (string) --

          The state of the schedule: ENABLED or DISABLED.

        • healthStatus (dict) --

          The health status of the scheduled report as of its last refresh time.

          • statusCode (string) --

            The health status code. HEALTHY indicates the scheduled report is configured properly and has all required permissions to execute. UNHEALTHY indicates the scheduled report is unable to deliver the notification to the default Amazon EventBridge EventBus in your account and your action is needed. The reason for the unhealthy state is captured in the health status reasons.

          • lastRefreshedAt (datetime) --

            The timestamp when the health status was last refreshed.

          • statusReasons (list) --

            The list of reasons for the current health status. Only present when the status is UNHEALTHY.

            • (string) --

        • scheduleExpressionTimeZone (string) --

          The time zone for the schedule expression, for example, UTC.

        • widgetIds (list) --

          The list of widget identifiers included in the scheduled report.

          • (string) --

    • nextToken (string) --

      The token to use to retrieve the next page of results. Not returned if there are no more results to retrieve.

DeleteScheduledReport (new) Link ¶

Deletes a specified scheduled report. This is an irreversible operation.

See also: AWS API Documentation

Request Syntax

client.delete_scheduled_report(
    arn='string'
)
type arn:

string

param arn:

[REQUIRED]

The ARN of the scheduled report to delete.

rtype:

dict

returns:

Response Syntax

{
    'arn': 'string'
}

Response Structure

  • (dict) --

    • arn (string) --

      The ARN of the scheduled report that was deleted.

UpdateScheduledReport (new) Link ¶

Updates an existing scheduled report's properties, including its name, description, schedule configuration, and widget settings. Only the parameters included in the request are updated; all other properties remain unchanged.

See also: AWS API Documentation

Request Syntax

client.update_scheduled_report(
    arn='string',
    name='string',
    description='string',
    dashboardArn='string',
    scheduledReportExecutionRoleArn='string',
    scheduleConfig={
        'scheduleExpression': 'string',
        'scheduleExpressionTimeZone': 'string',
        'schedulePeriod': {
            'startTime': datetime(2015, 1, 1),
            'endTime': datetime(2015, 1, 1)
        },
        'state': 'ENABLED'|'DISABLED'
    },
    widgetIds=[
        'string',
    ],
    widgetDateRangeOverride={
        'startTime': {
            'type': 'ABSOLUTE'|'RELATIVE',
            'value': 'string'
        },
        'endTime': {
            'type': 'ABSOLUTE'|'RELATIVE',
            'value': 'string'
        }
    },
    clearWidgetIds=True|False,
    clearWidgetDateRangeOverride=True|False
)
type arn:

string

param arn:

[REQUIRED]

The ARN of the scheduled report to update.

type name:

string

param name:

The new name for the scheduled report.

type description:

string

param description:

The new description for the scheduled report.

type dashboardArn:

string

param dashboardArn:

The ARN of the dashboard to associate with the scheduled report.

type scheduledReportExecutionRoleArn:

string

param scheduledReportExecutionRoleArn:

The ARN of the IAM role that the scheduled report uses to execute. Amazon Web Services Billing and Cost Management Dashboards will assume this IAM role while executing the scheduled report.

type scheduleConfig:

dict

param scheduleConfig:

The updated schedule configuration for the report.

  • scheduleExpression (string) --

    The schedule expression that specifies when to trigger the scheduled report run. This value must be a cron expression consisting of six fields separated by white spaces: cron(minutes hours day_of_month month day_of_week year).

  • scheduleExpressionTimeZone (string) --

    The time zone for the schedule expression, for example, UTC.

  • schedulePeriod (dict) --

    The time period during which the schedule is active.

    • startTime (datetime) --

      The start time of the schedule period. If not specified, defaults to the time of the create or update request. The start time cannot be more than 5 minutes before the time of the request.

    • endTime (datetime) --

      The end time of the schedule period. If not specified, defaults to 3 years from the time of the create or update request. The maximum allowed value is 3 years from the current time. Setting an end time beyond this limit returns a ValidationException.

  • state (string) --

    The state of the schedule. ENABLED means the scheduled report runs according to its schedule expression. DISABLED means the scheduled report is paused and will not run until re-enabled.

type widgetIds:

list

param widgetIds:

The list of widget identifiers to include in the scheduled report. If not specified, all widgets in the dashboard are included.

  • (string) --

type widgetDateRangeOverride:

dict

param widgetDateRangeOverride:

The date range override to apply to widgets in the scheduled report.

  • startTime (dict) -- [REQUIRED]

    The start time of the date range for querying data.

    • type (string) -- [REQUIRED]

      The type of date/time value: ABSOLUTE for specific dates or RELATIVE for dynamic time periods.

    • value (string) -- [REQUIRED]

      The actual date/time value.

  • endTime (dict) -- [REQUIRED]

    The end time of the date range for querying data.

    • type (string) -- [REQUIRED]

      The type of date/time value: ABSOLUTE for specific dates or RELATIVE for dynamic time periods.

    • value (string) -- [REQUIRED]

      The actual date/time value.

type clearWidgetIds:

boolean

param clearWidgetIds:

Set to true to clear existing widgetIds.

type clearWidgetDateRangeOverride:

boolean

param clearWidgetDateRangeOverride:

Set to true to clear existing widgetDateRangeOverride.

rtype:

dict

returns:

Response Syntax

{
    'arn': 'string'
}

Response Structure

  • (dict) --

    • arn (string) --

      The ARN of the updated scheduled report.

GetScheduledReport (new) Link ¶

Retrieves the configuration and metadata of a specified scheduled report.

See also: AWS API Documentation

Request Syntax

client.get_scheduled_report(
    arn='string'
)
type arn:

string

param arn:

[REQUIRED]

The ARN of the scheduled report to retrieve.

rtype:

dict

returns:

Response Syntax

{
    'scheduledReport': {
        'arn': 'string',
        'name': 'string',
        'dashboardArn': 'string',
        'scheduledReportExecutionRoleArn': 'string',
        'scheduleConfig': {
            'scheduleExpression': 'string',
            'scheduleExpressionTimeZone': 'string',
            'schedulePeriod': {
                'startTime': datetime(2015, 1, 1),
                'endTime': datetime(2015, 1, 1)
            },
            'state': 'ENABLED'|'DISABLED'
        },
        'description': 'string',
        'widgetIds': [
            'string',
        ],
        'widgetDateRangeOverride': {
            'startTime': {
                'type': 'ABSOLUTE'|'RELATIVE',
                'value': 'string'
            },
            'endTime': {
                'type': 'ABSOLUTE'|'RELATIVE',
                'value': 'string'
            }
        },
        'createdAt': datetime(2015, 1, 1),
        'updatedAt': datetime(2015, 1, 1),
        'lastExecutionAt': datetime(2015, 1, 1),
        'healthStatus': {
            'statusCode': 'HEALTHY'|'UNHEALTHY',
            'lastRefreshedAt': datetime(2015, 1, 1),
            'statusReasons': [
                'DATA_SOURCE_ACCESS_DENIED'|'EXECUTION_ROLE_ASSUME_FAILED'|'EXECUTION_ROLE_INSUFFICIENT_PERMISSIONS'|'DASHBOARD_NOT_FOUND'|'DASHBOARD_ACCESS_DENIED'|'INTERNAL_FAILURE'|'WIDGET_ID_NOT_FOUND',
            ]
        }
    }
}

Response Structure

  • (dict) --

    • scheduledReport (dict) --

      The scheduled report configuration and metadata.

      • arn (string) --

        The ARN of the scheduled report.

      • name (string) --

        The name of the scheduled report.

      • dashboardArn (string) --

        The ARN of the dashboard associated with the scheduled report.

      • scheduledReportExecutionRoleArn (string) --

        The ARN of the IAM role that the scheduled report uses to execute. Amazon Web Services Billing and Cost Management Dashboards will assume this IAM role while executing the scheduled report.

      • scheduleConfig (dict) --

        The schedule configuration that defines when and how often the report is generated.

        • scheduleExpression (string) --

          The schedule expression that specifies when to trigger the scheduled report run. This value must be a cron expression consisting of six fields separated by white spaces: cron(minutes hours day_of_month month day_of_week year).

        • scheduleExpressionTimeZone (string) --

          The time zone for the schedule expression, for example, UTC.

        • schedulePeriod (dict) --

          The time period during which the schedule is active.

          • startTime (datetime) --

            The start time of the schedule period. If not specified, defaults to the time of the create or update request. The start time cannot be more than 5 minutes before the time of the request.

          • endTime (datetime) --

            The end time of the schedule period. If not specified, defaults to 3 years from the time of the create or update request. The maximum allowed value is 3 years from the current time. Setting an end time beyond this limit returns a ValidationException.

        • state (string) --

          The state of the schedule. ENABLED means the scheduled report runs according to its schedule expression. DISABLED means the scheduled report is paused and will not run until re-enabled.

      • description (string) --

        A description of the scheduled report's purpose or contents.

      • widgetIds (list) --

        The list of widget identifiers included in the scheduled report.

        • (string) --

      • widgetDateRangeOverride (dict) --

        The date range override applied to widgets in the scheduled report.

        • startTime (dict) --

          The start time of the date range for querying data.

          • type (string) --

            The type of date/time value: ABSOLUTE for specific dates or RELATIVE for dynamic time periods.

          • value (string) --

            The actual date/time value.

        • endTime (dict) --

          The end time of the date range for querying data.

          • type (string) --

            The type of date/time value: ABSOLUTE for specific dates or RELATIVE for dynamic time periods.

          • value (string) --

            The actual date/time value.

      • createdAt (datetime) --

        The timestamp when the scheduled report was created.

      • updatedAt (datetime) --

        The timestamp when the scheduled report was last modified.

      • lastExecutionAt (datetime) --

        The timestamp of the most recent execution of the scheduled report.

      • healthStatus (dict) --

        The health status of the scheduled report at last refresh time.

        • statusCode (string) --

          The health status code. HEALTHY indicates the scheduled report is configured properly and has all required permissions to execute. UNHEALTHY indicates the scheduled report is unable to deliver the notification to the default Amazon EventBridge EventBus in your account and your action is needed. The reason for the unhealthy state is captured in the health status reasons.

        • lastRefreshedAt (datetime) --

          The timestamp when the health status was last refreshed.

        • statusReasons (list) --

          The list of reasons for the current health status. Only present when the status is UNHEALTHY.

          • (string) --

CreateScheduledReport (new) Link ¶

Creates a new scheduled report for a dashboard. A scheduled report automatically generates and delivers dashboard snapshots on a recurring schedule. Reports are delivered within 15 minutes of the scheduled delivery time.

See also: AWS API Documentation

Request Syntax

client.create_scheduled_report(
    scheduledReport={
        'name': 'string',
        'dashboardArn': 'string',
        'scheduledReportExecutionRoleArn': 'string',
        'scheduleConfig': {
            'scheduleExpression': 'string',
            'scheduleExpressionTimeZone': 'string',
            'schedulePeriod': {
                'startTime': datetime(2015, 1, 1),
                'endTime': datetime(2015, 1, 1)
            },
            'state': 'ENABLED'|'DISABLED'
        },
        'description': 'string',
        'widgetIds': [
            'string',
        ],
        'widgetDateRangeOverride': {
            'startTime': {
                'type': 'ABSOLUTE'|'RELATIVE',
                'value': 'string'
            },
            'endTime': {
                'type': 'ABSOLUTE'|'RELATIVE',
                'value': 'string'
            }
        }
    },
    resourceTags=[
        {
            'key': 'string',
            'value': 'string'
        },
    ],
    clientToken='string'
)
type scheduledReport:

dict

param scheduledReport:

[REQUIRED]

The configuration for the scheduled report, including the dashboard to report on, the schedule, and the execution role that the service will use to generate the dashboard snapshot.

  • name (string) -- [REQUIRED]

    The name of the scheduled report.

  • dashboardArn (string) -- [REQUIRED]

    The ARN of the dashboard to generate the scheduled report from.

  • scheduledReportExecutionRoleArn (string) -- [REQUIRED]

    The ARN of the IAM role that the scheduled report uses to execute. Amazon Web Services Billing and Cost Management Dashboards will assume this IAM role while executing the scheduled report.

  • scheduleConfig (dict) -- [REQUIRED]

    The schedule configuration that defines when and how often the report is generated. If the schedule state is not specified, it defaults to ENABLED.

    • scheduleExpression (string) --

      The schedule expression that specifies when to trigger the scheduled report run. This value must be a cron expression consisting of six fields separated by white spaces: cron(minutes hours day_of_month month day_of_week year).

    • scheduleExpressionTimeZone (string) --

      The time zone for the schedule expression, for example, UTC.

    • schedulePeriod (dict) --

      The time period during which the schedule is active.

      • startTime (datetime) --

        The start time of the schedule period. If not specified, defaults to the time of the create or update request. The start time cannot be more than 5 minutes before the time of the request.

      • endTime (datetime) --

        The end time of the schedule period. If not specified, defaults to 3 years from the time of the create or update request. The maximum allowed value is 3 years from the current time. Setting an end time beyond this limit returns a ValidationException.

    • state (string) --

      The state of the schedule. ENABLED means the scheduled report runs according to its schedule expression. DISABLED means the scheduled report is paused and will not run until re-enabled.

  • description (string) --

    A description of the scheduled report's purpose or contents.

  • widgetIds (list) --

    The list of widget identifiers to include in the scheduled report. If not specified, all widgets in the dashboard are included.

    • (string) --

  • widgetDateRangeOverride (dict) --

    The date range override to apply to widgets in the scheduled report.

    • startTime (dict) -- [REQUIRED]

      The start time of the date range for querying data.

      • type (string) -- [REQUIRED]

        The type of date/time value: ABSOLUTE for specific dates or RELATIVE for dynamic time periods.

      • value (string) -- [REQUIRED]

        The actual date/time value.

    • endTime (dict) -- [REQUIRED]

      The end time of the date range for querying data.

      • type (string) -- [REQUIRED]

        The type of date/time value: ABSOLUTE for specific dates or RELATIVE for dynamic time periods.

      • value (string) -- [REQUIRED]

        The actual date/time value.

type resourceTags:

list

param resourceTags:

The tags to apply to the scheduled report resource for organization and management.

  • (dict) --

    A key-value pair that can be attached to a dashboard for organization and management purposes.

    • key (string) -- [REQUIRED]

      The key of the tag to be attached to the dashboard resource.

    • value (string) -- [REQUIRED]

      The value of the tag to be attached to the dashboard resource.

type clientToken:

string

param clientToken:

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

This field is autopopulated if not provided.

rtype:

dict

returns:

Response Syntax

{
    'arn': 'string'
}

Response Structure

  • (dict) --

    • arn (string) --

      The ARN of the newly created scheduled report.