import * as pulumi from "@pulumi/pulumi" ; import * as cloudwatch from "../cloudwatch" ; export namespace metrics { type BillingMetricName = "EstimatedCharges" ; export interface BillingMetricChange extends cloudwatch . MetricChange { /**
         * Optional Currency dimension
         */ currency : "USD" ; /**
         * Optional linked Amazon account id
         */ linkedAccount ? : string ; /**
         * Optional Service this metric should be filtered down to.
         */ serviceName ? : "AmazonCloudWatch" | "AmazonEC2" | "AmazonKinesis" | "AmazonRoute53" | "AmazonS3" | "AmazonSNS" | "AWSCloudTrail" | "AWSCodePipeline" | "AWSConfig" | "AWSDataTransfer" | "awskms" | "AWSLambda" | "AWSMarketplace" | "AWSQueueService" | "AWSSecretsManager" | "awswaf" | "AWSXRay" | "CodeBuild" ; } /**
     * Creates an AWS/Billing metric with the requested [metricName]. See
     * https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html
     * for more information.
     */ function metric ( metricName , change = { currency : "USD" , } ) { const dimensions = { } ; if ( change . currency !== undefined ) { dimensions . Currency = change . currency ; } if ( change . linkedAccount !== undefined ) { dimensions . LinkedAccount = change . linkedAccount ; } if ( change . serviceName !== undefined ) { dimensions . ServiceName = change . serviceName ; } return new cloudwatch . Metric ( { namespace : "AWS/Billing" , name : metricName , ... change , } ) . withDimensions ( dimensions ) ; } /**
     * EstimatedCharges
     *
     * Units: currency
     * Valid CloudWatch statistics: Average, Maximum (recommended), Minimum
     */ export function estimatedCharges ( change ? ) { return metric ( "EstimatedCharges" , { statistic : "Maximum" , currency : "USD" , ... change } ) ; } }