SDK for PHP V3

Client: Aws\BCMDashboards\BCMDashboardsClient
Service ID: bcm-dashboards
Version: 2025-08-18

This page describes the parameters and results for the operations of the AWS Billing and Cost Management Dashboards (2025-08-18), and shows how to use the Aws\BCMDashboards\BCMDashboardsClient object to call the described operations. This documentation is specific to the 2025-08-18 API version of the service.

Operation Summary

Each of the following operations can be created from a client using $client->getCommand('CommandName'), where "CommandName" is the name of one of the following operations. Note: a command is a value that encapsulates an operation and the parameters used to create an HTTP request.

You can also create and send a command immediately using the magic methods available on a client object: $client->commandName(/* parameters */). You can send the command asynchronously (returning a promise) by appending the word "Async" to the operation name: $client->commandNameAsync(/* parameters */).

CreateDashboard ( array $params = [] )
Creates a new dashboard that can contain multiple widgets displaying cost and usage data.
CreateScheduledReport ( array $params = [] )
Creates a new scheduled report for a dashboard.
DeleteDashboard ( array $params = [] )
Deletes a specified dashboard.
DeleteScheduledReport ( array $params = [] )
Deletes a specified scheduled report.
ExecuteScheduledReport ( array $params = [] )
Triggers an immediate execution of a scheduled report, outside of its regular schedule.
GetDashboard ( array $params = [] )
Retrieves the configuration and metadata of a specified dashboard, including its widgets and layout settings.
GetResourcePolicy ( array $params = [] )
Retrieves the resource-based policy attached to a dashboard, showing sharing configurations and permissions.
GetScheduledReport ( array $params = [] )
Retrieves the configuration and metadata of a specified scheduled report.
ListDashboards ( array $params = [] )
Returns a list of all dashboards in your account.
ListScheduledReports ( array $params = [] )
Returns a list of scheduled reports in your account.
ListTagsForResource ( array $params = [] )
Returns a list of all tags associated with a specified dashboard resource.
TagResource ( array $params = [] )
Adds or updates tags for a specified dashboard resource.
UntagResource ( array $params = [] )
Removes specified tags from a dashboard resource.
UpdateDashboard ( array $params = [] )
Updates an existing dashboard's properties, including its name, description, and widget configurations.
UpdateScheduledReport ( array $params = [] )
Updates an existing scheduled report's properties, including its name, description, schedule configuration, and widget settings.

Paginators

Paginators handle automatically iterating over paginated API results. Paginators are associated with specific API operations, and they accept the parameters that the corresponding API operation accepts. You can get a paginator from a client class using getPaginator($paginatorName, $operationParameters). This client supports the following paginators:

ListDashboards
ListScheduledReports

Operations

CreateDashboard

$result = $client->createDashboard([/* ... */]);
$promise = $client->createDashboardAsync([/* ... */]);

Creates a new dashboard that can contain multiple widgets displaying cost and usage data. You can add custom widgets or use predefined widgets, arranging them in your preferred layout.

Parameter Syntax

$result = $client->createDashboard([
    'description' => '<string>',
    'name' => '<string>', // REQUIRED
    'resourceTags' => [
        [
            'key' => '<string>', // REQUIRED
            'value' => '<string>', // REQUIRED
        ],
        // ...
    ],
    'widgets' => [ // REQUIRED
        [
            'configs' => [ // REQUIRED
                [
                    'displayConfig' => [ // REQUIRED
                        'graph' => [
                            '<GenericString>' => [
                                'visualType' => 'LINE|BAR|STACK', // REQUIRED
                            ],
                            // ...
                        ],
                        'table' => [
                        ],
                    ],
                    'queryParameters' => [ // REQUIRED
                        'costAndUsage' => [
                            'filter' => [
                                'and' => [
                                    [...], // RECURSIVE
                                    // ...
                                ],
                                'costCategories' => [
                                    'key' => '<string>',
                                    'matchOptions' => ['<string>', ...],
                                    'values' => ['<string>', ...],
                                ],
                                'dimensions' => [
                                    'key' => 'AZ|INSTANCE_TYPE|LINKED_ACCOUNT|OPERATION|PURCHASE_TYPE|REGION|SERVICE|USAGE_TYPE|USAGE_TYPE_GROUP|RECORD_TYPE|RESOURCE_ID|SUBSCRIPTION_ID|TAG_KEY|OPERATING_SYSTEM|TENANCY|BILLING_ENTITY|RESERVATION_ID|COST_CATEGORY_NAME|DATABASE_ENGINE|LEGAL_ENTITY_NAME|SAVINGS_PLANS_TYPE|INSTANCE_TYPE_FAMILY|CACHE_ENGINE|DEPLOYMENT_OPTION|SCOPE|PLATFORM', // REQUIRED
                                    'matchOptions' => ['<string>', ...],
                                    'values' => ['<string>', ...], // REQUIRED
                                ],
                                'not' => [...], // RECURSIVE
                                'or' => [
                                    [...], // RECURSIVE
                                    // ...
                                ],
                                'tags' => [
                                    'key' => '<string>',
                                    'matchOptions' => ['<string>', ...],
                                    'values' => ['<string>', ...],
                                ],
                            ],
                            'granularity' => 'HOURLY|DAILY|MONTHLY', // REQUIRED
                            'groupBy' => [
                                [
                                    'key' => '<string>', // REQUIRED
                                    'type' => 'DIMENSION|TAG|COST_CATEGORY',
                                ],
                                // ...
                            ],
                            'metrics' => ['<string>', ...], // REQUIRED
                            'timeRange' => [ // REQUIRED
                                'endTime' => [ // REQUIRED
                                    'type' => 'ABSOLUTE|RELATIVE', // REQUIRED
                                    'value' => '<string>', // REQUIRED
                                ],
                                'startTime' => [ // REQUIRED
                                    'type' => 'ABSOLUTE|RELATIVE', // REQUIRED
                                    'value' => '<string>', // REQUIRED
                                ],
                            ],
                        ],
                        'reservationCoverage' => [
                            'filter' => [
                                'and' => [
                                    [...], // RECURSIVE
                                    // ...
                                ],
                                'costCategories' => [
                                    'key' => '<string>',
                                    'matchOptions' => ['<string>', ...],
                                    'values' => ['<string>', ...],
                                ],
                                'dimensions' => [
                                    'key' => 'AZ|INSTANCE_TYPE|LINKED_ACCOUNT|OPERATION|PURCHASE_TYPE|REGION|SERVICE|USAGE_TYPE|USAGE_TYPE_GROUP|RECORD_TYPE|RESOURCE_ID|SUBSCRIPTION_ID|TAG_KEY|OPERATING_SYSTEM|TENANCY|BILLING_ENTITY|RESERVATION_ID|COST_CATEGORY_NAME|DATABASE_ENGINE|LEGAL_ENTITY_NAME|SAVINGS_PLANS_TYPE|INSTANCE_TYPE_FAMILY|CACHE_ENGINE|DEPLOYMENT_OPTION|SCOPE|PLATFORM', // REQUIRED
                                    'matchOptions' => ['<string>', ...],
                                    'values' => ['<string>', ...], // REQUIRED
                                ],
                                'not' => [...], // RECURSIVE
                                'or' => [
                                    [...], // RECURSIVE
                                    // ...
                                ],
                                'tags' => [
                                    'key' => '<string>',
                                    'matchOptions' => ['<string>', ...],
                                    'values' => ['<string>', ...],
                                ],
                            ],
                            'granularity' => 'HOURLY|DAILY|MONTHLY',
                            'groupBy' => [
                                [
                                    'key' => '<string>', // REQUIRED
                                    'type' => 'DIMENSION|TAG|COST_CATEGORY',
                                ],
                                // ...
                            ],
                            'metrics' => ['<string>', ...],
                            'timeRange' => [ // REQUIRED
                                'endTime' => [ // REQUIRED
                                    'type' => 'ABSOLUTE|RELATIVE', // REQUIRED
                                    'value' => '<string>', // REQUIRED
                                ],
                                'startTime' => [ // REQUIRED
                                    'type' => 'ABSOLUTE|RELATIVE', // REQUIRED
                                    'value' => '<string>', // REQUIRED
                                ],
                            ],
                        ],
                        'reservationUtilization' => [
                            'filter' => [
                                'and' => [
                                    [...], // RECURSIVE
                                    // ...
                                ],
                                'costCategories' => [
                                    'key' => '<string>',
                                    'matchOptions' => ['<string>', ...],
                                    'values' => ['<string>', ...],
                                ],
                                'dimensions' => [
                                    'key' => 'AZ|INSTANCE_TYPE|LINKED_ACCOUNT|OPERATION|PURCHASE_TYPE|REGION|SERVICE|USAGE_TYPE|USAGE_TYPE_GROUP|RECORD_TYPE|RESOURCE_ID|SUBSCRIPTION_ID|TAG_KEY|OPERATING_SYSTEM|TENANCY|BILLING_ENTITY|RESERVATION_ID|COST_CATEGORY_NAME|DATABASE_ENGINE|LEGAL_ENTITY_NAME|SAVINGS_PLANS_TYPE|INSTANCE_TYPE_FAMILY|CACHE_ENGINE|DEPLOYMENT_OPTION|SCOPE|PLATFORM', // REQUIRED
                                    'matchOptions' => ['<string>', ...],
                                    'values' => ['<string>', ...], // REQUIRED
                                ],
                                'not' => [...], // RECURSIVE
                                'or' => [
                                    [...], // RECURSIVE
                                    // ...
                                ],
                                'tags' => [
                                    'key' => '<string>',
                                    'matchOptions' => ['<string>', ...],
                                    'values' => ['<string>', ...],
                                ],
                            ],
                            'granularity' => 'HOURLY|DAILY|MONTHLY',
                            'groupBy' => [
                                [
                                    'key' => '<string>', // REQUIRED
                                    'type' => 'DIMENSION|TAG|COST_CATEGORY',
                                ],
                                // ...
                            ],
                            'timeRange' => [ // REQUIRED
                                'endTime' => [ // REQUIRED
                                    'type' => 'ABSOLUTE|RELATIVE', // REQUIRED
                                    'value' => '<string>', // REQUIRED
                                ],
                                'startTime' => [ // REQUIRED
                                    'type' => 'ABSOLUTE|RELATIVE', // REQUIRED
                                    'value' => '<string>', // REQUIRED
                                ],
                            ],
                        ],
                        'savingsPlansCoverage' => [
                            'filter' => [
                                'and' => [
                                    [...], // RECURSIVE
                                    // ...
                                ],
                                'costCategories' => [
                                    'key' => '<string>',
                                    'matchOptions' => ['<string>', ...],
                                    'values' => ['<string>', ...],
                                ],
                                'dimensions' => [
                                    'key' => 'AZ|INSTANCE_TYPE|LINKED_ACCOUNT|OPERATION|PURCHASE_TYPE|REGION|SERVICE|USAGE_TYPE|USAGE_TYPE_GROUP|RECORD_TYPE|RESOURCE_ID|SUBSCRIPTION_ID|TAG_KEY|OPERATING_SYSTEM|TENANCY|BILLING_ENTITY|RESERVATION_ID|COST_CATEGORY_NAME|DATABASE_ENGINE|LEGAL_ENTITY_NAME|SAVINGS_PLANS_TYPE|INSTANCE_TYPE_FAMILY|CACHE_ENGINE|DEPLOYMENT_OPTION|SCOPE|PLATFORM', // REQUIRED
                                    'matchOptions' => ['<string>', ...],
                                    'values' => ['<string>', ...], // REQUIRED
                                ],
                                'not' => [...], // RECURSIVE
                                'or' => [
                                    [...], // RECURSIVE
                                    // ...
                                ],
                                'tags' => [
                                    'key' => '<string>',
                                    'matchOptions' => ['<string>', ...],
                                    'values' => ['<string>', ...],
                                ],
                            ],
                            'granularity' => 'HOURLY|DAILY|MONTHLY',
                            'groupBy' => [
                                [
                                    'key' => '<string>', // REQUIRED
                                    'type' => 'DIMENSION|TAG|COST_CATEGORY',
                                ],
                                // ...
                            ],
                            'metrics' => ['<string>', ...],
                            'timeRange' => [ // REQUIRED
                                'endTime' => [ // REQUIRED
                                    'type' => 'ABSOLUTE|RELATIVE', // REQUIRED
                                    'value' => '<string>', // REQUIRED
                                ],
                                'startTime' => [ // REQUIRED
                                    'type' => 'ABSOLUTE|RELATIVE', // REQUIRED
                                    'value' => '<string>', // REQUIRED
                                ],
                            ],
                        ],
                        'savingsPlansUtilization' => [
                            'filter' => [
                                'and' => [
                                    [...], // RECURSIVE
                                    // ...
                                ],
                                'costCategories' => [
                                    'key' => '<string>',
                                    'matchOptions' => ['<string>', ...],
                                    'values' => ['<string>', ...],
                                ],
                                'dimensions' => [
                                    'key' => 'AZ|INSTANCE_TYPE|LINKED_ACCOUNT|OPERATION|PURCHASE_TYPE|REGION|SERVICE|USAGE_TYPE|USAGE_TYPE_GROUP|RECORD_TYPE|RESOURCE_ID|SUBSCRIPTION_ID|TAG_KEY|OPERATING_SYSTEM|TENANCY|BILLING_ENTITY|RESERVATION_ID|COST_CATEGORY_NAME|DATABASE_ENGINE|LEGAL_ENTITY_NAME|SAVINGS_PLANS_TYPE|INSTANCE_TYPE_FAMILY|CACHE_ENGINE|DEPLOYMENT_OPTION|SCOPE|PLATFORM', // REQUIRED
                                    'matchOptions' => ['<string>', ...],
                                    'values' => ['<string>', ...], // REQUIRED
                                ],
                                'not' => [...], // RECURSIVE
                                'or' => [
                                    [...], // RECURSIVE
                                    // ...
                                ],
                                'tags' => [
                                    'key' => '<string>',
                                    'matchOptions' => ['<string>', ...],
                                    'values' => ['<string>', ...],
                                ],
                            ],
                            'granularity' => 'HOURLY|DAILY|MONTHLY',
                            'timeRange' => [ // REQUIRED
                                'endTime' => [ // REQUIRED
                                    'type' => 'ABSOLUTE|RELATIVE', // REQUIRED
                                    'value' => '<string>', // REQUIRED
                                ],
                                'startTime' => [ // REQUIRED
                                    'type' => 'ABSOLUTE|RELATIVE', // REQUIRED
                                    'value' => '<string>', // REQUIRED
                                ],
                            ],
                        ],
                    ],
                ],
                // ...
            ],
            'description' => '<string>',
            'height' => <integer>,
            'horizontalOffset' => <integer>,
            'id' => '<string>',
            'title' => '<string>', // REQUIRED
            'width' => <integer>,
        ],
        // ...
    ],
]);

