From 4f2da3e70f5e45e0a4d2206fbb93f319a9d5c602 Mon Sep 17 00:00:00 2001 From: Rob Long Date: Wed, 26 May 2021 19:55:58 +0100 Subject: [PATCH] Add Cost Management SDK Signed-off-by: Rob Long --- .../arm-costmanagement/LICENSE.txt | 21 + .../arm-costmanagement/README.md | 98 + .../arm-costmanagement/package.json | 58 + .../arm-costmanagement/rollup.config.js | 37 + .../src/costManagementClient.ts | 57 + .../src/costManagementClientContext.ts | 61 + .../src/models/alertsMappers.ts | 52 + .../src/models/dimensionsMappers.ts | 51 + .../src/models/exportsMappers.ts | 52 + .../src/models/forecastMappers.ts | 51 + ...generateReservationDetailsReportMappers.ts | 16 + .../arm-costmanagement/src/models/index.ts | 2213 +++++++++++++++++ .../arm-costmanagement/src/models/mappers.ts | 2165 ++++++++++++++++ .../src/models/operationsMappers.ts | 15 + .../src/models/parameters.ts | 219 ++ .../src/models/queryMappers.ts | 51 + .../src/models/settingsMappers.ts | 51 + .../src/models/viewsMappers.ts | 51 + .../src/operations/alerts.ts | 406 +++ .../src/operations/dimensions.ts | 202 ++ .../src/operations/exports.ts | 642 +++++ .../src/operations/forecast.ts | 218 ++ .../generateReservationDetailsReport.ts | 164 ++ .../src/operations/index.ts | 18 + .../src/operations/operations.ts | 125 + .../src/operations/query.ts | 216 ++ .../src/operations/settings.ts | 289 +++ .../src/operations/views.ts | 775 ++++++ .../arm-costmanagement/tsconfig.json | 19 + 29 files changed, 8393 insertions(+) create mode 100644 sdk/cost-management/arm-costmanagement/LICENSE.txt create mode 100644 sdk/cost-management/arm-costmanagement/README.md create mode 100644 sdk/cost-management/arm-costmanagement/package.json create mode 100644 sdk/cost-management/arm-costmanagement/rollup.config.js create mode 100644 sdk/cost-management/arm-costmanagement/src/costManagementClient.ts create mode 100644 sdk/cost-management/arm-costmanagement/src/costManagementClientContext.ts create mode 100644 sdk/cost-management/arm-costmanagement/src/models/alertsMappers.ts create mode 100644 sdk/cost-management/arm-costmanagement/src/models/dimensionsMappers.ts create mode 100644 sdk/cost-management/arm-costmanagement/src/models/exportsMappers.ts create mode 100644 sdk/cost-management/arm-costmanagement/src/models/forecastMappers.ts create mode 100644 sdk/cost-management/arm-costmanagement/src/models/generateReservationDetailsReportMappers.ts create mode 100644 sdk/cost-management/arm-costmanagement/src/models/index.ts create mode 100644 sdk/cost-management/arm-costmanagement/src/models/mappers.ts create mode 100644 sdk/cost-management/arm-costmanagement/src/models/operationsMappers.ts create mode 100644 sdk/cost-management/arm-costmanagement/src/models/parameters.ts create mode 100644 sdk/cost-management/arm-costmanagement/src/models/queryMappers.ts create mode 100644 sdk/cost-management/arm-costmanagement/src/models/settingsMappers.ts create mode 100644 sdk/cost-management/arm-costmanagement/src/models/viewsMappers.ts create mode 100644 sdk/cost-management/arm-costmanagement/src/operations/alerts.ts create mode 100644 sdk/cost-management/arm-costmanagement/src/operations/dimensions.ts create mode 100644 sdk/cost-management/arm-costmanagement/src/operations/exports.ts create mode 100644 sdk/cost-management/arm-costmanagement/src/operations/forecast.ts create mode 100644 sdk/cost-management/arm-costmanagement/src/operations/generateReservationDetailsReport.ts create mode 100644 sdk/cost-management/arm-costmanagement/src/operations/index.ts create mode 100644 sdk/cost-management/arm-costmanagement/src/operations/operations.ts create mode 100644 sdk/cost-management/arm-costmanagement/src/operations/query.ts create mode 100644 sdk/cost-management/arm-costmanagement/src/operations/settings.ts create mode 100644 sdk/cost-management/arm-costmanagement/src/operations/views.ts create mode 100644 sdk/cost-management/arm-costmanagement/tsconfig.json diff --git a/sdk/cost-management/arm-costmanagement/LICENSE.txt b/sdk/cost-management/arm-costmanagement/LICENSE.txt new file mode 100644 index 000000000000..2d3163745319 --- /dev/null +++ b/sdk/cost-management/arm-costmanagement/LICENSE.txt @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2021 Microsoft + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/sdk/cost-management/arm-costmanagement/README.md b/sdk/cost-management/arm-costmanagement/README.md new file mode 100644 index 000000000000..0898721f04e2 --- /dev/null +++ b/sdk/cost-management/arm-costmanagement/README.md @@ -0,0 +1,98 @@ +## Azure CostManagementClient SDK for JavaScript + +This package contains an isomorphic SDK for CostManagementClient. + +### Currently supported environments + +- Node.js version 6.x.x or higher +- Browser JavaScript + +### How to Install + +```bash +npm install @azure/arm-costmanagement +``` + +### How to use + +#### nodejs - client creation and list settings as an example written in TypeScript. + +##### Install @azure/ms-rest-nodeauth + +- Please install minimum version of `"@azure/ms-rest-nodeauth": "^3.0.0"`. +```bash +npm install @azure/ms-rest-nodeauth@"^3.0.0" +``` + +##### Sample code + +While the below sample uses the interactive login, other authentication options can be found in the [README.md file of @azure/ms-rest-nodeauth](https://www.npmjs.com/package/@azure/ms-rest-nodeauth) package +```typescript +const msRestNodeAuth = require("@azure/ms-rest-nodeauth"); +const { CostManagementClient } = require("@azure/arm-costmanagement"); +const subscriptionId = process.env["AZURE_SUBSCRIPTION_ID"]; + +msRestNodeAuth.interactiveLogin().then((creds) => { + const client = new CostManagementClient(creds, subscriptionId); + client.settings.list().then((result) => { + console.log("The result is:"); + console.log(result); + }); +}).catch((err) => { + console.error(err); +}); +``` + +#### browser - Authentication, client creation and list settings as an example written in JavaScript. + +##### Install @azure/ms-rest-browserauth + +```bash +npm install @azure/ms-rest-browserauth +``` + +##### Sample code + +See https://github.com/Azure/ms-rest-browserauth to learn how to authenticate to Azure in the browser. + +- index.html +```html + + + + @azure/arm-costmanagement sample + + + + + + + + +``` + +## Related projects + +- [Microsoft Azure SDK for Javascript](https://github.com/Azure/azure-sdk-for-js) + +![Impressions](https://azure-sdk-impressions.azurewebsites.net/api/impressions/azure-sdk-for-js/sdk/README.png) diff --git a/sdk/cost-management/arm-costmanagement/package.json b/sdk/cost-management/arm-costmanagement/package.json new file mode 100644 index 000000000000..df76a312073f --- /dev/null +++ b/sdk/cost-management/arm-costmanagement/package.json @@ -0,0 +1,58 @@ +{ + "name": "@azure/arm-costmanagement", + "author": "Microsoft Corporation", + "description": "CostManagementClient Library with typescript type definitions for node.js and browser.", + "version": "1.0.0", + "dependencies": { + "@azure/ms-rest-azure-js": "^2.0.1", + "@azure/ms-rest-js": "^2.0.4", + "tslib": "^1.10.0" + }, + "keywords": [ + "node", + "azure", + "typescript", + "browser", + "isomorphic" + ], + "license": "MIT", + "main": "./dist/arm-costmanagement.js", + "module": "./esm/costManagementClient.js", + "types": "./esm/costManagementClient.d.ts", + "devDependencies": { + "typescript": "^3.5.3", + "rollup": "^1.18.0", + "rollup-plugin-node-resolve": "^5.2.0", + "rollup-plugin-sourcemaps": "^0.4.2", + "uglify-js": "^3.6.0" + }, + "homepage": "https://github.com/Azure/azure-sdk-for-js", + "repository": { + "type": "git", + "url": "https://github.com/Azure/azure-sdk-for-js.git" + }, + "bugs": { + "url": "https://github.com/Azure/azure-sdk-for-js/issues" + }, + "files": [ + "dist/**/*.js", + "dist/**/*.js.map", + "dist/**/*.d.ts", + "dist/**/*.d.ts.map", + "esm/**/*.js", + "esm/**/*.js.map", + "esm/**/*.d.ts", + "esm/**/*.d.ts.map", + "src/**/*.ts", + "README.md", + "rollup.config.js", + "tsconfig.json" + ], + "scripts": { + "build": "tsc && rollup -c rollup.config.js && npm run minify", + "minify": "uglifyjs -c -m --comments --source-map \"content='./dist/arm-costmanagement.js.map'\" -o ./dist/arm-costmanagement.min.js ./dist/arm-costmanagement.js", + "prepack": "npm install && npm run build" + }, + "sideEffects": false, + "autoPublish": true +} diff --git a/sdk/cost-management/arm-costmanagement/rollup.config.js b/sdk/cost-management/arm-costmanagement/rollup.config.js new file mode 100644 index 000000000000..28ed63f082b0 --- /dev/null +++ b/sdk/cost-management/arm-costmanagement/rollup.config.js @@ -0,0 +1,37 @@ +import rollup from "rollup"; +import nodeResolve from "rollup-plugin-node-resolve"; +import sourcemaps from "rollup-plugin-sourcemaps"; + +/** + * @type {rollup.RollupFileOptions} + */ +const config = { + input: "./esm/costManagementClient.js", + external: [ + "@azure/ms-rest-js", + "@azure/ms-rest-azure-js" + ], + output: { + file: "./dist/arm-costmanagement.js", + format: "umd", + name: "Azure.ArmCostmanagement", + sourcemap: true, + globals: { + "@azure/ms-rest-js": "msRest", + "@azure/ms-rest-azure-js": "msRestAzure" + }, + banner: `/* + * Copyright (c) Microsoft Corporation. + * Licensed under the MIT License. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is regenerated. + */` + }, + plugins: [ + nodeResolve({ mainFields: ['module', 'main'] }), + sourcemaps() + ] +}; + +export default config; diff --git a/sdk/cost-management/arm-costmanagement/src/costManagementClient.ts b/sdk/cost-management/arm-costmanagement/src/costManagementClient.ts new file mode 100644 index 000000000000..75f590193957 --- /dev/null +++ b/sdk/cost-management/arm-costmanagement/src/costManagementClient.ts @@ -0,0 +1,57 @@ +/* + * Copyright (c) Microsoft Corporation. + * Licensed under the MIT License. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is + * regenerated. + */ + +import * as msRest from "@azure/ms-rest-js"; +import * as Models from "./models"; +import * as Mappers from "./models/mappers"; +import * as operations from "./operations"; +import { CostManagementClientContext } from "./costManagementClientContext"; + + +class CostManagementClient extends CostManagementClientContext { + // Operation groups + settings: operations.Settings; + views: operations.Views; + alerts: operations.Alerts; + forecast: operations.Forecast; + dimensions: operations.Dimensions; + query: operations.Query; + generateReservationDetailsReport: operations.GenerateReservationDetailsReport; + operations: operations.Operations; + exports: operations.Exports; + + /** + * Initializes a new instance of the CostManagementClient class. + * @param credentials Credentials needed for the client to connect to Azure. + * @param subscriptionId Azure Subscription ID. + * @param [options] The parameter options + */ + constructor(credentials: msRest.ServiceClientCredentials, subscriptionId: string, options?: Models.CostManagementClientOptions) { + super(credentials, subscriptionId, options); + this.settings = new operations.Settings(this); + this.views = new operations.Views(this); + this.alerts = new operations.Alerts(this); + this.forecast = new operations.Forecast(this); + this.dimensions = new operations.Dimensions(this); + this.query = new operations.Query(this); + this.generateReservationDetailsReport = new operations.GenerateReservationDetailsReport(this); + this.operations = new operations.Operations(this); + this.exports = new operations.Exports(this); + } +} + +// Operation Specifications + +export { + CostManagementClient, + CostManagementClientContext, + Models as CostManagementModels, + Mappers as CostManagementMappers +}; +export * from "./operations"; diff --git a/sdk/cost-management/arm-costmanagement/src/costManagementClientContext.ts b/sdk/cost-management/arm-costmanagement/src/costManagementClientContext.ts new file mode 100644 index 000000000000..b39ce35f9aa7 --- /dev/null +++ b/sdk/cost-management/arm-costmanagement/src/costManagementClientContext.ts @@ -0,0 +1,61 @@ +/* + * Copyright (c) Microsoft Corporation. + * Licensed under the MIT License. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is + * regenerated. + */ + +import * as Models from "./models"; +import * as msRest from "@azure/ms-rest-js"; +import * as msRestAzure from "@azure/ms-rest-azure-js"; + +const packageName = "@azure/arm-costmanagement"; +const packageVersion = "1.0.0"; + +export class CostManagementClientContext extends msRestAzure.AzureServiceClient { + credentials: msRest.ServiceClientCredentials; + apiVersion?: string; + subscriptionId: string; + + /** + * Initializes a new instance of the CostManagementClient class. + * @param credentials Credentials needed for the client to connect to Azure. + * @param subscriptionId Azure Subscription ID. + * @param [options] The parameter options + */ + constructor(credentials: msRest.ServiceClientCredentials, subscriptionId: string, options?: Models.CostManagementClientOptions) { + if (credentials == undefined) { + throw new Error('\'credentials\' cannot be null.'); + } + if (subscriptionId == undefined) { + throw new Error('\'subscriptionId\' cannot be null.'); + } + + if (!options) { + options = {}; + } + if(!options.userAgent) { + const defaultUserAgent = msRestAzure.getDefaultUserAgentValue(); + options.userAgent = `${packageName}/${packageVersion} ${defaultUserAgent}`; + } + + super(credentials, options); + + this.apiVersion = '2019-11-01'; + this.acceptLanguage = 'en-US'; + this.longRunningOperationRetryTimeout = 30; + this.baseUri = options.baseUri || this.baseUri || "https://management.azure.com"; + this.requestContentType = "application/json; charset=utf-8"; + this.credentials = credentials; + this.subscriptionId = subscriptionId; + + if(options.acceptLanguage !== null && options.acceptLanguage !== undefined) { + this.acceptLanguage = options.acceptLanguage; + } + if(options.longRunningOperationRetryTimeout !== null && options.longRunningOperationRetryTimeout !== undefined) { + this.longRunningOperationRetryTimeout = options.longRunningOperationRetryTimeout; + } + } +} diff --git a/sdk/cost-management/arm-costmanagement/src/models/alertsMappers.ts b/sdk/cost-management/arm-costmanagement/src/models/alertsMappers.ts new file mode 100644 index 000000000000..cef5ff3f7d25 --- /dev/null +++ b/sdk/cost-management/arm-costmanagement/src/models/alertsMappers.ts @@ -0,0 +1,52 @@ +/* + * Copyright (c) Microsoft Corporation. + * Licensed under the MIT License. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is regenerated. + */ + +export { + Alert, + AlertPropertiesDefinition, + AlertPropertiesDetails, + AlertsResult, + BaseResource, + CacheItem, + CommonExportProperties, + Dimension, + DismissAlertPayload, + ErrorDetails, + ErrorResponse, + ExportDefinition, + ExportDeliveryDestination, + ExportDeliveryInfo, + ExportExecution, + ExportModel, + ExportRecurrencePeriod, + ExportSchedule, + KpiProperties, + PivotProperties, + ProxyResource, + ProxySettingResource, + QueryAggregation, + QueryColumn, + QueryComparisonExpression, + QueryDataset, + QueryDatasetConfiguration, + QueryFilter, + QueryGrouping, + QueryResult, + QueryTimePeriod, + ReportConfigAggregation, + ReportConfigComparisonExpression, + ReportConfigDataset, + ReportConfigDatasetConfiguration, + ReportConfigFilter, + ReportConfigGrouping, + ReportConfigSorting, + ReportConfigTimePeriod, + Resource, + Setting, + View +} from "../models/mappers"; diff --git a/sdk/cost-management/arm-costmanagement/src/models/dimensionsMappers.ts b/sdk/cost-management/arm-costmanagement/src/models/dimensionsMappers.ts new file mode 100644 index 000000000000..028f09b750b1 --- /dev/null +++ b/sdk/cost-management/arm-costmanagement/src/models/dimensionsMappers.ts @@ -0,0 +1,51 @@ +/* + * Copyright (c) Microsoft Corporation. + * Licensed under the MIT License. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is regenerated. + */ + +export { + Alert, + AlertPropertiesDefinition, + AlertPropertiesDetails, + BaseResource, + CacheItem, + CommonExportProperties, + Dimension, + DimensionsListResult, + ErrorDetails, + ErrorResponse, + ExportDefinition, + ExportDeliveryDestination, + ExportDeliveryInfo, + ExportExecution, + ExportModel, + ExportRecurrencePeriod, + ExportSchedule, + KpiProperties, + PivotProperties, + ProxyResource, + ProxySettingResource, + QueryAggregation, + QueryColumn, + QueryComparisonExpression, + QueryDataset, + QueryDatasetConfiguration, + QueryFilter, + QueryGrouping, + QueryResult, + QueryTimePeriod, + ReportConfigAggregation, + ReportConfigComparisonExpression, + ReportConfigDataset, + ReportConfigDatasetConfiguration, + ReportConfigFilter, + ReportConfigGrouping, + ReportConfigSorting, + ReportConfigTimePeriod, + Resource, + Setting, + View +} from "../models/mappers"; diff --git a/sdk/cost-management/arm-costmanagement/src/models/exportsMappers.ts b/sdk/cost-management/arm-costmanagement/src/models/exportsMappers.ts new file mode 100644 index 000000000000..98d22f3630bd --- /dev/null +++ b/sdk/cost-management/arm-costmanagement/src/models/exportsMappers.ts @@ -0,0 +1,52 @@ +/* + * Copyright (c) Microsoft Corporation. + * Licensed under the MIT License. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is regenerated. + */ + +export { + Alert, + AlertPropertiesDefinition, + AlertPropertiesDetails, + BaseResource, + CacheItem, + CommonExportProperties, + Dimension, + ErrorDetails, + ErrorResponse, + ExportDefinition, + ExportDeliveryDestination, + ExportDeliveryInfo, + ExportExecution, + ExportExecutionListResult, + ExportListResult, + ExportModel, + ExportRecurrencePeriod, + ExportSchedule, + KpiProperties, + PivotProperties, + ProxyResource, + ProxySettingResource, + QueryAggregation, + QueryColumn, + QueryComparisonExpression, + QueryDataset, + QueryDatasetConfiguration, + QueryFilter, + QueryGrouping, + QueryResult, + QueryTimePeriod, + ReportConfigAggregation, + ReportConfigComparisonExpression, + ReportConfigDataset, + ReportConfigDatasetConfiguration, + ReportConfigFilter, + ReportConfigGrouping, + ReportConfigSorting, + ReportConfigTimePeriod, + Resource, + Setting, + View +} from "../models/mappers"; diff --git a/sdk/cost-management/arm-costmanagement/src/models/forecastMappers.ts b/sdk/cost-management/arm-costmanagement/src/models/forecastMappers.ts new file mode 100644 index 000000000000..2f4d46acb39d --- /dev/null +++ b/sdk/cost-management/arm-costmanagement/src/models/forecastMappers.ts @@ -0,0 +1,51 @@ +/* + * Copyright (c) Microsoft Corporation. + * Licensed under the MIT License. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is regenerated. + */ + +export { + Alert, + AlertPropertiesDefinition, + AlertPropertiesDetails, + BaseResource, + CacheItem, + CommonExportProperties, + Dimension, + ErrorDetails, + ErrorResponse, + ExportDefinition, + ExportDeliveryDestination, + ExportDeliveryInfo, + ExportExecution, + ExportModel, + ExportRecurrencePeriod, + ExportSchedule, + ForecastDefinition, + KpiProperties, + PivotProperties, + ProxyResource, + ProxySettingResource, + QueryAggregation, + QueryColumn, + QueryComparisonExpression, + QueryDataset, + QueryDatasetConfiguration, + QueryFilter, + QueryGrouping, + QueryResult, + QueryTimePeriod, + ReportConfigAggregation, + ReportConfigComparisonExpression, + ReportConfigDataset, + ReportConfigDatasetConfiguration, + ReportConfigFilter, + ReportConfigGrouping, + ReportConfigSorting, + ReportConfigTimePeriod, + Resource, + Setting, + View +} from "../models/mappers"; diff --git a/sdk/cost-management/arm-costmanagement/src/models/generateReservationDetailsReportMappers.ts b/sdk/cost-management/arm-costmanagement/src/models/generateReservationDetailsReportMappers.ts new file mode 100644 index 000000000000..70b6da8f096a --- /dev/null +++ b/sdk/cost-management/arm-costmanagement/src/models/generateReservationDetailsReportMappers.ts @@ -0,0 +1,16 @@ +/* + * Copyright (c) Microsoft Corporation. + * Licensed under the MIT License. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is regenerated. + */ + +export { + ErrorDetails, + ErrorResponse, + GenerateReservationDetailsReportByBillingAccountIdHeaders, + GenerateReservationDetailsReportByBillingProfileIdHeaders, + OperationStatus, + Status +} from "../models/mappers"; diff --git a/sdk/cost-management/arm-costmanagement/src/models/index.ts b/sdk/cost-management/arm-costmanagement/src/models/index.ts new file mode 100644 index 000000000000..9cb9c0813203 --- /dev/null +++ b/sdk/cost-management/arm-costmanagement/src/models/index.ts @@ -0,0 +1,2213 @@ +/* + * Copyright (c) Microsoft Corporation. + * Licensed under the MIT License. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is regenerated. + */ + +import { BaseResource, CloudError, AzureServiceClientOptions } from "@azure/ms-rest-azure-js"; +import * as msRest from "@azure/ms-rest-js"; + +export { BaseResource, CloudError }; + +/** + * The start and end date for pulling data for the report. + */ +export interface ReportConfigTimePeriod { + /** + * The start date to pull data from. + */ + from: Date; + /** + * The end date to pull data to. + */ + to: Date; +} + +/** + * The configuration of dataset in the report. + */ +export interface ReportConfigDatasetConfiguration { + /** + * Array of column names to be included in the report. Any valid report column name is allowed. + * If not provided, then report includes all columns. + */ + columns?: string[]; +} + +/** + * The aggregation expression to be used in the report. + */ +export interface ReportConfigAggregation { + /** + * The name of the column to aggregate. + */ + name: string; + /** + * The name of the aggregation function to use. Possible values include: 'Avg', 'Max', 'Min', + * 'Sum' + */ + functionProperty: FunctionType; +} + +/** + * The group by expression to be used in the report. + */ +export interface ReportConfigGrouping { + /** + * Has type of the column to group. Possible values include: 'Tag', 'Dimension' + */ + type: ReportConfigColumnType; + /** + * The name of the column to group. This version supports subscription lowest possible grain. + */ + name: string; +} + +/** + * The order by expression to be used in the report. + */ +export interface ReportConfigSorting { + /** + * Direction of sort. Possible values include: 'Ascending', 'Descending' + */ + direction?: Direction; + /** + * The name of the column to sort. + */ + name: string; +} + +/** + * The comparison expression to be used in the report. + */ +export interface ReportConfigComparisonExpression { + /** + * The name of the column to use in comparison. + */ + name: string; + /** + * The operator to use for comparison. Possible values include: 'In', 'Contains' + */ + operator: OperatorType; + /** + * Array of values to use for comparison + */ + values: string[]; +} + +/** + * The filter expression to be used in the report. + */ +export interface ReportConfigFilter { + /** + * The logical "AND" expression. Must have at least 2 items. + */ + and?: ReportConfigFilter[]; + /** + * The logical "OR" expression. Must have at least 2 items. + */ + or?: ReportConfigFilter[]; + /** + * Has comparison expression for a dimension + */ + dimensions?: ReportConfigComparisonExpression; + /** + * Has comparison expression for a tag + */ + tags?: ReportConfigComparisonExpression; + /** + * Has comparison expression for a tag key + */ + tagKey?: ReportConfigComparisonExpression; + /** + * Has comparison expression for a tag value + */ + tagValue?: ReportConfigComparisonExpression; +} + +/** + * The definition of data present in the report. + */ +export interface ReportConfigDataset { + /** + * The granularity of rows in the report. Possible values include: 'Daily', 'Monthly' + */ + granularity?: ReportGranularityType; + /** + * Has configuration information for the data in the report. The configuration will be ignored if + * aggregation and grouping are provided. + */ + configuration?: ReportConfigDatasetConfiguration; + /** + * Dictionary of aggregation expression to use in the report. The key of each item in the + * dictionary is the alias for the aggregated column. Report can have up to 2 aggregation + * clauses. + */ + aggregation?: { [propertyName: string]: ReportConfigAggregation }; + /** + * Array of group by expression to use in the report. Report can have up to 2 group by clauses. + */ + grouping?: ReportConfigGrouping[]; + /** + * Array of order by expression to use in the report. + */ + sorting?: ReportConfigSorting[]; + /** + * Has filter expression to use in the report. + */ + filter?: ReportConfigFilter; +} + +/** + * An interface representing CacheItem. + */ +export interface CacheItem { + /** + * Resource ID used by Resource Manager to uniquely identify the scope. + */ + id: string; + /** + * Display name for the scope. + */ + name: string; + /** + * Indicates the account type. Allowed values include: EA, PAYG, Modern, Internal, Unknown. + */ + channel: string; + /** + * Indicates the type of modern account. Allowed values include: Individual, Enterprise, Partner, + * Indirect, NotApplicable + */ + subchannel: string; + /** + * Resource ID of the parent scope. For instance, subscription's resource ID for a resource group + * or a management group resource ID for a subscription. + */ + parent?: string; + /** + * Indicates the status of the scope. Status only applies to subscriptions and billing accounts. + */ + status?: string; +} + +/** + * The Resource model definition. + */ +export interface ProxySettingResource extends BaseResource { + /** + * Resource Id. + * **NOTE: This property will not be serialized. It can only be populated by the server.** + */ + readonly id?: string; + /** + * Resource name. + * **NOTE: This property will not be serialized. It can only be populated by the server.** + */ + readonly name?: string; + /** + * Resource kind. + * **NOTE: This property will not be serialized. It can only be populated by the server.** + */ + readonly kind?: string; + /** + * Resource type. + * **NOTE: This property will not be serialized. It can only be populated by the server.** + */ + readonly type?: string; +} + +/** + * State of the myscope setting. + */ +export interface Setting extends ProxySettingResource { + /** + * Sets the default scope the current user will see when they sign into Azure Cost Management in + * the Azure portal. + */ + scope: string; + /** + * Indicates what scope Cost Management in the Azure portal should default to. Allowed values: + * LastUsed. Possible values include: 'LastUsed', 'ScopePicker', 'SpecificScope' + */ + startOn?: StartOn; + cache?: CacheItem[]; +} + +/** + * Each KPI must contain a 'type' and 'enabled' key. + */ +export interface KpiProperties { + /** + * KPI type (Forecast, Budget). Possible values include: 'Forecast', 'Budget' + */ + type?: KpiTypeType; + /** + * ID of resource related to metric (budget). + */ + id?: string; + /** + * show the KPI in the UI? + */ + enabled?: boolean; +} + +/** + * Each pivot must contain a 'type' and 'name'. + */ +export interface PivotProperties { + /** + * Data type to show in view. Possible values include: 'Dimension', 'TagKey' + */ + type?: PivotTypeType; + /** + * Data field to show in view. + */ + name?: string; +} + +/** + * The Resource model definition. + */ +export interface ProxyResource extends BaseResource { + /** + * Resource Id. + * **NOTE: This property will not be serialized. It can only be populated by the server.** + */ + readonly id?: string; + /** + * Resource name. + * **NOTE: This property will not be serialized. It can only be populated by the server.** + */ + readonly name?: string; + /** + * Resource type. + * **NOTE: This property will not be serialized. It can only be populated by the server.** + */ + readonly type?: string; + /** + * eTag of the resource. To handle concurrent update scenario, this field will be used to + * determine whether the user is updating the latest version or not. + */ + eTag?: string; +} + +/** + * States and configurations of Cost Analysis. + */ +export interface View extends ProxyResource { + /** + * User input name of the view. Required. + */ + displayName?: string; + /** + * Cost Management scope to save the view on. This includes 'subscriptions/{subscriptionId}' for + * subscription scope, 'subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for + * resourceGroup scope, 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for + * Billing Account scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' + * for Department scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for BillingProfile scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/invoiceSections/{invoiceSectionId}' + * for InvoiceSection scope, + * 'providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group + * scope, + * '/providers/Microsoft.CostManagement/externalBillingAccounts/{externalBillingAccountName}' for + * ExternalBillingAccount scope, and + * '/providers/Microsoft.CostManagement/externalSubscriptions/{externalSubscriptionName}' for + * ExternalSubscription scope. + */ + scope?: string; + /** + * Date the user created this view. + * **NOTE: This property will not be serialized. It can only be populated by the server.** + */ + readonly createdOn?: Date; + /** + * Date when the user last modified this view. + * **NOTE: This property will not be serialized. It can only be populated by the server.** + */ + readonly modifiedOn?: Date; + /** + * Selected date range for viewing cost in. + * **NOTE: This property will not be serialized. It can only be populated by the server.** + */ + readonly dateRange?: string; + /** + * Selected currency. + * **NOTE: This property will not be serialized. It can only be populated by the server.** + */ + readonly currency?: string; + /** + * The time frame for pulling data for the report. If custom, then a specific time period must be + * provided. Possible values include: 'WeekToDate', 'MonthToDate', 'YearToDate', 'Custom' + */ + timeframe: ReportTimeframeType; + /** + * Has time period for pulling data for the report. + */ + timePeriod?: ReportConfigTimePeriod; + /** + * Has definition for data in this report config. + */ + dataSet?: ReportConfigDataset; + /** + * Include monetary commitment + * **NOTE: This property will not be serialized. It can only be populated by the server.** + */ + readonly includeMonetaryCommitment?: boolean; + /** + * Chart type of the main view in Cost Analysis. Required. Possible values include: 'Area', + * 'Line', 'StackedColumn', 'GroupedColumn', 'Table' + */ + chart?: ChartType; + /** + * Show costs accumulated over time. Possible values include: 'true', 'false' + */ + accumulated?: AccumulatedType; + /** + * Metric to use when displaying costs. Possible values include: 'ActualCost', 'AmortizedCost', + * 'AHUB' + */ + metric?: MetricType; + /** + * List of KPIs to show in Cost Analysis UI. + */ + kpis?: KpiProperties[]; + /** + * Configuration of 3 sub-views in the Cost Analysis UI. + */ + pivots?: PivotProperties[]; +} + +/** + * The details of the error. + */ +export interface ErrorDetails { + /** + * Error code. + * **NOTE: This property will not be serialized. It can only be populated by the server.** + */ + readonly code?: string; + /** + * Error message indicating why the operation failed. + * **NOTE: This property will not be serialized. It can only be populated by the server.** + */ + readonly message?: string; +} + +/** + * Error response indicates that the service is not able to process the incoming request. The + * reason is provided in the error message. + * + * Some Error responses: + * + * * 429 TooManyRequests - Request is throttled. Retry after waiting for the time specified in the + * "x-ms-ratelimit-microsoft.consumption-retry-after" header. + * + * * 503 ServiceUnavailable - Service is temporarily unavailable. Retry after waiting for the time + * specified in the "Retry-After" header. + */ +export interface ErrorResponse { + /** + * The details of the error. + */ + error?: ErrorDetails; +} + +/** + * The Resource model definition. + */ +export interface Resource extends BaseResource { + /** + * Resource Id. + * **NOTE: This property will not be serialized. It can only be populated by the server.** + */ + readonly id?: string; + /** + * Resource name. + * **NOTE: This property will not be serialized. It can only be populated by the server.** + */ + readonly name?: string; + /** + * Resource type. + * **NOTE: This property will not be serialized. It can only be populated by the server.** + */ + readonly type?: string; + /** + * Resource tags. + * **NOTE: This property will not be serialized. It can only be populated by the server.** + */ + readonly tags?: { [propertyName: string]: string }; +} + +/** + * An interface representing Dimension. + */ +export interface Dimension extends Resource { + /** + * Dimension description. + * **NOTE: This property will not be serialized. It can only be populated by the server.** + */ + readonly description?: string; + /** + * Filter enabled. + * **NOTE: This property will not be serialized. It can only be populated by the server.** + */ + readonly filterEnabled?: boolean; + /** + * Grouping enabled. + * **NOTE: This property will not be serialized. It can only be populated by the server.** + */ + readonly groupingEnabled?: boolean; + data?: string[]; + /** + * Total number of data for the dimension. + * **NOTE: This property will not be serialized. It can only be populated by the server.** + */ + readonly total?: number; + /** + * Dimension category. + * **NOTE: This property will not be serialized. It can only be populated by the server.** + */ + readonly category?: string; + /** + * Usage start. + * **NOTE: This property will not be serialized. It can only be populated by the server.** + */ + readonly usageStart?: Date; + /** + * Usage end. + * **NOTE: This property will not be serialized. It can only be populated by the server.** + */ + readonly usageEnd?: Date; + /** + * The link (url) to the next page of results. + * **NOTE: This property will not be serialized. It can only be populated by the server.** + */ + readonly nextLink?: string; +} + +/** + * defines the type of alert + */ +export interface AlertPropertiesDefinition { + /** + * type of alert. Possible values include: 'Budget', 'Invoice', 'Credit', 'Quota', 'General', + * 'xCloud', 'BudgetForecast' + */ + type?: AlertType; + /** + * Alert category. Possible values include: 'Cost', 'Usage', 'Billing', 'System' + */ + category?: AlertCategory; + /** + * Criteria that triggered alert. Possible values include: 'CostThresholdExceeded', + * 'UsageThresholdExceeded', 'CreditThresholdApproaching', 'CreditThresholdReached', + * 'QuotaThresholdApproaching', 'QuotaThresholdReached', 'MultiCurrency', + * 'ForecastCostThresholdExceeded', 'ForecastUsageThresholdExceeded', + * 'InvoiceDueDateApproaching', 'InvoiceDueDateReached', 'CrossCloudNewDataAvailable', + * 'CrossCloudCollectionError', 'GeneralThresholdError' + */ + criteria?: AlertCriteria; +} + +/** + * Alert details + */ +export interface AlertPropertiesDetails { + /** + * Type of timegrain cadence. Possible values include: 'None', 'Monthly', 'Quarterly', + * 'Annually', 'BillingMonth', 'BillingQuarter', 'BillingAnnual' + */ + timeGrainType?: AlertTimeGrainType; + /** + * datetime of periodStartDate + */ + periodStartDate?: string; + /** + * notificationId that triggered this alert + */ + triggeredBy?: string; + /** + * array of resourceGroups to filter by + */ + resourceGroupFilter?: any[]; + /** + * array of resources to filter by + */ + resourceFilter?: any[]; + /** + * array of meters to filter by + */ + meterFilter?: any[]; + /** + * tags to filter by + */ + tagFilter?: any; + /** + * notification threshold percentage as a decimal which activated this alert + */ + threshold?: number; + /** + * operator used to compare currentSpend with amount. Possible values include: 'None', 'EqualTo', + * 'GreaterThan', 'GreaterThanOrEqualTo', 'LessThan', 'LessThanOrEqualTo' + */ + operator?: AlertOperator; + /** + * budget threshold amount + */ + amount?: number; + /** + * unit of currency being used + */ + unit?: string; + /** + * current spend + */ + currentSpend?: number; + /** + * list of emails to contact + */ + contactEmails?: string[]; + /** + * list of action groups to broadcast to + */ + contactGroups?: string[]; + /** + * list of contact roles + */ + contactRoles?: string[]; + /** + * overriding alert + */ + overridingAlert?: string; +} + +/** + * An individual alert. + */ +export interface Alert extends Resource { + /** + * defines the type of alert + */ + definition?: AlertPropertiesDefinition; + /** + * Alert description + */ + description?: string; + /** + * Source of alert. Possible values include: 'Preset', 'User' + */ + source?: AlertSource; + /** + * Alert details + */ + details?: AlertPropertiesDetails; + /** + * related budget + */ + costEntityId?: string; + /** + * alert status. Possible values include: 'None', 'Active', 'Overridden', 'Resolved', 'Dismissed' + */ + status?: AlertStatus; + /** + * dateTime in which alert was created + */ + creationTime?: string; + /** + * dateTime in which alert was closed + */ + closeTime?: string; + /** + * dateTime in which alert was last modified + */ + modificationTime?: string; + statusModificationUserName?: string; + /** + * dateTime in which the alert status was last modified + */ + statusModificationTime?: string; +} + +/** + * Result of alerts. + */ +export interface AlertsResult { + /** + * List of alerts. + * **NOTE: This property will not be serialized. It can only be populated by the server.** + */ + readonly value?: Alert[]; + /** + * URL to get the next set of alerts results if there are any. + * **NOTE: This property will not be serialized. It can only be populated by the server.** + */ + readonly nextLink?: string; +} + +/** + * The request payload to update an alert + */ +export interface DismissAlertPayload { + /** + * defines the type of alert + */ + definition?: AlertPropertiesDefinition; + /** + * Alert description + */ + description?: string; + /** + * Source of alert. Possible values include: 'Preset', 'User' + */ + source?: AlertSource; + /** + * Alert details + */ + details?: AlertPropertiesDetails; + /** + * related budget + */ + costEntityId?: string; + /** + * alert status. Possible values include: 'None', 'Active', 'Overridden', 'Resolved', 'Dismissed' + */ + status?: AlertStatus; + /** + * dateTime in which alert was created + */ + creationTime?: string; + /** + * dateTime in which alert was closed + */ + closeTime?: string; + /** + * dateTime in which alert was last modified + */ + modificationTime?: string; + statusModificationUserName?: string; + /** + * dateTime in which the alert status was last modified + */ + statusModificationTime?: string; +} + +/** + * An interface representing QueryColumn. + */ +export interface QueryColumn { + /** + * The name of column. + */ + name?: string; + /** + * The type of column. + */ + type?: string; +} + +/** + * Result of query. It contains all columns listed under groupings and aggregation. + */ +export interface QueryResult extends Resource { + /** + * eTag of the resource. To handle concurrent update scenario, this field will be used to + * determine whether the user is updating the latest version or not. + */ + eTag?: string; + /** + * Resource location + * **NOTE: This property will not be serialized. It can only be populated by the server.** + */ + readonly location?: string; + /** + * Resource SKU + * **NOTE: This property will not be serialized. It can only be populated by the server.** + */ + readonly sku?: string; + /** + * The link (url) to the next page of results. + */ + nextLink?: string; + /** + * Array of columns + */ + columns?: QueryColumn[]; + /** + * Array of rows + */ + rows?: any[][]; +} + +/** + * The object that represents the operation. + */ +export interface OperationDisplay { + /** + * Service provider: Microsoft.CostManagement. + * **NOTE: This property will not be serialized. It can only be populated by the server.** + */ + readonly provider?: string; + /** + * Resource on which the operation is performed: Dimensions, Query. + * **NOTE: This property will not be serialized. It can only be populated by the server.** + */ + readonly resource?: string; + /** + * Operation type: Read, write, delete, etc. + * **NOTE: This property will not be serialized. It can only be populated by the server.** + */ + readonly operation?: string; +} + +/** + * A Cost management REST API operation. + */ +export interface Operation { + /** + * Operation name: {provider}/{resource}/{operation}. + * **NOTE: This property will not be serialized. It can only be populated by the server.** + */ + readonly name?: string; + /** + * The object that represents the operation. + */ + display?: OperationDisplay; +} + +/** + * The start and end date for pulling data for the query. + */ +export interface QueryTimePeriod { + /** + * The start date to pull data from. + */ + from: Date; + /** + * The end date to pull data to. + */ + to: Date; +} + +/** + * The configuration of dataset in the query. + */ +export interface QueryDatasetConfiguration { + /** + * Array of column names to be included in the query. Any valid query column name is allowed. If + * not provided, then query includes all columns. + */ + columns?: string[]; +} + +/** + * The aggregation expression to be used in the query. + */ +export interface QueryAggregation { + /** + * The name of the column to aggregate. + */ + name: string; + /** + * The name of the aggregation function to use. Possible values include: 'Avg', 'Max', 'Min', + * 'Sum' + */ + functionProperty: FunctionType; +} + +/** + * The group by expression to be used in the query. + */ +export interface QueryGrouping { + /** + * Has type of the column to group. Possible values include: 'Tag', 'Dimension' + */ + type: QueryColumnType; + /** + * The name of the column to group. + */ + name: string; +} + +/** + * The comparison expression to be used in the query. + */ +export interface QueryComparisonExpression { + /** + * The name of the column to use in comparison. + */ + name: string; + /** + * Array of values to use for comparison + */ + values: string[]; +} + +/** + * The filter expression to be used in the export. + */ +export interface QueryFilter { + /** + * The logical "AND" expression. Must have at least 2 items. + */ + and?: QueryFilter[]; + /** + * The logical "OR" expression. Must have at least 2 items. + */ + or?: QueryFilter[]; + /** + * Has comparison expression for a dimension + */ + dimensions?: QueryComparisonExpression; + /** + * Has comparison expression for a tag + */ + tags?: QueryComparisonExpression; +} + +/** + * The definition of data present in the query. + */ +export interface QueryDataset { + /** + * The granularity of rows in the query. Possible values include: 'Daily' + */ + granularity?: GranularityType; + /** + * Has configuration information for the data in the export. The configuration will be ignored if + * aggregation and grouping are provided. + */ + configuration?: QueryDatasetConfiguration; + /** + * Dictionary of aggregation expression to use in the query. The key of each item in the + * dictionary is the alias for the aggregated column. Query can have up to 2 aggregation clauses. + */ + aggregation?: { [propertyName: string]: QueryAggregation }; + /** + * Array of group by expression to use in the query. Query can have up to 2 group by clauses. + */ + grouping?: QueryGrouping[]; + /** + * Has filter expression to use in the query. + */ + filter?: QueryFilter; +} + +/** + * The definition of a forecast. + */ +export interface ForecastDefinition { + /** + * The type of the forecast. Possible values include: 'Usage', 'ActualCost', 'AmortizedCost' + */ + type: ForecastType; + /** + * The time frame for pulling data for the forecast. If custom, then a specific time period must + * be provided. Possible values include: 'MonthToDate', 'BillingMonthToDate', 'TheLastMonth', + * 'TheLastBillingMonth', 'WeekToDate', 'Custom' + */ + timeframe: ForecastTimeframeType; + /** + * Has time period for pulling data for the forecast. + */ + timePeriod?: QueryTimePeriod; + /** + * Has definition for data in this forecast. + */ + dataset?: QueryDataset; + /** + * a boolean determining if actualCost will be included + */ + includeActualCost?: boolean; + /** + * a boolean determining if FreshPartialCost will be included + */ + includeFreshPartialCost?: boolean; +} + +/** + * The definition of a query. + */ +export interface QueryDefinition { + /** + * The type of the query. Possible values include: 'Usage', 'ActualCost', 'AmortizedCost' + */ + type: ExportType; + /** + * The time frame for pulling data for the query. If custom, then a specific time period must be + * provided. Possible values include: 'MonthToDate', 'BillingMonthToDate', 'TheLastMonth', + * 'TheLastBillingMonth', 'WeekToDate', 'Custom' + */ + timeframe: TimeframeType; + /** + * Has time period for pulling data for the query. + */ + timePeriod?: QueryTimePeriod; + /** + * Has definition for data in this query. + */ + dataset?: QueryDataset; +} + +/** + * The status of the long running operation. + */ +export interface Status { + /** + * The status of the long running operation. Possible values include: 'Running', 'Completed', + * 'Failed' + */ + status?: OperationStatusType; +} + +/** + * The status of the long running operation. + */ +export interface OperationStatus { + /** + * The status of the long running operation. + */ + status?: Status; + /** + * The URL to download the generated report. + */ + reportUrl?: string; + /** + * The time at which report URL becomes invalid. + */ + validUntil?: Date; +} + +/** + * The definition of a query. + */ +export interface ExportDefinition { + /** + * The type of the query. Possible values include: 'Usage', 'ActualCost', 'AmortizedCost' + */ + type: ExportType; + /** + * The time frame for pulling data for the query. If custom, then a specific time period must be + * provided. Possible values include: 'MonthToDate', 'BillingMonthToDate', 'TheLastMonth', + * 'TheLastBillingMonth', 'WeekToDate', 'Custom' + */ + timeframe: TimeframeType; + /** + * Has time period for pulling data for the query. + */ + timePeriod?: QueryTimePeriod; + /** + * Has definition for data in this query. + */ + dataSet?: QueryDataset; +} + +/** + * The start and end date for recurrence schedule. + */ +export interface ExportRecurrencePeriod { + /** + * The start date of recurrence. + */ + from: Date; + /** + * The end date of recurrence. + */ + to?: Date; +} + +/** + * The schedule associated with a export. + */ +export interface ExportSchedule { + /** + * The status of the schedule. Whether active or not. If inactive, the export's scheduled + * execution is paused. Possible values include: 'Active', 'Inactive' + */ + status?: StatusType; + /** + * The schedule recurrence. Possible values include: 'Daily', 'Weekly', 'Monthly', 'Annually' + */ + recurrence: RecurrenceType; + /** + * Has start and end date of the recurrence. The start date must be in future. If present, the + * end date must be greater than start date. + */ + recurrencePeriod?: ExportRecurrencePeriod; +} + +/** + * A export resource. + */ +export interface ExportModel extends ProxyResource { + /** + * The format of the export being delivered. Possible values include: 'Csv' + */ + format?: FormatType; + /** + * Has delivery information for the export. + */ + deliveryInfo: ExportDeliveryInfo; + /** + * Has definition for the export. + */ + definition: ExportDefinition; + /** + * Has schedule information for the export. + */ + schedule?: ExportSchedule; +} + +/** + * Result of listing exports. It contains a list of available exports in the scope provided. + */ +export interface ExportListResult { + /** + * The list of exports. + * **NOTE: This property will not be serialized. It can only be populated by the server.** + */ + readonly value?: ExportModel[]; +} + +/** + * The destination information for the delivery of the export. To allow access to a storage + * account, you must register the account's subscription with the Microsoft.CostManagementExports + * resource provider. This is required once per subscription. When creating an export in the Azure + * portal, it is done automatically, however API users need to register the subscription. For more + * information see + * https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-manager-supported-services + * . + */ +export interface ExportDeliveryDestination { + /** + * The resource id of the storage account where exports will be delivered. + */ + resourceId: string; + /** + * The name of the container where exports will be uploaded. + */ + container: string; + /** + * The name of the directory where exports will be uploaded. + */ + rootFolderPath?: string; +} + +/** + * The delivery information associated with a export. + */ +export interface ExportDeliveryInfo { + /** + * Has destination for the export being delivered. + */ + destination: ExportDeliveryDestination; +} + +/** + * The common properties of the export. + */ +export interface CommonExportProperties { + /** + * The format of the export being delivered. Possible values include: 'Csv' + */ + format?: FormatType; + /** + * Has delivery information for the export. + */ + deliveryInfo: ExportDeliveryInfo; + /** + * Has definition for the export. + */ + definition: ExportDefinition; +} + +/** + * A export execution. + */ +export interface ExportExecution extends Resource { + /** + * The type of the export execution. Possible values include: 'OnDemand', 'Scheduled' + */ + executionType?: ExecutionType; + /** + * The status of the export execution. Possible values include: 'Queued', 'InProgress', + * 'Completed', 'Failed', 'Timeout', 'NewDataNotAvailable', 'DataNotAvailable' + */ + status?: ExecutionStatus; + /** + * The identifier for the entity that executed the export. For OnDemand executions, it is the + * email id. For Scheduled executions, it is the constant value - System. + */ + submittedBy?: string; + /** + * The time when export was queued to be executed. + */ + submittedTime?: Date; + /** + * The time when export was picked up to be executed. + */ + processingStartTime?: Date; + /** + * The time when export execution finished. + */ + processingEndTime?: Date; + /** + * The name of the file export got written to. + */ + fileName?: string; + runSettings?: CommonExportProperties; +} + +/** + * Result of listing exports execution history of a export by name + */ +export interface ExportExecutionListResult { + /** + * The list of export executions. + * **NOTE: This property will not be serialized. It can only be populated by the server.** + */ + readonly value?: ExportExecution[]; +} + +/** + * Optional Parameters. + */ +export interface ForecastUsageOptionalParams extends msRest.RequestOptionsBase { + /** + * May be used to filter forecasts by properties/usageDate (Utc time), properties/chargeType or + * properties/grain. The filter supports 'eq', 'lt', 'gt', 'le', 'ge', and 'and'. It does not + * currently support 'ne', 'or', or 'not'. + */ + filter?: string; +} + +/** + * Optional Parameters. + */ +export interface ForecastExternalCloudProviderUsageOptionalParams extends msRest.RequestOptionsBase { + /** + * May be used to filter forecasts by properties/usageDate (Utc time), properties/chargeType or + * properties/grain. The filter supports 'eq', 'lt', 'gt', 'le', 'ge', and 'and'. It does not + * currently support 'ne', 'or', or 'not'. + */ + filter?: string; +} + +/** + * Optional Parameters. + */ +export interface DimensionsListOptionalParams extends msRest.RequestOptionsBase { + /** + * May be used to filter dimensions by properties/category, properties/usageStart, + * properties/usageEnd. Supported operators are 'eq','lt', 'gt', 'le', 'ge'. + */ + filter?: string; + /** + * May be used to expand the properties/data within a dimension category. By default, data is not + * included when listing dimensions. + */ + expand?: string; + /** + * Skiptoken is only used if a previous operation returned a partial result. If a previous + * response contains a nextLink element, the value of the nextLink element will include a + * skiptoken parameter that specifies a starting point to use for subsequent calls. + */ + skiptoken?: string; + /** + * May be used to limit the number of results to the most recent N dimension data. + */ + top?: number; +} + +/** + * Optional Parameters. + */ +export interface DimensionsByExternalCloudProviderTypeOptionalParams extends msRest.RequestOptionsBase { + /** + * May be used to filter dimensions by properties/category, properties/usageStart, + * properties/usageEnd. Supported operators are 'eq','lt', 'gt', 'le', 'ge'. + */ + filter?: string; + /** + * May be used to expand the properties/data within a dimension category. By default, data is not + * included when listing dimensions. + */ + expand?: string; + /** + * Skiptoken is only used if a previous operation returned a partial result. If a previous + * response contains a nextLink element, the value of the nextLink element will include a + * skiptoken parameter that specifies a starting point to use for subsequent calls. + */ + skiptoken?: string; + /** + * May be used to limit the number of results to the most recent N dimension data. + */ + top?: number; +} + +/** + * An interface representing CostManagementClientOptions. + */ +export interface CostManagementClientOptions extends AzureServiceClientOptions { + baseUri?: string; +} + +/** + * Defines headers for ByBillingAccountId operation. + */ +export interface GenerateReservationDetailsReportByBillingAccountIdHeaders { + /** + * The URL to check the status of the asynchronous operation. + */ + location: string; + /** + * The amount of delay to use while the status of the operation is checked. The value is + * expressed in seconds. + */ + retryAfter: number; +} + +/** + * Defines headers for ByBillingProfileId operation. + */ +export interface GenerateReservationDetailsReportByBillingProfileIdHeaders { + /** + * The URL to check the status of the asynchronous operation. + */ + location: string; + /** + * The amount of delay to use while the status of the operation is checked. The value is + * expressed in seconds. + */ + retryAfter: number; +} + +/** + * @interface + * Result of listing settings. It contains a list of available settings. + * @extends Array + */ +export interface SettingsListResult extends Array { + /** + * The link (url) to the next page of results. + * **NOTE: This property will not be serialized. It can only be populated by the server.** + */ + readonly nextLink?: string; +} + +/** + * @interface + * Result of listing views. It contains a list of available views. + * @extends Array + */ +export interface ViewListResult extends Array { + /** + * The link (url) to the next page of results. + * **NOTE: This property will not be serialized. It can only be populated by the server.** + */ + readonly nextLink?: string; +} + +/** + * @interface + * Result of listing dimensions. It contains a list of available dimensions. + * @extends Array + */ +export interface DimensionsListResult extends Array { +} + +/** + * @interface + * Result of listing cost management operations. It contains a list of operations and a URL link to + * get the next set of results. + * @extends Array + */ +export interface OperationListResult extends Array { + /** + * URL to get the next set of operation list results if there are any. + * **NOTE: This property will not be serialized. It can only be populated by the server.** + */ + readonly nextLink?: string; +} + +/** + * Defines values for ReportTimeframeType. + * Possible values include: 'WeekToDate', 'MonthToDate', 'YearToDate', 'Custom' + * @readonly + * @enum {string} + */ +export type ReportTimeframeType = 'WeekToDate' | 'MonthToDate' | 'YearToDate' | 'Custom'; + +/** + * Defines values for ReportGranularityType. + * Possible values include: 'Daily', 'Monthly' + * @readonly + * @enum {string} + */ +export type ReportGranularityType = 'Daily' | 'Monthly'; + +/** + * Defines values for FunctionType. + * Possible values include: 'Avg', 'Max', 'Min', 'Sum' + * @readonly + * @enum {string} + */ +export type FunctionType = 'Avg' | 'Max' | 'Min' | 'Sum'; + +/** + * Defines values for ReportConfigColumnType. + * Possible values include: 'Tag', 'Dimension' + * @readonly + * @enum {string} + */ +export type ReportConfigColumnType = 'Tag' | 'Dimension'; + +/** + * Defines values for OperatorType. + * Possible values include: 'In', 'Contains' + * @readonly + * @enum {string} + */ +export type OperatorType = 'In' | 'Contains'; + +/** + * Defines values for ChartType. + * Possible values include: 'Area', 'Line', 'StackedColumn', 'GroupedColumn', 'Table' + * @readonly + * @enum {string} + */ +export type ChartType = 'Area' | 'Line' | 'StackedColumn' | 'GroupedColumn' | 'Table'; + +/** + * Defines values for AccumulatedType. + * Possible values include: 'true', 'false' + * @readonly + * @enum {string} + */ +export type AccumulatedType = 'true' | 'false'; + +/** + * Defines values for MetricType. + * Possible values include: 'ActualCost', 'AmortizedCost', 'AHUB' + * @readonly + * @enum {string} + */ +export type MetricType = 'ActualCost' | 'AmortizedCost' | 'AHUB'; + +/** + * Defines values for KpiTypeType. + * Possible values include: 'Forecast', 'Budget' + * @readonly + * @enum {string} + */ +export type KpiTypeType = 'Forecast' | 'Budget'; + +/** + * Defines values for PivotTypeType. + * Possible values include: 'Dimension', 'TagKey' + * @readonly + * @enum {string} + */ +export type PivotTypeType = 'Dimension' | 'TagKey'; + +/** + * Defines values for AlertType. + * Possible values include: 'Budget', 'Invoice', 'Credit', 'Quota', 'General', 'xCloud', + * 'BudgetForecast' + * @readonly + * @enum {string} + */ +export type AlertType = 'Budget' | 'Invoice' | 'Credit' | 'Quota' | 'General' | 'xCloud' | 'BudgetForecast'; + +/** + * Defines values for AlertCategory. + * Possible values include: 'Cost', 'Usage', 'Billing', 'System' + * @readonly + * @enum {string} + */ +export type AlertCategory = 'Cost' | 'Usage' | 'Billing' | 'System'; + +/** + * Defines values for AlertCriteria. + * Possible values include: 'CostThresholdExceeded', 'UsageThresholdExceeded', + * 'CreditThresholdApproaching', 'CreditThresholdReached', 'QuotaThresholdApproaching', + * 'QuotaThresholdReached', 'MultiCurrency', 'ForecastCostThresholdExceeded', + * 'ForecastUsageThresholdExceeded', 'InvoiceDueDateApproaching', 'InvoiceDueDateReached', + * 'CrossCloudNewDataAvailable', 'CrossCloudCollectionError', 'GeneralThresholdError' + * @readonly + * @enum {string} + */ +export type AlertCriteria = 'CostThresholdExceeded' | 'UsageThresholdExceeded' | 'CreditThresholdApproaching' | 'CreditThresholdReached' | 'QuotaThresholdApproaching' | 'QuotaThresholdReached' | 'MultiCurrency' | 'ForecastCostThresholdExceeded' | 'ForecastUsageThresholdExceeded' | 'InvoiceDueDateApproaching' | 'InvoiceDueDateReached' | 'CrossCloudNewDataAvailable' | 'CrossCloudCollectionError' | 'GeneralThresholdError'; + +/** + * Defines values for AlertSource. + * Possible values include: 'Preset', 'User' + * @readonly + * @enum {string} + */ +export type AlertSource = 'Preset' | 'User'; + +/** + * Defines values for AlertTimeGrainType. + * Possible values include: 'None', 'Monthly', 'Quarterly', 'Annually', 'BillingMonth', + * 'BillingQuarter', 'BillingAnnual' + * @readonly + * @enum {string} + */ +export type AlertTimeGrainType = 'None' | 'Monthly' | 'Quarterly' | 'Annually' | 'BillingMonth' | 'BillingQuarter' | 'BillingAnnual'; + +/** + * Defines values for AlertOperator. + * Possible values include: 'None', 'EqualTo', 'GreaterThan', 'GreaterThanOrEqualTo', 'LessThan', + * 'LessThanOrEqualTo' + * @readonly + * @enum {string} + */ +export type AlertOperator = 'None' | 'EqualTo' | 'GreaterThan' | 'GreaterThanOrEqualTo' | 'LessThan' | 'LessThanOrEqualTo'; + +/** + * Defines values for AlertStatus. + * Possible values include: 'None', 'Active', 'Overridden', 'Resolved', 'Dismissed' + * @readonly + * @enum {string} + */ +export type AlertStatus = 'None' | 'Active' | 'Overridden' | 'Resolved' | 'Dismissed'; + +/** + * Defines values for ForecastType. + * Possible values include: 'Usage', 'ActualCost', 'AmortizedCost' + * @readonly + * @enum {string} + */ +export type ForecastType = 'Usage' | 'ActualCost' | 'AmortizedCost'; + +/** + * Defines values for ForecastTimeframeType. + * Possible values include: 'MonthToDate', 'BillingMonthToDate', 'TheLastMonth', + * 'TheLastBillingMonth', 'WeekToDate', 'Custom' + * @readonly + * @enum {string} + */ +export type ForecastTimeframeType = 'MonthToDate' | 'BillingMonthToDate' | 'TheLastMonth' | 'TheLastBillingMonth' | 'WeekToDate' | 'Custom'; + +/** + * Defines values for GranularityType. + * Possible values include: 'Daily' + * @readonly + * @enum {string} + */ +export type GranularityType = 'Daily'; + +/** + * Defines values for QueryColumnType. + * Possible values include: 'Tag', 'Dimension' + * @readonly + * @enum {string} + */ +export type QueryColumnType = 'Tag' | 'Dimension'; + +/** + * Defines values for ExportType. + * Possible values include: 'Usage', 'ActualCost', 'AmortizedCost' + * @readonly + * @enum {string} + */ +export type ExportType = 'Usage' | 'ActualCost' | 'AmortizedCost'; + +/** + * Defines values for TimeframeType. + * Possible values include: 'MonthToDate', 'BillingMonthToDate', 'TheLastMonth', + * 'TheLastBillingMonth', 'WeekToDate', 'Custom' + * @readonly + * @enum {string} + */ +export type TimeframeType = 'MonthToDate' | 'BillingMonthToDate' | 'TheLastMonth' | 'TheLastBillingMonth' | 'WeekToDate' | 'Custom'; + +/** + * Defines values for OperationStatusType. + * Possible values include: 'Running', 'Completed', 'Failed' + * @readonly + * @enum {string} + */ +export type OperationStatusType = 'Running' | 'Completed' | 'Failed'; + +/** + * Defines values for StatusType. + * Possible values include: 'Active', 'Inactive' + * @readonly + * @enum {string} + */ +export type StatusType = 'Active' | 'Inactive'; + +/** + * Defines values for RecurrenceType. + * Possible values include: 'Daily', 'Weekly', 'Monthly', 'Annually' + * @readonly + * @enum {string} + */ +export type RecurrenceType = 'Daily' | 'Weekly' | 'Monthly' | 'Annually'; + +/** + * Defines values for FormatType. + * Possible values include: 'Csv' + * @readonly + * @enum {string} + */ +export type FormatType = 'Csv'; + +/** + * Defines values for ExecutionType. + * Possible values include: 'OnDemand', 'Scheduled' + * @readonly + * @enum {string} + */ +export type ExecutionType = 'OnDemand' | 'Scheduled'; + +/** + * Defines values for ExecutionStatus. + * Possible values include: 'Queued', 'InProgress', 'Completed', 'Failed', 'Timeout', + * 'NewDataNotAvailable', 'DataNotAvailable' + * @readonly + * @enum {string} + */ +export type ExecutionStatus = 'Queued' | 'InProgress' | 'Completed' | 'Failed' | 'Timeout' | 'NewDataNotAvailable' | 'DataNotAvailable'; + +/** + * Defines values for ExternalCloudProviderType. + * Possible values include: 'externalSubscriptions', 'externalBillingAccounts' + * @readonly + * @enum {string} + */ +export type ExternalCloudProviderType = 'externalSubscriptions' | 'externalBillingAccounts'; + +/** + * Defines values for Direction. + * Possible values include: 'Ascending', 'Descending' + * @readonly + * @enum {string} + */ +export type Direction = 'Ascending' | 'Descending'; + +/** + * Defines values for StartOn. + * Possible values include: 'LastUsed', 'ScopePicker', 'SpecificScope' + * @readonly + * @enum {string} + */ +export type StartOn = 'LastUsed' | 'ScopePicker' | 'SpecificScope'; + +/** + * Contains response data for the list operation. + */ +export type SettingsListResponse = SettingsListResult & { + /** + * The underlying HTTP response. + */ + _response: msRest.HttpResponse & { + /** + * The response body as text (string format) + */ + bodyAsText: string; + + /** + * The response body as parsed JSON or XML + */ + parsedBody: SettingsListResult; + }; +}; + +/** + * Contains response data for the get operation. + */ +export type SettingsGetResponse = Setting & { + /** + * The underlying HTTP response. + */ + _response: msRest.HttpResponse & { + /** + * The response body as text (string format) + */ + bodyAsText: string; + + /** + * The response body as parsed JSON or XML + */ + parsedBody: Setting; + }; +}; + +/** + * Contains response data for the createOrUpdate operation. + */ +export type SettingsCreateOrUpdateResponse = Setting & { + /** + * The underlying HTTP response. + */ + _response: msRest.HttpResponse & { + /** + * The response body as text (string format) + */ + bodyAsText: string; + + /** + * The response body as parsed JSON or XML + */ + parsedBody: Setting; + }; +}; + +/** + * Contains response data for the listNext operation. + */ +export type SettingsListNextResponse = SettingsListResult & { + /** + * The underlying HTTP response. + */ + _response: msRest.HttpResponse & { + /** + * The response body as text (string format) + */ + bodyAsText: string; + + /** + * The response body as parsed JSON or XML + */ + parsedBody: SettingsListResult; + }; +}; + +/** + * Contains response data for the list operation. + */ +export type ViewsListResponse = ViewListResult & { + /** + * The underlying HTTP response. + */ + _response: msRest.HttpResponse & { + /** + * The response body as text (string format) + */ + bodyAsText: string; + + /** + * The response body as parsed JSON or XML + */ + parsedBody: ViewListResult; + }; +}; + +/** + * Contains response data for the listByScope operation. + */ +export type ViewsListByScopeResponse = ViewListResult & { + /** + * The underlying HTTP response. + */ + _response: msRest.HttpResponse & { + /** + * The response body as text (string format) + */ + bodyAsText: string; + + /** + * The response body as parsed JSON or XML + */ + parsedBody: ViewListResult; + }; +}; + +/** + * Contains response data for the get operation. + */ +export type ViewsGetResponse = View & { + /** + * The underlying HTTP response. + */ + _response: msRest.HttpResponse & { + /** + * The response body as text (string format) + */ + bodyAsText: string; + + /** + * The response body as parsed JSON or XML + */ + parsedBody: View; + }; +}; + +/** + * Contains response data for the createOrUpdate operation. + */ +export type ViewsCreateOrUpdateResponse = View & { + /** + * The underlying HTTP response. + */ + _response: msRest.HttpResponse & { + /** + * The response body as text (string format) + */ + bodyAsText: string; + + /** + * The response body as parsed JSON or XML + */ + parsedBody: View; + }; +}; + +/** + * Contains response data for the getByScope operation. + */ +export type ViewsGetByScopeResponse = View & { + /** + * The underlying HTTP response. + */ + _response: msRest.HttpResponse & { + /** + * The response body as text (string format) + */ + bodyAsText: string; + + /** + * The response body as parsed JSON or XML + */ + parsedBody: View; + }; +}; + +/** + * Contains response data for the createOrUpdateByScope operation. + */ +export type ViewsCreateOrUpdateByScopeResponse = View & { + /** + * The underlying HTTP response. + */ + _response: msRest.HttpResponse & { + /** + * The response body as text (string format) + */ + bodyAsText: string; + + /** + * The response body as parsed JSON or XML + */ + parsedBody: View; + }; +}; + +/** + * Contains response data for the listNext operation. + */ +export type ViewsListNextResponse = ViewListResult & { + /** + * The underlying HTTP response. + */ + _response: msRest.HttpResponse & { + /** + * The response body as text (string format) + */ + bodyAsText: string; + + /** + * The response body as parsed JSON or XML + */ + parsedBody: ViewListResult; + }; +}; + +/** + * Contains response data for the listByScopeNext operation. + */ +export type ViewsListByScopeNextResponse = ViewListResult & { + /** + * The underlying HTTP response. + */ + _response: msRest.HttpResponse & { + /** + * The response body as text (string format) + */ + bodyAsText: string; + + /** + * The response body as parsed JSON or XML + */ + parsedBody: ViewListResult; + }; +}; + +/** + * Contains response data for the list operation. + */ +export type AlertsListResponse = AlertsResult & { + /** + * The underlying HTTP response. + */ + _response: msRest.HttpResponse & { + /** + * The response body as text (string format) + */ + bodyAsText: string; + + /** + * The response body as parsed JSON or XML + */ + parsedBody: AlertsResult; + }; +}; + +/** + * Contains response data for the get operation. + */ +export type AlertsGetResponse = Alert & { + /** + * The underlying HTTP response. + */ + _response: msRest.HttpResponse & { + /** + * The response body as text (string format) + */ + bodyAsText: string; + + /** + * The response body as parsed JSON or XML + */ + parsedBody: Alert; + }; +}; + +/** + * Contains response data for the dismiss operation. + */ +export type AlertsDismissResponse = Alert & { + /** + * The underlying HTTP response. + */ + _response: msRest.HttpResponse & { + /** + * The response body as text (string format) + */ + bodyAsText: string; + + /** + * The response body as parsed JSON or XML + */ + parsedBody: Alert; + }; +}; + +/** + * Contains response data for the listExternal operation. + */ +export type AlertsListExternalResponse = AlertsResult & { + /** + * The underlying HTTP response. + */ + _response: msRest.HttpResponse & { + /** + * The response body as text (string format) + */ + bodyAsText: string; + + /** + * The response body as parsed JSON or XML + */ + parsedBody: AlertsResult; + }; +}; + +/** + * Contains response data for the usage operation. + */ +export type ForecastUsageResponse = QueryResult & { + /** + * The underlying HTTP response. + */ + _response: msRest.HttpResponse & { + /** + * The response body as text (string format) + */ + bodyAsText: string; + + /** + * The response body as parsed JSON or XML + */ + parsedBody: QueryResult; + }; +}; + +/** + * Contains response data for the externalCloudProviderUsage operation. + */ +export type ForecastExternalCloudProviderUsageResponse = QueryResult & { + /** + * The underlying HTTP response. + */ + _response: msRest.HttpResponse & { + /** + * The response body as text (string format) + */ + bodyAsText: string; + + /** + * The response body as parsed JSON or XML + */ + parsedBody: QueryResult; + }; +}; + +/** + * Contains response data for the list operation. + */ +export type DimensionsListResponse = DimensionsListResult & { + /** + * The underlying HTTP response. + */ + _response: msRest.HttpResponse & { + /** + * The response body as text (string format) + */ + bodyAsText: string; + + /** + * The response body as parsed JSON or XML + */ + parsedBody: DimensionsListResult; + }; +}; + +/** + * Contains response data for the byExternalCloudProviderType operation. + */ +export type DimensionsByExternalCloudProviderTypeResponse = DimensionsListResult & { + /** + * The underlying HTTP response. + */ + _response: msRest.HttpResponse & { + /** + * The response body as text (string format) + */ + bodyAsText: string; + + /** + * The response body as parsed JSON or XML + */ + parsedBody: DimensionsListResult; + }; +}; + +/** + * Contains response data for the usage operation. + */ +export type QueryUsageResponse = QueryResult & { + /** + * The underlying HTTP response. + */ + _response: msRest.HttpResponse & { + /** + * The response body as text (string format) + */ + bodyAsText: string; + + /** + * The response body as parsed JSON or XML + */ + parsedBody: QueryResult; + }; +}; + +/** + * Contains response data for the usageByExternalCloudProviderType operation. + */ +export type QueryUsageByExternalCloudProviderTypeResponse = QueryResult & { + /** + * The underlying HTTP response. + */ + _response: msRest.HttpResponse & { + /** + * The response body as text (string format) + */ + bodyAsText: string; + + /** + * The response body as parsed JSON or XML + */ + parsedBody: QueryResult; + }; +}; + +/** + * Contains response data for the byBillingAccountId operation. + */ +export type GenerateReservationDetailsReportByBillingAccountIdResponse = OperationStatus & GenerateReservationDetailsReportByBillingAccountIdHeaders & { + /** + * The underlying HTTP response. + */ + _response: msRest.HttpResponse & { + /** + * The parsed HTTP response headers. + */ + parsedHeaders: GenerateReservationDetailsReportByBillingAccountIdHeaders; + + /** + * The response body as text (string format) + */ + bodyAsText: string; + + /** + * The response body as parsed JSON or XML + */ + parsedBody: OperationStatus; + }; +}; + +/** + * Contains response data for the byBillingProfileId operation. + */ +export type GenerateReservationDetailsReportByBillingProfileIdResponse = OperationStatus & GenerateReservationDetailsReportByBillingProfileIdHeaders & { + /** + * The underlying HTTP response. + */ + _response: msRest.HttpResponse & { + /** + * The parsed HTTP response headers. + */ + parsedHeaders: GenerateReservationDetailsReportByBillingProfileIdHeaders; + + /** + * The response body as text (string format) + */ + bodyAsText: string; + + /** + * The response body as parsed JSON or XML + */ + parsedBody: OperationStatus; + }; +}; + +/** + * Contains response data for the list operation. + */ +export type OperationsListResponse = OperationListResult & { + /** + * The underlying HTTP response. + */ + _response: msRest.HttpResponse & { + /** + * The response body as text (string format) + */ + bodyAsText: string; + + /** + * The response body as parsed JSON or XML + */ + parsedBody: OperationListResult; + }; +}; + +/** + * Contains response data for the listNext operation. + */ +export type OperationsListNextResponse = OperationListResult & { + /** + * The underlying HTTP response. + */ + _response: msRest.HttpResponse & { + /** + * The response body as text (string format) + */ + bodyAsText: string; + + /** + * The response body as parsed JSON or XML + */ + parsedBody: OperationListResult; + }; +}; + +/** + * Contains response data for the list operation. + */ +export type ExportsListResponse = ExportListResult & { + /** + * The underlying HTTP response. + */ + _response: msRest.HttpResponse & { + /** + * The response body as text (string format) + */ + bodyAsText: string; + + /** + * The response body as parsed JSON or XML + */ + parsedBody: ExportListResult; + }; +}; + +/** + * Contains response data for the get operation. + */ +export type ExportsGetResponse = ExportModel & { + /** + * The underlying HTTP response. + */ + _response: msRest.HttpResponse & { + /** + * The response body as text (string format) + */ + bodyAsText: string; + + /** + * The response body as parsed JSON or XML + */ + parsedBody: ExportModel; + }; +}; + +/** + * Contains response data for the createOrUpdate operation. + */ +export type ExportsCreateOrUpdateResponse = ExportModel & { + /** + * The underlying HTTP response. + */ + _response: msRest.HttpResponse & { + /** + * The response body as text (string format) + */ + bodyAsText: string; + + /** + * The response body as parsed JSON or XML + */ + parsedBody: ExportModel; + }; +}; + +/** + * Contains response data for the getExecutionHistory operation. + */ +export type ExportsGetExecutionHistoryResponse = ExportExecutionListResult & { + /** + * The underlying HTTP response. + */ + _response: msRest.HttpResponse & { + /** + * The response body as text (string format) + */ + bodyAsText: string; + + /** + * The response body as parsed JSON or XML + */ + parsedBody: ExportExecutionListResult; + }; +}; diff --git a/sdk/cost-management/arm-costmanagement/src/models/mappers.ts b/sdk/cost-management/arm-costmanagement/src/models/mappers.ts new file mode 100644 index 000000000000..d9ede6353e6a --- /dev/null +++ b/sdk/cost-management/arm-costmanagement/src/models/mappers.ts @@ -0,0 +1,2165 @@ +/* + * Copyright (c) Microsoft Corporation. + * Licensed under the MIT License. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is regenerated. + */ + +import { CloudErrorMapper, BaseResourceMapper } from "@azure/ms-rest-azure-js"; +import * as msRest from "@azure/ms-rest-js"; + +export const CloudError = CloudErrorMapper; +export const BaseResource = BaseResourceMapper; + +export const ReportConfigTimePeriod: msRest.CompositeMapper = { + serializedName: "ReportConfigTimePeriod", + type: { + name: "Composite", + className: "ReportConfigTimePeriod", + modelProperties: { + from: { + required: true, + serializedName: "from", + type: { + name: "DateTime" + } + }, + to: { + required: true, + serializedName: "to", + type: { + name: "DateTime" + } + } + } + } +}; + +export const ReportConfigDatasetConfiguration: msRest.CompositeMapper = { + serializedName: "ReportConfigDatasetConfiguration", + type: { + name: "Composite", + className: "ReportConfigDatasetConfiguration", + modelProperties: { + columns: { + serializedName: "columns", + type: { + name: "Sequence", + element: { + type: { + name: "String" + } + } + } + } + } + } +}; + +export const ReportConfigAggregation: msRest.CompositeMapper = { + serializedName: "ReportConfigAggregation", + type: { + name: "Composite", + className: "ReportConfigAggregation", + modelProperties: { + name: { + required: true, + serializedName: "name", + type: { + name: "String" + } + }, + functionProperty: { + required: true, + serializedName: "function", + type: { + name: "String" + } + } + } + } +}; + +export const ReportConfigGrouping: msRest.CompositeMapper = { + serializedName: "ReportConfigGrouping", + type: { + name: "Composite", + className: "ReportConfigGrouping", + modelProperties: { + type: { + required: true, + serializedName: "type", + type: { + name: "String" + } + }, + name: { + required: true, + serializedName: "name", + type: { + name: "String" + } + } + } + } +}; + +export const ReportConfigSorting: msRest.CompositeMapper = { + serializedName: "ReportConfigSorting", + type: { + name: "Composite", + className: "ReportConfigSorting", + modelProperties: { + direction: { + serializedName: "direction", + type: { + name: "String" + } + }, + name: { + required: true, + serializedName: "name", + type: { + name: "String" + } + } + } + } +}; + +export const ReportConfigComparisonExpression: msRest.CompositeMapper = { + serializedName: "ReportConfigComparisonExpression", + type: { + name: "Composite", + className: "ReportConfigComparisonExpression", + modelProperties: { + name: { + required: true, + nullable: true, + serializedName: "name", + type: { + name: "String" + } + }, + operator: { + required: true, + serializedName: "operator", + type: { + name: "String" + } + }, + values: { + required: true, + serializedName: "values", + constraints: { + MinItems: 1 + }, + type: { + name: "Sequence", + element: { + type: { + name: "String" + } + } + } + } + } + } +}; + +export const ReportConfigFilter: msRest.CompositeMapper = { + serializedName: "ReportConfigFilter", + type: { + name: "Composite", + className: "ReportConfigFilter", + modelProperties: { + and: { + serializedName: "and", + constraints: { + MinItems: 2 + }, + type: { + name: "Sequence", + element: { + type: { + name: "Composite", + className: "ReportConfigFilter" + } + } + } + }, + or: { + serializedName: "or", + constraints: { + MinItems: 2 + }, + type: { + name: "Sequence", + element: { + type: { + name: "Composite", + className: "ReportConfigFilter" + } + } + } + }, + dimensions: { + serializedName: "dimensions", + type: { + name: "Composite", + className: "ReportConfigComparisonExpression" + } + }, + tags: { + serializedName: "tags", + type: { + name: "Composite", + className: "ReportConfigComparisonExpression" + } + }, + tagKey: { + serializedName: "tagKey", + type: { + name: "Composite", + className: "ReportConfigComparisonExpression" + } + }, + tagValue: { + serializedName: "tagValue", + type: { + name: "Composite", + className: "ReportConfigComparisonExpression" + } + } + } + } +}; + +export const ReportConfigDataset: msRest.CompositeMapper = { + serializedName: "ReportConfigDataset", + type: { + name: "Composite", + className: "ReportConfigDataset", + modelProperties: { + granularity: { + serializedName: "granularity", + type: { + name: "String" + } + }, + configuration: { + serializedName: "configuration", + type: { + name: "Composite", + className: "ReportConfigDatasetConfiguration" + } + }, + aggregation: { + serializedName: "aggregation", + type: { + name: "Dictionary", + value: { + type: { + name: "Composite", + className: "ReportConfigAggregation" + } + } + } + }, + grouping: { + serializedName: "grouping", + constraints: { + MaxItems: 2 + }, + type: { + name: "Sequence", + element: { + type: { + name: "Composite", + className: "ReportConfigGrouping" + } + } + } + }, + sorting: { + serializedName: "sorting", + type: { + name: "Sequence", + element: { + type: { + name: "Composite", + className: "ReportConfigSorting" + } + } + } + }, + filter: { + serializedName: "filter", + type: { + name: "Composite", + className: "ReportConfigFilter" + } + } + } + } +}; + +export const CacheItem: msRest.CompositeMapper = { + serializedName: "CacheItem", + type: { + name: "Composite", + className: "CacheItem", + modelProperties: { + id: { + required: true, + serializedName: "id", + type: { + name: "String" + } + }, + name: { + required: true, + serializedName: "name", + type: { + name: "String" + } + }, + channel: { + required: true, + serializedName: "channel", + type: { + name: "String" + } + }, + subchannel: { + required: true, + serializedName: "subchannel", + type: { + name: "String" + } + }, + parent: { + nullable: true, + serializedName: "parent", + type: { + name: "String" + } + }, + status: { + nullable: true, + serializedName: "status", + type: { + name: "String" + } + } + } + } +}; + +export const ProxySettingResource: msRest.CompositeMapper = { + serializedName: "ProxySettingResource", + type: { + name: "Composite", + className: "ProxySettingResource", + modelProperties: { + id: { + readOnly: true, + serializedName: "id", + type: { + name: "String" + } + }, + name: { + readOnly: true, + serializedName: "name", + type: { + name: "String" + } + }, + kind: { + readOnly: true, + serializedName: "kind", + constraints: { + MaxLength: 10 + }, + type: { + name: "String" + } + }, + type: { + readOnly: true, + serializedName: "type", + type: { + name: "String" + } + } + } + } +}; + +export const Setting: msRest.CompositeMapper = { + serializedName: "Setting", + type: { + name: "Composite", + className: "Setting", + modelProperties: { + ...ProxySettingResource.type.modelProperties, + scope: { + required: true, + serializedName: "properties.scope", + type: { + name: "String" + } + }, + startOn: { + nullable: true, + serializedName: "properties.startOn", + type: { + name: "String" + } + }, + cache: { + serializedName: "properties.cache", + type: { + name: "Sequence", + element: { + type: { + name: "Composite", + className: "CacheItem" + } + } + } + } + } + } +}; + +export const KpiProperties: msRest.CompositeMapper = { + serializedName: "KpiProperties", + type: { + name: "Composite", + className: "KpiProperties", + modelProperties: { + type: { + serializedName: "type", + type: { + name: "String" + } + }, + id: { + serializedName: "id", + type: { + name: "String" + } + }, + enabled: { + serializedName: "enabled", + type: { + name: "Boolean" + } + } + } + } +}; + +export const PivotProperties: msRest.CompositeMapper = { + serializedName: "PivotProperties", + type: { + name: "Composite", + className: "PivotProperties", + modelProperties: { + type: { + serializedName: "type", + type: { + name: "String" + } + }, + name: { + serializedName: "name", + type: { + name: "String" + } + } + } + } +}; + +export const ProxyResource: msRest.CompositeMapper = { + serializedName: "ProxyResource", + type: { + name: "Composite", + className: "ProxyResource", + modelProperties: { + id: { + readOnly: true, + serializedName: "id", + type: { + name: "String" + } + }, + name: { + readOnly: true, + serializedName: "name", + type: { + name: "String" + } + }, + type: { + readOnly: true, + serializedName: "type", + type: { + name: "String" + } + }, + eTag: { + serializedName: "eTag", + type: { + name: "String" + } + } + } + } +}; + +export const View: msRest.CompositeMapper = { + serializedName: "View", + type: { + name: "Composite", + className: "View", + modelProperties: { + ...ProxyResource.type.modelProperties, + displayName: { + serializedName: "properties.displayName", + type: { + name: "String" + } + }, + scope: { + serializedName: "properties.scope", + type: { + name: "String" + } + }, + createdOn: { + readOnly: true, + serializedName: "properties.createdOn", + type: { + name: "DateTime" + } + }, + modifiedOn: { + readOnly: true, + serializedName: "properties.modifiedOn", + type: { + name: "DateTime" + } + }, + dateRange: { + readOnly: true, + serializedName: "properties.dateRange", + type: { + name: "String" + } + }, + currency: { + readOnly: true, + serializedName: "properties.currency", + type: { + name: "String" + } + }, + viewType: { + required: true, + isConstant: true, + serializedName: "properties.query.type", + defaultValue: 'Usage', + type: { + name: "String" + } + }, + timeframe: { + required: true, + serializedName: "properties.query.timeframe", + type: { + name: "String" + } + }, + timePeriod: { + serializedName: "properties.query.timePeriod", + type: { + name: "Composite", + className: "ReportConfigTimePeriod" + } + }, + dataSet: { + serializedName: "properties.query.dataSet", + type: { + name: "Composite", + className: "ReportConfigDataset" + } + }, + includeMonetaryCommitment: { + readOnly: true, + serializedName: "properties.query.includeMonetaryCommitment", + type: { + name: "Boolean" + } + }, + chart: { + serializedName: "properties.chart", + type: { + name: "String" + } + }, + accumulated: { + serializedName: "properties.accumulated", + type: { + name: "String" + } + }, + metric: { + serializedName: "properties.metric", + type: { + name: "String" + } + }, + kpis: { + serializedName: "properties.kpis", + type: { + name: "Sequence", + element: { + type: { + name: "Composite", + className: "KpiProperties" + } + } + } + }, + pivots: { + serializedName: "properties.pivots", + type: { + name: "Sequence", + element: { + type: { + name: "Composite", + className: "PivotProperties" + } + } + } + } + } + } +}; + +export const ErrorDetails: msRest.CompositeMapper = { + serializedName: "ErrorDetails", + type: { + name: "Composite", + className: "ErrorDetails", + modelProperties: { + code: { + readOnly: true, + serializedName: "code", + type: { + name: "String" + } + }, + message: { + readOnly: true, + serializedName: "message", + type: { + name: "String" + } + } + } + } +}; + +export const ErrorResponse: msRest.CompositeMapper = { + serializedName: "ErrorResponse", + type: { + name: "Composite", + className: "ErrorResponse", + modelProperties: { + error: { + serializedName: "error", + type: { + name: "Composite", + className: "ErrorDetails" + } + } + } + } +}; + +export const Resource: msRest.CompositeMapper = { + serializedName: "Resource", + type: { + name: "Composite", + className: "Resource", + modelProperties: { + id: { + readOnly: true, + serializedName: "id", + type: { + name: "String" + } + }, + name: { + readOnly: true, + serializedName: "name", + type: { + name: "String" + } + }, + type: { + readOnly: true, + serializedName: "type", + type: { + name: "String" + } + }, + tags: { + readOnly: true, + serializedName: "tags", + type: { + name: "Dictionary", + value: { + type: { + name: "String" + } + } + } + } + } + } +}; + +export const Dimension: msRest.CompositeMapper = { + serializedName: "Dimension", + type: { + name: "Composite", + className: "Dimension", + modelProperties: { + ...Resource.type.modelProperties, + description: { + readOnly: true, + serializedName: "properties.description", + type: { + name: "String" + } + }, + filterEnabled: { + readOnly: true, + serializedName: "properties.filterEnabled", + type: { + name: "Boolean" + } + }, + groupingEnabled: { + readOnly: true, + serializedName: "properties.groupingEnabled", + type: { + name: "Boolean" + } + }, + data: { + serializedName: "properties.data", + type: { + name: "Sequence", + element: { + type: { + name: "String" + } + } + } + }, + total: { + readOnly: true, + serializedName: "properties.total", + type: { + name: "Number" + } + }, + category: { + readOnly: true, + serializedName: "properties.category", + type: { + name: "String" + } + }, + usageStart: { + readOnly: true, + serializedName: "properties.usageStart", + type: { + name: "DateTime" + } + }, + usageEnd: { + readOnly: true, + serializedName: "properties.usageEnd", + type: { + name: "DateTime" + } + }, + nextLink: { + readOnly: true, + serializedName: "properties.nextLink", + type: { + name: "String" + } + } + } + } +}; + +export const AlertPropertiesDefinition: msRest.CompositeMapper = { + serializedName: "AlertProperties_definition", + type: { + name: "Composite", + className: "AlertPropertiesDefinition", + modelProperties: { + type: { + serializedName: "type", + type: { + name: "String" + } + }, + category: { + serializedName: "category", + type: { + name: "String" + } + }, + criteria: { + serializedName: "criteria", + type: { + name: "String" + } + } + } + } +}; + +export const AlertPropertiesDetails: msRest.CompositeMapper = { + serializedName: "AlertProperties_details", + type: { + name: "Composite", + className: "AlertPropertiesDetails", + modelProperties: { + timeGrainType: { + serializedName: "timeGrainType", + type: { + name: "String" + } + }, + periodStartDate: { + serializedName: "periodStartDate", + type: { + name: "String" + } + }, + triggeredBy: { + serializedName: "triggeredBy", + type: { + name: "String" + } + }, + resourceGroupFilter: { + serializedName: "resourceGroupFilter", + type: { + name: "Sequence", + element: { + type: { + name: "Object" + } + } + } + }, + resourceFilter: { + serializedName: "resourceFilter", + type: { + name: "Sequence", + element: { + type: { + name: "Object" + } + } + } + }, + meterFilter: { + serializedName: "meterFilter", + type: { + name: "Sequence", + element: { + type: { + name: "Object" + } + } + } + }, + tagFilter: { + serializedName: "tagFilter", + type: { + name: "Object" + } + }, + threshold: { + serializedName: "threshold", + type: { + name: "Number" + } + }, + operator: { + serializedName: "operator", + type: { + name: "String" + } + }, + amount: { + serializedName: "amount", + type: { + name: "Number" + } + }, + unit: { + serializedName: "unit", + type: { + name: "String" + } + }, + currentSpend: { + serializedName: "currentSpend", + type: { + name: "Number" + } + }, + contactEmails: { + serializedName: "contactEmails", + type: { + name: "Sequence", + element: { + type: { + name: "String" + } + } + } + }, + contactGroups: { + serializedName: "contactGroups", + type: { + name: "Sequence", + element: { + type: { + name: "String" + } + } + } + }, + contactRoles: { + serializedName: "contactRoles", + type: { + name: "Sequence", + element: { + type: { + name: "String" + } + } + } + }, + overridingAlert: { + serializedName: "overridingAlert", + type: { + name: "String" + } + } + } + } +}; + +export const Alert: msRest.CompositeMapper = { + serializedName: "Alert", + type: { + name: "Composite", + className: "Alert", + modelProperties: { + ...Resource.type.modelProperties, + definition: { + serializedName: "properties.definition", + type: { + name: "Composite", + className: "AlertPropertiesDefinition" + } + }, + description: { + serializedName: "properties.description", + type: { + name: "String" + } + }, + source: { + serializedName: "properties.source", + type: { + name: "String" + } + }, + details: { + serializedName: "properties.details", + type: { + name: "Composite", + className: "AlertPropertiesDetails" + } + }, + costEntityId: { + serializedName: "properties.costEntityId", + type: { + name: "String" + } + }, + status: { + serializedName: "properties.status", + type: { + name: "String" + } + }, + creationTime: { + serializedName: "properties.creationTime", + type: { + name: "String" + } + }, + closeTime: { + serializedName: "properties.closeTime", + type: { + name: "String" + } + }, + modificationTime: { + serializedName: "properties.modificationTime", + type: { + name: "String" + } + }, + statusModificationUserName: { + serializedName: "properties.statusModificationUserName", + type: { + name: "String" + } + }, + statusModificationTime: { + serializedName: "properties.statusModificationTime", + type: { + name: "String" + } + } + } + } +}; + +export const AlertsResult: msRest.CompositeMapper = { + serializedName: "AlertsResult", + type: { + name: "Composite", + className: "AlertsResult", + modelProperties: { + value: { + readOnly: true, + serializedName: "value", + type: { + name: "Sequence", + element: { + type: { + name: "Composite", + className: "Alert" + } + } + } + }, + nextLink: { + readOnly: true, + serializedName: "nextLink", + type: { + name: "String" + } + } + } + } +}; + +export const DismissAlertPayload: msRest.CompositeMapper = { + serializedName: "DismissAlertPayload", + type: { + name: "Composite", + className: "DismissAlertPayload", + modelProperties: { + definition: { + serializedName: "properties.definition", + type: { + name: "Composite", + className: "AlertPropertiesDefinition" + } + }, + description: { + serializedName: "properties.description", + type: { + name: "String" + } + }, + source: { + serializedName: "properties.source", + type: { + name: "String" + } + }, + details: { + serializedName: "properties.details", + type: { + name: "Composite", + className: "AlertPropertiesDetails" + } + }, + costEntityId: { + serializedName: "properties.costEntityId", + type: { + name: "String" + } + }, + status: { + serializedName: "properties.status", + type: { + name: "String" + } + }, + creationTime: { + serializedName: "properties.creationTime", + type: { + name: "String" + } + }, + closeTime: { + serializedName: "properties.closeTime", + type: { + name: "String" + } + }, + modificationTime: { + serializedName: "properties.modificationTime", + type: { + name: "String" + } + }, + statusModificationUserName: { + serializedName: "properties.statusModificationUserName", + type: { + name: "String" + } + }, + statusModificationTime: { + serializedName: "properties.statusModificationTime", + type: { + name: "String" + } + } + } + } +}; + +export const QueryColumn: msRest.CompositeMapper = { + serializedName: "QueryColumn", + type: { + name: "Composite", + className: "QueryColumn", + modelProperties: { + name: { + serializedName: "name", + type: { + name: "String" + } + }, + type: { + serializedName: "type", + type: { + name: "String" + } + } + } + } +}; + +export const QueryResult: msRest.CompositeMapper = { + serializedName: "QueryResult", + type: { + name: "Composite", + className: "QueryResult", + modelProperties: { + ...Resource.type.modelProperties, + eTag: { + serializedName: "eTag", + type: { + name: "String" + } + }, + location: { + readOnly: true, + serializedName: "location", + type: { + name: "String" + } + }, + sku: { + readOnly: true, + serializedName: "sku", + type: { + name: "String" + } + }, + nextLink: { + serializedName: "properties.nextLink", + type: { + name: "String" + } + }, + columns: { + serializedName: "properties.columns", + type: { + name: "Sequence", + element: { + type: { + name: "Composite", + className: "QueryColumn" + } + } + } + }, + rows: { + serializedName: "properties.rows", + type: { + name: "Sequence", + element: { + type: { + name: "Sequence", + element: { + type: { + name: "Object" + } + } + } + } + } + } + } + } +}; + +export const OperationDisplay: msRest.CompositeMapper = { + serializedName: "Operation_display", + type: { + name: "Composite", + className: "OperationDisplay", + modelProperties: { + provider: { + readOnly: true, + serializedName: "provider", + type: { + name: "String" + } + }, + resource: { + readOnly: true, + serializedName: "resource", + type: { + name: "String" + } + }, + operation: { + readOnly: true, + serializedName: "operation", + type: { + name: "String" + } + } + } + } +}; + +export const Operation: msRest.CompositeMapper = { + serializedName: "Operation", + type: { + name: "Composite", + className: "Operation", + modelProperties: { + name: { + readOnly: true, + serializedName: "name", + type: { + name: "String" + } + }, + display: { + serializedName: "display", + type: { + name: "Composite", + className: "OperationDisplay" + } + } + } + } +}; + +export const QueryTimePeriod: msRest.CompositeMapper = { + serializedName: "QueryTimePeriod", + type: { + name: "Composite", + className: "QueryTimePeriod", + modelProperties: { + from: { + required: true, + serializedName: "from", + type: { + name: "DateTime" + } + }, + to: { + required: true, + serializedName: "to", + type: { + name: "DateTime" + } + } + } + } +}; + +export const QueryDatasetConfiguration: msRest.CompositeMapper = { + serializedName: "QueryDatasetConfiguration", + type: { + name: "Composite", + className: "QueryDatasetConfiguration", + modelProperties: { + columns: { + serializedName: "columns", + type: { + name: "Sequence", + element: { + type: { + name: "String" + } + } + } + } + } + } +}; + +export const QueryAggregation: msRest.CompositeMapper = { + serializedName: "QueryAggregation", + type: { + name: "Composite", + className: "QueryAggregation", + modelProperties: { + name: { + required: true, + serializedName: "name", + type: { + name: "String" + } + }, + functionProperty: { + required: true, + serializedName: "function", + type: { + name: "String" + } + } + } + } +}; + +export const QueryGrouping: msRest.CompositeMapper = { + serializedName: "QueryGrouping", + type: { + name: "Composite", + className: "QueryGrouping", + modelProperties: { + type: { + required: true, + serializedName: "type", + type: { + name: "String" + } + }, + name: { + required: true, + serializedName: "name", + type: { + name: "String" + } + } + } + } +}; + +export const QueryComparisonExpression: msRest.CompositeMapper = { + serializedName: "QueryComparisonExpression", + type: { + name: "Composite", + className: "QueryComparisonExpression", + modelProperties: { + name: { + required: true, + serializedName: "name", + type: { + name: "String" + } + }, + operator: { + required: true, + isConstant: true, + serializedName: "operator", + defaultValue: 'In', + type: { + name: "String" + } + }, + values: { + required: true, + serializedName: "values", + constraints: { + MinItems: 1 + }, + type: { + name: "Sequence", + element: { + type: { + name: "String" + } + } + } + } + } + } +}; + +export const QueryFilter: msRest.CompositeMapper = { + serializedName: "QueryFilter", + type: { + name: "Composite", + className: "QueryFilter", + modelProperties: { + and: { + serializedName: "and", + constraints: { + MinItems: 2 + }, + type: { + name: "Sequence", + element: { + type: { + name: "Composite", + className: "QueryFilter" + } + } + } + }, + or: { + serializedName: "or", + constraints: { + MinItems: 2 + }, + type: { + name: "Sequence", + element: { + type: { + name: "Composite", + className: "QueryFilter" + } + } + } + }, + dimensions: { + serializedName: "dimensions", + type: { + name: "Composite", + className: "QueryComparisonExpression" + } + }, + tags: { + serializedName: "tags", + type: { + name: "Composite", + className: "QueryComparisonExpression" + } + } + } + } +}; + +export const QueryDataset: msRest.CompositeMapper = { + serializedName: "QueryDataset", + type: { + name: "Composite", + className: "QueryDataset", + modelProperties: { + granularity: { + serializedName: "granularity", + type: { + name: "String" + } + }, + configuration: { + serializedName: "configuration", + type: { + name: "Composite", + className: "QueryDatasetConfiguration" + } + }, + aggregation: { + serializedName: "aggregation", + type: { + name: "Dictionary", + value: { + type: { + name: "Composite", + className: "QueryAggregation" + } + } + } + }, + grouping: { + serializedName: "grouping", + constraints: { + MaxItems: 2 + }, + type: { + name: "Sequence", + element: { + type: { + name: "Composite", + className: "QueryGrouping" + } + } + } + }, + filter: { + serializedName: "filter", + type: { + name: "Composite", + className: "QueryFilter" + } + } + } + } +}; + +export const ForecastDefinition: msRest.CompositeMapper = { + serializedName: "ForecastDefinition", + type: { + name: "Composite", + className: "ForecastDefinition", + modelProperties: { + type: { + required: true, + serializedName: "type", + type: { + name: "String" + } + }, + timeframe: { + required: true, + serializedName: "timeframe", + type: { + name: "String" + } + }, + timePeriod: { + serializedName: "timePeriod", + type: { + name: "Composite", + className: "QueryTimePeriod" + } + }, + dataset: { + serializedName: "dataset", + type: { + name: "Composite", + className: "QueryDataset" + } + }, + includeActualCost: { + serializedName: "includeActualCost", + type: { + name: "Boolean" + } + }, + includeFreshPartialCost: { + serializedName: "includeFreshPartialCost", + type: { + name: "Boolean" + } + } + } + } +}; + +export const QueryDefinition: msRest.CompositeMapper = { + serializedName: "QueryDefinition", + type: { + name: "Composite", + className: "QueryDefinition", + modelProperties: { + type: { + required: true, + serializedName: "type", + type: { + name: "String" + } + }, + timeframe: { + required: true, + serializedName: "timeframe", + type: { + name: "String" + } + }, + timePeriod: { + serializedName: "timePeriod", + type: { + name: "Composite", + className: "QueryTimePeriod" + } + }, + dataset: { + serializedName: "dataset", + type: { + name: "Composite", + className: "QueryDataset" + } + } + } + } +}; + +export const Status: msRest.CompositeMapper = { + serializedName: "Status", + type: { + name: "Composite", + className: "Status", + modelProperties: { + status: { + serializedName: "status", + type: { + name: "String" + } + } + } + } +}; + +export const OperationStatus: msRest.CompositeMapper = { + serializedName: "OperationStatus", + type: { + name: "Composite", + className: "OperationStatus", + modelProperties: { + status: { + serializedName: "status", + type: { + name: "Composite", + className: "Status" + } + }, + reportUrl: { + serializedName: "properties.reportUrl", + type: { + name: "String" + } + }, + validUntil: { + serializedName: "properties.validUntil", + type: { + name: "DateTime" + } + } + } + } +}; + +export const ExportDefinition: msRest.CompositeMapper = { + serializedName: "ExportDefinition", + type: { + name: "Composite", + className: "ExportDefinition", + modelProperties: { + type: { + required: true, + serializedName: "type", + type: { + name: "String" + } + }, + timeframe: { + required: true, + serializedName: "timeframe", + type: { + name: "String" + } + }, + timePeriod: { + serializedName: "timePeriod", + type: { + name: "Composite", + className: "QueryTimePeriod" + } + }, + dataSet: { + serializedName: "dataSet", + type: { + name: "Composite", + className: "QueryDataset" + } + } + } + } +}; + +export const ExportRecurrencePeriod: msRest.CompositeMapper = { + serializedName: "ExportRecurrencePeriod", + type: { + name: "Composite", + className: "ExportRecurrencePeriod", + modelProperties: { + from: { + required: true, + serializedName: "from", + type: { + name: "DateTime" + } + }, + to: { + serializedName: "to", + type: { + name: "DateTime" + } + } + } + } +}; + +export const ExportSchedule: msRest.CompositeMapper = { + serializedName: "ExportSchedule", + type: { + name: "Composite", + className: "ExportSchedule", + modelProperties: { + status: { + serializedName: "status", + type: { + name: "String" + } + }, + recurrence: { + required: true, + serializedName: "recurrence", + type: { + name: "String" + } + }, + recurrencePeriod: { + serializedName: "recurrencePeriod", + type: { + name: "Composite", + className: "ExportRecurrencePeriod" + } + } + } + } +}; + +export const ExportModel: msRest.CompositeMapper = { + serializedName: "Export", + type: { + name: "Composite", + className: "ExportModel", + modelProperties: { + ...ProxyResource.type.modelProperties, + format: { + serializedName: "properties.format", + type: { + name: "String" + } + }, + deliveryInfo: { + required: true, + serializedName: "properties.deliveryInfo", + type: { + name: "Composite", + className: "ExportDeliveryInfo" + } + }, + definition: { + required: true, + serializedName: "properties.definition", + defaultValue: {}, + type: { + name: "Composite", + className: "ExportDefinition" + } + }, + schedule: { + serializedName: "properties.schedule", + type: { + name: "Composite", + className: "ExportSchedule" + } + } + } + } +}; + +export const ExportListResult: msRest.CompositeMapper = { + serializedName: "ExportListResult", + type: { + name: "Composite", + className: "ExportListResult", + modelProperties: { + value: { + readOnly: true, + serializedName: "value", + type: { + name: "Sequence", + element: { + type: { + name: "Composite", + className: "ExportModel" + } + } + } + } + } + } +}; + +export const ExportDeliveryDestination: msRest.CompositeMapper = { + serializedName: "ExportDeliveryDestination", + type: { + name: "Composite", + className: "ExportDeliveryDestination", + modelProperties: { + resourceId: { + required: true, + serializedName: "resourceId", + type: { + name: "String" + } + }, + container: { + required: true, + serializedName: "container", + type: { + name: "String" + } + }, + rootFolderPath: { + serializedName: "rootFolderPath", + type: { + name: "String" + } + } + } + } +}; + +export const ExportDeliveryInfo: msRest.CompositeMapper = { + serializedName: "ExportDeliveryInfo", + type: { + name: "Composite", + className: "ExportDeliveryInfo", + modelProperties: { + destination: { + required: true, + serializedName: "destination", + type: { + name: "Composite", + className: "ExportDeliveryDestination" + } + } + } + } +}; + +export const CommonExportProperties: msRest.CompositeMapper = { + serializedName: "CommonExportProperties", + type: { + name: "Composite", + className: "CommonExportProperties", + modelProperties: { + format: { + serializedName: "format", + type: { + name: "String" + } + }, + deliveryInfo: { + required: true, + serializedName: "deliveryInfo", + type: { + name: "Composite", + className: "ExportDeliveryInfo" + } + }, + definition: { + required: true, + serializedName: "definition", + defaultValue: {}, + type: { + name: "Composite", + className: "ExportDefinition" + } + } + } + } +}; + +export const ExportExecution: msRest.CompositeMapper = { + serializedName: "ExportExecution", + type: { + name: "Composite", + className: "ExportExecution", + modelProperties: { + ...Resource.type.modelProperties, + executionType: { + serializedName: "properties.executionType", + type: { + name: "String" + } + }, + status: { + serializedName: "properties.status", + type: { + name: "String" + } + }, + submittedBy: { + serializedName: "properties.submittedBy", + type: { + name: "String" + } + }, + submittedTime: { + serializedName: "properties.submittedTime", + type: { + name: "DateTime" + } + }, + processingStartTime: { + serializedName: "properties.processingStartTime", + type: { + name: "DateTime" + } + }, + processingEndTime: { + serializedName: "properties.processingEndTime", + type: { + name: "DateTime" + } + }, + fileName: { + serializedName: "properties.fileName", + type: { + name: "String" + } + }, + runSettings: { + serializedName: "properties.runSettings", + type: { + name: "Composite", + className: "CommonExportProperties" + } + } + } + } +}; + +export const ExportExecutionListResult: msRest.CompositeMapper = { + serializedName: "ExportExecutionListResult", + type: { + name: "Composite", + className: "ExportExecutionListResult", + modelProperties: { + value: { + readOnly: true, + serializedName: "value", + type: { + name: "Sequence", + element: { + type: { + name: "Composite", + className: "ExportExecution" + } + } + } + } + } + } +}; + +export const GenerateReservationDetailsReportByBillingAccountIdHeaders: msRest.CompositeMapper = { + serializedName: "generatereservationdetailsreport-bybillingaccountid-headers", + type: { + name: "Composite", + className: "GenerateReservationDetailsReportByBillingAccountIdHeaders", + modelProperties: { + location: { + serializedName: "location", + type: { + name: "String" + } + }, + retryAfter: { + serializedName: "retry-after", + type: { + name: "Number" + } + } + } + } +}; + +export const GenerateReservationDetailsReportByBillingProfileIdHeaders: msRest.CompositeMapper = { + serializedName: "generatereservationdetailsreport-bybillingprofileid-headers", + type: { + name: "Composite", + className: "GenerateReservationDetailsReportByBillingProfileIdHeaders", + modelProperties: { + location: { + serializedName: "location", + type: { + name: "String" + } + }, + retryAfter: { + serializedName: "retry-after", + type: { + name: "Number" + } + } + } + } +}; + +export const SettingsListResult: msRest.CompositeMapper = { + serializedName: "SettingsListResult", + type: { + name: "Composite", + className: "SettingsListResult", + modelProperties: { + value: { + readOnly: true, + serializedName: "", + constraints: { + MaxItems: 10 + }, + type: { + name: "Sequence", + element: { + type: { + name: "Composite", + className: "Setting" + } + } + } + }, + nextLink: { + readOnly: true, + serializedName: "nextLink", + type: { + name: "String" + } + } + } + } +}; + +export const ViewListResult: msRest.CompositeMapper = { + serializedName: "ViewListResult", + type: { + name: "Composite", + className: "ViewListResult", + modelProperties: { + value: { + readOnly: true, + serializedName: "", + type: { + name: "Sequence", + element: { + type: { + name: "Composite", + className: "View" + } + } + } + }, + nextLink: { + readOnly: true, + serializedName: "nextLink", + type: { + name: "String" + } + } + } + } +}; + +export const DimensionsListResult: msRest.CompositeMapper = { + serializedName: "DimensionsListResult", + type: { + name: "Composite", + className: "DimensionsListResult", + modelProperties: { + value: { + readOnly: true, + serializedName: "", + type: { + name: "Sequence", + element: { + type: { + name: "Composite", + className: "Dimension" + } + } + } + } + } + } +}; + +export const OperationListResult: msRest.CompositeMapper = { + serializedName: "OperationListResult", + type: { + name: "Composite", + className: "OperationListResult", + modelProperties: { + value: { + readOnly: true, + serializedName: "", + type: { + name: "Sequence", + element: { + type: { + name: "Composite", + className: "Operation" + } + } + } + }, + nextLink: { + readOnly: true, + serializedName: "nextLink", + type: { + name: "String" + } + } + } + } +}; diff --git a/sdk/cost-management/arm-costmanagement/src/models/operationsMappers.ts b/sdk/cost-management/arm-costmanagement/src/models/operationsMappers.ts new file mode 100644 index 000000000000..1503eabc4389 --- /dev/null +++ b/sdk/cost-management/arm-costmanagement/src/models/operationsMappers.ts @@ -0,0 +1,15 @@ +/* + * Copyright (c) Microsoft Corporation. + * Licensed under the MIT License. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is regenerated. + */ + +export { + ErrorDetails, + ErrorResponse, + Operation, + OperationDisplay, + OperationListResult +} from "../models/mappers"; diff --git a/sdk/cost-management/arm-costmanagement/src/models/parameters.ts b/sdk/cost-management/arm-costmanagement/src/models/parameters.ts new file mode 100644 index 000000000000..7355b854002b --- /dev/null +++ b/sdk/cost-management/arm-costmanagement/src/models/parameters.ts @@ -0,0 +1,219 @@ +/* + * Copyright (c) Microsoft Corporation. + * Licensed under the MIT License. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is + * regenerated. + */ + +import * as msRest from "@azure/ms-rest-js"; + +export const acceptLanguage: msRest.OperationParameter = { + parameterPath: "acceptLanguage", + mapper: { + serializedName: "accept-language", + defaultValue: 'en-US', + type: { + name: "String" + } + } +}; +export const alertId: msRest.OperationURLParameter = { + parameterPath: "alertId", + mapper: { + required: true, + serializedName: "alertId", + type: { + name: "String" + } + }, + skipEncoding: true +}; +export const apiVersion: msRest.OperationQueryParameter = { + parameterPath: "apiVersion", + mapper: { + required: true, + serializedName: "api-version", + type: { + name: "String" + } + } +}; +export const billingAccountId: msRest.OperationURLParameter = { + parameterPath: "billingAccountId", + mapper: { + required: true, + serializedName: "billingAccountId", + type: { + name: "String" + } + } +}; +export const billingProfileId: msRest.OperationURLParameter = { + parameterPath: "billingProfileId", + mapper: { + required: true, + serializedName: "billingProfileId", + type: { + name: "String" + } + } +}; +export const endDate: msRest.OperationQueryParameter = { + parameterPath: "endDate", + mapper: { + required: true, + serializedName: "endDate", + type: { + name: "String" + } + } +}; +export const expand: msRest.OperationQueryParameter = { + parameterPath: [ + "options", + "expand" + ], + mapper: { + serializedName: "$expand", + type: { + name: "String" + } + } +}; +export const exportName: msRest.OperationURLParameter = { + parameterPath: "exportName", + mapper: { + required: true, + serializedName: "exportName", + type: { + name: "String" + } + } +}; +export const externalCloudProviderId: msRest.OperationURLParameter = { + parameterPath: "externalCloudProviderId", + mapper: { + required: true, + serializedName: "externalCloudProviderId", + type: { + name: "String" + } + } +}; +export const externalCloudProviderType: msRest.OperationURLParameter = { + parameterPath: "externalCloudProviderType", + mapper: { + required: true, + serializedName: "externalCloudProviderType", + type: { + name: "String" + } + } +}; +export const filter: msRest.OperationQueryParameter = { + parameterPath: [ + "options", + "filter" + ], + mapper: { + serializedName: "$filter", + type: { + name: "String" + } + } +}; +export const nextPageLink: msRest.OperationURLParameter = { + parameterPath: "nextPageLink", + mapper: { + required: true, + serializedName: "nextLink", + type: { + name: "String" + } + }, + skipEncoding: true +}; +export const scope0: msRest.OperationURLParameter = { + parameterPath: "scope", + mapper: { + required: true, + serializedName: "scope", + type: { + name: "String" + } + } +}; +export const scope1: msRest.OperationURLParameter = { + parameterPath: "scope", + mapper: { + required: true, + serializedName: "scope", + type: { + name: "String" + } + }, + skipEncoding: true +}; +export const settingName: msRest.OperationURLParameter = { + parameterPath: "settingName", + mapper: { + required: true, + serializedName: "settingName", + constraints: { + MaxLength: 32 + }, + type: { + name: "String" + } + } +}; +export const skiptoken: msRest.OperationQueryParameter = { + parameterPath: [ + "options", + "skiptoken" + ], + mapper: { + serializedName: "$skiptoken", + type: { + name: "String" + } + } +}; +export const startDate: msRest.OperationQueryParameter = { + parameterPath: "startDate", + mapper: { + required: true, + serializedName: "startDate", + type: { + name: "String" + } + } +}; +export const top: msRest.OperationQueryParameter = { + parameterPath: [ + "options", + "top" + ], + mapper: { + serializedName: "$top", + constraints: { + InclusiveMaximum: 1000, + InclusiveMinimum: 1 + }, + type: { + name: "Number" + } + } +}; +export const viewName: msRest.OperationURLParameter = { + parameterPath: "viewName", + mapper: { + required: true, + serializedName: "viewName", + type: { + name: "String" + } + } +}; diff --git a/sdk/cost-management/arm-costmanagement/src/models/queryMappers.ts b/sdk/cost-management/arm-costmanagement/src/models/queryMappers.ts new file mode 100644 index 000000000000..5c5d643f601d --- /dev/null +++ b/sdk/cost-management/arm-costmanagement/src/models/queryMappers.ts @@ -0,0 +1,51 @@ +/* + * Copyright (c) Microsoft Corporation. + * Licensed under the MIT License. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is regenerated. + */ + +export { + Alert, + AlertPropertiesDefinition, + AlertPropertiesDetails, + BaseResource, + CacheItem, + CommonExportProperties, + Dimension, + ErrorDetails, + ErrorResponse, + ExportDefinition, + ExportDeliveryDestination, + ExportDeliveryInfo, + ExportExecution, + ExportModel, + ExportRecurrencePeriod, + ExportSchedule, + KpiProperties, + PivotProperties, + ProxyResource, + ProxySettingResource, + QueryAggregation, + QueryColumn, + QueryComparisonExpression, + QueryDataset, + QueryDatasetConfiguration, + QueryDefinition, + QueryFilter, + QueryGrouping, + QueryResult, + QueryTimePeriod, + ReportConfigAggregation, + ReportConfigComparisonExpression, + ReportConfigDataset, + ReportConfigDatasetConfiguration, + ReportConfigFilter, + ReportConfigGrouping, + ReportConfigSorting, + ReportConfigTimePeriod, + Resource, + Setting, + View +} from "../models/mappers"; diff --git a/sdk/cost-management/arm-costmanagement/src/models/settingsMappers.ts b/sdk/cost-management/arm-costmanagement/src/models/settingsMappers.ts new file mode 100644 index 000000000000..ed62981ec5f5 --- /dev/null +++ b/sdk/cost-management/arm-costmanagement/src/models/settingsMappers.ts @@ -0,0 +1,51 @@ +/* + * Copyright (c) Microsoft Corporation. + * Licensed under the MIT License. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is regenerated. + */ + +export { + Alert, + AlertPropertiesDefinition, + AlertPropertiesDetails, + BaseResource, + CacheItem, + CommonExportProperties, + Dimension, + ErrorDetails, + ErrorResponse, + ExportDefinition, + ExportDeliveryDestination, + ExportDeliveryInfo, + ExportExecution, + ExportModel, + ExportRecurrencePeriod, + ExportSchedule, + KpiProperties, + PivotProperties, + ProxyResource, + ProxySettingResource, + QueryAggregation, + QueryColumn, + QueryComparisonExpression, + QueryDataset, + QueryDatasetConfiguration, + QueryFilter, + QueryGrouping, + QueryResult, + QueryTimePeriod, + ReportConfigAggregation, + ReportConfigComparisonExpression, + ReportConfigDataset, + ReportConfigDatasetConfiguration, + ReportConfigFilter, + ReportConfigGrouping, + ReportConfigSorting, + ReportConfigTimePeriod, + Resource, + Setting, + SettingsListResult, + View +} from "../models/mappers"; diff --git a/sdk/cost-management/arm-costmanagement/src/models/viewsMappers.ts b/sdk/cost-management/arm-costmanagement/src/models/viewsMappers.ts new file mode 100644 index 000000000000..15607ae781e0 --- /dev/null +++ b/sdk/cost-management/arm-costmanagement/src/models/viewsMappers.ts @@ -0,0 +1,51 @@ +/* + * Copyright (c) Microsoft Corporation. + * Licensed under the MIT License. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is regenerated. + */ + +export { + Alert, + AlertPropertiesDefinition, + AlertPropertiesDetails, + BaseResource, + CacheItem, + CommonExportProperties, + Dimension, + ErrorDetails, + ErrorResponse, + ExportDefinition, + ExportDeliveryDestination, + ExportDeliveryInfo, + ExportExecution, + ExportModel, + ExportRecurrencePeriod, + ExportSchedule, + KpiProperties, + PivotProperties, + ProxyResource, + ProxySettingResource, + QueryAggregation, + QueryColumn, + QueryComparisonExpression, + QueryDataset, + QueryDatasetConfiguration, + QueryFilter, + QueryGrouping, + QueryResult, + QueryTimePeriod, + ReportConfigAggregation, + ReportConfigComparisonExpression, + ReportConfigDataset, + ReportConfigDatasetConfiguration, + ReportConfigFilter, + ReportConfigGrouping, + ReportConfigSorting, + ReportConfigTimePeriod, + Resource, + Setting, + View, + ViewListResult +} from "../models/mappers"; diff --git a/sdk/cost-management/arm-costmanagement/src/operations/alerts.ts b/sdk/cost-management/arm-costmanagement/src/operations/alerts.ts new file mode 100644 index 000000000000..a4f7b6065ef6 --- /dev/null +++ b/sdk/cost-management/arm-costmanagement/src/operations/alerts.ts @@ -0,0 +1,406 @@ +/* + * Copyright (c) Microsoft Corporation. + * Licensed under the MIT License. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is + * regenerated. + */ + +import * as msRest from "@azure/ms-rest-js"; +import * as Models from "../models"; +import * as Mappers from "../models/alertsMappers"; +import * as Parameters from "../models/parameters"; +import { CostManagementClientContext } from "../costManagementClientContext"; + +/** Class representing a Alerts. */ +export class Alerts { + private readonly client: CostManagementClientContext; + + /** + * Create a Alerts. + * @param {CostManagementClientContext} client Reference to the service client. + */ + constructor(client: CostManagementClientContext) { + this.client = client; + } + + /** + * Lists the alerts for scope defined. + * @param scope The scope associated with alerts operations. This includes + * '/subscriptions/{subscriptionId}/' for subscription scope, + * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * '/providers/Microsoft.Management/managementGroups/{managementGroupId} for Management Group + * scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for billingProfile scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/invoiceSections/{invoiceSectionId}' + * for invoiceSection scope, and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' + * specific for partners. + * @param [options] The optional parameters + * @returns Promise + */ + list(scope: string, options?: msRest.RequestOptionsBase): Promise; + /** + * @param scope The scope associated with alerts operations. This includes + * '/subscriptions/{subscriptionId}/' for subscription scope, + * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * '/providers/Microsoft.Management/managementGroups/{managementGroupId} for Management Group + * scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for billingProfile scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/invoiceSections/{invoiceSectionId}' + * for invoiceSection scope, and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' + * specific for partners. + * @param callback The callback + */ + list(scope: string, callback: msRest.ServiceCallback): void; + /** + * @param scope The scope associated with alerts operations. This includes + * '/subscriptions/{subscriptionId}/' for subscription scope, + * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * '/providers/Microsoft.Management/managementGroups/{managementGroupId} for Management Group + * scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for billingProfile scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/invoiceSections/{invoiceSectionId}' + * for invoiceSection scope, and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' + * specific for partners. + * @param options The optional parameters + * @param callback The callback + */ + list(scope: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void; + list(scope: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise { + return this.client.sendOperationRequest( + { + scope, + options + }, + listOperationSpec, + callback) as Promise; + } + + /** + * Gets the alert for the scope by alert ID. + * @param scope The scope associated with alerts operations. This includes + * '/subscriptions/{subscriptionId}/' for subscription scope, + * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * '/providers/Microsoft.Management/managementGroups/{managementGroupId} for Management Group + * scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for billingProfile scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/invoiceSections/{invoiceSectionId}' + * for invoiceSection scope, and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' + * specific for partners. + * @param alertId Alert ID + * @param [options] The optional parameters + * @returns Promise + */ + get(scope: string, alertId: string, options?: msRest.RequestOptionsBase): Promise; + /** + * @param scope The scope associated with alerts operations. This includes + * '/subscriptions/{subscriptionId}/' for subscription scope, + * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * '/providers/Microsoft.Management/managementGroups/{managementGroupId} for Management Group + * scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for billingProfile scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/invoiceSections/{invoiceSectionId}' + * for invoiceSection scope, and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' + * specific for partners. + * @param alertId Alert ID + * @param callback The callback + */ + get(scope: string, alertId: string, callback: msRest.ServiceCallback): void; + /** + * @param scope The scope associated with alerts operations. This includes + * '/subscriptions/{subscriptionId}/' for subscription scope, + * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * '/providers/Microsoft.Management/managementGroups/{managementGroupId} for Management Group + * scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for billingProfile scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/invoiceSections/{invoiceSectionId}' + * for invoiceSection scope, and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' + * specific for partners. + * @param alertId Alert ID + * @param options The optional parameters + * @param callback The callback + */ + get(scope: string, alertId: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void; + get(scope: string, alertId: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise { + return this.client.sendOperationRequest( + { + scope, + alertId, + options + }, + getOperationSpec, + callback) as Promise; + } + + /** + * Dismisses the specified alert + * @param scope The scope associated with alerts operations. This includes + * '/subscriptions/{subscriptionId}/' for subscription scope, + * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * '/providers/Microsoft.Management/managementGroups/{managementGroupId} for Management Group + * scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for billingProfile scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/invoiceSections/{invoiceSectionId}' + * for invoiceSection scope, and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' + * specific for partners. + * @param alertId Alert ID + * @param parameters Parameters supplied to the Dismiss Alert operation. + * @param [options] The optional parameters + * @returns Promise + */ + dismiss(scope: string, alertId: string, parameters: Models.DismissAlertPayload, options?: msRest.RequestOptionsBase): Promise; + /** + * @param scope The scope associated with alerts operations. This includes + * '/subscriptions/{subscriptionId}/' for subscription scope, + * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * '/providers/Microsoft.Management/managementGroups/{managementGroupId} for Management Group + * scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for billingProfile scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/invoiceSections/{invoiceSectionId}' + * for invoiceSection scope, and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' + * specific for partners. + * @param alertId Alert ID + * @param parameters Parameters supplied to the Dismiss Alert operation. + * @param callback The callback + */ + dismiss(scope: string, alertId: string, parameters: Models.DismissAlertPayload, callback: msRest.ServiceCallback): void; + /** + * @param scope The scope associated with alerts operations. This includes + * '/subscriptions/{subscriptionId}/' for subscription scope, + * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * '/providers/Microsoft.Management/managementGroups/{managementGroupId} for Management Group + * scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for billingProfile scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/invoiceSections/{invoiceSectionId}' + * for invoiceSection scope, and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' + * specific for partners. + * @param alertId Alert ID + * @param parameters Parameters supplied to the Dismiss Alert operation. + * @param options The optional parameters + * @param callback The callback + */ + dismiss(scope: string, alertId: string, parameters: Models.DismissAlertPayload, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void; + dismiss(scope: string, alertId: string, parameters: Models.DismissAlertPayload, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise { + return this.client.sendOperationRequest( + { + scope, + alertId, + parameters, + options + }, + dismissOperationSpec, + callback) as Promise; + } + + /** + * Lists the Alerts for external cloud provider type defined. + * @param externalCloudProviderType The external cloud provider type associated with + * dimension/query operations. This includes 'externalSubscriptions' for linked account and + * 'externalBillingAccounts' for consolidated account. Possible values include: + * 'externalSubscriptions', 'externalBillingAccounts' + * @param externalCloudProviderId This can be '{externalSubscriptionId}' for linked account or + * '{externalBillingAccountId}' for consolidated account used with dimension/query operations. + * @param [options] The optional parameters + * @returns Promise + */ + listExternal(externalCloudProviderType: Models.ExternalCloudProviderType, externalCloudProviderId: string, options?: msRest.RequestOptionsBase): Promise; + /** + * @param externalCloudProviderType The external cloud provider type associated with + * dimension/query operations. This includes 'externalSubscriptions' for linked account and + * 'externalBillingAccounts' for consolidated account. Possible values include: + * 'externalSubscriptions', 'externalBillingAccounts' + * @param externalCloudProviderId This can be '{externalSubscriptionId}' for linked account or + * '{externalBillingAccountId}' for consolidated account used with dimension/query operations. + * @param callback The callback + */ + listExternal(externalCloudProviderType: Models.ExternalCloudProviderType, externalCloudProviderId: string, callback: msRest.ServiceCallback): void; + /** + * @param externalCloudProviderType The external cloud provider type associated with + * dimension/query operations. This includes 'externalSubscriptions' for linked account and + * 'externalBillingAccounts' for consolidated account. Possible values include: + * 'externalSubscriptions', 'externalBillingAccounts' + * @param externalCloudProviderId This can be '{externalSubscriptionId}' for linked account or + * '{externalBillingAccountId}' for consolidated account used with dimension/query operations. + * @param options The optional parameters + * @param callback The callback + */ + listExternal(externalCloudProviderType: Models.ExternalCloudProviderType, externalCloudProviderId: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void; + listExternal(externalCloudProviderType: Models.ExternalCloudProviderType, externalCloudProviderId: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise { + return this.client.sendOperationRequest( + { + externalCloudProviderType, + externalCloudProviderId, + options + }, + listExternalOperationSpec, + callback) as Promise; + } +} + +// Operation Specifications +const serializer = new msRest.Serializer(Mappers); +const listOperationSpec: msRest.OperationSpec = { + httpMethod: "GET", + path: "{scope}/providers/Microsoft.CostManagement/alerts", + urlParameters: [ + Parameters.scope1 + ], + queryParameters: [ + Parameters.apiVersion + ], + headerParameters: [ + Parameters.acceptLanguage + ], + responses: { + 200: { + bodyMapper: Mappers.AlertsResult + }, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + serializer +}; + +const getOperationSpec: msRest.OperationSpec = { + httpMethod: "GET", + path: "{scope}/providers/Microsoft.CostManagement/alerts/{alertId}", + urlParameters: [ + Parameters.scope1, + Parameters.alertId + ], + queryParameters: [ + Parameters.apiVersion + ], + headerParameters: [ + Parameters.acceptLanguage + ], + responses: { + 200: { + bodyMapper: Mappers.Alert + }, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + serializer +}; + +const dismissOperationSpec: msRest.OperationSpec = { + httpMethod: "PATCH", + path: "{scope}/providers/Microsoft.CostManagement/alerts/{alertId}", + urlParameters: [ + Parameters.scope1, + Parameters.alertId + ], + queryParameters: [ + Parameters.apiVersion + ], + headerParameters: [ + Parameters.acceptLanguage + ], + requestBody: { + parameterPath: "parameters", + mapper: { + ...Mappers.DismissAlertPayload, + required: true + } + }, + responses: { + 200: { + bodyMapper: Mappers.Alert + }, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + serializer +}; + +const listExternalOperationSpec: msRest.OperationSpec = { + httpMethod: "GET", + path: "providers/Microsoft.CostManagement/{externalCloudProviderType}/{externalCloudProviderId}/alerts", + urlParameters: [ + Parameters.externalCloudProviderType, + Parameters.externalCloudProviderId + ], + queryParameters: [ + Parameters.apiVersion + ], + headerParameters: [ + Parameters.acceptLanguage + ], + responses: { + 200: { + bodyMapper: Mappers.AlertsResult + }, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + serializer +}; diff --git a/sdk/cost-management/arm-costmanagement/src/operations/dimensions.ts b/sdk/cost-management/arm-costmanagement/src/operations/dimensions.ts new file mode 100644 index 000000000000..8d6b111165ef --- /dev/null +++ b/sdk/cost-management/arm-costmanagement/src/operations/dimensions.ts @@ -0,0 +1,202 @@ +/* + * Copyright (c) Microsoft Corporation. + * Licensed under the MIT License. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is + * regenerated. + */ + +import * as msRest from "@azure/ms-rest-js"; +import * as Models from "../models"; +import * as Mappers from "../models/dimensionsMappers"; +import * as Parameters from "../models/parameters"; +import { CostManagementClientContext } from "../costManagementClientContext"; + +/** Class representing a Dimensions. */ +export class Dimensions { + private readonly client: CostManagementClientContext; + + /** + * Create a Dimensions. + * @param {CostManagementClientContext} client Reference to the service client. + */ + constructor(client: CostManagementClientContext) { + this.client = client; + } + + /** + * Lists the dimensions by the defined scope. + * @param scope The scope associated with dimension operations. This includes + * '/subscriptions/{subscriptionId}/' for subscription scope, + * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group + * scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for billingProfile scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/invoiceSections/{invoiceSectionId}' + * for invoiceSection scope, and + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' specific + * for partners. + * @param [options] The optional parameters + * @returns Promise + */ + list(scope: string, options?: Models.DimensionsListOptionalParams): Promise; + /** + * @param scope The scope associated with dimension operations. This includes + * '/subscriptions/{subscriptionId}/' for subscription scope, + * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group + * scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for billingProfile scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/invoiceSections/{invoiceSectionId}' + * for invoiceSection scope, and + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' specific + * for partners. + * @param callback The callback + */ + list(scope: string, callback: msRest.ServiceCallback): void; + /** + * @param scope The scope associated with dimension operations. This includes + * '/subscriptions/{subscriptionId}/' for subscription scope, + * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group + * scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for billingProfile scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/invoiceSections/{invoiceSectionId}' + * for invoiceSection scope, and + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' specific + * for partners. + * @param options The optional parameters + * @param callback The callback + */ + list(scope: string, options: Models.DimensionsListOptionalParams, callback: msRest.ServiceCallback): void; + list(scope: string, options?: Models.DimensionsListOptionalParams | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise { + return this.client.sendOperationRequest( + { + scope, + options + }, + listOperationSpec, + callback) as Promise; + } + + /** + * Lists the dimensions by the external cloud provider type. + * @param externalCloudProviderType The external cloud provider type associated with + * dimension/query operations. This includes 'externalSubscriptions' for linked account and + * 'externalBillingAccounts' for consolidated account. Possible values include: + * 'externalSubscriptions', 'externalBillingAccounts' + * @param externalCloudProviderId This can be '{externalSubscriptionId}' for linked account or + * '{externalBillingAccountId}' for consolidated account used with dimension/query operations. + * @param [options] The optional parameters + * @returns Promise + */ + byExternalCloudProviderType(externalCloudProviderType: Models.ExternalCloudProviderType, externalCloudProviderId: string, options?: Models.DimensionsByExternalCloudProviderTypeOptionalParams): Promise; + /** + * @param externalCloudProviderType The external cloud provider type associated with + * dimension/query operations. This includes 'externalSubscriptions' for linked account and + * 'externalBillingAccounts' for consolidated account. Possible values include: + * 'externalSubscriptions', 'externalBillingAccounts' + * @param externalCloudProviderId This can be '{externalSubscriptionId}' for linked account or + * '{externalBillingAccountId}' for consolidated account used with dimension/query operations. + * @param callback The callback + */ + byExternalCloudProviderType(externalCloudProviderType: Models.ExternalCloudProviderType, externalCloudProviderId: string, callback: msRest.ServiceCallback): void; + /** + * @param externalCloudProviderType The external cloud provider type associated with + * dimension/query operations. This includes 'externalSubscriptions' for linked account and + * 'externalBillingAccounts' for consolidated account. Possible values include: + * 'externalSubscriptions', 'externalBillingAccounts' + * @param externalCloudProviderId This can be '{externalSubscriptionId}' for linked account or + * '{externalBillingAccountId}' for consolidated account used with dimension/query operations. + * @param options The optional parameters + * @param callback The callback + */ + byExternalCloudProviderType(externalCloudProviderType: Models.ExternalCloudProviderType, externalCloudProviderId: string, options: Models.DimensionsByExternalCloudProviderTypeOptionalParams, callback: msRest.ServiceCallback): void; + byExternalCloudProviderType(externalCloudProviderType: Models.ExternalCloudProviderType, externalCloudProviderId: string, options?: Models.DimensionsByExternalCloudProviderTypeOptionalParams | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise { + return this.client.sendOperationRequest( + { + externalCloudProviderType, + externalCloudProviderId, + options + }, + byExternalCloudProviderTypeOperationSpec, + callback) as Promise; + } +} + +// Operation Specifications +const serializer = new msRest.Serializer(Mappers); +const listOperationSpec: msRest.OperationSpec = { + httpMethod: "GET", + path: "{scope}/providers/Microsoft.CostManagement/dimensions", + urlParameters: [ + Parameters.scope1 + ], + queryParameters: [ + Parameters.apiVersion, + Parameters.filter, + Parameters.expand, + Parameters.skiptoken, + Parameters.top + ], + headerParameters: [ + Parameters.acceptLanguage + ], + responses: { + 200: { + bodyMapper: Mappers.DimensionsListResult + }, + 204: {}, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + serializer +}; + +const byExternalCloudProviderTypeOperationSpec: msRest.OperationSpec = { + httpMethod: "GET", + path: "providers/Microsoft.CostManagement/{externalCloudProviderType}/{externalCloudProviderId}/dimensions", + urlParameters: [ + Parameters.externalCloudProviderType, + Parameters.externalCloudProviderId + ], + queryParameters: [ + Parameters.apiVersion, + Parameters.filter, + Parameters.expand, + Parameters.skiptoken, + Parameters.top + ], + headerParameters: [ + Parameters.acceptLanguage + ], + responses: { + 200: { + bodyMapper: Mappers.DimensionsListResult + }, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + serializer +}; diff --git a/sdk/cost-management/arm-costmanagement/src/operations/exports.ts b/sdk/cost-management/arm-costmanagement/src/operations/exports.ts new file mode 100644 index 000000000000..d1ebb93a8eab --- /dev/null +++ b/sdk/cost-management/arm-costmanagement/src/operations/exports.ts @@ -0,0 +1,642 @@ +/* + * Copyright (c) Microsoft Corporation. + * Licensed under the MIT License. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is + * regenerated. + */ + +import * as msRest from "@azure/ms-rest-js"; +import * as Models from "../models"; +import * as Mappers from "../models/exportsMappers"; +import * as Parameters from "../models/parameters"; +import { CostManagementClientContext } from "../costManagementClientContext"; + +/** Class representing a Exports. */ +export class Exports { + private readonly client: CostManagementClientContext; + + /** + * Create a Exports. + * @param {CostManagementClientContext} client Reference to the service client. + */ + constructor(client: CostManagementClientContext) { + this.client = client; + } + + /** + * The operation to list all exports at the given scope. + * @param scope The scope associated with query and export operations. This includes + * '/subscriptions/{subscriptionId}/' for subscription scope, + * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * '/providers/Microsoft.Management/managementGroups/{managementGroupId} for Management Group + * scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for billingProfile scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/invoiceSections/{invoiceSectionId}' + * for invoiceSection scope, and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' + * specific for partners. + * @param [options] The optional parameters + * @returns Promise + */ + list(scope: string, options?: msRest.RequestOptionsBase): Promise; + /** + * @param scope The scope associated with query and export operations. This includes + * '/subscriptions/{subscriptionId}/' for subscription scope, + * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * '/providers/Microsoft.Management/managementGroups/{managementGroupId} for Management Group + * scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for billingProfile scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/invoiceSections/{invoiceSectionId}' + * for invoiceSection scope, and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' + * specific for partners. + * @param callback The callback + */ + list(scope: string, callback: msRest.ServiceCallback): void; + /** + * @param scope The scope associated with query and export operations. This includes + * '/subscriptions/{subscriptionId}/' for subscription scope, + * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * '/providers/Microsoft.Management/managementGroups/{managementGroupId} for Management Group + * scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for billingProfile scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/invoiceSections/{invoiceSectionId}' + * for invoiceSection scope, and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' + * specific for partners. + * @param options The optional parameters + * @param callback The callback + */ + list(scope: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void; + list(scope: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise { + return this.client.sendOperationRequest( + { + scope, + options + }, + listOperationSpec, + callback) as Promise; + } + + /** + * The operation to get the export for the defined scope by export name. + * @param scope The scope associated with query and export operations. This includes + * '/subscriptions/{subscriptionId}/' for subscription scope, + * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * '/providers/Microsoft.Management/managementGroups/{managementGroupId} for Management Group + * scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for billingProfile scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/invoiceSections/{invoiceSectionId}' + * for invoiceSection scope, and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' + * specific for partners. + * @param exportName Export Name. + * @param [options] The optional parameters + * @returns Promise + */ + get(scope: string, exportName: string, options?: msRest.RequestOptionsBase): Promise; + /** + * @param scope The scope associated with query and export operations. This includes + * '/subscriptions/{subscriptionId}/' for subscription scope, + * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * '/providers/Microsoft.Management/managementGroups/{managementGroupId} for Management Group + * scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for billingProfile scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/invoiceSections/{invoiceSectionId}' + * for invoiceSection scope, and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' + * specific for partners. + * @param exportName Export Name. + * @param callback The callback + */ + get(scope: string, exportName: string, callback: msRest.ServiceCallback): void; + /** + * @param scope The scope associated with query and export operations. This includes + * '/subscriptions/{subscriptionId}/' for subscription scope, + * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * '/providers/Microsoft.Management/managementGroups/{managementGroupId} for Management Group + * scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for billingProfile scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/invoiceSections/{invoiceSectionId}' + * for invoiceSection scope, and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' + * specific for partners. + * @param exportName Export Name. + * @param options The optional parameters + * @param callback The callback + */ + get(scope: string, exportName: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void; + get(scope: string, exportName: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise { + return this.client.sendOperationRequest( + { + scope, + exportName, + options + }, + getOperationSpec, + callback) as Promise; + } + + /** + * The operation to create or update a export. Update operation requires latest eTag to be set in + * the request. You may obtain the latest eTag by performing a get operation. Create operation does + * not require eTag. + * @param scope The scope associated with query and export operations. This includes + * '/subscriptions/{subscriptionId}/' for subscription scope, + * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * '/providers/Microsoft.Management/managementGroups/{managementGroupId} for Management Group + * scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for billingProfile scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/invoiceSections/{invoiceSectionId}' + * for invoiceSection scope, and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' + * specific for partners. + * @param exportName Export Name. + * @param parameters Parameters supplied to the CreateOrUpdate Export operation. + * @param [options] The optional parameters + * @returns Promise + */ + createOrUpdate(scope: string, exportName: string, parameters: Models.ExportModel, options?: msRest.RequestOptionsBase): Promise; + /** + * @param scope The scope associated with query and export operations. This includes + * '/subscriptions/{subscriptionId}/' for subscription scope, + * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * '/providers/Microsoft.Management/managementGroups/{managementGroupId} for Management Group + * scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for billingProfile scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/invoiceSections/{invoiceSectionId}' + * for invoiceSection scope, and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' + * specific for partners. + * @param exportName Export Name. + * @param parameters Parameters supplied to the CreateOrUpdate Export operation. + * @param callback The callback + */ + createOrUpdate(scope: string, exportName: string, parameters: Models.ExportModel, callback: msRest.ServiceCallback): void; + /** + * @param scope The scope associated with query and export operations. This includes + * '/subscriptions/{subscriptionId}/' for subscription scope, + * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * '/providers/Microsoft.Management/managementGroups/{managementGroupId} for Management Group + * scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for billingProfile scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/invoiceSections/{invoiceSectionId}' + * for invoiceSection scope, and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' + * specific for partners. + * @param exportName Export Name. + * @param parameters Parameters supplied to the CreateOrUpdate Export operation. + * @param options The optional parameters + * @param callback The callback + */ + createOrUpdate(scope: string, exportName: string, parameters: Models.ExportModel, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void; + createOrUpdate(scope: string, exportName: string, parameters: Models.ExportModel, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise { + return this.client.sendOperationRequest( + { + scope, + exportName, + parameters, + options + }, + createOrUpdateOperationSpec, + callback) as Promise; + } + + /** + * The operation to delete a export. + * @param scope The scope associated with query and export operations. This includes + * '/subscriptions/{subscriptionId}/' for subscription scope, + * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * '/providers/Microsoft.Management/managementGroups/{managementGroupId} for Management Group + * scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for billingProfile scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/invoiceSections/{invoiceSectionId}' + * for invoiceSection scope, and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' + * specific for partners. + * @param exportName Export Name. + * @param [options] The optional parameters + * @returns Promise + */ + deleteMethod(scope: string, exportName: string, options?: msRest.RequestOptionsBase): Promise; + /** + * @param scope The scope associated with query and export operations. This includes + * '/subscriptions/{subscriptionId}/' for subscription scope, + * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * '/providers/Microsoft.Management/managementGroups/{managementGroupId} for Management Group + * scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for billingProfile scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/invoiceSections/{invoiceSectionId}' + * for invoiceSection scope, and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' + * specific for partners. + * @param exportName Export Name. + * @param callback The callback + */ + deleteMethod(scope: string, exportName: string, callback: msRest.ServiceCallback): void; + /** + * @param scope The scope associated with query and export operations. This includes + * '/subscriptions/{subscriptionId}/' for subscription scope, + * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * '/providers/Microsoft.Management/managementGroups/{managementGroupId} for Management Group + * scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for billingProfile scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/invoiceSections/{invoiceSectionId}' + * for invoiceSection scope, and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' + * specific for partners. + * @param exportName Export Name. + * @param options The optional parameters + * @param callback The callback + */ + deleteMethod(scope: string, exportName: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void; + deleteMethod(scope: string, exportName: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise { + return this.client.sendOperationRequest( + { + scope, + exportName, + options + }, + deleteMethodOperationSpec, + callback); + } + + /** + * The operation to execute a export. + * @param scope The scope associated with query and export operations. This includes + * '/subscriptions/{subscriptionId}/' for subscription scope, + * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * '/providers/Microsoft.Management/managementGroups/{managementGroupId} for Management Group + * scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for billingProfile scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/invoiceSections/{invoiceSectionId}' + * for invoiceSection scope, and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' + * specific for partners. + * @param exportName Export Name. + * @param [options] The optional parameters + * @returns Promise + */ + execute(scope: string, exportName: string, options?: msRest.RequestOptionsBase): Promise; + /** + * @param scope The scope associated with query and export operations. This includes + * '/subscriptions/{subscriptionId}/' for subscription scope, + * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * '/providers/Microsoft.Management/managementGroups/{managementGroupId} for Management Group + * scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for billingProfile scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/invoiceSections/{invoiceSectionId}' + * for invoiceSection scope, and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' + * specific for partners. + * @param exportName Export Name. + * @param callback The callback + */ + execute(scope: string, exportName: string, callback: msRest.ServiceCallback): void; + /** + * @param scope The scope associated with query and export operations. This includes + * '/subscriptions/{subscriptionId}/' for subscription scope, + * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * '/providers/Microsoft.Management/managementGroups/{managementGroupId} for Management Group + * scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for billingProfile scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/invoiceSections/{invoiceSectionId}' + * for invoiceSection scope, and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' + * specific for partners. + * @param exportName Export Name. + * @param options The optional parameters + * @param callback The callback + */ + execute(scope: string, exportName: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void; + execute(scope: string, exportName: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise { + return this.client.sendOperationRequest( + { + scope, + exportName, + options + }, + executeOperationSpec, + callback); + } + + /** + * The operation to get the execution history of an export for the defined scope by export name. + * @param scope The scope associated with query and export operations. This includes + * '/subscriptions/{subscriptionId}/' for subscription scope, + * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * '/providers/Microsoft.Management/managementGroups/{managementGroupId} for Management Group + * scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for billingProfile scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/invoiceSections/{invoiceSectionId}' + * for invoiceSection scope, and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' + * specific for partners. + * @param exportName Export Name. + * @param [options] The optional parameters + * @returns Promise + */ + getExecutionHistory(scope: string, exportName: string, options?: msRest.RequestOptionsBase): Promise; + /** + * @param scope The scope associated with query and export operations. This includes + * '/subscriptions/{subscriptionId}/' for subscription scope, + * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * '/providers/Microsoft.Management/managementGroups/{managementGroupId} for Management Group + * scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for billingProfile scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/invoiceSections/{invoiceSectionId}' + * for invoiceSection scope, and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' + * specific for partners. + * @param exportName Export Name. + * @param callback The callback + */ + getExecutionHistory(scope: string, exportName: string, callback: msRest.ServiceCallback): void; + /** + * @param scope The scope associated with query and export operations. This includes + * '/subscriptions/{subscriptionId}/' for subscription scope, + * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * '/providers/Microsoft.Management/managementGroups/{managementGroupId} for Management Group + * scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for billingProfile scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/invoiceSections/{invoiceSectionId}' + * for invoiceSection scope, and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' + * specific for partners. + * @param exportName Export Name. + * @param options The optional parameters + * @param callback The callback + */ + getExecutionHistory(scope: string, exportName: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void; + getExecutionHistory(scope: string, exportName: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise { + return this.client.sendOperationRequest( + { + scope, + exportName, + options + }, + getExecutionHistoryOperationSpec, + callback) as Promise; + } +} + +// Operation Specifications +const serializer = new msRest.Serializer(Mappers); +const listOperationSpec: msRest.OperationSpec = { + httpMethod: "GET", + path: "{scope}/providers/Microsoft.CostManagement/exports", + urlParameters: [ + Parameters.scope1 + ], + queryParameters: [ + Parameters.apiVersion + ], + headerParameters: [ + Parameters.acceptLanguage + ], + responses: { + 200: { + bodyMapper: Mappers.ExportListResult + }, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + serializer +}; + +const getOperationSpec: msRest.OperationSpec = { + httpMethod: "GET", + path: "{scope}/providers/Microsoft.CostManagement/exports/{exportName}", + urlParameters: [ + Parameters.scope1, + Parameters.exportName + ], + queryParameters: [ + Parameters.apiVersion + ], + headerParameters: [ + Parameters.acceptLanguage + ], + responses: { + 200: { + bodyMapper: Mappers.ExportModel + }, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + serializer +}; + +const createOrUpdateOperationSpec: msRest.OperationSpec = { + httpMethod: "PUT", + path: "{scope}/providers/Microsoft.CostManagement/exports/{exportName}", + urlParameters: [ + Parameters.scope1, + Parameters.exportName + ], + queryParameters: [ + Parameters.apiVersion + ], + headerParameters: [ + Parameters.acceptLanguage + ], + requestBody: { + parameterPath: "parameters", + mapper: { + ...Mappers.ExportModel, + required: true + } + }, + responses: { + 200: { + bodyMapper: Mappers.ExportModel + }, + 201: { + bodyMapper: Mappers.ExportModel + }, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + serializer +}; + +const deleteMethodOperationSpec: msRest.OperationSpec = { + httpMethod: "DELETE", + path: "{scope}/providers/Microsoft.CostManagement/exports/{exportName}", + urlParameters: [ + Parameters.scope1, + Parameters.exportName + ], + queryParameters: [ + Parameters.apiVersion + ], + headerParameters: [ + Parameters.acceptLanguage + ], + responses: { + 200: {}, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + serializer +}; + +const executeOperationSpec: msRest.OperationSpec = { + httpMethod: "POST", + path: "{scope}/providers/Microsoft.CostManagement/exports/{exportName}/run", + urlParameters: [ + Parameters.scope1, + Parameters.exportName + ], + queryParameters: [ + Parameters.apiVersion + ], + headerParameters: [ + Parameters.acceptLanguage + ], + responses: { + 200: {}, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + serializer +}; + +const getExecutionHistoryOperationSpec: msRest.OperationSpec = { + httpMethod: "GET", + path: "{scope}/providers/Microsoft.CostManagement/exports/{exportName}/runHistory", + urlParameters: [ + Parameters.scope1, + Parameters.exportName + ], + queryParameters: [ + Parameters.apiVersion + ], + headerParameters: [ + Parameters.acceptLanguage + ], + responses: { + 200: { + bodyMapper: Mappers.ExportExecutionListResult + }, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + serializer +}; diff --git a/sdk/cost-management/arm-costmanagement/src/operations/forecast.ts b/sdk/cost-management/arm-costmanagement/src/operations/forecast.ts new file mode 100644 index 000000000000..659062813659 --- /dev/null +++ b/sdk/cost-management/arm-costmanagement/src/operations/forecast.ts @@ -0,0 +1,218 @@ +/* + * Copyright (c) Microsoft Corporation. + * Licensed under the MIT License. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is + * regenerated. + */ + +import * as msRest from "@azure/ms-rest-js"; +import * as Models from "../models"; +import * as Mappers from "../models/forecastMappers"; +import * as Parameters from "../models/parameters"; +import { CostManagementClientContext } from "../costManagementClientContext"; + +/** Class representing a Forecast. */ +export class Forecast { + private readonly client: CostManagementClientContext; + + /** + * Create a Forecast. + * @param {CostManagementClientContext} client Reference to the service client. + */ + constructor(client: CostManagementClientContext) { + this.client = client; + } + + /** + * Lists the forecast charges for scope defined. + * @param scope The scope associated with forecast operations. This includes + * '/subscriptions/{subscriptionId}/' for subscription scope, + * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * '/providers/Microsoft.Management/managementGroups/{managementGroupId} for Management Group + * scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for billingProfile scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/invoiceSections/{invoiceSectionId}' + * for invoiceSection scope, and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' + * specific for partners. + * @param parameters Parameters supplied to the CreateOrUpdate Forecast Config operation. + * @param [options] The optional parameters + * @returns Promise + */ + usage(scope: string, parameters: Models.ForecastDefinition, options?: Models.ForecastUsageOptionalParams): Promise; + /** + * @param scope The scope associated with forecast operations. This includes + * '/subscriptions/{subscriptionId}/' for subscription scope, + * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * '/providers/Microsoft.Management/managementGroups/{managementGroupId} for Management Group + * scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for billingProfile scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/invoiceSections/{invoiceSectionId}' + * for invoiceSection scope, and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' + * specific for partners. + * @param parameters Parameters supplied to the CreateOrUpdate Forecast Config operation. + * @param callback The callback + */ + usage(scope: string, parameters: Models.ForecastDefinition, callback: msRest.ServiceCallback): void; + /** + * @param scope The scope associated with forecast operations. This includes + * '/subscriptions/{subscriptionId}/' for subscription scope, + * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * '/providers/Microsoft.Management/managementGroups/{managementGroupId} for Management Group + * scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for billingProfile scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/invoiceSections/{invoiceSectionId}' + * for invoiceSection scope, and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' + * specific for partners. + * @param parameters Parameters supplied to the CreateOrUpdate Forecast Config operation. + * @param options The optional parameters + * @param callback The callback + */ + usage(scope: string, parameters: Models.ForecastDefinition, options: Models.ForecastUsageOptionalParams, callback: msRest.ServiceCallback): void; + usage(scope: string, parameters: Models.ForecastDefinition, options?: Models.ForecastUsageOptionalParams | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise { + return this.client.sendOperationRequest( + { + scope, + parameters, + options + }, + usageOperationSpec, + callback) as Promise; + } + + /** + * Lists the forecast charges for external cloud provider type defined. + * @param externalCloudProviderType The external cloud provider type associated with + * dimension/query operations. This includes 'externalSubscriptions' for linked account and + * 'externalBillingAccounts' for consolidated account. Possible values include: + * 'externalSubscriptions', 'externalBillingAccounts' + * @param externalCloudProviderId This can be '{externalSubscriptionId}' for linked account or + * '{externalBillingAccountId}' for consolidated account used with dimension/query operations. + * @param parameters Parameters supplied to the CreateOrUpdate Forecast Config operation. + * @param [options] The optional parameters + * @returns Promise + */ + externalCloudProviderUsage(externalCloudProviderType: Models.ExternalCloudProviderType, externalCloudProviderId: string, parameters: Models.ForecastDefinition, options?: Models.ForecastExternalCloudProviderUsageOptionalParams): Promise; + /** + * @param externalCloudProviderType The external cloud provider type associated with + * dimension/query operations. This includes 'externalSubscriptions' for linked account and + * 'externalBillingAccounts' for consolidated account. Possible values include: + * 'externalSubscriptions', 'externalBillingAccounts' + * @param externalCloudProviderId This can be '{externalSubscriptionId}' for linked account or + * '{externalBillingAccountId}' for consolidated account used with dimension/query operations. + * @param parameters Parameters supplied to the CreateOrUpdate Forecast Config operation. + * @param callback The callback + */ + externalCloudProviderUsage(externalCloudProviderType: Models.ExternalCloudProviderType, externalCloudProviderId: string, parameters: Models.ForecastDefinition, callback: msRest.ServiceCallback): void; + /** + * @param externalCloudProviderType The external cloud provider type associated with + * dimension/query operations. This includes 'externalSubscriptions' for linked account and + * 'externalBillingAccounts' for consolidated account. Possible values include: + * 'externalSubscriptions', 'externalBillingAccounts' + * @param externalCloudProviderId This can be '{externalSubscriptionId}' for linked account or + * '{externalBillingAccountId}' for consolidated account used with dimension/query operations. + * @param parameters Parameters supplied to the CreateOrUpdate Forecast Config operation. + * @param options The optional parameters + * @param callback The callback + */ + externalCloudProviderUsage(externalCloudProviderType: Models.ExternalCloudProviderType, externalCloudProviderId: string, parameters: Models.ForecastDefinition, options: Models.ForecastExternalCloudProviderUsageOptionalParams, callback: msRest.ServiceCallback): void; + externalCloudProviderUsage(externalCloudProviderType: Models.ExternalCloudProviderType, externalCloudProviderId: string, parameters: Models.ForecastDefinition, options?: Models.ForecastExternalCloudProviderUsageOptionalParams | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise { + return this.client.sendOperationRequest( + { + externalCloudProviderType, + externalCloudProviderId, + parameters, + options + }, + externalCloudProviderUsageOperationSpec, + callback) as Promise; + } +} + +// Operation Specifications +const serializer = new msRest.Serializer(Mappers); +const usageOperationSpec: msRest.OperationSpec = { + httpMethod: "POST", + path: "{scope}/providers/Microsoft.CostManagement/forecast", + urlParameters: [ + Parameters.scope1 + ], + queryParameters: [ + Parameters.filter, + Parameters.apiVersion + ], + headerParameters: [ + Parameters.acceptLanguage + ], + requestBody: { + parameterPath: "parameters", + mapper: { + ...Mappers.ForecastDefinition, + required: true + } + }, + responses: { + 200: { + bodyMapper: Mappers.QueryResult + }, + 204: {}, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + serializer +}; + +const externalCloudProviderUsageOperationSpec: msRest.OperationSpec = { + httpMethod: "POST", + path: "providers/Microsoft.CostManagement/{externalCloudProviderType}/{externalCloudProviderId}/forecast", + urlParameters: [ + Parameters.externalCloudProviderType, + Parameters.externalCloudProviderId + ], + queryParameters: [ + Parameters.filter, + Parameters.apiVersion + ], + headerParameters: [ + Parameters.acceptLanguage + ], + requestBody: { + parameterPath: "parameters", + mapper: { + ...Mappers.ForecastDefinition, + required: true + } + }, + responses: { + 200: { + bodyMapper: Mappers.QueryResult + }, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + serializer +}; diff --git a/sdk/cost-management/arm-costmanagement/src/operations/generateReservationDetailsReport.ts b/sdk/cost-management/arm-costmanagement/src/operations/generateReservationDetailsReport.ts new file mode 100644 index 000000000000..045d749938af --- /dev/null +++ b/sdk/cost-management/arm-costmanagement/src/operations/generateReservationDetailsReport.ts @@ -0,0 +1,164 @@ +/* + * Copyright (c) Microsoft Corporation. + * Licensed under the MIT License. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is + * regenerated. + */ + +import * as msRest from "@azure/ms-rest-js"; +import * as msRestAzure from "@azure/ms-rest-azure-js"; +import * as Models from "../models"; +import * as Mappers from "../models/generateReservationDetailsReportMappers"; +import * as Parameters from "../models/parameters"; +import { CostManagementClientContext } from "../costManagementClientContext"; + +/** Class representing a GenerateReservationDetailsReport. */ +export class GenerateReservationDetailsReport { + private readonly client: CostManagementClientContext; + + /** + * Create a GenerateReservationDetailsReport. + * @param {CostManagementClientContext} client Reference to the service client. + */ + constructor(client: CostManagementClientContext) { + this.client = client; + } + + /** + * Generates the reservations details report for provided date range asynchronously based on + * enrollment id. + * @param billingAccountId Enrollment ID (Legacy BillingAccount ID) + * @param startDate Start Date + * @param endDate End Date + * @param [options] The optional parameters + * @returns Promise + */ + byBillingAccountId(billingAccountId: string, startDate: string, endDate: string, options?: msRest.RequestOptionsBase): Promise { + return this.beginByBillingAccountId(billingAccountId,startDate,endDate,options) + .then(lroPoller => lroPoller.pollUntilFinished()) as Promise; + } + + /** + * Generates the reservations details report for provided date range asynchronously by billing + * profile. + * @param billingAccountId BillingAccount ID + * @param billingProfileId BillingProfile ID + * @param startDate Start Date + * @param endDate End Date + * @param [options] The optional parameters + * @returns Promise + */ + byBillingProfileId(billingAccountId: string, billingProfileId: string, startDate: string, endDate: string, options?: msRest.RequestOptionsBase): Promise { + return this.beginByBillingProfileId(billingAccountId,billingProfileId,startDate,endDate,options) + .then(lroPoller => lroPoller.pollUntilFinished()) as Promise; + } + + /** + * Generates the reservations details report for provided date range asynchronously based on + * enrollment id. + * @param billingAccountId Enrollment ID (Legacy BillingAccount ID) + * @param startDate Start Date + * @param endDate End Date + * @param [options] The optional parameters + * @returns Promise + */ + beginByBillingAccountId(billingAccountId: string, startDate: string, endDate: string, options?: msRest.RequestOptionsBase): Promise { + return this.client.sendLRORequest( + { + billingAccountId, + startDate, + endDate, + options + }, + beginByBillingAccountIdOperationSpec, + options); + } + + /** + * Generates the reservations details report for provided date range asynchronously by billing + * profile. + * @param billingAccountId BillingAccount ID + * @param billingProfileId BillingProfile ID + * @param startDate Start Date + * @param endDate End Date + * @param [options] The optional parameters + * @returns Promise + */ + beginByBillingProfileId(billingAccountId: string, billingProfileId: string, startDate: string, endDate: string, options?: msRest.RequestOptionsBase): Promise { + return this.client.sendLRORequest( + { + billingAccountId, + billingProfileId, + startDate, + endDate, + options + }, + beginByBillingProfileIdOperationSpec, + options); + } +} + +// Operation Specifications +const serializer = new msRest.Serializer(Mappers); +const beginByBillingAccountIdOperationSpec: msRest.OperationSpec = { + httpMethod: "POST", + path: "providers/Microsoft.Billing/billingAccounts/{billingAccountId}/providers/Microsoft.CostManagement/generateReservationDetailsReport", + urlParameters: [ + Parameters.billingAccountId + ], + queryParameters: [ + Parameters.startDate, + Parameters.endDate, + Parameters.apiVersion + ], + headerParameters: [ + Parameters.acceptLanguage + ], + responses: { + 200: { + bodyMapper: Mappers.OperationStatus, + headersMapper: Mappers.GenerateReservationDetailsReportByBillingAccountIdHeaders + }, + 202: { + headersMapper: Mappers.GenerateReservationDetailsReportByBillingAccountIdHeaders + }, + default: { + bodyMapper: Mappers.ErrorResponse, + headersMapper: Mappers.GenerateReservationDetailsReportByBillingAccountIdHeaders + } + }, + serializer +}; + +const beginByBillingProfileIdOperationSpec: msRest.OperationSpec = { + httpMethod: "POST", + path: "providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/providers/Microsoft.CostManagement/generateReservationDetailsReport", + urlParameters: [ + Parameters.billingAccountId, + Parameters.billingProfileId + ], + queryParameters: [ + Parameters.startDate, + Parameters.endDate, + Parameters.apiVersion + ], + headerParameters: [ + Parameters.acceptLanguage + ], + responses: { + 200: { + bodyMapper: Mappers.OperationStatus, + headersMapper: Mappers.GenerateReservationDetailsReportByBillingProfileIdHeaders + }, + 202: { + headersMapper: Mappers.GenerateReservationDetailsReportByBillingProfileIdHeaders + }, + default: { + bodyMapper: Mappers.ErrorResponse, + headersMapper: Mappers.GenerateReservationDetailsReportByBillingProfileIdHeaders + } + }, + serializer +}; diff --git a/sdk/cost-management/arm-costmanagement/src/operations/index.ts b/sdk/cost-management/arm-costmanagement/src/operations/index.ts new file mode 100644 index 000000000000..2891dbdbe539 --- /dev/null +++ b/sdk/cost-management/arm-costmanagement/src/operations/index.ts @@ -0,0 +1,18 @@ +/* + * Copyright (c) Microsoft Corporation. + * Licensed under the MIT License. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is + * regenerated. + */ + +export * from "./settings"; +export * from "./views"; +export * from "./alerts"; +export * from "./forecast"; +export * from "./dimensions"; +export * from "./query"; +export * from "./generateReservationDetailsReport"; +export * from "./operations"; +export * from "./exports"; diff --git a/sdk/cost-management/arm-costmanagement/src/operations/operations.ts b/sdk/cost-management/arm-costmanagement/src/operations/operations.ts new file mode 100644 index 000000000000..db52a5ef05f4 --- /dev/null +++ b/sdk/cost-management/arm-costmanagement/src/operations/operations.ts @@ -0,0 +1,125 @@ +/* + * Copyright (c) Microsoft Corporation. + * Licensed under the MIT License. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is + * regenerated. + */ + +import * as msRest from "@azure/ms-rest-js"; +import * as Models from "../models"; +import * as Mappers from "../models/operationsMappers"; +import * as Parameters from "../models/parameters"; +import { CostManagementClientContext } from "../costManagementClientContext"; + +/** Class representing a Operations. */ +export class Operations { + private readonly client: CostManagementClientContext; + + /** + * Create a Operations. + * @param {CostManagementClientContext} client Reference to the service client. + */ + constructor(client: CostManagementClientContext) { + this.client = client; + } + + /** + * Lists all of the available cost management REST API operations. + * @param [options] The optional parameters + * @returns Promise + */ + list(options?: msRest.RequestOptionsBase): Promise; + /** + * @param callback The callback + */ + list(callback: msRest.ServiceCallback): void; + /** + * @param options The optional parameters + * @param callback The callback + */ + list(options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void; + list(options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise { + return this.client.sendOperationRequest( + { + options + }, + listOperationSpec, + callback) as Promise; + } + + /** + * Lists all of the available cost management REST API operations. + * @param nextPageLink The NextLink from the previous successful call to List operation. + * @param [options] The optional parameters + * @returns Promise + */ + listNext(nextPageLink: string, options?: msRest.RequestOptionsBase): Promise; + /** + * @param nextPageLink The NextLink from the previous successful call to List operation. + * @param callback The callback + */ + listNext(nextPageLink: string, callback: msRest.ServiceCallback): void; + /** + * @param nextPageLink The NextLink from the previous successful call to List operation. + * @param options The optional parameters + * @param callback The callback + */ + listNext(nextPageLink: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void; + listNext(nextPageLink: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise { + return this.client.sendOperationRequest( + { + nextPageLink, + options + }, + listNextOperationSpec, + callback) as Promise; + } +} + +// Operation Specifications +const serializer = new msRest.Serializer(Mappers); +const listOperationSpec: msRest.OperationSpec = { + httpMethod: "GET", + path: "providers/Microsoft.CostManagement/operations", + queryParameters: [ + Parameters.apiVersion + ], + headerParameters: [ + Parameters.acceptLanguage + ], + responses: { + 200: { + bodyMapper: Mappers.OperationListResult + }, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + serializer +}; + +const listNextOperationSpec: msRest.OperationSpec = { + httpMethod: "GET", + baseUrl: "https://management.azure.com", + path: "{nextLink}", + urlParameters: [ + Parameters.nextPageLink + ], + queryParameters: [ + Parameters.apiVersion + ], + headerParameters: [ + Parameters.acceptLanguage + ], + responses: { + 200: { + bodyMapper: Mappers.OperationListResult + }, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + serializer +}; diff --git a/sdk/cost-management/arm-costmanagement/src/operations/query.ts b/sdk/cost-management/arm-costmanagement/src/operations/query.ts new file mode 100644 index 000000000000..56ec3904950c --- /dev/null +++ b/sdk/cost-management/arm-costmanagement/src/operations/query.ts @@ -0,0 +1,216 @@ +/* + * Copyright (c) Microsoft Corporation. + * Licensed under the MIT License. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is + * regenerated. + */ + +import * as msRest from "@azure/ms-rest-js"; +import * as Models from "../models"; +import * as Mappers from "../models/queryMappers"; +import * as Parameters from "../models/parameters"; +import { CostManagementClientContext } from "../costManagementClientContext"; + +/** Class representing a Query. */ +export class Query { + private readonly client: CostManagementClientContext; + + /** + * Create a Query. + * @param {CostManagementClientContext} client Reference to the service client. + */ + constructor(client: CostManagementClientContext) { + this.client = client; + } + + /** + * Query the usage data for scope defined. + * @param scope The scope associated with query and export operations. This includes + * '/subscriptions/{subscriptionId}/' for subscription scope, + * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * '/providers/Microsoft.Management/managementGroups/{managementGroupId} for Management Group + * scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for billingProfile scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/invoiceSections/{invoiceSectionId}' + * for invoiceSection scope, and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' + * specific for partners. + * @param parameters Parameters supplied to the CreateOrUpdate Query Config operation. + * @param [options] The optional parameters + * @returns Promise + */ + usage(scope: string, parameters: Models.QueryDefinition, options?: msRest.RequestOptionsBase): Promise; + /** + * @param scope The scope associated with query and export operations. This includes + * '/subscriptions/{subscriptionId}/' for subscription scope, + * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * '/providers/Microsoft.Management/managementGroups/{managementGroupId} for Management Group + * scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for billingProfile scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/invoiceSections/{invoiceSectionId}' + * for invoiceSection scope, and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' + * specific for partners. + * @param parameters Parameters supplied to the CreateOrUpdate Query Config operation. + * @param callback The callback + */ + usage(scope: string, parameters: Models.QueryDefinition, callback: msRest.ServiceCallback): void; + /** + * @param scope The scope associated with query and export operations. This includes + * '/subscriptions/{subscriptionId}/' for subscription scope, + * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * '/providers/Microsoft.Management/managementGroups/{managementGroupId} for Management Group + * scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for billingProfile scope, + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}/invoiceSections/{invoiceSectionId}' + * for invoiceSection scope, and + * '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/customers/{customerId}' + * specific for partners. + * @param parameters Parameters supplied to the CreateOrUpdate Query Config operation. + * @param options The optional parameters + * @param callback The callback + */ + usage(scope: string, parameters: Models.QueryDefinition, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void; + usage(scope: string, parameters: Models.QueryDefinition, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise { + return this.client.sendOperationRequest( + { + scope, + parameters, + options + }, + usageOperationSpec, + callback) as Promise; + } + + /** + * Query the usage data for external cloud provider type defined. + * @param externalCloudProviderType The external cloud provider type associated with + * dimension/query operations. This includes 'externalSubscriptions' for linked account and + * 'externalBillingAccounts' for consolidated account. Possible values include: + * 'externalSubscriptions', 'externalBillingAccounts' + * @param externalCloudProviderId This can be '{externalSubscriptionId}' for linked account or + * '{externalBillingAccountId}' for consolidated account used with dimension/query operations. + * @param parameters Parameters supplied to the CreateOrUpdate Query Config operation. + * @param [options] The optional parameters + * @returns Promise + */ + usageByExternalCloudProviderType(externalCloudProviderType: Models.ExternalCloudProviderType, externalCloudProviderId: string, parameters: Models.QueryDefinition, options?: msRest.RequestOptionsBase): Promise; + /** + * @param externalCloudProviderType The external cloud provider type associated with + * dimension/query operations. This includes 'externalSubscriptions' for linked account and + * 'externalBillingAccounts' for consolidated account. Possible values include: + * 'externalSubscriptions', 'externalBillingAccounts' + * @param externalCloudProviderId This can be '{externalSubscriptionId}' for linked account or + * '{externalBillingAccountId}' for consolidated account used with dimension/query operations. + * @param parameters Parameters supplied to the CreateOrUpdate Query Config operation. + * @param callback The callback + */ + usageByExternalCloudProviderType(externalCloudProviderType: Models.ExternalCloudProviderType, externalCloudProviderId: string, parameters: Models.QueryDefinition, callback: msRest.ServiceCallback): void; + /** + * @param externalCloudProviderType The external cloud provider type associated with + * dimension/query operations. This includes 'externalSubscriptions' for linked account and + * 'externalBillingAccounts' for consolidated account. Possible values include: + * 'externalSubscriptions', 'externalBillingAccounts' + * @param externalCloudProviderId This can be '{externalSubscriptionId}' for linked account or + * '{externalBillingAccountId}' for consolidated account used with dimension/query operations. + * @param parameters Parameters supplied to the CreateOrUpdate Query Config operation. + * @param options The optional parameters + * @param callback The callback + */ + usageByExternalCloudProviderType(externalCloudProviderType: Models.ExternalCloudProviderType, externalCloudProviderId: string, parameters: Models.QueryDefinition, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void; + usageByExternalCloudProviderType(externalCloudProviderType: Models.ExternalCloudProviderType, externalCloudProviderId: string, parameters: Models.QueryDefinition, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise { + return this.client.sendOperationRequest( + { + externalCloudProviderType, + externalCloudProviderId, + parameters, + options + }, + usageByExternalCloudProviderTypeOperationSpec, + callback) as Promise; + } +} + +// Operation Specifications +const serializer = new msRest.Serializer(Mappers); +const usageOperationSpec: msRest.OperationSpec = { + httpMethod: "POST", + path: "{scope}/providers/Microsoft.CostManagement/query", + urlParameters: [ + Parameters.scope1 + ], + queryParameters: [ + Parameters.apiVersion + ], + headerParameters: [ + Parameters.acceptLanguage + ], + requestBody: { + parameterPath: "parameters", + mapper: { + ...Mappers.QueryDefinition, + required: true + } + }, + responses: { + 200: { + bodyMapper: Mappers.QueryResult + }, + 204: {}, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + serializer +}; + +const usageByExternalCloudProviderTypeOperationSpec: msRest.OperationSpec = { + httpMethod: "POST", + path: "providers/Microsoft.CostManagement/{externalCloudProviderType}/{externalCloudProviderId}/query", + urlParameters: [ + Parameters.externalCloudProviderType, + Parameters.externalCloudProviderId + ], + queryParameters: [ + Parameters.apiVersion + ], + headerParameters: [ + Parameters.acceptLanguage + ], + requestBody: { + parameterPath: "parameters", + mapper: { + ...Mappers.QueryDefinition, + required: true + } + }, + responses: { + 200: { + bodyMapper: Mappers.QueryResult + }, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + serializer +}; diff --git a/sdk/cost-management/arm-costmanagement/src/operations/settings.ts b/sdk/cost-management/arm-costmanagement/src/operations/settings.ts new file mode 100644 index 000000000000..e32f34f032b8 --- /dev/null +++ b/sdk/cost-management/arm-costmanagement/src/operations/settings.ts @@ -0,0 +1,289 @@ +/* + * Copyright (c) Microsoft Corporation. + * Licensed under the MIT License. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is + * regenerated. + */ + +import * as msRest from "@azure/ms-rest-js"; +import * as Models from "../models"; +import * as Mappers from "../models/settingsMappers"; +import * as Parameters from "../models/parameters"; +import { CostManagementClientContext } from "../costManagementClientContext"; + +/** Class representing a Settings. */ +export class Settings { + private readonly client: CostManagementClientContext; + + /** + * Create a Settings. + * @param {CostManagementClientContext} client Reference to the service client. + */ + constructor(client: CostManagementClientContext) { + this.client = client; + } + + /** + * Lists all of the settings that have been customized. + * @param [options] The optional parameters + * @returns Promise + */ + list(options?: msRest.RequestOptionsBase): Promise; + /** + * @param callback The callback + */ + list(callback: msRest.ServiceCallback): void; + /** + * @param options The optional parameters + * @param callback The callback + */ + list(options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void; + list(options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise { + return this.client.sendOperationRequest( + { + options + }, + listOperationSpec, + callback) as Promise; + } + + /** + * Retrieves the current value for a specific setting. + * @param settingName Name of the setting. Allowed values: myscope + * @param [options] The optional parameters + * @returns Promise + */ + get(settingName: string, options?: msRest.RequestOptionsBase): Promise; + /** + * @param settingName Name of the setting. Allowed values: myscope + * @param callback The callback + */ + get(settingName: string, callback: msRest.ServiceCallback): void; + /** + * @param settingName Name of the setting. Allowed values: myscope + * @param options The optional parameters + * @param callback The callback + */ + get(settingName: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void; + get(settingName: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise { + return this.client.sendOperationRequest( + { + settingName, + options + }, + getOperationSpec, + callback) as Promise; + } + + /** + * Sets a new value for a specific setting. + * @param settingName Name of the setting. Allowed values: myscope + * @param parameters Body supplied to the CreateOrUpdate setting operation. + * @param [options] The optional parameters + * @returns Promise + */ + createOrUpdate(settingName: string, parameters: Models.Setting, options?: msRest.RequestOptionsBase): Promise; + /** + * @param settingName Name of the setting. Allowed values: myscope + * @param parameters Body supplied to the CreateOrUpdate setting operation. + * @param callback The callback + */ + createOrUpdate(settingName: string, parameters: Models.Setting, callback: msRest.ServiceCallback): void; + /** + * @param settingName Name of the setting. Allowed values: myscope + * @param parameters Body supplied to the CreateOrUpdate setting operation. + * @param options The optional parameters + * @param callback The callback + */ + createOrUpdate(settingName: string, parameters: Models.Setting, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void; + createOrUpdate(settingName: string, parameters: Models.Setting, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise { + return this.client.sendOperationRequest( + { + settingName, + parameters, + options + }, + createOrUpdateOperationSpec, + callback) as Promise; + } + + /** + * Remove the current value for a specific setting and reverts back to the default value, if + * applicable. + * @param settingName Name of the setting. Allowed values: myscope + * @param [options] The optional parameters + * @returns Promise + */ + deleteMethod(settingName: string, options?: msRest.RequestOptionsBase): Promise; + /** + * @param settingName Name of the setting. Allowed values: myscope + * @param callback The callback + */ + deleteMethod(settingName: string, callback: msRest.ServiceCallback): void; + /** + * @param settingName Name of the setting. Allowed values: myscope + * @param options The optional parameters + * @param callback The callback + */ + deleteMethod(settingName: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void; + deleteMethod(settingName: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise { + return this.client.sendOperationRequest( + { + settingName, + options + }, + deleteMethodOperationSpec, + callback); + } + + /** + * Lists all of the settings that have been customized. + * @param nextPageLink The NextLink from the previous successful call to List operation. + * @param [options] The optional parameters + * @returns Promise + */ + listNext(nextPageLink: string, options?: msRest.RequestOptionsBase): Promise; + /** + * @param nextPageLink The NextLink from the previous successful call to List operation. + * @param callback The callback + */ + listNext(nextPageLink: string, callback: msRest.ServiceCallback): void; + /** + * @param nextPageLink The NextLink from the previous successful call to List operation. + * @param options The optional parameters + * @param callback The callback + */ + listNext(nextPageLink: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void; + listNext(nextPageLink: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise { + return this.client.sendOperationRequest( + { + nextPageLink, + options + }, + listNextOperationSpec, + callback) as Promise; + } +} + +// Operation Specifications +const serializer = new msRest.Serializer(Mappers); +const listOperationSpec: msRest.OperationSpec = { + httpMethod: "GET", + path: "providers/Microsoft.CostManagement/settings", + queryParameters: [ + Parameters.apiVersion + ], + headerParameters: [ + Parameters.acceptLanguage + ], + responses: { + 200: { + bodyMapper: Mappers.SettingsListResult + }, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + serializer +}; + +const getOperationSpec: msRest.OperationSpec = { + httpMethod: "GET", + path: "providers/Microsoft.CostManagement/settings/{settingName}", + urlParameters: [ + Parameters.settingName + ], + queryParameters: [ + Parameters.apiVersion + ], + headerParameters: [ + Parameters.acceptLanguage + ], + responses: { + 200: { + bodyMapper: Mappers.Setting + }, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + serializer +}; + +const createOrUpdateOperationSpec: msRest.OperationSpec = { + httpMethod: "PUT", + path: "providers/Microsoft.CostManagement/settings/{settingName}", + urlParameters: [ + Parameters.settingName + ], + queryParameters: [ + Parameters.apiVersion + ], + headerParameters: [ + Parameters.acceptLanguage + ], + requestBody: { + parameterPath: "parameters", + mapper: { + ...Mappers.Setting, + required: true + } + }, + responses: { + 200: { + bodyMapper: Mappers.Setting + }, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + serializer +}; + +const deleteMethodOperationSpec: msRest.OperationSpec = { + httpMethod: "DELETE", + path: "providers/Microsoft.CostManagement/settings/{settingName}", + urlParameters: [ + Parameters.settingName + ], + queryParameters: [ + Parameters.apiVersion + ], + headerParameters: [ + Parameters.acceptLanguage + ], + responses: { + 200: {}, + 204: {}, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + serializer +}; + +const listNextOperationSpec: msRest.OperationSpec = { + httpMethod: "GET", + baseUrl: "https://management.azure.com", + path: "{nextLink}", + urlParameters: [ + Parameters.nextPageLink + ], + queryParameters: [ + Parameters.apiVersion + ], + headerParameters: [ + Parameters.acceptLanguage + ], + responses: { + 200: { + bodyMapper: Mappers.SettingsListResult + }, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + serializer +}; diff --git a/sdk/cost-management/arm-costmanagement/src/operations/views.ts b/sdk/cost-management/arm-costmanagement/src/operations/views.ts new file mode 100644 index 000000000000..5c57c014e6bc --- /dev/null +++ b/sdk/cost-management/arm-costmanagement/src/operations/views.ts @@ -0,0 +1,775 @@ +/* + * Copyright (c) Microsoft Corporation. + * Licensed under the MIT License. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is + * regenerated. + */ + +import * as msRest from "@azure/ms-rest-js"; +import * as Models from "../models"; +import * as Mappers from "../models/viewsMappers"; +import * as Parameters from "../models/parameters"; +import { CostManagementClientContext } from "../costManagementClientContext"; + +/** Class representing a Views. */ +export class Views { + private readonly client: CostManagementClientContext; + + /** + * Create a Views. + * @param {CostManagementClientContext} client Reference to the service client. + */ + constructor(client: CostManagementClientContext) { + this.client = client; + } + + /** + * Lists all views by tenant and object. + * @param [options] The optional parameters + * @returns Promise + */ + list(options?: msRest.RequestOptionsBase): Promise; + /** + * @param callback The callback + */ + list(callback: msRest.ServiceCallback): void; + /** + * @param options The optional parameters + * @param callback The callback + */ + list(options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void; + list(options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise { + return this.client.sendOperationRequest( + { + options + }, + listOperationSpec, + callback) as Promise; + } + + /** + * Lists all views at the given scope. + * @param scope The scope associated with view operations. This includes + * 'subscriptions/{subscriptionId}' for subscription scope, + * 'subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for BillingProfile scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/invoiceSections/{invoiceSectionId}' + * for InvoiceSection scope, 'providers/Microsoft.Management/managementGroups/{managementGroupId}' + * for Management Group scope, + * 'providers/Microsoft.CostManagement/externalBillingAccounts/{externalBillingAccountName}' for + * External Billing Account scope and + * 'providers/Microsoft.CostManagement/externalSubscriptions/{externalSubscriptionName}' for + * External Subscription scope. + * @param [options] The optional parameters + * @returns Promise + */ + listByScope(scope: string, options?: msRest.RequestOptionsBase): Promise; + /** + * @param scope The scope associated with view operations. This includes + * 'subscriptions/{subscriptionId}' for subscription scope, + * 'subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for BillingProfile scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/invoiceSections/{invoiceSectionId}' + * for InvoiceSection scope, 'providers/Microsoft.Management/managementGroups/{managementGroupId}' + * for Management Group scope, + * 'providers/Microsoft.CostManagement/externalBillingAccounts/{externalBillingAccountName}' for + * External Billing Account scope and + * 'providers/Microsoft.CostManagement/externalSubscriptions/{externalSubscriptionName}' for + * External Subscription scope. + * @param callback The callback + */ + listByScope(scope: string, callback: msRest.ServiceCallback): void; + /** + * @param scope The scope associated with view operations. This includes + * 'subscriptions/{subscriptionId}' for subscription scope, + * 'subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for BillingProfile scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/invoiceSections/{invoiceSectionId}' + * for InvoiceSection scope, 'providers/Microsoft.Management/managementGroups/{managementGroupId}' + * for Management Group scope, + * 'providers/Microsoft.CostManagement/externalBillingAccounts/{externalBillingAccountName}' for + * External Billing Account scope and + * 'providers/Microsoft.CostManagement/externalSubscriptions/{externalSubscriptionName}' for + * External Subscription scope. + * @param options The optional parameters + * @param callback The callback + */ + listByScope(scope: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void; + listByScope(scope: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise { + return this.client.sendOperationRequest( + { + scope, + options + }, + listByScopeOperationSpec, + callback) as Promise; + } + + /** + * Gets the view by view name. + * @param viewName View name + * @param [options] The optional parameters + * @returns Promise + */ + get(viewName: string, options?: msRest.RequestOptionsBase): Promise; + /** + * @param viewName View name + * @param callback The callback + */ + get(viewName: string, callback: msRest.ServiceCallback): void; + /** + * @param viewName View name + * @param options The optional parameters + * @param callback The callback + */ + get(viewName: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void; + get(viewName: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise { + return this.client.sendOperationRequest( + { + viewName, + options + }, + getOperationSpec, + callback) as Promise; + } + + /** + * The operation to create or update a view. Update operation requires latest eTag to be set in the + * request. You may obtain the latest eTag by performing a get operation. Create operation does not + * require eTag. + * @param viewName View name + * @param parameters Parameters supplied to the CreateOrUpdate View operation. + * @param [options] The optional parameters + * @returns Promise + */ + createOrUpdate(viewName: string, parameters: Models.View, options?: msRest.RequestOptionsBase): Promise; + /** + * @param viewName View name + * @param parameters Parameters supplied to the CreateOrUpdate View operation. + * @param callback The callback + */ + createOrUpdate(viewName: string, parameters: Models.View, callback: msRest.ServiceCallback): void; + /** + * @param viewName View name + * @param parameters Parameters supplied to the CreateOrUpdate View operation. + * @param options The optional parameters + * @param callback The callback + */ + createOrUpdate(viewName: string, parameters: Models.View, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void; + createOrUpdate(viewName: string, parameters: Models.View, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise { + return this.client.sendOperationRequest( + { + viewName, + parameters, + options + }, + createOrUpdateOperationSpec, + callback) as Promise; + } + + /** + * The operation to delete a view. + * @param viewName View name + * @param [options] The optional parameters + * @returns Promise + */ + deleteMethod(viewName: string, options?: msRest.RequestOptionsBase): Promise; + /** + * @param viewName View name + * @param callback The callback + */ + deleteMethod(viewName: string, callback: msRest.ServiceCallback): void; + /** + * @param viewName View name + * @param options The optional parameters + * @param callback The callback + */ + deleteMethod(viewName: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void; + deleteMethod(viewName: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise { + return this.client.sendOperationRequest( + { + viewName, + options + }, + deleteMethodOperationSpec, + callback); + } + + /** + * Gets the view for the defined scope by view name. + * @param scope The scope associated with view operations. This includes + * 'subscriptions/{subscriptionId}' for subscription scope, + * 'subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for BillingProfile scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/invoiceSections/{invoiceSectionId}' + * for InvoiceSection scope, 'providers/Microsoft.Management/managementGroups/{managementGroupId}' + * for Management Group scope, + * 'providers/Microsoft.CostManagement/externalBillingAccounts/{externalBillingAccountName}' for + * External Billing Account scope and + * 'providers/Microsoft.CostManagement/externalSubscriptions/{externalSubscriptionName}' for + * External Subscription scope. + * @param viewName View name + * @param [options] The optional parameters + * @returns Promise + */ + getByScope(scope: string, viewName: string, options?: msRest.RequestOptionsBase): Promise; + /** + * @param scope The scope associated with view operations. This includes + * 'subscriptions/{subscriptionId}' for subscription scope, + * 'subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for BillingProfile scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/invoiceSections/{invoiceSectionId}' + * for InvoiceSection scope, 'providers/Microsoft.Management/managementGroups/{managementGroupId}' + * for Management Group scope, + * 'providers/Microsoft.CostManagement/externalBillingAccounts/{externalBillingAccountName}' for + * External Billing Account scope and + * 'providers/Microsoft.CostManagement/externalSubscriptions/{externalSubscriptionName}' for + * External Subscription scope. + * @param viewName View name + * @param callback The callback + */ + getByScope(scope: string, viewName: string, callback: msRest.ServiceCallback): void; + /** + * @param scope The scope associated with view operations. This includes + * 'subscriptions/{subscriptionId}' for subscription scope, + * 'subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for BillingProfile scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/invoiceSections/{invoiceSectionId}' + * for InvoiceSection scope, 'providers/Microsoft.Management/managementGroups/{managementGroupId}' + * for Management Group scope, + * 'providers/Microsoft.CostManagement/externalBillingAccounts/{externalBillingAccountName}' for + * External Billing Account scope and + * 'providers/Microsoft.CostManagement/externalSubscriptions/{externalSubscriptionName}' for + * External Subscription scope. + * @param viewName View name + * @param options The optional parameters + * @param callback The callback + */ + getByScope(scope: string, viewName: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void; + getByScope(scope: string, viewName: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise { + return this.client.sendOperationRequest( + { + scope, + viewName, + options + }, + getByScopeOperationSpec, + callback) as Promise; + } + + /** + * The operation to create or update a view. Update operation requires latest eTag to be set in the + * request. You may obtain the latest eTag by performing a get operation. Create operation does not + * require eTag. + * @param scope The scope associated with view operations. This includes + * 'subscriptions/{subscriptionId}' for subscription scope, + * 'subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for BillingProfile scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/invoiceSections/{invoiceSectionId}' + * for InvoiceSection scope, 'providers/Microsoft.Management/managementGroups/{managementGroupId}' + * for Management Group scope, + * 'providers/Microsoft.CostManagement/externalBillingAccounts/{externalBillingAccountName}' for + * External Billing Account scope and + * 'providers/Microsoft.CostManagement/externalSubscriptions/{externalSubscriptionName}' for + * External Subscription scope. + * @param viewName View name + * @param parameters Parameters supplied to the CreateOrUpdate View operation. + * @param [options] The optional parameters + * @returns Promise + */ + createOrUpdateByScope(scope: string, viewName: string, parameters: Models.View, options?: msRest.RequestOptionsBase): Promise; + /** + * @param scope The scope associated with view operations. This includes + * 'subscriptions/{subscriptionId}' for subscription scope, + * 'subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for BillingProfile scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/invoiceSections/{invoiceSectionId}' + * for InvoiceSection scope, 'providers/Microsoft.Management/managementGroups/{managementGroupId}' + * for Management Group scope, + * 'providers/Microsoft.CostManagement/externalBillingAccounts/{externalBillingAccountName}' for + * External Billing Account scope and + * 'providers/Microsoft.CostManagement/externalSubscriptions/{externalSubscriptionName}' for + * External Subscription scope. + * @param viewName View name + * @param parameters Parameters supplied to the CreateOrUpdate View operation. + * @param callback The callback + */ + createOrUpdateByScope(scope: string, viewName: string, parameters: Models.View, callback: msRest.ServiceCallback): void; + /** + * @param scope The scope associated with view operations. This includes + * 'subscriptions/{subscriptionId}' for subscription scope, + * 'subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for BillingProfile scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/invoiceSections/{invoiceSectionId}' + * for InvoiceSection scope, 'providers/Microsoft.Management/managementGroups/{managementGroupId}' + * for Management Group scope, + * 'providers/Microsoft.CostManagement/externalBillingAccounts/{externalBillingAccountName}' for + * External Billing Account scope and + * 'providers/Microsoft.CostManagement/externalSubscriptions/{externalSubscriptionName}' for + * External Subscription scope. + * @param viewName View name + * @param parameters Parameters supplied to the CreateOrUpdate View operation. + * @param options The optional parameters + * @param callback The callback + */ + createOrUpdateByScope(scope: string, viewName: string, parameters: Models.View, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void; + createOrUpdateByScope(scope: string, viewName: string, parameters: Models.View, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise { + return this.client.sendOperationRequest( + { + scope, + viewName, + parameters, + options + }, + createOrUpdateByScopeOperationSpec, + callback) as Promise; + } + + /** + * The operation to delete a view. + * @param scope The scope associated with view operations. This includes + * 'subscriptions/{subscriptionId}' for subscription scope, + * 'subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for BillingProfile scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/invoiceSections/{invoiceSectionId}' + * for InvoiceSection scope, 'providers/Microsoft.Management/managementGroups/{managementGroupId}' + * for Management Group scope, + * 'providers/Microsoft.CostManagement/externalBillingAccounts/{externalBillingAccountName}' for + * External Billing Account scope and + * 'providers/Microsoft.CostManagement/externalSubscriptions/{externalSubscriptionName}' for + * External Subscription scope. + * @param viewName View name + * @param [options] The optional parameters + * @returns Promise + */ + deleteByScope(scope: string, viewName: string, options?: msRest.RequestOptionsBase): Promise; + /** + * @param scope The scope associated with view operations. This includes + * 'subscriptions/{subscriptionId}' for subscription scope, + * 'subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for BillingProfile scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/invoiceSections/{invoiceSectionId}' + * for InvoiceSection scope, 'providers/Microsoft.Management/managementGroups/{managementGroupId}' + * for Management Group scope, + * 'providers/Microsoft.CostManagement/externalBillingAccounts/{externalBillingAccountName}' for + * External Billing Account scope and + * 'providers/Microsoft.CostManagement/externalSubscriptions/{externalSubscriptionName}' for + * External Subscription scope. + * @param viewName View name + * @param callback The callback + */ + deleteByScope(scope: string, viewName: string, callback: msRest.ServiceCallback): void; + /** + * @param scope The scope associated with view operations. This includes + * 'subscriptions/{subscriptionId}' for subscription scope, + * 'subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for + * Department scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' + * for EnrollmentAccount scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' + * for BillingProfile scope, + * 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/invoiceSections/{invoiceSectionId}' + * for InvoiceSection scope, 'providers/Microsoft.Management/managementGroups/{managementGroupId}' + * for Management Group scope, + * 'providers/Microsoft.CostManagement/externalBillingAccounts/{externalBillingAccountName}' for + * External Billing Account scope and + * 'providers/Microsoft.CostManagement/externalSubscriptions/{externalSubscriptionName}' for + * External Subscription scope. + * @param viewName View name + * @param options The optional parameters + * @param callback The callback + */ + deleteByScope(scope: string, viewName: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void; + deleteByScope(scope: string, viewName: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise { + return this.client.sendOperationRequest( + { + scope, + viewName, + options + }, + deleteByScopeOperationSpec, + callback); + } + + /** + * Lists all views by tenant and object. + * @param nextPageLink The NextLink from the previous successful call to List operation. + * @param [options] The optional parameters + * @returns Promise + */ + listNext(nextPageLink: string, options?: msRest.RequestOptionsBase): Promise; + /** + * @param nextPageLink The NextLink from the previous successful call to List operation. + * @param callback The callback + */ + listNext(nextPageLink: string, callback: msRest.ServiceCallback): void; + /** + * @param nextPageLink The NextLink from the previous successful call to List operation. + * @param options The optional parameters + * @param callback The callback + */ + listNext(nextPageLink: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void; + listNext(nextPageLink: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise { + return this.client.sendOperationRequest( + { + nextPageLink, + options + }, + listNextOperationSpec, + callback) as Promise; + } + + /** + * Lists all views at the given scope. + * @param nextPageLink The NextLink from the previous successful call to List operation. + * @param [options] The optional parameters + * @returns Promise + */ + listByScopeNext(nextPageLink: string, options?: msRest.RequestOptionsBase): Promise; + /** + * @param nextPageLink The NextLink from the previous successful call to List operation. + * @param callback The callback + */ + listByScopeNext(nextPageLink: string, callback: msRest.ServiceCallback): void; + /** + * @param nextPageLink The NextLink from the previous successful call to List operation. + * @param options The optional parameters + * @param callback The callback + */ + listByScopeNext(nextPageLink: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void; + listByScopeNext(nextPageLink: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise { + return this.client.sendOperationRequest( + { + nextPageLink, + options + }, + listByScopeNextOperationSpec, + callback) as Promise; + } +} + +// Operation Specifications +const serializer = new msRest.Serializer(Mappers); +const listOperationSpec: msRest.OperationSpec = { + httpMethod: "GET", + path: "providers/Microsoft.CostManagement/views", + queryParameters: [ + Parameters.apiVersion + ], + headerParameters: [ + Parameters.acceptLanguage + ], + responses: { + 200: { + bodyMapper: Mappers.ViewListResult + }, + 204: {}, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + serializer +}; + +const listByScopeOperationSpec: msRest.OperationSpec = { + httpMethod: "GET", + path: "{scope}/providers/Microsoft.CostManagement/views", + urlParameters: [ + Parameters.scope0 + ], + queryParameters: [ + Parameters.apiVersion + ], + headerParameters: [ + Parameters.acceptLanguage + ], + responses: { + 200: { + bodyMapper: Mappers.ViewListResult + }, + 204: {}, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + serializer +}; + +const getOperationSpec: msRest.OperationSpec = { + httpMethod: "GET", + path: "providers/Microsoft.CostManagement/views/{viewName}", + urlParameters: [ + Parameters.viewName + ], + queryParameters: [ + Parameters.apiVersion + ], + headerParameters: [ + Parameters.acceptLanguage + ], + responses: { + 200: { + bodyMapper: Mappers.View + }, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + serializer +}; + +const createOrUpdateOperationSpec: msRest.OperationSpec = { + httpMethod: "PUT", + path: "providers/Microsoft.CostManagement/views/{viewName}", + urlParameters: [ + Parameters.viewName + ], + queryParameters: [ + Parameters.apiVersion + ], + headerParameters: [ + Parameters.acceptLanguage + ], + requestBody: { + parameterPath: "parameters", + mapper: { + ...Mappers.View, + required: true + } + }, + responses: { + 200: { + bodyMapper: Mappers.View + }, + 201: { + bodyMapper: Mappers.View + }, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + serializer +}; + +const deleteMethodOperationSpec: msRest.OperationSpec = { + httpMethod: "DELETE", + path: "providers/Microsoft.CostManagement/views/{viewName}", + urlParameters: [ + Parameters.viewName + ], + queryParameters: [ + Parameters.apiVersion + ], + headerParameters: [ + Parameters.acceptLanguage + ], + responses: { + 200: {}, + 204: {}, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + serializer +}; + +const getByScopeOperationSpec: msRest.OperationSpec = { + httpMethod: "GET", + path: "{scope}/providers/Microsoft.CostManagement/views/{viewName}", + urlParameters: [ + Parameters.scope0, + Parameters.viewName + ], + queryParameters: [ + Parameters.apiVersion + ], + headerParameters: [ + Parameters.acceptLanguage + ], + responses: { + 200: { + bodyMapper: Mappers.View + }, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + serializer +}; + +const createOrUpdateByScopeOperationSpec: msRest.OperationSpec = { + httpMethod: "PUT", + path: "{scope}/providers/Microsoft.CostManagement/views/{viewName}", + urlParameters: [ + Parameters.scope0, + Parameters.viewName + ], + queryParameters: [ + Parameters.apiVersion + ], + headerParameters: [ + Parameters.acceptLanguage + ], + requestBody: { + parameterPath: "parameters", + mapper: { + ...Mappers.View, + required: true + } + }, + responses: { + 200: { + bodyMapper: Mappers.View + }, + 201: { + bodyMapper: Mappers.View + }, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + serializer +}; + +const deleteByScopeOperationSpec: msRest.OperationSpec = { + httpMethod: "DELETE", + path: "{scope}/providers/Microsoft.CostManagement/views/{viewName}", + urlParameters: [ + Parameters.scope0, + Parameters.viewName + ], + queryParameters: [ + Parameters.apiVersion + ], + headerParameters: [ + Parameters.acceptLanguage + ], + responses: { + 200: {}, + 204: {}, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + serializer +}; + +const listNextOperationSpec: msRest.OperationSpec = { + httpMethod: "GET", + baseUrl: "https://management.azure.com", + path: "{nextLink}", + urlParameters: [ + Parameters.nextPageLink + ], + queryParameters: [ + Parameters.apiVersion + ], + headerParameters: [ + Parameters.acceptLanguage + ], + responses: { + 200: { + bodyMapper: Mappers.ViewListResult + }, + 204: {}, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + serializer +}; + +const listByScopeNextOperationSpec: msRest.OperationSpec = { + httpMethod: "GET", + baseUrl: "https://management.azure.com", + path: "{nextLink}", + urlParameters: [ + Parameters.nextPageLink + ], + queryParameters: [ + Parameters.apiVersion + ], + headerParameters: [ + Parameters.acceptLanguage + ], + responses: { + 200: { + bodyMapper: Mappers.ViewListResult + }, + 204: {}, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + serializer +}; diff --git a/sdk/cost-management/arm-costmanagement/tsconfig.json b/sdk/cost-management/arm-costmanagement/tsconfig.json new file mode 100644 index 000000000000..422b584abd5e --- /dev/null +++ b/sdk/cost-management/arm-costmanagement/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "es6", + "moduleResolution": "node", + "strict": true, + "target": "es5", + "sourceMap": true, + "declarationMap": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "forceConsistentCasingInFileNames": true, + "lib": ["es6", "dom"], + "declaration": true, + "outDir": "./esm", + "importHelpers": true + }, + "include": ["./src/**/*.ts"], + "exclude": ["node_modules"] +}