<?php
// This file was auto-generated from sdk-root/src/data/bcm-dashboards/2025-08-18/api-2.json
return [ 'version' => '2.0', 'metadata' => [ 'apiVersion' => '2025-08-18', 'auth' => [ 'aws.auth#sigv4', ], 'endpointPrefix' => 'bcm-dashboards', 'jsonVersion' => '1.0', 'protocol' => 'json', 'protocols' => [ 'json', ], 'serviceFullName' => 'AWS Billing and Cost Management Dashboards', 'serviceId' => 'BCM Dashboards', 'signatureVersion' => 'v4', 'signingName' => 'bcm-dashboards', 'targetPrefix' => 'AWSBCMDashboardsService', 'uid' => 'bcm-dashboards-2025-08-18', ], 'operations' => [ 'CreateDashboard' => [ 'name' => 'CreateDashboard', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'CreateDashboardRequest', ], 'output' => [ 'shape' => 'CreateDashboardResponse', ], 'errors' => [ [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ServiceQuotaExceededException', ], ], ], 'DeleteDashboard' => [ 'name' => 'DeleteDashboard', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'DeleteDashboardRequest', ], 'output' => [ 'shape' => 'DeleteDashboardResponse', ], 'errors' => [ [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ValidationException', ], ], ], 'GetDashboard' => [ 'name' => 'GetDashboard', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetDashboardRequest', ], 'output' => [ 'shape' => 'GetDashboardResponse', ], 'errors' => [ [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'GetResourcePolicy' => [ 'name' => 'GetResourcePolicy', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'GetResourcePolicyRequest', ], 'output' => [ 'shape' => 'GetResourcePolicyResponse', ], 'errors' => [ [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'ListDashboards' => [ 'name' => 'ListDashboards', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListDashboardsRequest', ], 'output' => [ 'shape' => 'ListDashboardsResponse', ], 'errors' => [ [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ValidationException', ], ], ], 'ListTagsForResource' => [ 'name' => 'ListTagsForResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'ListTagsForResourceRequest', ], 'output' => [ 'shape' => 'ListTagsForResourceResponse', ], 'errors' => [ [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'TagResource' => [ 'name' => 'TagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'TagResourceRequest', ], 'output' => [ 'shape' => 'TagResourceResponse', ], 'errors' => [ [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'UntagResource' => [ 'name' => 'UntagResource', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UntagResourceRequest', ], 'output' => [ 'shape' => 'UntagResourceResponse', ], 'errors' => [ [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], 'UpdateDashboard' => [ 'name' => 'UpdateDashboard', 'http' => [ 'method' => 'POST', 'requestUri' => '/', ], 'input' => [ 'shape' => 'UpdateDashboardRequest', ], 'output' => [ 'shape' => 'UpdateDashboardResponse', ], 'errors' => [ [ 'shape' => 'ThrottlingException', ], [ 'shape' => 'AccessDeniedException', ], [ 'shape' => 'InternalServerException', ], [ 'shape' => 'ValidationException', ], [ 'shape' => 'ResourceNotFoundException', ], ], ], ], 'shapes' => [ 'AccessDeniedException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'GenericString', ], ], 'exception' => true, ], 'CostAndUsageQuery' => [ 'type' => 'structure', 'required' => [ 'metrics', 'timeRange', 'granularity', ], 'members' => [ 'metrics' => [ 'shape' => 'MetricNames', ], 'timeRange' => [ 'shape' => 'DateTimeRange', ], 'granularity' => [ 'shape' => 'Granularity', ], 'groupBy' => [ 'shape' => 'GroupDefinitions', ], 'filter' => [ 'shape' => 'Expression', ], ], ], 'CostCategoryValues' => [ 'type' => 'structure', 'members' => [ 'key' => [ 'shape' => 'String', ], 'values' => [ 'shape' => 'StringList', ], 'matchOptions' => [ 'shape' => 'MatchOptions', ], ], ], 'CreateDashboardRequest' => [ 'type' => 'structure', 'required' => [ 'name', 'widgets', ], 'members' => [ 'name' => [ 'shape' => 'DashboardName', ], 'description' => [ 'shape' => 'Description', ], 'widgets' => [ 'shape' => 'WidgetList', ], 'resourceTags' => [ 'shape' => 'ResourceTagList', ], ], ], 'CreateDashboardResponse' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'DashboardArn', ], ], ], 'DashboardArn' => [ 'type' => 'string', 'max' => 2048, 'min' => 20, 'pattern' => 'arn:aws[-a-z0-9]*:bcm-dashboards::[0-9]{12}:dashboard/(\\*|[-a-z0-9]+)', ], 'DashboardName' => [ 'type' => 'string', 'max' => 50, 'min' => 2, 'pattern' => '(?!.* {2})[a-zA-Z][a-zA-Z0-9 _-]{0,48}[a-zA-Z0-9_-]', ], 'DashboardReference' => [ 'type' => 'structure', 'required' => [ 'arn', 'name', 'type', 'createdAt', 'updatedAt', ], 'members' => [ 'arn' => [ 'shape' => 'DashboardArn', ], 'name' => [ 'shape' => 'DashboardName', ], 'description' => [ 'shape' => 'Description', ], 'type' => [ 'shape' => 'DashboardType', ], 'createdAt' => [ 'shape' => 'GenericTimeStamp', ], 'updatedAt' => [ 'shape' => 'GenericTimeStamp', ], ], ], 'DashboardReferenceList' => [ 'type' => 'list', 'member' => [ 'shape' => 'DashboardReference', ], ], 'DashboardType' => [ 'type' => 'string', 'enum' => [ 'CUSTOM', ], ], 'DateTimeRange' => [ 'type' => 'structure', 'required' => [ 'startTime', 'endTime', ], 'members' => [ 'startTime' => [ 'shape' => 'DateTimeValue', ], 'endTime' => [ 'shape' => 'DateTimeValue', ], ], ], 'DateTimeType' => [ 'type' => 'string', 'enum' => [ 'ABSOLUTE', 'RELATIVE', ], ], 'DateTimeValue' => [ 'type' => 'structure', 'required' => [ 'type', 'value', ], 'members' => [ 'type' => [ 'shape' => 'DateTimeType', ], 'value' => [ 'shape' => 'GenericString', ], ], ], 'DeleteDashboardRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'DashboardArn', ], ], ], 'DeleteDashboardResponse' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'DashboardArn', ], ], ], 'Description' => [ 'type' => 'string', 'max' => 200, 'min' => 1, 'pattern' => '(?!.* {2})[ a-zA-Z0-9.,!?;:@#$%&\\-_/\\\\]*', ], 'Dimension' => [ 'type' => 'string', 'enum' => [ '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', ], ], 'DimensionValues' => [ 'type' => 'structure', 'required' => [ 'key', 'values', ], 'members' => [ 'key' => [ 'shape' => 'Dimension', ], 'values' => [ 'shape' => 'StringList', ], 'matchOptions' => [ 'shape' => 'MatchOptions', ], ], ], 'DisplayConfig' => [ 'type' => 'structure', 'members' => [ 'graph' => [ 'shape' => 'GraphDisplayConfigMap', ], 'table' => [ 'shape' => 'TableDisplayConfigStruct', ], ], 'union' => true, ], 'Expression' => [ 'type' => 'structure', 'members' => [ 'or' => [ 'shape' => 'Expressions', ], 'and' => [ 'shape' => 'Expressions', ], 'not' => [ 'shape' => 'Expression', ], 'dimensions' => [ 'shape' => 'DimensionValues', ], 'tags' => [ 'shape' => 'TagValues', ], 'costCategories' => [ 'shape' => 'CostCategoryValues', ], ], ], 'Expressions' => [ 'type' => 'list', 'member' => [ 'shape' => 'Expression', ], ], 'GenericString' => [ 'type' => 'string', 'max' => 1024, 'min' => 0, 'pattern' => '[\\S\\s]*', ], 'GenericTimeStamp' => [ 'type' => 'timestamp', ], 'GetDashboardRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'DashboardArn', ], ], ], 'GetDashboardResponse' => [ 'type' => 'structure', 'required' => [ 'arn', 'name', 'type', 'widgets', 'createdAt', 'updatedAt', ], 'members' => [ 'arn' => [ 'shape' => 'DashboardArn', ], 'name' => [ 'shape' => 'DashboardName', ], 'description' => [ 'shape' => 'Description', ], 'type' => [ 'shape' => 'DashboardType', ], 'widgets' => [ 'shape' => 'WidgetList', ], 'createdAt' => [ 'shape' => 'GenericTimeStamp', ], 'updatedAt' => [ 'shape' => 'GenericTimeStamp', ], ], ], 'GetResourcePolicyRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', ], 'members' => [ 'resourceArn' => [ 'shape' => 'DashboardArn', ], ], ], 'GetResourcePolicyResponse' => [ 'type' => 'structure', 'required' => [ 'resourceArn', 'policyDocument', ], 'members' => [ 'resourceArn' => [ 'shape' => 'DashboardArn', ], 'policyDocument' => [ 'shape' => 'GenericString', ], ], ], 'Granularity' => [ 'type' => 'string', 'enum' => [ 'HOURLY', 'DAILY', 'MONTHLY', ], ], 'GraphDisplayConfig' => [ 'type' => 'structure', 'required' => [ 'visualType', ], 'members' => [ 'visualType' => [ 'shape' => 'VisualType', ], ], ], 'GraphDisplayConfigMap' => [ 'type' => 'map', 'key' => [ 'shape' => 'GenericString', ], 'value' => [ 'shape' => 'GraphDisplayConfig', ], ], 'GroupDefinition' => [ 'type' => 'structure', 'required' => [ 'key', ], 'members' => [ 'key' => [ 'shape' => 'GroupDefinitionKeyString', ], 'type' => [ 'shape' => 'GroupDefinitionType', ], ], ], 'GroupDefinitionKeyString' => [ 'type' => 'string', 'max' => 1024, 'min' => 1, 'pattern' => '[\\S\\s]*', ], 'GroupDefinitionType' => [ 'type' => 'string', 'enum' => [ 'DIMENSION', 'TAG', 'COST_CATEGORY', ], ], 'GroupDefinitions' => [ 'type' => 'list', 'member' => [ 'shape' => 'GroupDefinition', ], ], 'Integer' => [ 'type' => 'integer', 'box' => true, ], 'InternalServerException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'GenericString', ], ], 'exception' => true, 'fault' => true, ], 'ListDashboardsRequest' => [ 'type' => 'structure', 'members' => [ 'maxResults' => [ 'shape' => 'MaxResults', ], 'nextToken' => [ 'shape' => 'NextPageToken', ], ], ], 'ListDashboardsResponse' => [ 'type' => 'structure', 'required' => [ 'dashboards', ], 'members' => [ 'dashboards' => [ 'shape' => 'DashboardReferenceList', ], 'nextToken' => [ 'shape' => 'NextPageToken', ], ], ], 'ListTagsForResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', ], 'members' => [ 'resourceArn' => [ 'shape' => 'DashboardArn', ], ], ], 'ListTagsForResourceResponse' => [ 'type' => 'structure', 'members' => [ 'resourceTags' => [ 'shape' => 'ResourceTagList', ], ], ], 'MatchOption' => [ 'type' => 'string', 'enum' => [ 'EQUALS', 'ABSENT', 'STARTS_WITH', 'ENDS_WITH', 'CONTAINS', 'GREATER_THAN_OR_EQUAL', 'CASE_SENSITIVE', 'CASE_INSENSITIVE', ], ], 'MatchOptions' => [ 'type' => 'list', 'member' => [ 'shape' => 'MatchOption', ], ], 'MaxResults' => [ 'type' => 'integer', 'box' => true, 'max' => 100, 'min' => 1, ], 'MetricName' => [ 'type' => 'string', 'enum' => [ 'AmortizedCost', 'BlendedCost', 'NetAmortizedCost', 'NetUnblendedCost', 'NormalizedUsageAmount', 'UnblendedCost', 'UsageQuantity', 'SpendCoveredBySavingsPlans', 'Hour', 'Unit', 'Cost', ], ], 'MetricNames' => [ 'type' => 'list', 'member' => [ 'shape' => 'MetricName', ], ], 'NextPageToken' => [ 'type' => 'string', 'max' => 8192, 'min' => 1, 'pattern' => '[\\S\\s]*', ], 'QueryParameters' => [ 'type' => 'structure', 'members' => [ 'costAndUsage' => [ 'shape' => 'CostAndUsageQuery', ], 'savingsPlansCoverage' => [ 'shape' => 'SavingsPlansCoverageQuery', ], 'savingsPlansUtilization' => [ 'shape' => 'SavingsPlansUtilizationQuery', ], 'reservationCoverage' => [ 'shape' => 'ReservationCoverageQuery', ], 'reservationUtilization' => [ 'shape' => 'ReservationUtilizationQuery', ], ], 'union' => true, ], 'ReservationCoverageQuery' => [ 'type' => 'structure', 'required' => [ 'timeRange', ], 'members' => [ 'timeRange' => [ 'shape' => 'DateTimeRange', ], 'groupBy' => [ 'shape' => 'GroupDefinitions', ], 'granularity' => [ 'shape' => 'Granularity', ], 'filter' => [ 'shape' => 'Expression', ], 'metrics' => [ 'shape' => 'MetricNames', ], ], ], 'ReservationUtilizationQuery' => [ 'type' => 'structure', 'required' => [ 'timeRange', ], 'members' => [ 'timeRange' => [ 'shape' => 'DateTimeRange', ], 'groupBy' => [ 'shape' => 'GroupDefinitions', ], 'granularity' => [ 'shape' => 'Granularity', ], 'filter' => [ 'shape' => 'Expression', ], ], ], 'ResourceNotFoundException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'GenericString', ], ], 'exception' => true, ], 'ResourceTag' => [ 'type' => 'structure', 'required' => [ 'key', 'value', ], 'members' => [ 'key' => [ 'shape' => 'ResourceTagKey', ], 'value' => [ 'shape' => 'ResourceTagValue', ], ], ], 'ResourceTagKey' => [ 'type' => 'string', 'max' => 128, 'min' => 1, 'pattern' => '[\\S\\s]*', ], 'ResourceTagKeyList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceTagKey', ], 'max' => 200, 'min' => 0, ], 'ResourceTagList' => [ 'type' => 'list', 'member' => [ 'shape' => 'ResourceTag', ], 'max' => 200, 'min' => 0, ], 'ResourceTagValue' => [ 'type' => 'string', 'max' => 256, 'min' => 0, 'pattern' => '[\\S\\s]*', ], 'SavingsPlansCoverageQuery' => [ 'type' => 'structure', 'required' => [ 'timeRange', ], 'members' => [ 'timeRange' => [ 'shape' => 'DateTimeRange', ], 'metrics' => [ 'shape' => 'MetricNames', ], 'granularity' => [ 'shape' => 'Granularity', ], 'groupBy' => [ 'shape' => 'GroupDefinitions', ], 'filter' => [ 'shape' => 'Expression', ], ], ], 'SavingsPlansUtilizationQuery' => [ 'type' => 'structure', 'required' => [ 'timeRange', ], 'members' => [ 'timeRange' => [ 'shape' => 'DateTimeRange', ], 'granularity' => [ 'shape' => 'Granularity', ], 'filter' => [ 'shape' => 'Expression', ], ], ], 'ServiceQuotaExceededException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'GenericString', ], ], 'exception' => true, ], 'String' => [ 'type' => 'string', ], 'StringList' => [ 'type' => 'list', 'member' => [ 'shape' => 'String', ], ], 'TableDisplayConfigStruct' => [ 'type' => 'structure', 'members' => [], ], 'TagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', 'resourceTags', ], 'members' => [ 'resourceArn' => [ 'shape' => 'DashboardArn', ], 'resourceTags' => [ 'shape' => 'ResourceTagList', ], ], ], 'TagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'TagValues' => [ 'type' => 'structure', 'members' => [ 'key' => [ 'shape' => 'String', ], 'values' => [ 'shape' => 'StringList', ], 'matchOptions' => [ 'shape' => 'MatchOptions', ], ], ], 'ThrottlingException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'GenericString', ], ], 'exception' => true, ], 'UntagResourceRequest' => [ 'type' => 'structure', 'required' => [ 'resourceArn', 'resourceTagKeys', ], 'members' => [ 'resourceArn' => [ 'shape' => 'DashboardArn', ], 'resourceTagKeys' => [ 'shape' => 'ResourceTagKeyList', ], ], ], 'UntagResourceResponse' => [ 'type' => 'structure', 'members' => [], ], 'UpdateDashboardRequest' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'DashboardArn', ], 'name' => [ 'shape' => 'DashboardName', ], 'description' => [ 'shape' => 'Description', ], 'widgets' => [ 'shape' => 'WidgetList', ], ], ], 'UpdateDashboardResponse' => [ 'type' => 'structure', 'required' => [ 'arn', ], 'members' => [ 'arn' => [ 'shape' => 'DashboardArn', ], ], ], 'ValidationException' => [ 'type' => 'structure', 'required' => [ 'message', ], 'members' => [ 'message' => [ 'shape' => 'GenericString', ], ], 'exception' => true, ], 'VisualType' => [ 'type' => 'string', 'enum' => [ 'LINE', 'BAR', 'STACK', ], ], 'Widget' => [ 'type' => 'structure', 'required' => [ 'title', 'configs', ], 'members' => [ 'title' => [ 'shape' => 'WidgetTitle', ], 'description' => [ 'shape' => 'Description', ], 'width' => [ 'shape' => 'WidgetWidth', ], 'height' => [ 'shape' => 'WidgetHeight', ], 'horizontalOffset' => [ 'shape' => 'Integer', ], 'configs' => [ 'shape' => 'WidgetConfigList', ], ], ], 'WidgetConfig' => [ 'type' => 'structure', 'required' => [ 'queryParameters', 'displayConfig', ], 'members' => [ 'queryParameters' => [ 'shape' => 'QueryParameters', ], 'displayConfig' => [ 'shape' => 'DisplayConfig', ], ], ], 'WidgetConfigList' => [ 'type' => 'list', 'member' => [ 'shape' => 'WidgetConfig', ], 'max' => 2, 'min' => 1, ], 'WidgetHeight' => [ 'type' => 'integer', 'box' => true, 'max' => 10, 'min' => 4, ], 'WidgetList' => [ 'type' => 'list', 'member' => [ 'shape' => 'Widget', ], 'max' => 20, 'min' => 0, ], 'WidgetTitle' => [ 'type' => 'string', 'max' => 50, 'min' => 2, 'pattern' => '(?!.* {2})[a-zA-Z0-9_-][ a-zA-Z0-9_-]*[a-zA-Z0-9_-]', ], 'WidgetWidth' => [ 'type' => 'integer', 'box' => true, 'max' => 6, 'min' => 2, ], ],];