Parameter Details

Members
description
Type: string

A description of the dashboard's purpose or contents.

name
Required: Yes
Type: string

The name of the dashboard. The name must be unique within your account.

resourceTags
Type: Array of ResourceTag structures

The tags to apply to the dashboard resource for organization and management.

widgets
Required: Yes
Type: Array of Widget structures

An array of widget configurations that define the visualizations to be displayed in the dashboard. Each dashboard can contain up to 20 widgets.

Result Syntax

[
    'arn' => '<string>',
]

Result Details

Members
arn
Required: Yes
Type: string

The ARN of the newly created dashboard.

Errors

ThrottlingException:

The request was denied due to request throttling. Reduce the frequency of requests and use exponential backoff.

AccessDeniedException:

You do not have sufficient permissions to perform this action. Verify your IAM permissions and any resource policies.

InternalServerException:

An internal error occurred while processing the request. Retry your request. If the problem persists, contact Amazon Web Services Support.

ValidationException:

The input parameters do not satisfy the requirements. Check the error message for specific validation details.

ServiceQuotaExceededException:

The request would exceed a service quota. Review the service quotas for Amazon Web Services Billing and Cost Management Dashboards and retry your request.

Examples

Example 1: Creating a dashboard
$result = $client->createDashboard([
    'name' => 'cost-dashboards',
    'description' => 'Dashboard for tracking costs',
    'widgets' => [
        [
            'configs' => [
                [
                    'displayConfig' => [
                        'graph' => [
                            'costTrend' => [
                                'visualType' => 'LINE',
                            ],
                        ],
                    ],
                    'queryParameters' => [
                        'costAndUsage' => [
                            'granularity' => 'MONTHLY',
                            'groupBy' => [
                                [
                                    'type' => 'DIMENSION',
                                    'key' => 'SERVICE',
                                ],
                            ],
                            'metrics' => [
                                'UnblendedCost',
                            ],
                            'timeRange' => [
                                'endTime' => [
                                    'type' => 'RELATIVE',
                                    'value' => 'now',
                                ],
                                'startTime' => [
                                    'type' => 'RELATIVE',
                                    'value' => '-9M',
                                ],
                            ],
                        ],
                    ],
                ],
            ],
            'height' => 7,
            'horizontalOffset' => 0,
            'title' => 'Monthly Cost Trend',
            'width' => 4,
        ],
    ],
]);

CreateScheduledReport

$result = $client->createScheduledReport([/* ... */]);
$promise = $client->createScheduledReportAsync([/* ... */]);

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.

Parameter Syntax

$result = $client->createScheduledReport([
    'clientToken' => '<string>',
    'resourceTags' => [
        [
            'key' => '<string>', // REQUIRED
            'value' => '<string>', // REQUIRED
        ],
        // ...
    ],
    'scheduledReport' => [ // REQUIRED
        'dashboardArn' => '<string>', // REQUIRED
        'description' => '<string>',
        'name' => '<string>', // REQUIRED
        'scheduleConfig' => [ // REQUIRED
            'scheduleExpression' => '<string>',
            'scheduleExpressionTimeZone' => '<string>',
            'schedulePeriod' => [
                'endTime' => <integer || string || DateTime>,
                'startTime' => <integer || string || DateTime>,
            ],
            'state' => 'ENABLED|DISABLED',
        ],
        'scheduledReportExecutionRoleArn' => '<string>', // REQUIRED
        'widgetDateRangeOverride' => [
            'endTime' => [ // REQUIRED
                'type' => 'ABSOLUTE|RELATIVE', // REQUIRED
                'value' => '<string>', // REQUIRED
            ],
            'startTime' => [ // REQUIRED
                'type' => 'ABSOLUTE|RELATIVE', // REQUIRED
                'value' => '<string>', // REQUIRED
            ],
        ],
        'widgetIds' => ['<string>', ...],
    ],
]);

Parameter Details

Members
clientToken
Type: string

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

resourceTags
Type: Array of ResourceTag structures

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

scheduledReport
Required: Yes
Type: ScheduledReportInput structure

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.

Result Syntax

[
    'arn' => '<string>',
]

Result Details

Members
arn
Required: Yes
Type: string

The ARN of the newly created scheduled report.

Errors

ThrottlingException:

The request was denied due to request throttling. Reduce the frequency of requests and use exponential backoff.

ConflictException:

The request could not be completed due to a conflict with the current state of the resource. For example, attempting to create a resource that already exists or is being created.

AccessDeniedException:

You do not have sufficient permissions to perform this action. Verify your IAM permissions and any resource policies.

InternalServerException:

An internal error occurred while processing the request. Retry your request. If the problem persists, contact Amazon Web Services Support.

ValidationException:

The input parameters do not satisfy the requirements. Check the error message for specific validation details.

ServiceQuotaExceededException:

The request would exceed a service quota. Review the service quotas for Amazon Web Services Billing and Cost Management Dashboards and retry your request.

DeleteDashboard

$result = $client->deleteDashboard([/* ... */]);
$promise = $client->deleteDashboardAsync([/* ... */]);

Deletes a specified dashboard. This action cannot be undone.

Parameter Syntax

$result = $client->deleteDashboard([
    'arn' => '<string>', // REQUIRED
]);

Parameter Details

Members
arn
Required: Yes
Type: string

