diff --git a/specification/cost-management/resource-manager/Microsoft.CostManagement/preview/2019-05-01-preview/costmanagement.json b/specification/cost-management/resource-manager/Microsoft.CostManagement/preview/2019-05-01-preview/costmanagement.json new file mode 100644 index 000000000000..b4025eee1980 --- /dev/null +++ b/specification/cost-management/resource-manager/Microsoft.CostManagement/preview/2019-05-01-preview/costmanagement.json @@ -0,0 +1,610 @@ +{ + "swagger": "2.0", + "info": { + "version": "2019-05-01-preview", + "title": "CostManagementClient" + }, + "host": "management.azure.com", + "schemes": ["https"], + "consumes": ["application/json"], + "produces": ["application/json"], + "security": [ + { + "azure_auth": ["user_impersonation"] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow.", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/{scope}/providers/Microsoft.CostManagement/budgets": { + "get": { + "tags": ["Budgets"], + "operationId": "Budgets_List", + "description": "Lists all budgets for the defined scope.", + "externalDocs": { + "url": "https://docs.microsoft.com/en-us/rest/api/cost-management/" + }, + "x-ms-examples": { + "BudgetsList": { + "$ref": "./examples/BudgetsList.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/scopeBudgetParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK. The request has succeeded.", + "schema": { + "$ref": "#/definitions/BudgetsListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/{scope}/providers/Microsoft.CostManagement/budgets/{budgetName}": { + "get": { + "tags": ["Budgets"], + "operationId": "Budget_Get", + "description": "Gets the budget for the scope by budget name.", + "externalDocs": { + "url": "https://docs.microsoft.com/en-us/rest/api/cost-management/" + }, + "x-ms-examples": { + "Budget": { + "$ref": "./examples/Budget.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/scopeBudgetParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + }, + { + "$ref": "#/parameters/budgetNameParameter" + } + ], + "responses": { + "200": { + "description": "OK. The request has succeeded.", + "schema": { + "$ref": "#/definitions/BudgetModel" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + }, + "put": { + "tags": ["Budgets"], + "operationId": "Budget_CreateOrUpdate", + "description": "The operation to create or update a budget. Update operation requires latest eTag to be set in the request mandatorily. You may obtain the latest eTag by performing a get operation. Create operation does not require eTag.", + "externalDocs": { + "url": "https://docs.microsoft.com/en-us/rest/api/cost-management/" + }, + "x-ms-examples": { + "CreateOrUpdateBudget": { + "$ref": "./examples/CreateOrUpdateBudget.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/scopeBudgetParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + }, + { + "$ref": "#/parameters/budgetNameParameter" + }, + { + "name": "parameters", + "in": "body", + "x-required": true, + "schema": { + "$ref": "#/definitions/BudgetModel" + }, + "description": "Parameters supplied to the Create Budget operation." + } + ], + "responses": { + "200": { + "description": "OK. The request has succeeded.", + "schema": { + "$ref": "#/definitions/BudgetModel" + } + }, + "201": { + "description": "Created.", + "schema": { + "$ref": "#/definitions/BudgetModel" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + }, + "delete": { + "tags": ["Budgets"], + "operationId": "Budget_Delete", + "description": "The operation to delete a budget.", + "externalDocs": { + "url": "https://docs.microsoft.com/en-us/rest/api/cost-management/" + }, + "x-ms-examples": { + "DeleteBudget": { + "$ref": "./examples/DeleteBudget.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/scopeBudgetParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + }, + { + "$ref": "#/parameters/budgetNameParameter" + } + ], + "responses": { + "200": { + "description": "OK. The request has succeeded." + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/providers/Microsoft.CostManagement/operations": { + "get": { + "tags": ["Operations"], + "operationId": "Operations_List", + "description": "Lists all of the available consumption REST API operations.", + "parameters": [ + { + "$ref": "#/parameters/apiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK. The request has succeeded.", + "schema": { + "$ref": "#/definitions/OperationListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + } + }, + "definitions": { + "ErrorBase": { + "description": "The details of the error.", + "properties": { + "code": { + "type": "string", + "description": "A machine readable error code.", + "readOnly": true + }, + "message": { + "type": "string", + "description": "A human readable error message.", + "readOnly": true + }, + "target": { + "type": "string", + "description": "Indicates which property in the request is responsible for the error.", + "readOnly": true + } + } + }, + "ErrorDetails": { + "description": "The details of the error.", + "properties": { + "code": { + "description": "A machine readable error code.", + "type": "string", + "readOnly": true + }, + "message": { + "description": "A human readable error message.", + "type": "string", + "readOnly": true + }, + "target": { + "description": "Indicates which property in the request is responsible for the error.", + "type": "string" + }, + "details": { + "description": "error details.", + "type": "array", + "items": { + "$ref": "#/definitions/ErrorBase" + } + } + } + }, + "ErrorResponse": { + "description": "Error response indicates that the service is not able to process the incoming request. The reason is provided in the error message.", + "type": "object", + "properties": { + "error": { + "description": "The details of the error.", + "$ref": "#/definitions/ErrorDetails" + } + } + }, + "BudgetsListResult": { + "description": "Result of listing budgets. It contains a list of available budgets in the scope provided.", + "properties": { + "value": { + "description": "The list of budgets.", + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/BudgetModel" + } + }, + "nextLink": { + "description": "The link (url) to the next page of results.", + "type": "string", + "readOnly": true + } + } + }, + "ProxyResource": { + "description": "The Resource model definition.", + "properties": { + "id": { + "readOnly": true, + "type": "string", + "description": "Resource Id." + }, + "name": { + "readOnly": true, + "type": "string", + "description": "Resource name." + }, + "type": { + "readOnly": true, + "type": "string", + "description": "Resource type." + }, + "eTag": { + "type": "string", + "description": "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." + } + }, + "x-ms-azure-resource": true + }, + "BudgetModel": { + "description": "A budget resource.", + "allOf": [ + { + "$ref": "#/definitions/ProxyResource" + } + ], + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/BudgetProperties", + "title": "Budget properties" + } + } + }, + "BudgetProperties": { + "description": "The properties of the budget.", + "properties": { + "category": { + "description": "The category of the budget, whether the budget tracks cost or usage.", + "type": "string", + "enum": ["Cost", "Usage"], + "x-ms-enum": { + "name": "CategoryType", + "modelAsString": true + } + }, + "amount": { + "description": "The total amount of cost to track with the budget", + "type": "number", + "format": "decimal" + }, + "timeGrain": { + "description": "The time covered by a budget. Tracking of the amount will be reset based on the time grain.", + "type": "string", + "enum": ["Monthly", "Quarterly", "Annually"], + "x-ms-enum": { + "name": "TimeGrainType", + "modelAsString": true + } + }, + "timePeriod": { + "description": "Has start and end date of the budget. The start date must be first of the month and should be less than the end date. Budget start date must be on or after June 1, 2017. Future start date should not be more than three months. Past start date should be selected within the timegrain period. There are no restrictions on the end date.", + "$ref": "#/definitions/BudgetTimePeriod" + }, + "filter": { + "description": "May be used to filter budgets.", + "type": "object", + "$ref": "#/definitions/ReportConfigFilter" + }, + "currentSpend": { + "description": "The current amount of cost which is being tracked for a budget.", + "$ref": "#/definitions/CurrentSpend", + "readOnly": true + }, + "notifications": { + "type": "object", + "description": "Dictionary of notifications associated with the budget. Budget can have up to five notifications.", + "additionalProperties": { + "type": "object", + "$ref": "#/definitions/Notification" + }, + "maxItems": 5 + } + }, + "required": ["category", "amount", "timeGrain", "timePeriod"] + }, + "ReportConfigFilter": { + "description": "The filter expression to be used in the report.", + "properties": { + "and": { + "description": "The logical \"AND\" expression. Must have at least 2 items.", + "type": "array", + "items": { + "$ref": "#/definitions/ReportConfigFilter" + }, + "minItems": 2 + }, + "or": { + "description": "The logical \"OR\" expression. Must have at least 2 items.", + "type": "array", + "items": { + "$ref": "#/definitions/ReportConfigFilter" + }, + "minItems": 2 + }, + "not": { + "description": "The logical \"NOT\" expression.", + "$ref": "#/definitions/ReportConfigFilter" + }, + "dimension": { + "description": "Has comparison expression for a dimension", + "$ref": "#/definitions/ReportConfigComparisonExpression" + }, + "tag": { + "description": "Has comparison expression for a tag", + "$ref": "#/definitions/ReportConfigComparisonExpression" + } + } + }, + "ReportConfigComparisonExpression": { + "description": "The comparison expression to be used in the report.", + "properties": { + "name": { + "description": "The name of the column to use in comparison.", + "type": "string" + }, + "operator": { + "description": "The operator to use for comparison.", + "type": "string", + "enum": ["In", "Contains"], + "x-ms-enum": { + "name": "OperatorType", + "modelAsString": true + } + }, + "values": { + "description": "Array of values to use for comparison", + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1 + } + }, + "required": ["name", "operator", "values"] + }, + "Operation": { + "description": "A Consumption REST API operation.", + "type": "object", + "properties": { + "name": { + "description": "Operation name: {provider}/{resource}/{operation}.", + "type": "string", + "readOnly": true + }, + "display": { + "description": "The object that represents the operation.", + "properties": { + "provider": { + "description": "Service provider: Microsoft.Consumption.", + "type": "string", + "readOnly": true + }, + "resource": { + "description": "Resource on which the operation is performed: UsageDetail, etc.", + "type": "string", + "readOnly": true + }, + "operation": { + "description": "Operation type: Read, write, delete, etc.", + "type": "string", + "readOnly": true + } + } + } + } + }, + "OperationListResult": { + "description": "Result of listing consumption operations. It contains a list of operations and a URL link to get the next set of results.", + "properties": { + "value": { + "description": "List of consumption operations supported by the Microsoft.Consumption resource provider.", + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/definitions/Operation" + } + }, + "nextLink": { + "description": "URL to get the next set of operation list results if there are any.", + "type": "string", + "readOnly": true + } + } + }, + "BudgetTimePeriod": { + "description": "The start and end date for a budget.", + "properties": { + "startDate": { + "description": "The start date for the budget.", + "type": "string", + "format": "date-time" + }, + "endDate": { + "description": "The end date for the budget. If not provided, we default this to 10 years from the start date.", + "type": "string", + "format": "date-time" + } + }, + "required": ["startDate"] + }, + "CurrentSpend": { + "description": "The current amount of cost which is being tracked for a budget.", + "properties": { + "amount": { + "description": "The total amount of cost which is being tracked by the budget.", + "type": "number", + "format": "decimal", + "readOnly": true + }, + "unit": { + "description": "The unit of measure for the budget amount.", + "type": "string", + "readOnly": true + } + } + }, + "Notification": { + "description": "The notification associated with a budget.", + "properties": { + "enabled": { + "description": "The notification is enabled or not.", + "type": "boolean" + }, + "operator": { + "description": "The comparison operator.", + "type": "string", + "enum": ["EqualTo", "GreaterThan", "GreaterThanOrEqualTo"], + "x-ms-enum": { + "name": "NotificationOperatorType", + "modelAsString": true + } + }, + "threshold": { + "description": "Threshold value associated with a notification. Notification is sent when the cost exceeded the threshold. It is always percent and has to be between 0 and 1000.", + "type": "number", + "format": "decimal" + }, + "contactEmails": { + "description": "Email addresses to send the budget notification to when the threshold is exceeded.", + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1, + "maxItems": 50 + }, + "contactRoles": { + "description": "Contact roles to send the budget notification to when the threshold is exceeded.", + "type": "array", + "items": { + "type": "string" + } + }, + "contactGroups": { + "description": "Action groups to send the budget notification to when the threshold is exceeded.", + "type": "array", + "items": { + "type": "string" + }, + "minItems": 0, + "maxItems": 50 + } + }, + "required": ["enabled", "operator", "threshold", "contactEmails"] + } + }, + "parameters": { + "apiVersionParameter": { + "name": "api-version", + "in": "query", + "required": true, + "type": "string", + "description": "Version of the API to be used with the client request. The current version is 2019-05-01-preview" + }, + "scopeBudgetParameter": { + "name": "scope", + "in": "path", + "required": true, + "type": "string", + "description": "The scope associated with budget 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}/invoiceSections/{invoiceSectionId}' for invoiceSection scope.", + "x-ms-parameter-location": "method", + "x-ms-skip-url-encoding": true + }, + "budgetNameParameter": { + "name": "budgetName", + "in": "path", + "description": "Budget Name.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + } + } +} diff --git a/specification/cost-management/resource-manager/Microsoft.CostManagement/preview/2019-05-01-preview/examples/Budget.json b/specification/cost-management/resource-manager/Microsoft.CostManagement/preview/2019-05-01-preview/examples/Budget.json new file mode 100644 index 000000000000..c50ca3a07656 --- /dev/null +++ b/specification/cost-management/resource-manager/Microsoft.CostManagement/preview/2019-05-01-preview/examples/Budget.json @@ -0,0 +1,79 @@ +{ + "parameters": { + "api-version": "2019-05-01-preview", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "MYDEVTESTRG", + "budgetName": "TestBudget", + "scope": "subscriptions/00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "id": "subscriptions/{subscription-id}/providers/Microsoft.Consumption/budgets/TestBudget", + "name": "TestBudget", + "type": "Microsoft.Consumption/budgets", + "eTag": "\"1d34d012214157f\"", + "properties": { + "category": "Cost", + "amount": 100.65, + "timeGrain": "Monthly", + "timePeriod": { + "startDate": "2017-10-01T00:00:00Z", + "endDate": "2018-10-31T00:00:00Z" + }, + "filter": { + "and": [ + { + "dimension": { + "name": "ResourceGroupName", + "operator": "In", + "values": ["MYDEVTESTRG"] + } + }, + { + "dimension": { + "name": "ResourceId", + "operator": "In", + "values": [ + "/subscriptions/{subscription-id}/resourceGroups/MYDEVTESTRG/providers/Microsoft.Compute/virtualMachines/MYVM2", + "/subscriptions/{subscription-id}/resourceGroups/MYDEVTESTRG/providers/Microsoft.Compute/virtualMachines/platformcloudplatformGeneric1" + ] + } + }, + { + "dimension": { + "name": "Meter", + "operator": "In", + "values": ["00000000-0000-0000-0000-000000000000"] + } + }, + { + "tag": { + "name": "Dev", + "operator": "In", + "values": ["engineering"] + } + } + ] + }, + "currentSpend": { + "amount": 80.89, + "unit": "USD" + }, + "notifications": { + "Actual_GreaterThan_80_Percent": { + "enabled": true, + "operator": "GreaterThan", + "threshold": 80, + "contactEmails": ["johndoe@contoso.com", "janesmith@contoso.com"], + "contactRoles": ["Contributor", "Reader"], + "contactGroups": [ + "/subscriptions/{subscription-id}/resourceGroups/MYDEVTESTRG/providers/microsoft.insights/actionGroups/SampleActionGroup" + ] + } + } + } + } + } + } +} diff --git a/specification/cost-management/resource-manager/Microsoft.CostManagement/preview/2019-05-01-preview/examples/BudgetsList.json b/specification/cost-management/resource-manager/Microsoft.CostManagement/preview/2019-05-01-preview/examples/BudgetsList.json new file mode 100644 index 000000000000..b7f50ea34103 --- /dev/null +++ b/specification/cost-management/resource-manager/Microsoft.CostManagement/preview/2019-05-01-preview/examples/BudgetsList.json @@ -0,0 +1,174 @@ +{ + "parameters": { + "api-version": "2019-05-01-preview", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "MYDEVTESTRG", + "scope": "subscriptions/00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "subscriptions/{subscription-id}/providers/Microsoft.Consumption/budgets/TestBudget", + "name": "TestBudget", + "type": "Microsoft.Consumption/budgets", + "eTag": "\"1d34d012214157f\"", + "properties": { + "category": "Cost", + "amount": 100.65, + "timeGrain": "Monthly", + "timePeriod": { + "startDate": "2017-10-01T00:00:00Z", + "endDate": "2018-10-31T00:00:00Z" + }, + "filter": { + "and": [ + { + "dimension": { + "name": "ResourceGroupName", + "operator": "In", + "values": ["MYDEVTESTRG"] + } + }, + { + "dimension": { + "name": "ResourceId", + "operator": "In", + "values": [ + "/subscriptions/{subscription-id}/resourceGroups/MYDEVTESTRG/providers/Microsoft.Compute/virtualMachines/MYVM2", + "/subscriptions/{subscription-id}/resourceGroups/MYDEVTESTRG/providers/Microsoft.Compute/virtualMachines/platformcloudplatformGeneric1" + ] + } + }, + { + "dimension": { + "name": "Meter", + "operator": "In", + "values": ["00000000-0000-0000-0000-000000000000"] + } + }, + { + "tag": { + "name": "Dev", + "operator": "In", + "values": ["engineering"] + } + } + ] + }, + "currentSpend": { + "amount": 80.89, + "unit": "USD" + }, + "notifications": { + "Actual_GreaterThan_80_Percent": { + "enabled": true, + "operator": "GreaterThan", + "threshold": 80, + "contactEmails": [ + "johndoe@contoso.com", + "janesmith@contoso.com" + ], + "contactRoles": ["Contributor", "Reader"] + }, + "Actual_GreaterThanOrEqualTo_90_Percent": { + "enabled": true, + "operator": "GreaterThanOrEqualTo", + "threshold": 90, + "contactEmails": [ + "johndoe@contoso.com", + "janesmith@contoso.com" + ], + "contactRoles": ["Contributor", "Reader"], + "contactGroups": [ + "/subscriptions/{subscription-id}/resourceGroups/MYDEVTESTRG/providers/microsoft.insights/actionGroups/SampleActionGroup" + ] + } + } + } + }, + { + "id": "subscriptions/{subscription-id}/providers/Microsoft.Consumption/budgets/TestBudget", + "name": "TestBudget", + "type": "Microsoft.Consumption/budgets", + "eTag": "\"1d34d012214157f\"", + "properties": { + "category": "Cost", + "amount": 600.65, + "timeGrain": "Monthly", + "timePeriod": { + "startDate": "2017-10-01T00:00:00Z", + "endDate": "2018-10-31T00:00:00Z" + }, + "filter": { + "and": [ + { + "dimension": { + "name": "ResourceGroupName", + "operator": "In", + "values": ["MYDEVTESTRG"] + } + }, + { + "dimension": { + "name": "ResourceId", + "operator": "In", + "values": [ + "/subscriptions/{subscription-id}/resourceGroups/MYDEVTESTRG/providers/Microsoft.Compute/virtualMachines/MYVM2", + "/subscriptions/{subscription-id}/resourceGroups/MYDEVTESTRG/providers/Microsoft.Compute/virtualMachines/platformcloudplatformGeneric1" + ] + } + }, + { + "dimension": { + "name": "Meter", + "operator": "In", + "values": ["00000000-0000-0000-0000-000000000000"] + } + }, + { + "tag": { + "name": "Dev", + "operator": "In", + "values": ["engineering"] + } + } + ] + }, + "currentSpend": { + "amount": 120.89, + "unit": "USD" + }, + "notifications": { + "Actual_GreaterThan_40_Percent": { + "enabled": true, + "operator": "GreaterThan", + "threshold": 40, + "contactEmails": [ + "johndoe@contoso.com", + "janesmith@contoso.com" + ], + "contactRoles": ["Contributor", "Reader"] + }, + "Actual_GreaterThanOrEqualTo_60_Percent": { + "enabled": true, + "operator": "GreaterThanOrEqualTo", + "threshold": 60, + "contactEmails": [ + "johndoe@contoso.com", + "janesmith@contoso.com" + ], + "contactRoles": ["Contributor", "Reader"], + "contactGroups": [ + "/subscriptions/{subscription-id}/resourceGroups/MYDEVTESTRG/providers/microsoft.insights/actionGroups/SampleActionGroup" + ] + } + } + } + } + ] + } + } + } +} diff --git a/specification/cost-management/resource-manager/Microsoft.CostManagement/preview/2019-05-01-preview/examples/CreateOrUpdateBudget.json b/specification/cost-management/resource-manager/Microsoft.CostManagement/preview/2019-05-01-preview/examples/CreateOrUpdateBudget.json new file mode 100644 index 000000000000..0b7f288364e0 --- /dev/null +++ b/specification/cost-management/resource-manager/Microsoft.CostManagement/preview/2019-05-01-preview/examples/CreateOrUpdateBudget.json @@ -0,0 +1,206 @@ +{ + "parameters": { + "api-version": "2019-05-01-preview", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "MYDEVTESTRG", + "budgetName": "TestBudget", + "scope": "subscriptions/00000000-0000-0000-0000-000000000000", + "parameters": { + "eTag": "\"1d34d016a593709\"", + "properties": { + "category": "Cost", + "amount": 100.65, + "timeGrain": "Monthly", + "timePeriod": { + "startDate": "2017-10-01T00:00:00Z", + "endDate": "2018-10-31T00:00:00Z" + }, + "filter": { + "and": [ + { + "dimension": { + "name": "ResourceGroupName", + "operator": "In", + "values": ["MYDEVTESTRG"] + } + }, + { + "dimension": { + "name": "ResourceId", + "operator": "In", + "values": [ + "/subscriptions/{subscription-id}/resourceGroups/MYDEVTESTRG/providers/Microsoft.Compute/virtualMachines/MYVM2", + "/subscriptions/{subscription-id}/resourceGroups/MYDEVTESTRG/providers/Microsoft.Compute/virtualMachines/platformcloudplatformGeneric1" + ] + } + }, + { + "dimension": { + "name": "Meter", + "operator": "In", + "values": ["00000000-0000-0000-0000-000000000000"] + } + }, + { + "tag": { + "name": "Dev", + "operator": "In", + "values": ["engineering"] + } + } + ] + }, + "notifications": { + "Actual_GreaterThan_80_Percent": { + "enabled": true, + "operator": "GreaterThan", + "threshold": 80, + "contactEmails": ["johndoe@contoso.com", "janesmith@contoso.com"], + "contactRoles": ["Contributor", "Reader"], + "contactGroups": [ + "/subscriptions/{subscription-id}/resourceGroups/MYDEVTESTRG/providers/microsoft.insights/actionGroups/SampleActionGroup" + ] + } + } + } + } + }, + "responses": { + "201": { + "body": { + "id": "subscriptions/{subscription-id}/providers/Microsoft.Consumption/budgets/TestBudget", + "name": "TestBudget", + "type": "Microsoft.Consumption/budgets", + "eTag": "\"1d34d012214157f\"", + "properties": { + "category": "Cost", + "amount": 100.65, + "timeGrain": "Monthly", + "timePeriod": { + "startDate": "2017-10-01T00:00:00Z", + "endDate": "2018-10-31T00:00:00Z" + }, + "filter": { + "and": [ + { + "dimension": { + "name": "ResourceGroupName", + "operator": "In", + "values": ["MYDEVTESTRG"] + } + }, + { + "dimension": { + "name": "ResourceId", + "operator": "In", + "values": [ + "/subscriptions/{subscription-id}/resourceGroups/MYDEVTESTRG/providers/Microsoft.Compute/virtualMachines/MYVM2", + "/subscriptions/{subscription-id}/resourceGroups/MYDEVTESTRG/providers/Microsoft.Compute/virtualMachines/platformcloudplatformGeneric1" + ] + } + }, + { + "dimension": { + "name": "Meter", + "operator": "In", + "values": ["00000000-0000-0000-0000-000000000000"] + } + }, + { + "tag": { + "name": "Dev", + "operator": "In", + "values": ["engineering"] + } + } + ] + }, + "currentSpend": { + "amount": 80.89, + "unit": "USD" + }, + "notifications": { + "Actual_GreaterThan_80_Percent": { + "enabled": true, + "operator": "GreaterThan", + "threshold": 80, + "contactEmails": ["johndoe@contoso.com", "janesmith@contoso.com"], + "contactRoles": ["Contributor", "Reader"], + "contactGroups": [ + "/subscriptions/{subscription-id}/resourceGroups/MYDEVTESTRG/providers/microsoft.insights/actionGroups/SampleActionGroup" + ] + } + } + } + } + }, + "200": { + "body": { + "id": "subscriptions/{subscription-id}/providers/Microsoft.Consumption/budgets/TestBudget", + "name": "TestBudget", + "type": "Microsoft.Consumption/budgets", + "eTag": "\"1d34d012214157f\"", + "properties": { + "category": "Cost", + "amount": 100.65, + "timeGrain": "Monthly", + "timePeriod": { + "startDate": "2017-10-01T00:00:00Z", + "endDate": "2018-10-31T00:00:00Z" + }, + "filter": { + "and": [ + { + "dimension": { + "name": "ResourceGroupName", + "operator": "In", + "values": ["MYDEVTESTRG"] + } + }, + { + "dimension": { + "name": "ResourceId", + "operator": "In", + "values": [ + "/subscriptions/{subscription-id}/resourceGroups/MYDEVTESTRG/providers/Microsoft.Compute/virtualMachines/MYVM2", + "/subscriptions/{subscription-id}/resourceGroups/MYDEVTESTRG/providers/Microsoft.Compute/virtualMachines/platformcloudplatformGeneric1" + ] + } + }, + { + "dimension": { + "name": "Meter", + "operator": "In", + "values": ["00000000-0000-0000-0000-000000000000"] + } + }, + { + "tag": { + "name": "Dev", + "operator": "In", + "values": ["engineering"] + } + } + ] + }, + "currentSpend": { + "amount": 80.89, + "unit": "USD" + }, + "notifications": { + "Actual_GreaterThan_80_Percent": { + "enabled": true, + "operator": "GreaterThan", + "threshold": 80, + "contactEmails": ["johndoe@contoso.com", "janesmith@contoso.com"], + "contactRoles": ["Contributor", "Reader"], + "contactGroups": [ + "/subscriptions/{subscription-id}/resourceGroups/MYDEVTESTRG/providers/microsoft.insights/actionGroups/SampleActionGroup" + ] + } + } + } + } + } + } +} diff --git a/specification/cost-management/resource-manager/Microsoft.CostManagement/preview/2019-05-01-preview/examples/DeleteBudget.json b/specification/cost-management/resource-manager/Microsoft.CostManagement/preview/2019-05-01-preview/examples/DeleteBudget.json new file mode 100644 index 000000000000..f096b471092d --- /dev/null +++ b/specification/cost-management/resource-manager/Microsoft.CostManagement/preview/2019-05-01-preview/examples/DeleteBudget.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "api-version": "2019-05-01-preview", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "MYDEVTESTRG", + "budgetName": "TestBudget", + "scope": "subscriptions/00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + } + } +} \ No newline at end of file diff --git a/specification/cost-management/resource-manager/readme.md b/specification/cost-management/resource-manager/readme.md index 9be7e6389925..cb70d9cc3099 100644 --- a/specification/cost-management/resource-manager/readme.md +++ b/specification/cost-management/resource-manager/readme.md @@ -26,28 +26,39 @@ These are the global settings for the Cost Management API. ``` yaml openapi-type: arm -tag: package-2019-01 +tag: package-preview-2019-05 azure-validator: true ``` --- +### Tag: package-preview-2019-05 + +These settings apply only when `--tag=package-preview-2019-05` is specified on the command line. + +``` yaml $(tag) == 'package-preview-2019-05' +input-file: + - Microsoft.CostManagement/preview/2019-05-01-preview/costmanagement.json +``` + ### Tag: package-2019-01 These settings apply only when `--tag=package-2019-01` is specified on the command line. -```yaml $(tag) == 'package-2019-01' +``` yaml $(tag) == 'package-2019-01' input-file: - Microsoft.CostManagement/stable/2019-01-01/costmanagement.json ``` + ### Tag: package-preview-2019-03 These settings apply only when `--tag=package-preview-2019-03` is specified on the command line. -```yaml $(tag) == 'package-preview-2019-03' +``` yaml $(tag) == 'package-preview-2019-03' input-file: - Microsoft.CostManagement/preview/2019-03-01-preview/costmanagement.json ``` + ### Tag: package-2018-05 These settings apply only when `--tag=package-2018-05` is specified on the command line. @@ -69,6 +80,10 @@ directive: from: costmanagement.json where: $.paths reason: operations API for Microsoft.Billing are defined in Microsoft.Billing + - suppress: EnumInsteadOfBoolean + from: costmanagement.json + where: $.definitions.Notification.properties.enabled + reason: 'false alarm ' ``` ### Tag: package-2018-08-preview