import { HttpHandlerOptions as __HttpHandlerOptions } from "@aws-sdk/types" ; import { DeleteReportDefinitionCommand , DeleteReportDefinitionCommandInput , DeleteReportDefinitionCommandOutput , } from "./commands/DeleteReportDefinitionCommand" ; import { DescribeReportDefinitionsCommand , DescribeReportDefinitionsCommandInput , DescribeReportDefinitionsCommandOutput , } from "./commands/DescribeReportDefinitionsCommand" ; import { ModifyReportDefinitionCommand , ModifyReportDefinitionCommandInput , ModifyReportDefinitionCommandOutput , } from "./commands/ModifyReportDefinitionCommand" ; import { PutReportDefinitionCommand , PutReportDefinitionCommandInput , PutReportDefinitionCommandOutput , } from "./commands/PutReportDefinitionCommand" ; import { CostAndUsageReportServiceClient } from "./CostAndUsageReportServiceClient" ; /**
 * <p>The AWS Cost and Usage Report API enables you to programmatically create, query, and delete
 *         AWS Cost and Usage report definitions.</p>
 *          <p>AWS Cost and Usage reports track the monthly AWS costs and usage
 *    associated with your AWS account.
 *
 *         The report contains line items for each unique combination of AWS product,
 *         usage type, and operation that your AWS account uses.
 *
 *         You can configure the AWS Cost and Usage report to show only the data that you want, using the
 *         AWS Cost and Usage API.</p>
 *
 *          <p>Service Endpoint</p>
 *          <p>The AWS Cost and Usage Report API provides the following endpoint:</p>
 *          <ul>
 *             <li>
 *                <p>cur.us-east-1.amazonaws.com</p>
 *             </li>
 *          </ul>
 */ export class CostAndUsageReportService extends CostAndUsageReportServiceClient { /**
     * <p>Deletes the specified report.</p>
     */ public deleteReportDefinition ( args , options ? ) ; public deleteReportDefinition ( args , cb ) ; public deleteReportDefinition ( args , options , cb ) ; public deleteReportDefinition ( args , optionsOrCb ? , cb ? ) { const command = new DeleteReportDefinitionCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Lists the AWS Cost and Usage reports available to this account.</p>
     */ public describeReportDefinitions ( args , options ? ) ; public describeReportDefinitions ( args , cb ) ; public describeReportDefinitions ( args , options , cb ) ; public describeReportDefinitions ( args , optionsOrCb ? , cb ? ) { const command = new DescribeReportDefinitionsCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Allows you to programatically update your report preferences.</p>
     */ public modifyReportDefinition ( args , options ? ) ; public modifyReportDefinition ( args , cb ) ; public modifyReportDefinition ( args , options , cb ) ; public modifyReportDefinition ( args , optionsOrCb ? , cb ? ) { const command = new ModifyReportDefinitionCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } /**
     * <p>Creates a new report using the description that you provide.</p>
     */ public putReportDefinition ( args , options ? ) ; public putReportDefinition ( args , cb ) ; public putReportDefinition ( args , options , cb ) ; public putReportDefinition ( args , optionsOrCb ? , cb ? ) { const command = new PutReportDefinitionCommand ( args ) ; if ( typeof optionsOrCb === "function" ) { this . send ( command , optionsOrCb ) ; } else if ( typeof cb === "function" ) { if ( typeof optionsOrCb !== "object" ) throw new Error ( `Expect http options but get ${ typeof optionsOrCb }` ) ; this . send ( command , optionsOrCb || { } , cb ) ; } else { return this . send ( command , optionsOrCb ) ; } } }