The ARN of the dashboard to be deleted.

Result Syntax

[
    'arn' => '<string>',
]

Result Details

Members
arn
Required: Yes
Type: string

The ARN of the dashboard that was deleted.

Errors

ThrottlingException:

The request was denied due to request throttling. Reduce the frequency of requests and use exponential backoff.

AccessDeniedException:

You do not have sufficient permissions to perform this action. Verify your IAM permissions and any resource policies.

InternalServerException:

An internal error occurred while processing the request. Retry your request. If the problem persists, contact Amazon Web Services Support.

ValidationException:

The input parameters do not satisfy the requirements. Check the error message for specific validation details.

Examples

Example 1: Deleting a dashboard
$result = $client->deleteDashboard([
    'arn' => 'arn:aws:bcm-dashboards::123456789012:dashboard/abcd1234-ab12-12ab-1ab2-abcd1234efgh',
]);

Result syntax:

[
    'arn' => 'arn:aws:bcm-dashboards::123456789012:dashboard/abcd1234-ab12-12ab-1ab2-abcd1234efgh',
]

DeleteScheduledReport

$result = $client->deleteScheduledReport([/* ... */]);
$promise = $client->deleteScheduledReportAsync([/* ... */]);

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

Parameter Syntax

$result = $client->deleteScheduledReport([
    'arn' => '<string>', // REQUIRED
]);

Parameter Details

Members
arn
Required: Yes
Type: string

The ARN of the scheduled report to delete.

Result Syntax

[
    'arn' => '<string>',
]

Result Details

Members
arn
Required: Yes
Type: string

The ARN of the scheduled report that was deleted.

Errors

ThrottlingException:

The request was denied due to request throttling. Reduce the frequency of requests and use exponential backoff.

AccessDeniedException:

You do not have sufficient permissions to perform this action. Verify your IAM permissions and any resource policies.

InternalServerException:

An internal error occurred while processing the request. Retry your request. If the problem persists, contact Amazon Web Services Support.

ValidationException:

The input parameters do not satisfy the requirements. Check the error message for specific validation details.

ResourceNotFoundException:

The specified resource (dashboard, policy, or widget) was not found. Verify the ARN and try again.

ExecuteScheduledReport

$result = $client->executeScheduledReport([/* ... */]);
$promise = $client->executeScheduledReportAsync([/* ... */]);

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.

If a clientToken is provided, the service uses it for idempotency. Requests with the same client token will not trigger a new execution within the same minute.

Parameter Syntax

$result = $client->executeScheduledReport([
    'arn' => '<string>', // REQUIRED
    'clientToken' => '<string>',
    'dryRun' => true || false,
]);

Parameter Details

Members
arn
Required: Yes
Type: string

The ARN of the scheduled report to execute.

clientToken
Type: string

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

dryRun
Type: boolean

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

Result Syntax

[
    'executionTriggered' => true || false,
    'healthStatus' => [
        'lastRefreshedAt' => <DateTime>,
        'statusCode' => 'HEALTHY|UNHEALTHY',
        'statusReasons' => ['<string>', ...],
    ],
]

Result Details

Members
executionTriggered
Type: boolean

Indicates whether the execution was successfully triggered.

healthStatus
Type: HealthStatus structure

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

Errors

ThrottlingException:

The request was denied due to request throttling. Reduce the frequency of requests and use exponential backoff.

ConflictException:

The request could not be completed due to a conflict with the current state of the resource. For example, attempting to create a resource that already exists or is being created.

AccessDeniedException:

You do not have sufficient permissions to perform this action. Verify your IAM permissions and any resource policies.

InternalServerException:

An internal error occurred while processing the request. Retry your request. If the problem persists, contact Amazon Web Services Support.

ValidationException:

The input parameters do not satisfy the requirements. Check the error message for specific validation details.

ResourceNotFoundException:

The specified resource (dashboard, policy, or widget) was not found. Verify the ARN and try again.

GetDashboard

$result = $client->getDashboard([/* ... */]);
$promise = $client->getDashboardAsync([/* ... */]);

Retrieves the configuration and metadata of a specified dashboard, including its widgets and layout settings.

Parameter Syntax

$result = $client->getDashboard([
    'arn' => '<string>', // REQUIRED
]);

Parameter Details

Members
arn
Required: Yes
Type: string

The ARN of the dashboard to retrieve. This is required to uniquely identify the dashboard.

Result Syntax

[
    'arn' => '<string>',
    'createdAt' => <DateTime>,
    'description' => '<string>',
    'name' => '<string>',
    'type' => 'CUSTOM',
    'updatedAt' => <DateTime>,
    'widgets' => [
        [
            'configs' => [
                [
                    'displayConfig' => [
                        'graph' => [
                            '<GenericString>' => [
                                'visualType' => 'LINE|BAR|STACK',
                            ],
                            // ...
                        ],
                        'table' => [
                        ],
                    ],
                    'queryParameters' => [
                        'costAndUsage' => [
                            'filter' => [
                                'and' => [
                                    [...], // RECURSIVE
                                    // ...
                                ],
                                'costCategories' => [
                                    'key' => '<string>',
                                    'matchOptions' => ['<string>', ...],
                                    'values' => ['<string>', ...],
                                ],
                                'dimensions' => [
                                    'key' => 'AZ|INSTANCE_TYPE|LINKED_ACCOUNT|OPERATION|PURCHASE_TYPE|REGION|SERVICE|USAGE_TYPE|USAGE_TYPE_GROUP|RECORD_TYPE|RESOURCE_ID|SUBSCRIPTION_ID|TAG_KEY|OPERATING_SYSTEM|TENANCY|BILLING_ENTITY|RESERVATION_ID|COST_CATEGORY_NAME|DATABASE_ENGINE|LEGAL_ENTITY_NAME|SAVINGS_PLANS_TYPE|INSTANCE_TYPE_FAMILY|CACHE_ENGINE|DEPLOYMENT_OPTION|SCOPE|PLATFORM',
                                    'matchOptions' => ['<string>', ...],
                                    'values' => ['<string>', ...],
                                ],
                                'not' => [...], // RECURSIVE
                                'or' => [
                                    [...], // RECURSIVE
                                    // ...
                                ],
                                'tags' => [
                                    'key' => '<string>',
                                    'matchOptions' => ['<string>', ...],
                                    'values' => ['<string>', ...],
                                ],
                            ],
                            'granularity' => 'HOURLY|DAILY|MONTHLY',
                            'groupBy' => [
                                [
                                    'key' => '<string>',
                                    'type' => 'DIMENSION|TAG|COST_CATEGORY',
                                ],
                                // ...
                            ],
                            'metrics' => ['<string>', ...],
                            'timeRange' => [
                                'endTime' => [
                                    'type' => 'ABSOLUTE|RELATIVE',
                                    'value' => '<string>',
                                ],
                                'startTime' => [
                                    'type' => 'ABSOLUTE|RELATIVE',
                                    'value' => '<string>',
                                ],
                            ],
                        ],
                        'reservationCoverage' => [
                            'filter' => [
                                'and' => [
                                    [...], // RECURSIVE
                                    // ...
                                ],
                                'costCategories' => [
                                    'key' => '<string>',
                                    'matchOptions' => ['<string>', ...],
                                    'values' => ['<string>', ...],
                                ],
                                'dimensions' => [
                                    'key' => 'AZ|INSTANCE_TYPE|LINKED_ACCOUNT|OPERATION|PURCHASE_TYPE|REGION|SERVICE|USAGE_TYPE|USAGE_TYPE_GROUP|RECORD_TYPE|RESOURCE_ID|SUBSCRIPTION_ID|TAG_KEY|OPERATING_SYSTEM|TENANCY|BILLING_ENTITY|RESERVATION_ID|COST_CATEGORY_NAME|DATABASE_ENGINE|LEGAL_ENTITY_NAME|SAVINGS_PLANS_TYPE|INSTANCE_TYPE_FAMILY|CACHE_ENGINE|DEPLOYMENT_OPTION|SCOPE|PLATFORM',
                                    'matchOptions' => ['<string>', ...],
                                    'values' => ['<string>', ...],
                                ],
                                'not' => [...], // RECURSIVE
                                'or' => [
                                    [...], // RECURSIVE
                                    // ...
                                ],
                                'tags' => [
                                    'key' => '<string>',
                                    'matchOptions' => ['<string>', ...],
                                    'values' => ['<string>', ...],
                                ],
                            ],
                            'granularity' => 'HOURLY|DAILY|MONTHLY',
                            'groupBy' => [
                                [
                                    'key' => '<string>',
                                    'type' => 'DIMENSION|TAG|COST_CATEGORY',
                                ],
                                // ...
                            ],
                            'metrics' => ['<string>', ...],
                            'timeRange' => [
                                'endTime' => [
                                    'type' => 'ABSOLUTE|RELATIVE',
                                    'value' => '<string>',
                                ],
                                'startTime' => [
                                    'type' => 'ABSOLUTE|RELATIVE',
                                    'value' => '<string>',
                                ],
                            ],
                        ],
                        'reservationUtilization' => [
                            'filter' => [
                                'and' => [
                                    [...], // RECURSIVE
                                    // ...
                                ],
                                'costCategories' => [
                                    'key' => '<string>',
                                    'matchOptions' => ['<string>', ...],
                                    'values' => ['<string>', ...],
                                ],
                                'dimensions' => [
                                    'key' => 'AZ|INSTANCE_TYPE|LINKED_ACCOUNT|OPERATION|PURCHASE_TYPE|REGION|SERVICE|USAGE_TYPE|USAGE_TYPE_GROUP|RECORD_TYPE|RESOURCE_ID|SUBSCRIPTION_ID|TAG_KEY|OPERATING_SYSTEM|TENANCY|BILLING_ENTITY|RESERVATION_ID|COST_CATEGORY_NAME|DATABASE_ENGINE|LEGAL_ENTITY_NAME|SAVINGS_PLANS_TYPE|INSTANCE_TYPE_FAMILY|CACHE_ENGINE|DEPLOYMENT_OPTION|SCOPE|PLATFORM',
                                    'matchOptions' => ['<string>', ...],
                                    'values' => ['<string>', ...],
                                ],
                                'not' => [...], // RECURSIVE
                                'or' => [
                                    [...], // RECURSIVE
                                    // ...
                                ],
                                'tags' => [
                                    'key' => '<string>',
                                    'matchOptions' => ['<string>', ...],
                                    'values' => ['<string>', ...],
                                ],
                            ],
                            'granularity' => 'HOURLY|DAILY|MONTHLY',
                            'groupBy' => [
                                [
                                    'key' => '<string>',
                                    'type' => 'DIMENSION|TAG|COST_CATEGORY',
                                ],
                                // ...
                            ],
                            'timeRange' => [
                                'endTime' => [
                                    'type' => 'ABSOLUTE|RELATIVE',
                                    'value' => '<string>',
                                ],
                                'startTime' => [
                                    'type' => 'ABSOLUTE|RELATIVE',
                                    'value' => '<string>',
                                ],
                            ],
                        ],
                        'savingsPlansCoverage' => [
                            'filter' => [
                                'and' => [
                                    [...], // RECURSIVE
                                    // ...
                                ],
                                'costCategories' => [
                                    'key' => '<string>',
                                    'matchOptions' => ['<string>', ...],
                                    'values' => ['<string>', ...],
                                ],
                                'dimensions' => [
                                    'key' => 'AZ|INSTANCE_TYPE|LINKED_ACCOUNT|OPERATION|PURCHASE_TYPE|REGION|SERVICE|USAGE_TYPE|USAGE_TYPE_GROUP|RECORD_TYPE|RESOURCE_ID|SUBSCRIPTION_ID|TAG_KEY|OPERATING_SYSTEM|TENANCY|BILLING_ENTITY|RESERVATION_ID|COST_CATEGORY_NAME|DATABASE_ENGINE|LEGAL_ENTITY_NAME|SAVINGS_PLANS_TYPE|INSTANCE_TYPE_FAMILY|CACHE_ENGINE|DEPLOYMENT_OPTION|SCOPE|PLATFORM',
                                    'matchOptions' => ['<string>', ...],
                                    'values' => ['<string>', ...],
                                ],
                                'not' => [...], // RECURSIVE
                                'or' => [
                                    [...], // RECURSIVE
                                    // ...
                                ],
                                'tags' => [
                                    'key' => '<string>',
                                    'matchOptions' => ['<string>', ...],
                                    'values' => ['<string>', ...],
                                ],
                            ],
                            'granularity' => 'HOURLY|DAILY|MONTHLY',
                            'groupBy' => [
                                [
                                    'key' => '<string>',
                                    'type' => 'DIMENSION|TAG|COST_CATEGORY',
                                ],
                                // ...
                            ],
                            'metrics' => ['<string>', ...],
                            'timeRange' => [
                                'endTime' => [
                                    'type' => 'ABSOLUTE|RELATIVE',
                                    'value' => '<string>',
                                ],
                                'startTime' => [
                                    'type' => 'ABSOLUTE|RELATIVE',
                                    'value' => '<string>',
                                ],
                            ],
                        ],
                        'savingsPlansUtilization' => [
                            'filter' => [
                                'and' => [
                                    [...], // RECURSIVE
                                    // ...
                                ],
                                'costCategories' => [
                                    'key' => '<string>',
                                    'matchOptions' => ['<string>', ...],
                                    'values' => ['<string>', ...],
                                ],
                                'dimensions' => [
                                    'key' => 'AZ|INSTANCE_TYPE|LINKED_ACCOUNT|OPERATION|PURCHASE_TYPE|REGION|SERVICE|USAGE_TYPE|USAGE_TYPE_GROUP|RECORD_TYPE|RESOURCE_ID|SUBSCRIPTION_ID|TAG_KEY|OPERATING_SYSTEM|TENANCY|BILLING_ENTITY|RESERVATION_ID|COST_CATEGORY_NAME|DATABASE_ENGINE|LEGAL_ENTITY_NAME|SAVINGS_PLANS_TYPE|INSTANCE_TYPE_FAMILY|CACHE_ENGINE|DEPLOYMENT_OPTION|SCOPE|PLATFORM',
                                    'matchOptions' => ['<string>', ...],
                                    'values' => ['<string>', ...],
                                ],
                                'not' => [...], // RECURSIVE
                                'or' => [
                                    [...], // RECURSIVE
                                    // ...
                                ],
                                'tags' => [
                                    'key' => '<string>',
                                    'matchOptions' => ['<string>', ...],
                                    'values' => ['<string>', ...],
                                ],
                            ],
                            'granularity' => 'HOURLY|DAILY|MONTHLY',
                            'timeRange' => [
                                'endTime' => [
                                    'type' => 'ABSOLUTE|RELATIVE',
                                    'value' => '<string>',
                                ],
                                'startTime' => [
                                    'type' => 'ABSOLUTE|RELATIVE',
                                    'value' => '<string>',
                                ],
                            ],
                        ],
                    ],
                ],
                // ...
            ],
            'description' => '<string>',
            'height' => <integer>,
            'horizontalOffset' => <integer>,
            'id' => '<string>',
            'title' => '<string>',
            'width' => <integer>,
        ],
        // ...
    ],
]

Result Details

Members
arn
Required: Yes
Type: string

The ARN of the retrieved dashboard.

createdAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the dashboard was created.

description
Type: string

The description of the retrieved dashboard.

name
Required: Yes
Type: string

The name of the retrieved dashboard.

type
Required: Yes
Type: string

Indicates the dashboard type.

updatedAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the dashboard was last modified.

widgets
Required: Yes
Type: Array of Widget structures

An array of widget configurations that make up the dashboard.

Errors

ThrottlingException:

The request was denied due to request throttling. Reduce the frequency of requests and use exponential backoff.

AccessDeniedException:

You do not have sufficient permissions to perform this action. Verify your IAM permissions and any resource policies.

InternalServerException:

An internal error occurred while processing the request. Retry your request. If the problem persists, contact Amazon Web Services Support.

ValidationException:

The input parameters do not satisfy the requirements. Check the error message for specific validation details.

ResourceNotFoundException:

The specified resource (dashboard, policy, or widget) was not found. Verify the ARN and try again.

Examples

Example 1: Getting information about a dashboard
$result = $client->getDashboard([
    'arn' => 'arn:aws:bcm-dashboards::123456789012:dashboard/abcd1234-ab12-12ab-1ab2-abcd1234efgh',
]);

Result syntax:

[
    'name' => 'cost-dashboards',
    'type' => 'CUSTOM',
    'arn' => 'arn:aws:bcm-dashboards::123456789012:dashboard/abcd1234-ab12-12ab-1ab2-abcd1234efgh',
    'createdAt' => ,
    'description' => 'Dashboard for tracking costs',
    'updatedAt' => ,
    'widgets' => [
        [
            'configs' => [
                [
                    'displayConfig' => [
                        'graph' => [
                            'costTrend' => [
                                'visualType' => 'LINE',
                            ],
                        ],
                    ],
                    'queryParameters' => [
                        'costAndUsage' => [
                            'granularity' => 'MONTHLY',
                            'groupBy' => [
                                [
                                    'type' => 'DIMENSION',
                                    'key' => 'SERVICE',
                                ],
                            ],
                            'metrics' => [
                                'UnblendedCost',
                            ],
                            'timeRange' => [
                                'endTime' => [
                                    'type' => 'RELATIVE',
                                    'value' => 'now',
                                ],
                                'startTime' => [
                                    'type' => 'RELATIVE',
                                    'value' => '-6M',
                                ],
                            ],
                        ],
                    ],
                ],
            ],
            'height' => 7,
            'horizontalOffset' => 0,
            'title' => 'Monthly Cost Trend',
            'width' => 4,
        ],
    ],
]

GetResourcePolicy

$result = $client->getResourcePolicy([/* ... */]);
$promise = $client->getResourcePolicyAsync([/* ... */]);

Retrieves the resource-based policy attached to a dashboard, showing sharing configurations and permissions.

Parameter Syntax

$result = $client->getResourcePolicy([
    'resourceArn' => '<string>', // REQUIRED
]);

Parameter Details

Members
resourceArn
Required: Yes
Type: string

The ARN of the dashboard whose resource-based policy you want to retrieve.

Result Syntax

[
    'policyDocument' => '<string>',
    'resourceArn' => '<string>',
]

Result Details

Members
policyDocument
Required: Yes
Type: string

The JSON policy document that represents the dashboard's resource-based policy.

resourceArn
Required: Yes
Type: string

The ARN of the dashboard for which the resource-based policy was retrieved.

Errors

ThrottlingException:

The request was denied due to request throttling. Reduce the frequency of requests and use exponential backoff.

AccessDeniedException:

You do not have sufficient permissions to perform this action. Verify your IAM permissions and any resource policies.

InternalServerException:

An internal error occurred while processing the request. Retry your request. If the problem persists, contact Amazon Web Services Support.

ValidationException:

The input parameters do not satisfy the requirements. Check the error message for specific validation details.

ResourceNotFoundException:

The specified resource (dashboard, policy, or widget) was not found. Verify the ARN and try again.

Examples

Example 1: Getting resource policy for a resource
$result = $client->getResourcePolicy([
    'resourceArn' => 'arn:aws:bcm-dashboards::123456789012:dashboard/abcd1234-ab12-12ab-1ab2-abcd1234efgh',
]);

Result syntax:

[
    'policyDocument' => '{}',
    'resourceArn' => 'arn:aws:bcm-dashboards::123456789012:dashboard/abcd1234-ab12-12ab-1ab2-abcd1234efgh',
]

GetScheduledReport

$result = $client->getScheduledReport([/* ... */]);
$promise = $client->getScheduledReportAsync([/* ... */]);

Retrieves the configuration and metadata of a specified scheduled report.

Parameter Syntax

$result = $client->getScheduledReport([
    'arn' => '<string>', // REQUIRED
]);

Parameter Details

Members
arn
Required: Yes
Type: string

The ARN of the scheduled report to retrieve.

Result Syntax

[
    'scheduledReport' => [
        'arn' => '<string>',
        'createdAt' => <DateTime>,
        'dashboardArn' => '<string>',
        'description' => '<string>',
        'healthStatus' => [
            'lastRefreshedAt' => <DateTime>,
            'statusCode' => 'HEALTHY|UNHEALTHY',
            'statusReasons' => ['<string>', ...],
        ],
        'lastExecutionAt' => <DateTime>,
        'name' => '<string>',
        'scheduleConfig' => [
            'scheduleExpression' => '<string>',
            'scheduleExpressionTimeZone' => '<string>',
            'schedulePeriod' => [
                'endTime' => <DateTime>,
                'startTime' => <DateTime>,
            ],
            'state' => 'ENABLED|DISABLED',
        ],
        'scheduledReportExecutionRoleArn' => '<string>',
        'updatedAt' => <DateTime>,
        'widgetDateRangeOverride' => [
            'endTime' => [
                'type' => 'ABSOLUTE|RELATIVE',
                'value' => '<string>',
            ],
            'startTime' => [
                'type' => 'ABSOLUTE|RELATIVE',
                'value' => '<string>',
            ],
        ],
        'widgetIds' => ['<string>', ...],
    ],
]

Result Details

Members
scheduledReport
Required: Yes
Type: ScheduledReport structure

The scheduled report configuration and metadata.

Errors

ThrottlingException:

The request was denied due to request throttling. Reduce the frequency of requests and use exponential backoff.

AccessDeniedException:

You do not have sufficient permissions to perform this action. Verify your IAM permissions and any resource policies.

InternalServerException:

An internal error occurred while processing the request. Retry your request. If the problem persists, contact Amazon Web Services Support.

ValidationException:

The input parameters do not satisfy the requirements. Check the error message for specific validation details.

ResourceNotFoundException:

The specified resource (dashboard, policy, or widget) was not found. Verify the ARN and try again.

ListDashboards

$result = $client->listDashboards([/* ... */]);
$promise = $client->listDashboardsAsync([/* ... */]);

Returns a list of all dashboards in your account.

Parameter Syntax

$result = $client->listDashboards([
    'maxResults' => <integer>,
    'nextToken' => '<string>',
]);

Parameter Details

Members
maxResults
Type: int

The maximum number of results to return in a single call. The default value is 20.

nextToken
Type: string

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

Result Syntax

[
    'dashboards' => [
        [
            'arn' => '<string>',
            'createdAt' => <DateTime>,
            'description' => '<string>',
            'name' => '<string>',
            'type' => 'CUSTOM',
            'updatedAt' => <DateTime>,
        ],
        // ...
    ],
    'nextToken' => '<string>',
]

Result Details

Members
dashboards
Required: Yes
Type: Array of DashboardReference structures

An array of dashboard references, containing basic information about each dashboard.

nextToken
Type: string

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

Errors

ThrottlingException:

The request was denied due to request throttling. Reduce the frequency of requests and use exponential backoff.

AccessDeniedException:

You do not have sufficient permissions to perform this action. Verify your IAM permissions and any resource policies.

InternalServerException:

An internal error occurred while processing the request. Retry your request. If the problem persists, contact Amazon Web Services Support.

ValidationException:

The input parameters do not satisfy the requirements. Check the error message for specific validation details.

Examples

Example 1: Listing dashboards for a user
$result = $client->listDashboards([
]);

Result syntax:

[
    'dashboards' => [
        [
            'name' => 'monthly-cost-dashboard',
            'type' => 'CUSTOM',
            'arn' => 'arn:aws:bcm-dashboards::123456789012:dashboard/abcd1234-ab12-12ab-1ab2-abcd1234efgh',
            'createdAt' => ,
            'description' => 'Dashboard for tracking monthly cost',
            'updatedAt' => ,
        ],
    ],
]

ListScheduledReports

$result = $client->listScheduledReports([/* ... */]);
$promise = $client->listScheduledReportsAsync([/* ... */]);

Returns a list of scheduled reports in your account.

Parameter Syntax

$result = $client->listScheduledReports([
    'maxResults' => <integer>,
    'nextToken' => '<string>',
]);

Parameter Details

Members
maxResults
Type: int

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

nextToken
Type: string

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

Result Syntax

[
    'nextToken' => '<string>',
    'scheduledReports' => [
        [
            'arn' => '<string>',
            'dashboardArn' => '<string>',
            'healthStatus' => [
                'lastRefreshedAt' => <DateTime>,
                'statusCode' => 'HEALTHY|UNHEALTHY',
                'statusReasons' => ['<string>', ...],
            ],
            'name' => '<string>',
            'scheduleExpression' => '<string>',
            'scheduleExpressionTimeZone' => '<string>',
            'state' => 'ENABLED|DISABLED',
            'widgetIds' => ['<string>', ...],
        ],
        // ...
    ],
]

Result Details

Members
nextToken
Type: string

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

scheduledReports
Required: Yes
Type: Array of ScheduledReportSummary structures

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

Errors

ThrottlingException:

The request was denied due to request throttling. Reduce the frequency of requests and use exponential backoff.

AccessDeniedException:

You do not have sufficient permissions to perform this action. Verify your IAM permissions and any resource policies.

InternalServerException:

An internal error occurred while processing the request. Retry your request. If the problem persists, contact Amazon Web Services Support.

ValidationException:

The input parameters do not satisfy the requirements. Check the error message for specific validation details.

ListTagsForResource

$result = $client->listTagsForResource([/* ... */]);
$promise = $client->listTagsForResourceAsync([/* ... */]);

Returns a list of all tags associated with a specified dashboard resource.

Parameter Syntax

$result = $client->listTagsForResource([
    'resourceArn' => '<string>', // REQUIRED
]);

Parameter Details

Members
resourceArn
Required: Yes
Type: string

The unique identifier for the resource.

Result Syntax

[
    'resourceTags' => [
        [
            'key' => '<string>',
            'value' => '<string>',
        ],
        // ...
    ],
]

Result Details

Members
resourceTags
Type: Array of ResourceTag structures

The list of tags associated with the specified dashboard resource.

Errors

ThrottlingException:

The request was denied due to request throttling. Reduce the frequency of requests and use exponential backoff.

InternalServerException:

An internal error occurred while processing the request. Retry your request. If the problem persists, contact Amazon Web Services Support.

ValidationException:

The input parameters do not satisfy the requirements. Check the error message for specific validation details.

ResourceNotFoundException:

The specified resource (dashboard, policy, or widget) was not found. Verify the ARN and try again.

Examples

Example 1: Listing tags for a resource
$result = $client->listTagsForResource([
    'resourceArn' => 'arn:aws:bcm-dashboards::123456789012:dashboard/abcd1234-ab12-12ab-1ab2-abcd1234efgh',
]);

Result syntax:

[
    'resourceTags' => [
        [
            'key' => 'keyOne',
            'value' => 'valueOne',
        ],
        [
            'key' => 'keyTwo',
            'value' => 'valueTwo',
        ],
    ],
]

TagResource

$result = $client->tagResource([/* ... */]);
$promise = $client->tagResourceAsync([/* ... */]);

Adds or updates tags for a specified dashboard resource.

Parameter Syntax

$result = $client->tagResource([
    'resourceArn' => '<string>', // REQUIRED
    'resourceTags' => [ // REQUIRED
        [
            'key' => '<string>', // REQUIRED
            'value' => '<string>', // REQUIRED
        ],
        // ...
    ],
]);

Parameter Details

Members
resourceArn
Required: Yes
Type: string

The unique identifier for the resource.

resourceTags
Required: Yes
Type: Array of ResourceTag structures

The tags to add to the dashboard resource.

Result Syntax

[]

Result Details

The results for this operation are always empty.

Errors

ThrottlingException:

The request was denied due to request throttling. Reduce the frequency of requests and use exponential backoff.

InternalServerException:

An internal error occurred while processing the request. Retry your request. If the problem persists, contact Amazon Web Services Support.

ValidationException:

The input parameters do not satisfy the requirements. Check the error message for specific validation details.

ResourceNotFoundException:

The specified resource (dashboard, policy, or widget) was not found. Verify the ARN and try again.

Examples

Example 1: Adding tag(s) to a resource
$result = $client->tagResource([
    'resourceArn' => 'arn:aws:bcm-dashboards::123456789012:dashboard/abcd1234-ab12-12ab-1ab2-abcd1234efgh',
    'resourceTags' => [
        [
            'key' => 'keyOne',
            'value' => 'valueOne',
        ],
    ],
]);

UntagResource

$result = $client->untagResource([/* ... */]);
$promise = $client->untagResourceAsync([/* ... */]);

Removes specified tags from a dashboard resource.

Parameter Syntax

$result = $client->untagResource([
    'resourceArn' => '<string>', // REQUIRED
    'resourceTagKeys' => ['<string>', ...], // REQUIRED
]);

Parameter Details

Members
resourceArn
Required: Yes
Type: string

The unique identifier for the resource.

resourceTagKeys
Required: Yes
Type: Array of strings

The keys of the tags to remove from the dashboard resource.

Result Syntax

[]

Result Details

The results for this operation are always empty.

Errors

ThrottlingException:

The request was denied due to request throttling. Reduce the frequency of requests and use exponential backoff.

InternalServerException:

An internal error occurred while processing the request. Retry your request. If the problem persists, contact Amazon Web Services Support.

ValidationException:

The input parameters do not satisfy the requirements. Check the error message for specific validation details.

ResourceNotFoundException:

The specified resource (dashboard, policy, or widget) was not found. Verify the ARN and try again.

Examples

Example 1: Removing tag(s) from a resource
$result = $client->untagResource([
    'resourceArn' => 'arn:aws:bcm-dashboards::123456789012:dashboard/abcd1234-ab12-12ab-1ab2-abcd1234efgh',
    'resourceTagKeys' => [
        'keyOne',
    ],
]);

UpdateDashboard

$result = $client->updateDashboard([/* ... */]);
$promise = $client->updateDashboardAsync([/* ... */]);

Updates an existing dashboard's properties, including its name, description, and widget configurations.

Parameter Syntax

$result = $client->updateDashboard([
    'arn' => '<string>', // REQUIRED
    'description' => '<string>',
    'name' => '<string>', // REQUIRED
    'widgets' => [
        [
            'configs' => [ // REQUIRED
                [
                    'displayConfig' => [ // REQUIRED
                        'graph' => [
                            '<GenericString>' => [
                                'visualType' => 'LINE|BAR|STACK', // REQUIRED
                            ],
                            // ...
                        ],
                        'table' => [
                        ],
                    ],
                    'queryParameters' => [ // REQUIRED
                        'costAndUsage' => [
                            'filter' => [
                                'and' => [
                                    [...], // RECURSIVE
                                    // ...
                                ],
                                'costCategories' => [
                                    'key' => '<string>',
                                    'matchOptions' => ['<string>', ...],
                                    'values' => ['<string>', ...],
                                ],
                                'dimensions' => [
                                    'key' => 'AZ|INSTANCE_TYPE|LINKED_ACCOUNT|OPERATION|PURCHASE_TYPE|REGION|SERVICE|USAGE_TYPE|USAGE_TYPE_GROUP|RECORD_TYPE|RESOURCE_ID|SUBSCRIPTION_ID|TAG_KEY|OPERATING_SYSTEM|TENANCY|BILLING_ENTITY|RESERVATION_ID|COST_CATEGORY_NAME|DATABASE_ENGINE|LEGAL_ENTITY_NAME|SAVINGS_PLANS_TYPE|INSTANCE_TYPE_FAMILY|CACHE_ENGINE|DEPLOYMENT_OPTION|SCOPE|PLATFORM', // REQUIRED
                                    'matchOptions' => ['<string>', ...],
                                    'values' => ['<string>', ...], // REQUIRED
                                ],
                                'not' => [...], // RECURSIVE
                                'or' => [
                                    [...], // RECURSIVE
                                    // ...
                                ],
                                'tags' => [
                                    'key' => '<string>',
                                    'matchOptions' => ['<string>', ...],
                                    'values' => ['<string>', ...],
                                ],
                            ],
                            'granularity' => 'HOURLY|DAILY|MONTHLY', // REQUIRED
                            'groupBy' => [
                                [
                                    'key' => '<string>', // REQUIRED
                                    'type' => 'DIMENSION|TAG|COST_CATEGORY',
                                ],
                                // ...
                            ],
                            'metrics' => ['<string>', ...], // REQUIRED
                            'timeRange' => [ // REQUIRED
                                'endTime' => [ // REQUIRED
                                    'type' => 'ABSOLUTE|RELATIVE', // REQUIRED
                                    'value' => '<string>', // REQUIRED
                                ],
                                'startTime' => [ // REQUIRED
                                    'type' => 'ABSOLUTE|RELATIVE', // REQUIRED
                                    'value' => '<string>', // REQUIRED
                                ],
                            ],
                        ],
                        'reservationCoverage' => [
                            'filter' => [
                                'and' => [
                                    [...], // RECURSIVE
                                    // ...
                                ],
                                'costCategories' => [
                                    'key' => '<string>',
                                    'matchOptions' => ['<string>', ...],
                                    'values' => ['<string>', ...],
                                ],
                                'dimensions' => [
                                    'key' => 'AZ|INSTANCE_TYPE|LINKED_ACCOUNT|OPERATION|PURCHASE_TYPE|REGION|SERVICE|USAGE_TYPE|USAGE_TYPE_GROUP|RECORD_TYPE|RESOURCE_ID|SUBSCRIPTION_ID|TAG_KEY|OPERATING_SYSTEM|TENANCY|BILLING_ENTITY|RESERVATION_ID|COST_CATEGORY_NAME|DATABASE_ENGINE|LEGAL_ENTITY_NAME|SAVINGS_PLANS_TYPE|INSTANCE_TYPE_FAMILY|CACHE_ENGINE|DEPLOYMENT_OPTION|SCOPE|PLATFORM', // REQUIRED
                                    'matchOptions' => ['<string>', ...],
                                    'values' => ['<string>', ...], // REQUIRED
                                ],
                                'not' => [...], // RECURSIVE
                                'or' => [
                                    [...], // RECURSIVE
                                    // ...
                                ],
                                'tags' => [
                                    'key' => '<string>',
                                    'matchOptions' => ['<string>', ...],
                                    'values' => ['<string>', ...],
                                ],
                            ],
                            'granularity' => 'HOURLY|DAILY|MONTHLY',
                            'groupBy' => [
                                [
                                    'key' => '<string>', // REQUIRED
                                    'type' => 'DIMENSION|TAG|COST_CATEGORY',
                                ],
                                // ...
                            ],
                            'metrics' => ['<string>', ...],
                            'timeRange' => [ // REQUIRED
                                'endTime' => [ // REQUIRED
                                    'type' => 'ABSOLUTE|RELATIVE', // REQUIRED
                                    'value' => '<string>', // REQUIRED
                                ],
                                'startTime' => [ // REQUIRED
                                    'type' => 'ABSOLUTE|RELATIVE', // REQUIRED
                                    'value' => '<string>', // REQUIRED
                                ],
                            ],
                        ],
                        'reservationUtilization' => [
                            'filter' => [
                                'and' => [
                                    [...], // RECURSIVE
                                    // ...
                                ],
                                'costCategories' => [
                                    'key' => '<string>',
                                    'matchOptions' => ['<string>', ...],
                                    'values' => ['<string>', ...],
                                ],
                                'dimensions' => [
                                    'key' => 'AZ|INSTANCE_TYPE|LINKED_ACCOUNT|OPERATION|PURCHASE_TYPE|REGION|SERVICE|USAGE_TYPE|USAGE_TYPE_GROUP|RECORD_TYPE|RESOURCE_ID|SUBSCRIPTION_ID|TAG_KEY|OPERATING_SYSTEM|TENANCY|BILLING_ENTITY|RESERVATION_ID|COST_CATEGORY_NAME|DATABASE_ENGINE|LEGAL_ENTITY_NAME|SAVINGS_PLANS_TYPE|INSTANCE_TYPE_FAMILY|CACHE_ENGINE|DEPLOYMENT_OPTION|SCOPE|PLATFORM', // REQUIRED
                                    'matchOptions' => ['<string>', ...],
                                    'values' => ['<string>', ...], // REQUIRED
                                ],
                                'not' => [...], // RECURSIVE
                                'or' => [
                                    [...], // RECURSIVE
                                    // ...
                                ],
                                'tags' => [
                                    'key' => '<string>',
                                    'matchOptions' => ['<string>', ...],
                                    'values' => ['<string>', ...],
                                ],
                            ],
                            'granularity' => 'HOURLY|DAILY|MONTHLY',
                            'groupBy' => [
                                [
                                    'key' => '<string>', // REQUIRED
                                    'type' => 'DIMENSION|TAG|COST_CATEGORY',
                                ],
                                // ...
                            ],
                            'timeRange' => [ // REQUIRED
                                'endTime' => [ // REQUIRED
                                    'type' => 'ABSOLUTE|RELATIVE', // REQUIRED
                                    'value' => '<string>', // REQUIRED
                                ],
                                'startTime' => [ // REQUIRED
                                    'type' => 'ABSOLUTE|RELATIVE', // REQUIRED
                                    'value' => '<string>', // REQUIRED
                                ],
                            ],
                        ],
                        'savingsPlansCoverage' => [
                            'filter' => [
                                'and' => [
                                    [...], // RECURSIVE
                                    // ...
                                ],
                                'costCategories' => [
                                    'key' => '<string>',
                                    'matchOptions' => ['<string>', ...],
                                    'values' => ['<string>', ...],
                                ],
                                'dimensions' => [
                                    'key' => 'AZ|INSTANCE_TYPE|LINKED_ACCOUNT|OPERATION|PURCHASE_TYPE|REGION|SERVICE|USAGE_TYPE|USAGE_TYPE_GROUP|RECORD_TYPE|RESOURCE_ID|SUBSCRIPTION_ID|TAG_KEY|OPERATING_SYSTEM|TENANCY|BILLING_ENTITY|RESERVATION_ID|COST_CATEGORY_NAME|DATABASE_ENGINE|LEGAL_ENTITY_NAME|SAVINGS_PLANS_TYPE|INSTANCE_TYPE_FAMILY|CACHE_ENGINE|DEPLOYMENT_OPTION|SCOPE|PLATFORM', // REQUIRED
                                    'matchOptions' => ['<string>', ...],
                                    'values' => ['<string>', ...], // REQUIRED
                                ],
                                'not' => [...], // RECURSIVE
                                'or' => [
                                    [...], // RECURSIVE
                                    // ...
                                ],
                                'tags' => [
                                    'key' => '<string>',
                                    'matchOptions' => ['<string>', ...],
                                    'values' => ['<string>', ...],
                                ],
                            ],
                            'granularity' => 'HOURLY|DAILY|MONTHLY',
                            'groupBy' => [
                                [
                                    'key' => '<string>', // REQUIRED
                                    'type' => 'DIMENSION|TAG|COST_CATEGORY',
                                ],
                                // ...
                            ],
                            'metrics' => ['<string>', ...],
                            'timeRange' => [ // REQUIRED
                                'endTime' => [ // REQUIRED
                                    'type' => 'ABSOLUTE|RELATIVE', // REQUIRED
                                    'value' => '<string>', // REQUIRED
                                ],
                                'startTime' => [ // REQUIRED
                                    'type' => 'ABSOLUTE|RELATIVE', // REQUIRED
                                    'value' => '<string>', // REQUIRED
                                ],
                            ],
                        ],
                        'savingsPlansUtilization' => [
                            'filter' => [
                                'and' => [
                                    [...], // RECURSIVE
                                    // ...
                                ],
                                'costCategories' => [
                                    'key' => '<string>',
                                    'matchOptions' => ['<string>', ...],
                                    'values' => ['<string>', ...],
                                ],
                                'dimensions' => [
                                    'key' => 'AZ|INSTANCE_TYPE|LINKED_ACCOUNT|OPERATION|PURCHASE_TYPE|REGION|SERVICE|USAGE_TYPE|USAGE_TYPE_GROUP|RECORD_TYPE|RESOURCE_ID|SUBSCRIPTION_ID|TAG_KEY|OPERATING_SYSTEM|TENANCY|BILLING_ENTITY|RESERVATION_ID|COST_CATEGORY_NAME|DATABASE_ENGINE|LEGAL_ENTITY_NAME|SAVINGS_PLANS_TYPE|INSTANCE_TYPE_FAMILY|CACHE_ENGINE|DEPLOYMENT_OPTION|SCOPE|PLATFORM', // REQUIRED
                                    'matchOptions' => ['<string>', ...],
                                    'values' => ['<string>', ...], // REQUIRED
                                ],
                                'not' => [...], // RECURSIVE
                                'or' => [
                                    [...], // RECURSIVE
                                    // ...
                                ],
                                'tags' => [
                                    'key' => '<string>',
                                    'matchOptions' => ['<string>', ...],
                                    'values' => ['<string>', ...],
                                ],
                            ],
                            'granularity' => 'HOURLY|DAILY|MONTHLY',
                            'timeRange' => [ // REQUIRED
                                'endTime' => [ // REQUIRED
                                    'type' => 'ABSOLUTE|RELATIVE', // REQUIRED
                                    'value' => '<string>', // REQUIRED
                                ],
                                'startTime' => [ // REQUIRED
                                    'type' => 'ABSOLUTE|RELATIVE', // REQUIRED
                                    'value' => '<string>', // REQUIRED
                                ],
                            ],
                        ],
                    ],
                ],
                // ...
            ],
            'description' => '<string>',
            'height' => <integer>,
            'horizontalOffset' => <integer>,
            'id' => '<string>',
            'title' => '<string>', // REQUIRED
            'width' => <integer>,
        ],
        // ...
    ],
]);

Parameter Details

Members
arn
Required: Yes
Type: string

The ARN of the dashboard to update.

description
Type: string

The new description for the dashboard.

name
Required: Yes
Type: string

The new name for the dashboard.

widgets
Type: Array of Widget structures

The updated array of widget configurations for the dashboard. Replaces all existing widgets.

Result Syntax

[
    'arn' => '<string>',
]

Result Details

Members
arn
Required: Yes
Type: string

The ARN of the updated dashboard.

Errors

ThrottlingException:

The request was denied due to request throttling. Reduce the frequency of requests and use exponential backoff.

AccessDeniedException:

You do not have sufficient permissions to perform this action. Verify your IAM permissions and any resource policies.

InternalServerException:

An internal error occurred while processing the request. Retry your request. If the problem persists, contact Amazon Web Services Support.

ValidationException:

The input parameters do not satisfy the requirements. Check the error message for specific validation details.

ResourceNotFoundException:

The specified resource (dashboard, policy, or widget) was not found. Verify the ARN and try again.

Examples

Example 1: Updating a dashboard
$result = $client->updateDashboard([
    'name' => 'cost-dashboards-updated',
    'arn' => 'arn:aws:bcm-dashboards::123456789012:dashboard/abcd1234-ab12-12ab-1ab2-abcd1234efgh',
    'description' => 'Dashboard for tracking costs version 2',
    'widgets' => [
        [
            'configs' => [
                [
                    'displayConfig' => [
                        'graph' => [
                            'costTrend' => [
                                'visualType' => 'LINE',
                            ],
                        ],
                    ],
                    'queryParameters' => [
                        'costAndUsage' => [
                            'granularity' => 'MONTHLY',
                            'groupBy' => [
                                [
                                    'type' => 'DIMENSION',
                                    'key' => 'SERVICE',
                                ],
                            ],
                            'metrics' => [
                                'UnblendedCost',
                            ],
                            'timeRange' => [
                                'endTime' => [
                                    'type' => 'RELATIVE',
                                    'value' => 'now',
                                ],
                                'startTime' => [
                                    'type' => 'RELATIVE',
                                    'value' => '-3M',
                                ],
                            ],
                        ],
                    ],
                ],
            ],
            'height' => 7,
            'horizontalOffset' => 2,
            'title' => 'Monthly Cost Trend',
            'width' => 4,
        ],
    ],
]);

UpdateScheduledReport

$result = $client->updateScheduledReport([/* ... */]);
$promise = $client->updateScheduledReportAsync([/* ... */]);

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.

Parameter Syntax

$result = $client->updateScheduledReport([
    'arn' => '<string>', // REQUIRED
    'clearWidgetDateRangeOverride' => true || false,
    'clearWidgetIds' => true || false,
    'dashboardArn' => '<string>',
    'description' => '<string>',
    'name' => '<string>',
    'scheduleConfig' => [
        'scheduleExpression' => '<string>',
        'scheduleExpressionTimeZone' => '<string>',
        'schedulePeriod' => [
            'endTime' => <integer || string || DateTime>,
            'startTime' => <integer || string || DateTime>,
        ],
        'state' => 'ENABLED|DISABLED',
    ],
    'scheduledReportExecutionRoleArn' => '<string>',
    'widgetDateRangeOverride' => [
        'endTime' => [ // REQUIRED
            'type' => 'ABSOLUTE|RELATIVE', // REQUIRED
            'value' => '<string>', // REQUIRED
        ],
        'startTime' => [ // REQUIRED
            'type' => 'ABSOLUTE|RELATIVE', // REQUIRED
            'value' => '<string>', // REQUIRED
        ],
    ],
    'widgetIds' => ['<string>', ...],
]);

Parameter Details

Members
arn
Required: Yes
Type: string

The ARN of the scheduled report to update.

clearWidgetDateRangeOverride
Type: boolean

Set to true to clear existing widgetDateRangeOverride.

clearWidgetIds
Type: boolean

Set to true to clear existing widgetIds.

dashboardArn
Type: string

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

description
Type: string

The new description for the scheduled report.

name
Type: string

The new name for the scheduled report.

scheduleConfig
Type: ScheduleConfig structure

The updated schedule configuration for the report.

scheduledReportExecutionRoleArn
Type: 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.

widgetDateRangeOverride
Type: DateTimeRange structure

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

widgetIds
Type: Array of strings

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

Result Syntax

[
    'arn' => '<string>',
]

Result Details

Members
arn
Required: Yes
Type: string

The ARN of the updated scheduled report.

Errors

ThrottlingException:

The request was denied due to request throttling. Reduce the frequency of requests and use exponential backoff.

ConflictException:

The request could not be completed due to a conflict with the current state of the resource. For example, attempting to create a resource that already exists or is being created.

AccessDeniedException:

You do not have sufficient permissions to perform this action. Verify your IAM permissions and any resource policies.

InternalServerException:

An internal error occurred while processing the request. Retry your request. If the problem persists, contact Amazon Web Services Support.

ValidationException:

The input parameters do not satisfy the requirements. Check the error message for specific validation details.

ResourceNotFoundException:

The specified resource (dashboard, policy, or widget) was not found. Verify the ARN and try again.

Shapes

AccessDeniedException

Description

You do not have sufficient permissions to perform this action. Verify your IAM permissions and any resource policies.

Members
message
Required: Yes
Type: string

ConflictException

Description

The request could not be completed due to a conflict with the current state of the resource. For example, attempting to create a resource that already exists or is being created.

Members
message
Required: Yes
Type: string

CostAndUsageQuery

Description

Defines the parameters for retrieving Amazon Web Services cost and usage data. Includes specifications for metrics, time periods, granularity, grouping dimensions, and filtering conditions.

Members
filter
Type: Expression structure

The filter expression to be applied to the cost and usage data.

granularity
Required: Yes
Type: string

The granularity of the retrieved data: HOURLY, DAILY, or MONTHLY.

groupBy
Type: Array of GroupDefinition structures

Specifies how to group the retrieved data, such as by SERVICE, ACCOUNT, or TAG.

metrics
Required: Yes
Type: Array of strings

The specific cost and usage metrics to retrieve.

Valid values for CostAndUsageQuery metrics are AmortizedCost, BlendedCost, NetAmortizedCost, NetUnblendedCost, NormalizedUsageAmount, UnblendedCost, and UsageQuantity.

timeRange
Required: Yes
Type: DateTimeRange structure

The time period for which to retrieve data. Can be specified as absolute dates or relative time periods.

CostCategoryValues

Description

Specifies the values and match options for cost category-based filtering in cost and usage queries.

Members
key
Type: string

The key of the cost category to filter on.

matchOptions
Type: Array of strings

The match options for cost category values, such as EQUALS, CONTAINS, STARTS_WITH, or ENDS_WITH.

values
Type: Array of strings

The values to match for the specified cost category key.

DashboardReference

Description

Contains basic information about a dashboard, including its ARN, name, type, and timestamps.

Members
arn
Required: Yes
Type: string

The ARN of the referenced dashboard.

createdAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the dashboard was created.

description
Type: string

The description of the referenced dashboard.

name
Required: Yes
Type: string

The name of the referenced dashboard.

type
Required: Yes
Type: string

The dashboard type.

updatedAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the dashboard was last modified.

DateTimeRange

Description

Defines a time period with explicit start and end times for data queries.

Members
endTime
Required: Yes
Type: DateTimeValue structure

The end time of the date range for querying data.

startTime
Required: Yes
Type: DateTimeValue structure

The start time of the date range for querying data.

DateTimeValue

Description

Represents a point in time that can be specified as either an absolute date (for example, "2025-07-01") or a relative time period using ISO 8601 duration format (for example, "-P3M" for three months ago).

Members
type
Required: Yes
Type: string

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

value
Required: Yes
Type: string

The actual date/time value.

DimensionValues

Description

Specifies the values and match options for dimension-based filtering in cost and usage queries.

Members
key
Required: Yes
Type: string

The key of the dimension to filter on (for example, SERVICE, USAGE_TYPE, or OPERATION).

matchOptions
Type: Array of strings

The match options for dimension values, such as EQUALS, CONTAINS, STARTS_WITH, or ENDS_WITH.

values
Required: Yes
Type: Array of strings

The values to match for the specified dimension key.

DisplayConfig

Description

Defines how the widget's data should be visualized, including chart type, color schemes, axis configurations, and other display preferences.

Members
graph
Type: Associative array of custom strings keys (GenericString) to GraphDisplayConfig structures

The configuration for graphical display of the widget data, including chart type and visual options.

table
Type: TableDisplayConfigStruct structure

The configuration for tabular display of the widget data.

Expression

Description

Defines complex filtering conditions using logical operators (AND, OR, NOT) and various filter types.

Members
and
Type: Array of Expression structures

A list of expressions to combine with AND logic.

costCategories
Type: CostCategoryValues structure

The cost category values to include in the filter expression.

dimensions
Type: DimensionValues structure

The dimension values to include in the filter expression.

not
Type: Expression structure

An expression to negate with NOT logic.

or
Type: Array of Expression structures

A list of expressions to combine with OR logic.

tags
Type: TagValues structure

The tag values to include in the filter expression.

GraphDisplayConfig

Description

Defines the visual representation settings for widget data, including the visualization type, styling options, and display preferences for different metric types.

Members
visualType
Required: Yes
Type: string

The type of visualization to use for the data.

GroupDefinition

Description

Specifies how to group cost and usage data.

Members
key
Required: Yes
Type: string

The key to use for grouping cost and usage data.

type
Type: string

The type of grouping to apply.

HealthStatus

Description

Contains the health status information for a scheduled report, including the status code and any reasons for an unhealthy state.

Members
lastRefreshedAt
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the health status was last refreshed.

statusCode
Required: Yes
Type: 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.

statusReasons
Type: Array of strings

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

InternalServerException

Description

An internal error occurred while processing the request. Retry your request. If the problem persists, contact Amazon Web Services Support.

Members
message
Required: Yes
Type: string

QueryParameters

Description

Defines the data retrieval parameters for a widget.

Members
costAndUsage
Type: CostAndUsageQuery structure

The parameters for querying cost and usage data, including metrics, time range, granularity, grouping dimensions, and filters.

reservationCoverage
Type: ReservationCoverageQuery structure

The parameters for querying Reserved Instance coverage data, showing how much of your eligible instance usage is covered by Reserved Instances.

reservationUtilization
Type: ReservationUtilizationQuery structure

The parameters for querying Reserved Instance utilization data, showing how effectively your Reserved Instances are being used.

savingsPlansCoverage
Type: SavingsPlansCoverageQuery structure

The parameters for querying Savings Plans coverage data, showing how much of your eligible compute usage is covered by Savings Plans.

savingsPlansUtilization

The parameters for querying Savings Plans utilization data, showing how effectively your Savings Plans are being used.

ReservationCoverageQuery

Description

Defines the parameters for querying Reserved Instance coverage data, including grouping options, metrics, and sorting preferences.

Members
filter
Type: Expression structure

Defines complex filtering conditions using logical operators (AND, OR, NOT) and various filter types.

granularity
Type: string

The time granularity of the retrieved data: HOURLY, DAILY, or MONTHLY.

groupBy
Type: Array of GroupDefinition structures

Specifies how to group the Reserved Instance coverage data, such as by service, Region, or instance type.

metrics
Type: Array of strings

The coverage metrics to include in the results.

Valid values for ReservationCoverageQuery metrics are Hour, Unit, and Cost.

timeRange
Required: Yes
Type: DateTimeRange structure

Defines a time period with explicit start and end times for data queries.

ReservationUtilizationQuery

Description

Defines the parameters for querying Reserved Instance utilization data, including grouping options and time granularity.

Members
filter
Type: Expression structure

Defines complex filtering conditions using logical operators (AND, OR, NOT) and various filter types.

granularity
Type: string

The time granularity of the retrieved data: HOURLY, DAILY, or MONTHLY.

groupBy
Type: Array of GroupDefinition structures

Specifies how to group the Reserved Instance utilization data, such as by service, Region, or instance type.

timeRange
Required: Yes
Type: DateTimeRange structure

Defines a time period with explicit start and end times for data queries.

ResourceNotFoundException

Description

The specified resource (dashboard, policy, or widget) was not found. Verify the ARN and try again.

Members
message
Required: Yes
Type: string

ResourceTag

Description

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

Members
key
Required: Yes
Type: string

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

value
Required: Yes
Type: string

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

SavingsPlansCoverageQuery

Description

Defines the parameters for querying Savings Plans coverage data, including metrics, grouping options, and time granularity.

Members
filter
Type: Expression structure

Defines complex filtering conditions using logical operators (AND, OR, NOT) and various filter types.

granularity
Type: string

The time granularity of the retrieved data: HOURLY, DAILY, or MONTHLY.

groupBy
Type: Array of GroupDefinition structures

Specifies how to group the Savings Plans coverage data, such as by service or instance family.

metrics
Type: Array of strings

The coverage metrics to include in the results.

Valid value for SavingsPlansCoverageQuery metrics is SpendCoveredBySavingsPlans.

timeRange
Required: Yes
Type: DateTimeRange structure

Defines a time period with explicit start and end times for data queries.

SavingsPlansUtilizationQuery

Description

Defines the parameters for querying Savings Plans utilization data, including time granularity and sorting preferences.

Members
filter
Type: Expression structure

Defines complex filtering conditions using logical operators (AND, OR, NOT) and various filter types.

granularity
Type: string

The time granularity of the retrieved data: HOURLY, DAILY, or MONTHLY.

timeRange
Required: Yes
Type: DateTimeRange structure

Defines a time period with explicit start and end times for data queries.

ScheduleConfig

Description

Defines the schedule for a scheduled report, including the cron expression, time zone, active period, and the schedule state.

Members
scheduleExpression
Type: 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
Type: string

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

schedulePeriod
Type: SchedulePeriod structure

The time period during which the schedule is active.

state
Type: 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.

SchedulePeriod

Description

Defines the active time period for execution of the scheduled report.

Members
endTime
Type: timestamp (string|DateTime or anything parsable by strtotime)

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.

startTime
Type: timestamp (string|DateTime or anything parsable by strtotime)

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.

ScheduledReport

Description

Contains the full configuration and metadata of a scheduled report.

Members
arn
Type: string

The ARN of the scheduled report.

createdAt
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the scheduled report was created.

dashboardArn
Required: Yes
Type: string

The ARN of the dashboard associated with the scheduled report.

description
Type: string

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

healthStatus
Type: HealthStatus structure

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

lastExecutionAt
Type: timestamp (string|DateTime or anything parsable by strtotime)

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

name
Required: Yes
Type: string

The name of the scheduled report.

scheduleConfig
Required: Yes
Type: ScheduleConfig structure

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

scheduledReportExecutionRoleArn
Required: Yes
Type: 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.

updatedAt
Type: timestamp (string|DateTime or anything parsable by strtotime)

The timestamp when the scheduled report was last modified.

widgetDateRangeOverride
Type: DateTimeRange structure

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

widgetIds
Type: Array of strings

The list of widget identifiers included in the scheduled report.

ScheduledReportInput

Description

Defines the configuration for creating a new scheduled report, including the dashboard, schedule, execution role, and optional widget settings.

Members
dashboardArn
Required: Yes
Type: string

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

description
Type: string

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

name
Required: Yes
Type: string

The name of the scheduled report.

scheduleConfig
Required: Yes
Type: ScheduleConfig structure

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

scheduledReportExecutionRoleArn
Required: Yes
Type: 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.

widgetDateRangeOverride
Type: DateTimeRange structure

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

widgetIds
Type: Array of strings

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

ScheduledReportSummary

Description

Contains summary information for a scheduled report.

Members
arn
Required: Yes
Type: string

The ARN of the scheduled report.

dashboardArn
Required: Yes
Type: string

The ARN of the dashboard associated with the scheduled report.

healthStatus
Required: Yes
Type: HealthStatus structure

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

name
Required: Yes
Type: string

The name of the scheduled report.

scheduleExpression
Required: Yes
Type: string

The schedule expression that defines when the report runs.

scheduleExpressionTimeZone
Type: string

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

state
Required: Yes
Type: string

The state of the schedule: ENABLED or DISABLED.

widgetIds
Type: Array of strings

The list of widget identifiers included in the scheduled report.

ServiceQuotaExceededException

Description

The request would exceed a service quota. Review the service quotas for Amazon Web Services Billing and Cost Management Dashboards and retry your request.

Members
message
Required: Yes
Type: string

TableDisplayConfigStruct

Description

Configuration structure for customizing the tabular display of widget data.

Members

TagValues

Description

Specifies tag-based filtering options for cost and usage queries.

Members
key
Type: string

The key of the tag to filter on.

matchOptions
Type: Array of strings

The match options for tag values, such as EQUALS, CONTAINS, STARTS_WITH, or ENDS_WITH.

values
Type: Array of strings

The values to match for the specified tag key.

ThrottlingException

Description

The request was denied due to request throttling. Reduce the frequency of requests and use exponential backoff.

Members
message
Required: Yes
Type: string

ValidationException

Description

The input parameters do not satisfy the requirements. Check the error message for specific validation details.

Members
message
Required: Yes
Type: string

Widget

Description

A configurable visualization component within a dashboard that displays specific cost and usage metrics. Each widget can show data as charts or tables and includes settings for data querying, filtering, and visual presentation.

Members
configs
Required: Yes
Type: Array of WidgetConfig structures

An array of configurations that define the data queries and display settings for the widget.

description
Type: string

A description of the widget's purpose or the data it displays.

height
Type: int

The height of the widget in row spans. The dashboard layout consists of a grid system.

horizontalOffset
Type: int

Specifies the starting column position of the widget in the dashboard's grid layout. Used to control widget placement.

id
Type: string

The unique identifier for the widget.

title
Required: Yes
Type: string

The title of the widget.

width
Type: int

The width of the widget in column spans. The dashboard layout consists of a grid system.

WidgetConfig

Description

Defines the complete configuration for a widget, including data retrieval settings and visualization preferences.

Members
displayConfig
Required: Yes
Type: DisplayConfig structure

The configuration that determines how the retrieved data should be visualized in the widget.

queryParameters
Required: Yes
Type: QueryParameters structure

The parameters that define what data the widget should retrieve and how it should be filtered or grouped.