From 809a4a7cc7f7d71edbbea85061bf1dd9934017c4 Mon Sep 17 00:00:00 2001 From: SDKAuto Date: Fri, 4 Dec 2020 02:30:13 +0000 Subject: [PATCH] CodeGen from PR 11753 in Azure/azure-rest-api-specs [Hub Generated] Review request for Microsoft.CostManagement to add version stable/2020-06-01 (#11753) * Creating separate swagger file for exports * add exports swagger to readme * edit api version * add "TheLast7Days" to exports timeframes * remove 'TheLast7Days' from export timeframes * prettier fix * prettier fix 2 * Fix for swagger correctness: eTag property missing and recurrence not required --- .../deploymentTemplate.json | 9 + schemas/2015-01-01/deploymentTemplate.json | 7 + .../2018-05-31/Microsoft.CostManagement.json | 602 ++++++++ .../Microsoft.CostManagement.json | 742 ++++++++++ .../2019-01-01/Microsoft.CostManagement.json | 606 +++++++++ .../Microsoft.CostManagement.json | 374 +++++ .../Microsoft.CostManagement.json | 892 ++++++++++++ schemas/2019-04-01/deploymentTemplate.json | 7 + .../2019-09-01/Microsoft.CostManagement.json | 604 ++++++++ .../2019-10-01-preview/Microsoft.Migrate.json | 939 +++++++++++++ .../2019-10-01/Microsoft.CostManagement.json | 604 ++++++++ .../2019-11-01/Microsoft.CostManagement.json | 1206 ++++++++++++++++ .../Microsoft.CostManagement.json | 253 ++++ .../2020-06-01/Microsoft.CostManagement.json | 647 +++++++++ schemas/2020-09-18/Microsoft.Kusto.json | 1210 +++++++++++++++++ schemas/common/autogeneratedResources.json | 6 + 16 files changed, 8708 insertions(+) create mode 100644 schemas/2018-05-31/Microsoft.CostManagement.json create mode 100644 schemas/2018-08-01-preview/Microsoft.CostManagement.json create mode 100644 schemas/2019-01-01/Microsoft.CostManagement.json create mode 100644 schemas/2019-03-01-preview/Microsoft.CostManagement.json create mode 100644 schemas/2019-04-01-preview/Microsoft.CostManagement.json create mode 100644 schemas/2019-09-01/Microsoft.CostManagement.json create mode 100644 schemas/2019-10-01-preview/Microsoft.Migrate.json create mode 100644 schemas/2019-10-01/Microsoft.CostManagement.json create mode 100644 schemas/2019-11-01/Microsoft.CostManagement.json create mode 100644 schemas/2020-03-01-preview/Microsoft.CostManagement.json create mode 100644 schemas/2020-06-01/Microsoft.CostManagement.json create mode 100644 schemas/2020-09-18/Microsoft.Kusto.json diff --git a/schemas/2014-04-01-preview/deploymentTemplate.json b/schemas/2014-04-01-preview/deploymentTemplate.json index e7efa8586d..a0c6cb6408 100644 --- a/schemas/2014-04-01-preview/deploymentTemplate.json +++ b/schemas/2014-04-01-preview/deploymentTemplate.json @@ -156,6 +156,13 @@ { "$ref": "https://schema.management.azure.com/schemas/2020-06-14/Microsoft.Kusto.json#/resourceDefinitions/clusters_dataconnections" }, { "$ref": "https://schema.management.azure.com/schemas/2020-06-14/Microsoft.Kusto.json#/resourceDefinitions/clusters_principalassignments" }, { "$ref": "https://schema.management.azure.com/schemas/2020-06-14/Microsoft.Kusto.json#/resourceDefinitions/clusters_databases_principalassignments" }, + { "$ref": "https://schema.management.azure.com/schemas/2020-09-18/Microsoft.Kusto.json#/resourceDefinitions/clusters" }, + { "$ref": "https://schema.management.azure.com/schemas/2020-09-18/Microsoft.Kusto.json#/resourceDefinitions/clusters_databases" }, + { "$ref": "https://schema.management.azure.com/schemas/2020-09-18/Microsoft.Kusto.json#/resourceDefinitions/clusters_databases_dataconnections" }, + { "$ref": "https://schema.management.azure.com/schemas/2020-09-18/Microsoft.Kusto.json#/resourceDefinitions/clusters_attacheddatabaseconfigurations" }, + { "$ref": "https://schema.management.azure.com/schemas/2020-09-18/Microsoft.Kusto.json#/resourceDefinitions/clusters_dataconnections" }, + { "$ref": "https://schema.management.azure.com/schemas/2020-09-18/Microsoft.Kusto.json#/resourceDefinitions/clusters_principalassignments" }, + { "$ref": "https://schema.management.azure.com/schemas/2020-09-18/Microsoft.Kusto.json#/resourceDefinitions/clusters_databases_principalassignments" }, { "$ref": "https://schema.management.azure.com/schemas/2014-04-01/Microsoft.Insights.json#/resourceDefinitions/alertrules" }, { "$ref": "https://schema.management.azure.com/schemas/2014-04-01/Microsoft.Insights.json#/resourceDefinitions/components" }, { "$ref": "https://schema.management.azure.com/schemas/2014-04-01/Microsoft.Insights.json#/resourceDefinitions/autoscalesettings" }, @@ -1843,6 +1850,8 @@ { "$ref": "https://schema.management.azure.com/schemas/2019-10-01/Microsoft.Migrate.json#/resourceDefinitions/assessmentProjects_groups_assessments" }, { "$ref": "https://schema.management.azure.com/schemas/2019-10-01/Microsoft.Migrate.json#/resourceDefinitions/assessmentProjects_hypervcollectors" }, { "$ref": "https://schema.management.azure.com/schemas/2019-10-01/Microsoft.Migrate.json#/resourceDefinitions/assessmentProjects_vmwarecollectors" }, + { "$ref": "https://schema.management.azure.com/schemas/2019-10-01-preview/Microsoft.Migrate.json#/resourceDefinitions/moveCollections" }, + { "$ref": "https://schema.management.azure.com/schemas/2019-10-01-preview/Microsoft.Migrate.json#/resourceDefinitions/moveCollections_moveResources" }, { "$ref": "https://schema.management.azure.com/schemas/2019-03-01/Microsoft.Insights.json#/resourceDefinitions/actionGroups" }, { "$ref": "https://schema.management.azure.com/schemas/2018-06-01-preview/Microsoft.ManagedServices.json#/resourceDefinitions/registrationAssignments" }, { "$ref": "https://schema.management.azure.com/schemas/2018-06-01-preview/Microsoft.ManagedServices.json#/resourceDefinitions/registrationDefinitions" }, diff --git a/schemas/2015-01-01/deploymentTemplate.json b/schemas/2015-01-01/deploymentTemplate.json index 89255d5233..75c028eb20 100644 --- a/schemas/2015-01-01/deploymentTemplate.json +++ b/schemas/2015-01-01/deploymentTemplate.json @@ -202,6 +202,13 @@ { "$ref": "https://schema.management.azure.com/schemas/2020-06-14/Microsoft.Kusto.json#/resourceDefinitions/clusters_dataconnections" }, { "$ref": "https://schema.management.azure.com/schemas/2020-06-14/Microsoft.Kusto.json#/resourceDefinitions/clusters_principalassignments" }, { "$ref": "https://schema.management.azure.com/schemas/2020-06-14/Microsoft.Kusto.json#/resourceDefinitions/clusters_databases_principalassignments" }, + { "$ref": "https://schema.management.azure.com/schemas/2020-09-18/Microsoft.Kusto.json#/resourceDefinitions/clusters" }, + { "$ref": "https://schema.management.azure.com/schemas/2020-09-18/Microsoft.Kusto.json#/resourceDefinitions/clusters_databases" }, + { "$ref": "https://schema.management.azure.com/schemas/2020-09-18/Microsoft.Kusto.json#/resourceDefinitions/clusters_databases_dataconnections" }, + { "$ref": "https://schema.management.azure.com/schemas/2020-09-18/Microsoft.Kusto.json#/resourceDefinitions/clusters_attacheddatabaseconfigurations" }, + { "$ref": "https://schema.management.azure.com/schemas/2020-09-18/Microsoft.Kusto.json#/resourceDefinitions/clusters_dataconnections" }, + { "$ref": "https://schema.management.azure.com/schemas/2020-09-18/Microsoft.Kusto.json#/resourceDefinitions/clusters_principalassignments" }, + { "$ref": "https://schema.management.azure.com/schemas/2020-09-18/Microsoft.Kusto.json#/resourceDefinitions/clusters_databases_principalassignments" }, { "$ref": "https://schema.management.azure.com/schemas/2014-04-01/Microsoft.Insights.json#/resourceDefinitions/alertrules" }, { "$ref": "https://schema.management.azure.com/schemas/2014-04-01/Microsoft.Insights.json#/resourceDefinitions/components" }, { "$ref": "https://schema.management.azure.com/schemas/2014-04-01/Microsoft.Insights.json#/resourceDefinitions/autoscalesettings" }, diff --git a/schemas/2018-05-31/Microsoft.CostManagement.json b/schemas/2018-05-31/Microsoft.CostManagement.json new file mode 100644 index 0000000000..d9eb1ba9d0 --- /dev/null +++ b/schemas/2018-05-31/Microsoft.CostManagement.json @@ -0,0 +1,602 @@ +{ + "id": "https://schema.management.azure.com/schemas/2018-05-31/Microsoft.CostManagement.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.CostManagement", + "description": "Microsoft CostManagement Resource Types", + "resourceDefinitions": { + "reportconfigs": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2018-05-31" + ] + }, + "name": { + "type": "string", + "description": "Report Config Name." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ReportConfigProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The properties of the report config." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.CostManagement/reportconfigs" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.CostManagement/reportconfigs" + } + }, + "subscription_resourceDefinitions": { + "reportconfigs": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2018-05-31" + ] + }, + "name": { + "type": "string", + "description": "Report Config Name." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ReportConfigProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The properties of the report config." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.CostManagement/reportconfigs" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.CostManagement/reportconfigs" + } + }, + "definitions": { + "ReportConfigAggregation": { + "type": "object", + "properties": { + "function": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Sum" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The name of the aggregation function to use." + }, + "name": { + "type": "string", + "description": "The name of the column to aggregate." + } + }, + "required": [ + "function", + "name" + ], + "description": "The aggregation expression to be used in the report." + }, + "ReportConfigComparisonExpression": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the column to use in comparison." + }, + "operator": { + "oneOf": [ + { + "type": "string", + "enum": [ + "In" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The operator to use for comparison." + }, + "values": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Array of values to use for comparison" + } + }, + "required": [ + "name", + "operator", + "values" + ], + "description": "The comparison expression to be used in the report." + }, + "ReportConfigDataset": { + "type": "object", + "properties": { + "aggregation": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/ReportConfigAggregation" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "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." + }, + "configuration": { + "oneOf": [ + { + "$ref": "#/definitions/ReportConfigDatasetConfiguration" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The configuration of dataset in the report." + }, + "filter": { + "oneOf": [ + { + "$ref": "#/definitions/ReportConfigFilter" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The filter expression to be used in the report." + }, + "granularity": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Daily" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The granularity of rows in the report." + }, + "grouping": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ReportConfigGrouping" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Array of group by expression to use in the report. Report can have up to 2 group by clauses." + } + }, + "description": "The definition of data present in the report." + }, + "ReportConfigDatasetConfiguration": { + "type": "object", + "properties": { + "columns": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "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." + } + }, + "description": "The configuration of dataset in the report." + }, + "ReportConfigDefinition": { + "type": "object", + "properties": { + "dataset": { + "oneOf": [ + { + "$ref": "#/definitions/ReportConfigDataset" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The definition of data present in the report." + }, + "timeframe": { + "oneOf": [ + { + "type": "string", + "enum": [ + "WeekToDate", + "MonthToDate", + "YearToDate", + "Custom" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The time frame for pulling data for the report. If custom, then a specific time period must be provided." + }, + "timePeriod": { + "oneOf": [ + { + "$ref": "#/definitions/ReportConfigTimePeriod" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The start and end date for pulling data for the report." + }, + "type": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Usage" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The type of the report." + } + }, + "required": [ + "timeframe", + "type" + ], + "description": "The definition of a report config." + }, + "ReportConfigDeliveryDestination": { + "type": "object", + "properties": { + "container": { + "type": "string", + "description": "The name of the container where reports will be uploaded." + }, + "resourceId": { + "type": "string", + "description": "The resource id of the storage account where reports will be delivered." + }, + "rootFolderPath": { + "type": "string", + "description": "The name of the directory where reports will be uploaded." + } + }, + "required": [ + "container", + "resourceId" + ], + "description": "The destination information for the delivery of the report." + }, + "ReportConfigDeliveryInfo": { + "type": "object", + "properties": { + "destination": { + "oneOf": [ + { + "$ref": "#/definitions/ReportConfigDeliveryDestination" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The destination information for the delivery of the report." + } + }, + "required": [ + "destination" + ], + "description": "The delivery information associated with a report config." + }, + "ReportConfigFilter": { + "type": "object", + "properties": { + "and": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ReportConfigFilter" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The logical \"AND\" expression. Must have at least 2 items." + }, + "dimension": { + "oneOf": [ + { + "$ref": "#/definitions/ReportConfigComparisonExpression" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The comparison expression to be used in the report." + }, + "not": { + "oneOf": [ + { + "$ref": "#/definitions/ReportConfigFilter" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The filter expression to be used in the report." + }, + "or": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ReportConfigFilter" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The logical \"OR\" expression. Must have at least 2 items." + }, + "tag": { + "oneOf": [ + { + "$ref": "#/definitions/ReportConfigComparisonExpression" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The comparison expression to be used in the report." + } + }, + "description": "The filter expression to be used in the report." + }, + "ReportConfigGrouping": { + "type": "object", + "properties": { + "columnType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Tag", + "Dimension" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Has type of the column to group." + }, + "name": { + "type": "string", + "description": "The name of the column to group." + } + }, + "required": [ + "columnType", + "name" + ], + "description": "The group by expression to be used in the report." + }, + "ReportConfigProperties": { + "type": "object", + "properties": { + "definition": { + "oneOf": [ + { + "$ref": "#/definitions/ReportConfigDefinition" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The definition of a report config." + }, + "deliveryInfo": { + "oneOf": [ + { + "$ref": "#/definitions/ReportConfigDeliveryInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The delivery information associated with a report config." + }, + "format": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Csv" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The format of the report being delivered." + }, + "schedule": { + "oneOf": [ + { + "$ref": "#/definitions/ReportConfigSchedule" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The schedule associated with a report config." + } + }, + "required": [ + "definition", + "deliveryInfo" + ], + "description": "The properties of the report config." + }, + "ReportConfigRecurrencePeriod": { + "type": "object", + "properties": { + "from": { + "type": "string", + "format": "date-time", + "description": "The start date of recurrence." + }, + "to": { + "type": "string", + "format": "date-time", + "description": "The end date of recurrence. If not provided, we default this to 10 years from the start date." + } + }, + "required": [ + "from" + ], + "description": "The start and end date for recurrence schedule." + }, + "ReportConfigSchedule": { + "type": "object", + "properties": { + "recurrence": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Daily", + "Weekly", + "Monthly", + "Annually" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The schedule recurrence." + }, + "recurrencePeriod": { + "oneOf": [ + { + "$ref": "#/definitions/ReportConfigRecurrencePeriod" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The start and end date for recurrence schedule." + }, + "status": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Active", + "Inactive" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The status of the schedule. Whether active or not. If inactive, the report's scheduled execution is paused." + } + }, + "required": [ + "recurrence", + "recurrencePeriod" + ], + "description": "The schedule associated with a report config." + }, + "ReportConfigTimePeriod": { + "type": "object", + "properties": { + "from": { + "type": "string", + "format": "date-time", + "description": "The start date to pull data from." + }, + "to": { + "type": "string", + "format": "date-time", + "description": "The end date to pull data to." + } + }, + "required": [ + "from", + "to" + ], + "description": "The start and end date for pulling data for the report." + } + } +} diff --git a/schemas/2018-08-01-preview/Microsoft.CostManagement.json b/schemas/2018-08-01-preview/Microsoft.CostManagement.json new file mode 100644 index 0000000000..73ee5a515b --- /dev/null +++ b/schemas/2018-08-01-preview/Microsoft.CostManagement.json @@ -0,0 +1,742 @@ +{ + "id": "https://schema.management.azure.com/schemas/2018-08-01-preview/Microsoft.CostManagement.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.CostManagement", + "description": "Microsoft CostManagement Resource Types", + "resourceDefinitions": { + "connectors": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2018-08-01-preview" + ] + }, + "kind": { + "type": "string", + "description": "Connector kind (eg aws)" + }, + "location": { + "type": "string", + "description": "Connector location" + }, + "name": { + "type": "string", + "description": "Connector Name." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ConnectorProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The properties of a Connector" + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource tags." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.CostManagement/connectors" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.CostManagement/connectors" + }, + "reports": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2018-08-01-preview" + ] + }, + "name": { + "type": "string", + "description": "Report Name." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ReportProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The properties of the report." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.CostManagement/reports" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.CostManagement/reports" + } + }, + "subscription_resourceDefinitions": { + "reports": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2018-08-01-preview" + ] + }, + "name": { + "type": "string", + "description": "Report Name." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ReportProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The properties of the report." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.CostManagement/reports" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.CostManagement/reports" + } + }, + "extension_resourceDefinitions": { + "reports": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2018-08-01-preview" + ] + }, + "name": { + "type": "string", + "description": "Report Name." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ReportProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The properties of the report." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.CostManagement/reports" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.CostManagement/reports" + } + }, + "definitions": { + "ConnectorProperties": { + "type": "object", + "properties": { + "credentialsKey": { + "type": "string", + "description": "Credentials authentication key (eg AWS ARN)" + }, + "credentialsSecret": { + "type": "string", + "description": "Credentials secret (eg AWS ExternalId)" + }, + "displayName": { + "type": "string", + "description": "Connector DisplayName (defaults to Name)" + }, + "reportId": { + "type": "string", + "description": "Identifying source report. (For AWS this is a CUR report name, defined with Daily and with Resources)" + }, + "status": { + "oneOf": [ + { + "type": "string", + "enum": [ + "active", + "error", + "suspended" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Connector status." + } + }, + "description": "The properties of a Connector" + }, + "ReportAggregation": { + "type": "object", + "properties": { + "function": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Sum" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The name of the aggregation function to use." + }, + "name": { + "type": "string", + "description": "The name of the column to aggregate." + } + }, + "required": [ + "function", + "name" + ], + "description": "The aggregation expression to be used in the report." + }, + "ReportComparisonExpression": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the column to use in comparison." + }, + "operator": { + "oneOf": [ + { + "type": "string", + "enum": [ + "In" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The operator to use for comparison." + }, + "values": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Array of values to use for comparison" + } + }, + "required": [ + "name", + "operator", + "values" + ], + "description": "The comparison expression to be used in the report." + }, + "ReportDataset": { + "type": "object", + "properties": { + "aggregation": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/ReportAggregation" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "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." + }, + "configuration": { + "oneOf": [ + { + "$ref": "#/definitions/ReportDatasetConfiguration" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The configuration of dataset in the report." + }, + "filter": { + "oneOf": [ + { + "$ref": "#/definitions/ReportFilter" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The filter expression to be used in the report." + }, + "granularity": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Daily", + "Hourly" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The granularity of rows in the report." + }, + "grouping": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ReportGrouping" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Array of group by expression to use in the report. Report can have up to 2 group by clauses." + } + }, + "description": "The definition of data present in the report." + }, + "ReportDatasetConfiguration": { + "type": "object", + "properties": { + "columns": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "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." + } + }, + "description": "The configuration of dataset in the report." + }, + "ReportDefinition": { + "type": "object", + "properties": { + "dataset": { + "oneOf": [ + { + "$ref": "#/definitions/ReportDataset" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The definition of data present in the report." + }, + "timeframe": { + "oneOf": [ + { + "type": "string", + "enum": [ + "WeekToDate", + "MonthToDate", + "Custom" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The time frame for pulling data for the report. If custom, then a specific time period must be provided." + }, + "timePeriod": { + "oneOf": [ + { + "$ref": "#/definitions/ReportTimePeriod" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The start and end date for pulling data for the report." + }, + "type": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Usage" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The type of the report." + } + }, + "required": [ + "timeframe", + "type" + ], + "description": "The definition of a report." + }, + "ReportDeliveryDestination": { + "type": "object", + "properties": { + "container": { + "type": "string", + "description": "The name of the container where reports will be uploaded." + }, + "resourceId": { + "type": "string", + "description": "The resource id of the storage account where reports will be delivered." + }, + "rootFolderPath": { + "type": "string", + "description": "The name of the directory where reports will be uploaded." + } + }, + "required": [ + "container", + "resourceId" + ], + "description": "The destination information for the delivery of the report." + }, + "ReportDeliveryInfo": { + "type": "object", + "properties": { + "destination": { + "oneOf": [ + { + "$ref": "#/definitions/ReportDeliveryDestination" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The destination information for the delivery of the report." + } + }, + "required": [ + "destination" + ], + "description": "The delivery information associated with a report." + }, + "ReportFilter": { + "type": "object", + "properties": { + "and": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ReportFilter" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The logical \"AND\" expression. Must have at least 2 items." + }, + "dimension": { + "oneOf": [ + { + "$ref": "#/definitions/ReportComparisonExpression" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The comparison expression to be used in the report." + }, + "not": { + "oneOf": [ + { + "$ref": "#/definitions/ReportFilter" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The filter expression to be used in the report." + }, + "or": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ReportFilter" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The logical \"OR\" expression. Must have at least 2 items." + }, + "tag": { + "oneOf": [ + { + "$ref": "#/definitions/ReportComparisonExpression" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The comparison expression to be used in the report." + } + }, + "description": "The filter expression to be used in the report." + }, + "ReportGrouping": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the column to group." + }, + "type": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Tag", + "Dimension" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Has type of the column to group." + } + }, + "required": [ + "name", + "type" + ], + "description": "The group by expression to be used in the report." + }, + "ReportProperties": { + "type": "object", + "properties": { + "definition": { + "oneOf": [ + { + "$ref": "#/definitions/ReportDefinition" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The definition of a report." + }, + "deliveryInfo": { + "oneOf": [ + { + "$ref": "#/definitions/ReportDeliveryInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The delivery information associated with a report." + }, + "format": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Csv" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The format of the report being delivered." + }, + "schedule": { + "oneOf": [ + { + "$ref": "#/definitions/ReportSchedule" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The schedule associated with a report." + } + }, + "required": [ + "definition", + "deliveryInfo" + ], + "description": "The properties of the report." + }, + "ReportRecurrencePeriod": { + "type": "object", + "properties": { + "from": { + "type": "string", + "format": "date-time", + "description": "The start date of recurrence." + }, + "to": { + "type": "string", + "format": "date-time", + "description": "The end date of recurrence." + } + }, + "required": [ + "from" + ], + "description": "The start and end date for recurrence schedule." + }, + "ReportSchedule": { + "type": "object", + "properties": { + "recurrence": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Daily", + "Weekly", + "Monthly", + "Annually" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The schedule recurrence." + }, + "recurrencePeriod": { + "oneOf": [ + { + "$ref": "#/definitions/ReportRecurrencePeriod" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The start and end date for recurrence schedule." + }, + "status": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Active", + "Inactive" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The status of the schedule. Whether active or not. If inactive, the report's scheduled execution is paused." + } + }, + "required": [ + "recurrence" + ], + "description": "The schedule associated with a report." + }, + "ReportTimePeriod": { + "type": "object", + "properties": { + "from": { + "type": "string", + "format": "date-time", + "description": "The start date to pull data from." + }, + "to": { + "type": "string", + "format": "date-time", + "description": "The end date to pull data to." + } + }, + "required": [ + "from", + "to" + ], + "description": "The start and end date for pulling data for the report." + } + } +} diff --git a/schemas/2019-01-01/Microsoft.CostManagement.json b/schemas/2019-01-01/Microsoft.CostManagement.json new file mode 100644 index 0000000000..607427d86e --- /dev/null +++ b/schemas/2019-01-01/Microsoft.CostManagement.json @@ -0,0 +1,606 @@ +{ + "id": "https://schema.management.azure.com/schemas/2019-01-01/Microsoft.CostManagement.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.CostManagement", + "description": "Microsoft CostManagement Resource Types", + "resourceDefinitions": {}, + "unknown_resourceDefinitions": { + "exports": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2019-01-01" + ] + }, + "name": { + "type": "string", + "description": "Export Name." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ExportProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The properties of the export." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.CostManagement/exports" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.CostManagement/exports" + } + }, + "definitions": { + "ExportDeliveryDestination": { + "type": "object", + "properties": { + "container": { + "type": "string", + "description": "The name of the container where exports will be uploaded." + }, + "resourceId": { + "type": "string", + "description": "The resource id of the storage account where exports will be delivered." + }, + "rootFolderPath": { + "type": "string", + "description": "The name of the directory where exports will be uploaded." + } + }, + "required": [ + "container", + "resourceId" + ], + "description": "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 ." + }, + "ExportDeliveryInfo": { + "type": "object", + "properties": { + "destination": { + "oneOf": [ + { + "$ref": "#/definitions/ExportDeliveryDestination" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "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 ." + } + }, + "required": [ + "destination" + ], + "description": "The delivery information associated with a export." + }, + "ExportProperties": { + "type": "object", + "properties": { + "definition": { + "oneOf": [ + { + "$ref": "#/definitions/QueryDefinition" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The definition of a query." + }, + "deliveryInfo": { + "oneOf": [ + { + "$ref": "#/definitions/ExportDeliveryInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The delivery information associated with a export." + }, + "format": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Csv" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The format of the export being delivered." + }, + "schedule": { + "oneOf": [ + { + "$ref": "#/definitions/ExportSchedule" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The schedule associated with a export." + } + }, + "required": [ + "definition", + "deliveryInfo" + ], + "description": "The properties of the export." + }, + "ExportRecurrencePeriod": { + "type": "object", + "properties": { + "from": { + "type": "string", + "format": "date-time", + "description": "The start date of recurrence." + }, + "to": { + "type": "string", + "format": "date-time", + "description": "The end date of recurrence." + } + }, + "required": [ + "from" + ], + "description": "The start and end date for recurrence schedule." + }, + "ExportSchedule": { + "type": "object", + "properties": { + "recurrence": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Daily", + "Weekly", + "Monthly", + "Annually" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The schedule recurrence." + }, + "recurrencePeriod": { + "oneOf": [ + { + "$ref": "#/definitions/ExportRecurrencePeriod" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The start and end date for recurrence schedule." + }, + "status": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Active", + "Inactive" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The status of the schedule. Whether active or not. If inactive, the export's scheduled execution is paused." + } + }, + "required": [ + "recurrence" + ], + "description": "The schedule associated with a export." + }, + "QueryAggregation": { + "type": "object", + "properties": { + "function": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Sum" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The name of the aggregation function to use." + }, + "name": { + "type": "string", + "description": "The name of the column to aggregate." + } + }, + "required": [ + "function", + "name" + ], + "description": "The aggregation expression to be used in the query." + }, + "QueryComparisonExpression": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the column to use in comparison." + }, + "operator": { + "oneOf": [ + { + "type": "string", + "enum": [ + "In" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The operator to use for comparison." + }, + "values": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Array of values to use for comparison" + } + }, + "required": [ + "name", + "operator", + "values" + ], + "description": "The comparison expression to be used in the query." + }, + "QueryDataset": { + "type": "object", + "properties": { + "aggregation": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/QueryAggregation" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "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." + }, + "configuration": { + "oneOf": [ + { + "$ref": "#/definitions/QueryDatasetConfiguration" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The configuration of dataset in the query." + }, + "filter": { + "oneOf": [ + { + "$ref": "#/definitions/QueryFilter" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The filter expression to be used in the export." + }, + "granularity": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Daily", + "Hourly" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The granularity of rows in the query." + }, + "grouping": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/QueryGrouping" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Array of group by expression to use in the query. Query can have up to 2 group by clauses." + }, + "sorting": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/QuerySortingConfiguration" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Array of sorting by columns in query." + } + }, + "description": "The definition of data present in the query." + }, + "QueryDatasetConfiguration": { + "type": "object", + "properties": { + "columns": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "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." + } + }, + "description": "The configuration of dataset in the query." + }, + "QueryDefinition": { + "type": "object", + "properties": { + "dataset": { + "oneOf": [ + { + "$ref": "#/definitions/QueryDataset" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The definition of data present in the query." + }, + "timeframe": { + "oneOf": [ + { + "type": "string", + "enum": [ + "WeekToDate", + "MonthToDate", + "YearToDate", + "TheLastWeek", + "TheLastMonth", + "TheLastYear", + "Custom", + "BillingMonthToDate", + "TheLastBillingMonth" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The time frame for pulling data for the query. If custom, then a specific time period must be provided." + }, + "timePeriod": { + "oneOf": [ + { + "$ref": "#/definitions/QueryTimePeriod" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The start and end date for pulling data for the query." + }, + "type": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Usage" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The type of the query." + } + }, + "required": [ + "timeframe", + "type" + ], + "description": "The definition of a query." + }, + "QueryFilter": { + "type": "object", + "properties": { + "and": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/QueryFilter" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The logical \"AND\" expression. Must have at least 2 items." + }, + "dimension": { + "oneOf": [ + { + "$ref": "#/definitions/QueryComparisonExpression" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The comparison expression to be used in the query." + }, + "not": { + "oneOf": [ + { + "$ref": "#/definitions/QueryFilter" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The filter expression to be used in the export." + }, + "or": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/QueryFilter" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The logical \"OR\" expression. Must have at least 2 items." + }, + "tag": { + "oneOf": [ + { + "$ref": "#/definitions/QueryComparisonExpression" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The comparison expression to be used in the query." + } + }, + "description": "The filter expression to be used in the export." + }, + "QueryGrouping": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the column to group." + }, + "type": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Tag", + "Dimension" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Has type of the column to group." + } + }, + "required": [ + "name", + "type" + ], + "description": "The group by expression to be used in the query." + }, + "QuerySortingConfiguration": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the column to use in sorting." + }, + "querySortingDirection": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Ascending", + "Descending" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The sorting direction." + } + }, + "description": "The configuration for sorting in the query." + }, + "QueryTimePeriod": { + "type": "object", + "properties": { + "from": { + "type": "string", + "format": "date-time", + "description": "The start date to pull data from." + }, + "to": { + "type": "string", + "format": "date-time", + "description": "The end date to pull data to." + } + }, + "required": [ + "from", + "to" + ], + "description": "The start and end date for pulling data for the query." + } + } +} diff --git a/schemas/2019-03-01-preview/Microsoft.CostManagement.json b/schemas/2019-03-01-preview/Microsoft.CostManagement.json new file mode 100644 index 0000000000..017b41b1fb --- /dev/null +++ b/schemas/2019-03-01-preview/Microsoft.CostManagement.json @@ -0,0 +1,374 @@ +{ + "id": "https://schema.management.azure.com/schemas/2019-03-01-preview/Microsoft.CostManagement.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.CostManagement", + "description": "Microsoft CostManagement Resource Types", + "resourceDefinitions": {}, + "managementGroup_resourceDefinitions": { + "externalSubscriptions": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2019-03-01-preview" + ] + }, + "name": { + "type": "string", + "description": "External Subscription Name. (eg 'aws-{UsageAccountId}')" + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.CostManagement/externalSubscriptions" + ] + } + }, + "required": [ + "apiVersion", + "name", + "type" + ], + "description": "Microsoft.CostManagement/externalSubscriptions" + } + }, + "tenant_resourceDefinitions": { + "cloudConnectors": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2019-03-01-preview" + ] + }, + "kind": { + "type": "string", + "description": "Connector kind (eg aws)" + }, + "name": { + "type": "string", + "description": "Connector Name." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ConnectorProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The properties of a Connector" + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.CostManagement/cloudConnectors" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.CostManagement/cloudConnectors" + } + }, + "extension_resourceDefinitions": { + "showbackRules": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2019-03-01-preview" + ] + }, + "name": { + "type": "string", + "description": "Showback rule name" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ShowbackRuleProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The properties of a showback rule." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.CostManagement/showbackRules" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.CostManagement/showbackRules" + } + }, + "definitions": { + "ConnectorProperties": { + "type": "object", + "properties": { + "billingModel": { + "oneOf": [ + { + "type": "string", + "enum": [ + "trial", + "autoUpgrade", + "premium", + "expired" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Connector billing model." + }, + "credentialsKey": { + "type": "string", + "description": "Credentials authentication key (eg AWS ARN)" + }, + "credentialsSecret": { + "type": "string", + "description": "Credentials secret (eg AWS ExternalId)" + }, + "defaultManagementGroupId": { + "type": "string", + "description": "Default ManagementGroupId" + }, + "displayName": { + "type": "string", + "description": "Connector DisplayName" + }, + "reportId": { + "type": "string", + "description": "Identifying source report. (For AWS this is a CUR report name, defined with Daily and with Resources)" + }, + "subscriptionId": { + "type": "string", + "description": "Billing SubscriptionId" + } + }, + "description": "The properties of a Connector" + }, + "CostAllocationDetails": { + "type": "object", + "properties": { + "policy": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Proportional", + "Evenly", + "Fixed" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Cost allocation policy." + } + }, + "description": "Represents CostAllocation showback rule model" + }, + "CostAllocationDetailsKind": { + "type": "object", + "properties": { + "details": { + "oneOf": [ + { + "$ref": "#/definitions/CostAllocationDetails" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Represents CostAllocation showback rule model" + }, + "ruleType": { + "type": "string", + "enum": [ + "CostAllocation" + ] + } + }, + "required": [ + "ruleType" + ], + "description": "Represents CostAllocation showback rule model" + }, + "CustomPriceDetails": { + "type": "object", + "properties": { + "benefits": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string", + "enum": [ + "Sum", + "None", + "All", + "AHUB", + "Reservations" + ] + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Array of benefits." + }, + "markups": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/Markup" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of markups." + }, + "pricesheet": { + "type": "string" + } + }, + "description": "Represents Custom price showback rule model" + }, + "CustomPriceDetailsKind": { + "type": "object", + "properties": { + "details": { + "oneOf": [ + { + "$ref": "#/definitions/CustomPriceDetails" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Represents Custom price showback rule model" + }, + "ruleType": { + "type": "string", + "enum": [ + "CustomPrice" + ] + } + }, + "required": [ + "ruleType" + ], + "description": "Represents Custom price showback rule model" + }, + "Markup": { + "type": "object", + "properties": { + "percentage": { + "type": "string" + } + }, + "description": "The Markup model definition" + }, + "Scope": { + "type": "object", + "properties": { + "childScope": { + "oneOf": [ + { + "$ref": "#/definitions/Scope" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The Scope model definition" + }, + "id": { + "type": "string", + "description": "Scope id" + }, + "name": { + "type": "string", + "description": "Scope name" + }, + "type": { + "type": "string", + "description": "Scope type" + } + }, + "description": "The Scope model definition" + }, + "ShowbackRuleProperties": { + "type": "object", + "oneOf": [ + { + "$ref": "#/definitions/CustomPriceDetailsKind" + }, + { + "$ref": "#/definitions/CostAllocationDetailsKind" + } + ], + "properties": { + "description": { + "type": "string", + "description": "Description of a showback rule." + }, + "scopes": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/Scope" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of authorized assigned scopes." + }, + "status": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotActive", + "Active" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The current status of the showback rule." + } + }, + "description": "The properties of a showback rule." + } + } +} diff --git a/schemas/2019-04-01-preview/Microsoft.CostManagement.json b/schemas/2019-04-01-preview/Microsoft.CostManagement.json new file mode 100644 index 0000000000..02190a2e96 --- /dev/null +++ b/schemas/2019-04-01-preview/Microsoft.CostManagement.json @@ -0,0 +1,892 @@ +{ + "id": "https://schema.management.azure.com/schemas/2019-04-01-preview/Microsoft.CostManagement.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.CostManagement", + "description": "Microsoft CostManagement Resource Types", + "resourceDefinitions": {}, + "tenant_resourceDefinitions": { + "views": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2019-04-01-preview" + ] + }, + "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." + }, + "name": { + "type": "string", + "description": "View name" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ViewProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The properties of the view." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.CostManagement/views" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.CostManagement/views" + } + }, + "unknown_resourceDefinitions": { + "budgets": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2019-04-01-preview" + ] + }, + "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." + }, + "name": { + "type": "string", + "description": "Budget Name." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/BudgetProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The properties of the budget." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.CostManagement/budgets" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.CostManagement/budgets" + }, + "views": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2019-04-01-preview" + ] + }, + "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." + }, + "name": { + "type": "string", + "description": "View name" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ViewProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The properties of the view." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.CostManagement/views" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.CostManagement/views" + } + }, + "definitions": { + "BudgetProperties": { + "type": "object", + "properties": { + "amount": { + "oneOf": [ + { + "type": "number" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The total amount of cost to track with the budget" + }, + "category": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Cost", + "Usage" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The category of the budget, whether the budget tracks cost or usage." + }, + "filter": { + "oneOf": [ + { + "$ref": "#/definitions/ReportConfigFilter" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The filter expression to be used in the report." + }, + "notifications": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Notification" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Dictionary of notifications associated with the budget. Budget can have up to five notifications." + }, + "timeGrain": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Monthly", + "Quarterly", + "Annually" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The time covered by a budget. Tracking of the amount will be reset based on the time grain." + }, + "timePeriod": { + "oneOf": [ + { + "$ref": "#/definitions/BudgetTimePeriod" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The start and end date for a budget." + } + }, + "required": [ + "amount", + "category", + "timeGrain", + "timePeriod" + ], + "description": "The properties of the budget." + }, + "BudgetTimePeriod": { + "type": "object", + "properties": { + "endDate": { + "type": "string", + "format": "date-time", + "description": "The end date for the budget. If not provided, we default this to 10 years from the start date." + }, + "startDate": { + "type": "string", + "format": "date-time", + "description": "The start date for the budget." + } + }, + "required": [ + "startDate" + ], + "description": "The start and end date for a budget." + }, + "KpiProperties": { + "type": "object", + "properties": { + "enabled": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "show the KPI in the UI?" + }, + "id": { + "type": "string", + "description": "ID of resource related to metric (budget)." + }, + "type": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Forecast", + "Budget" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "KPI type (Forecast, Budget)." + } + }, + "description": "Each KPI must contain a 'type' and 'enabled' key." + }, + "Notification": { + "type": "object", + "properties": { + "contactEmails": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Email addresses to send the budget notification to when the threshold is exceeded." + }, + "contactGroups": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Action groups to send the budget notification to when the threshold is exceeded." + }, + "contactRoles": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Contact roles to send the budget notification to when the threshold is exceeded." + }, + "enabled": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The notification is enabled or not." + }, + "operator": { + "oneOf": [ + { + "type": "string", + "enum": [ + "EqualTo", + "GreaterThan", + "GreaterThanOrEqualTo" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The comparison operator." + }, + "threshold": { + "oneOf": [ + { + "type": "number" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "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." + } + }, + "required": [ + "contactEmails", + "enabled", + "operator", + "threshold" + ], + "description": "The notification associated with a budget." + }, + "PivotProperties": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Data field to show in view." + }, + "type": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Dimension", + "TagKey" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Data type to show in view." + } + }, + "description": "Each pivot must contain a 'type' and 'name'." + }, + "ReportConfigAggregation": { + "type": "object", + "properties": { + "function": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Sum" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The name of the aggregation function to use." + }, + "name": { + "type": "string", + "description": "The name of the column to aggregate." + } + }, + "required": [ + "function", + "name" + ], + "description": "The aggregation expression to be used in the report." + }, + "ReportConfigComparisonExpression": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the column to use in comparison." + }, + "operator": { + "oneOf": [ + { + "type": "string", + "enum": [ + "In", + "Contains" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The operator to use for comparison." + }, + "values": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Array of values to use for comparison" + } + }, + "required": [ + "name", + "operator", + "values" + ], + "description": "The comparison expression to be used in the report." + }, + "ReportConfigDataset": { + "type": "object", + "properties": { + "aggregation": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/ReportConfigAggregation" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "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." + }, + "configuration": { + "oneOf": [ + { + "$ref": "#/definitions/ReportConfigDatasetConfiguration" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The configuration of dataset in the report." + }, + "filter": { + "oneOf": [ + { + "$ref": "#/definitions/ReportConfigFilter" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The filter expression to be used in the report." + }, + "granularity": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Daily", + "Monthly" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The granularity of rows in the report." + }, + "grouping": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ReportConfigGrouping" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Array of group by expression to use in the report. Report can have up to 2 group by clauses." + }, + "sorting": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ReportConfigSorting" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Array of order by expression to use in the report." + } + }, + "description": "The definition of data present in the report." + }, + "ReportConfigDatasetConfiguration": { + "type": "object", + "properties": { + "columns": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "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." + } + }, + "description": "The configuration of dataset in the report." + }, + "ReportConfigDefinition": { + "type": "object", + "properties": { + "dataset": { + "oneOf": [ + { + "$ref": "#/definitions/ReportConfigDataset" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The definition of data present in the report." + }, + "timeframe": { + "oneOf": [ + { + "type": "string", + "enum": [ + "WeekToDate", + "MonthToDate", + "YearToDate", + "Custom" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The time frame for pulling data for the report. If custom, then a specific time period must be provided." + }, + "timePeriod": { + "oneOf": [ + { + "$ref": "#/definitions/ReportConfigTimePeriod" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The start and end date for pulling data for the report." + }, + "type": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Usage" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The type of the report. Usage represents actual usage, forecast represents forecasted data and UsageAndForecast represents both usage and forecasted data. Actual usage and forecasted data can be differentiated based on dates." + } + }, + "required": [ + "timeframe", + "type" + ], + "description": "The definition of a report config." + }, + "ReportConfigFilter": { + "type": "object", + "properties": { + "and": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ReportConfigFilter" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The logical \"AND\" expression. Must have at least 2 items." + }, + "dimension": { + "oneOf": [ + { + "$ref": "#/definitions/ReportConfigComparisonExpression" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The comparison expression to be used in the report." + }, + "not": { + "oneOf": [ + { + "$ref": "#/definitions/ReportConfigFilter" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The filter expression to be used in the report." + }, + "or": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ReportConfigFilter" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The logical \"OR\" expression. Must have at least 2 items." + }, + "tag": { + "oneOf": [ + { + "$ref": "#/definitions/ReportConfigComparisonExpression" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The comparison expression to be used in the report." + } + }, + "description": "The filter expression to be used in the report." + }, + "ReportConfigGrouping": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the column to group. This version supports subscription lowest possible grain." + }, + "type": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Tag", + "Dimension" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Has type of the column to group." + } + }, + "required": [ + "name", + "type" + ], + "description": "The group by expression to be used in the report." + }, + "ReportConfigSorting": { + "type": "object", + "properties": { + "direction": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Ascending", + "Descending" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Direction of sort." + }, + "name": { + "type": "string", + "description": "The name of the column to sort." + } + }, + "required": [ + "name" + ], + "description": "The order by expression to be used in the report." + }, + "ReportConfigTimePeriod": { + "type": "object", + "properties": { + "from": { + "type": "string", + "format": "date-time", + "description": "The start date to pull data from." + }, + "to": { + "type": "string", + "format": "date-time", + "description": "The end date to pull data to." + } + }, + "required": [ + "from", + "to" + ], + "description": "The start and end date for pulling data for the report." + }, + "ViewProperties": { + "type": "object", + "properties": { + "accumulated": { + "oneOf": [ + { + "type": "string", + "enum": [ + "true", + "false" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Show costs accumulated over time." + }, + "chart": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Area", + "Line", + "StackedColumn", + "GroupedColumn", + "Table" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Chart type of the main view in Cost Analysis. Required." + }, + "displayName": { + "type": "string", + "description": "User input name of the view. Required." + }, + "kpis": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/KpiProperties" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of KPIs to show in Cost Analysis UI." + }, + "metric": { + "oneOf": [ + { + "type": "string", + "enum": [ + "ActualCost", + "AmortizedCost", + "AHUB" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Metric to use when displaying costs." + }, + "pivots": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/PivotProperties" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Configuration of 3 sub-views in the Cost Analysis UI." + }, + "query": { + "oneOf": [ + { + "$ref": "#/definitions/ReportConfigDefinition" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The definition of a report config." + }, + "scope": { + "type": "string", + "description": "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." + } + }, + "description": "The properties of the view." + } + } +} diff --git a/schemas/2019-04-01/deploymentTemplate.json b/schemas/2019-04-01/deploymentTemplate.json index 3e7359c0a8..0b2bd71763 100644 --- a/schemas/2019-04-01/deploymentTemplate.json +++ b/schemas/2019-04-01/deploymentTemplate.json @@ -150,6 +150,13 @@ { "$ref": "https://schema.management.azure.com/schemas/2020-06-14/Microsoft.Kusto.json#/resourceDefinitions/clusters_dataconnections" }, { "$ref": "https://schema.management.azure.com/schemas/2020-06-14/Microsoft.Kusto.json#/resourceDefinitions/clusters_principalassignments" }, { "$ref": "https://schema.management.azure.com/schemas/2020-06-14/Microsoft.Kusto.json#/resourceDefinitions/clusters_databases_principalassignments" }, + { "$ref": "https://schema.management.azure.com/schemas/2020-09-18/Microsoft.Kusto.json#/resourceDefinitions/clusters" }, + { "$ref": "https://schema.management.azure.com/schemas/2020-09-18/Microsoft.Kusto.json#/resourceDefinitions/clusters_databases" }, + { "$ref": "https://schema.management.azure.com/schemas/2020-09-18/Microsoft.Kusto.json#/resourceDefinitions/clusters_databases_dataconnections" }, + { "$ref": "https://schema.management.azure.com/schemas/2020-09-18/Microsoft.Kusto.json#/resourceDefinitions/clusters_attacheddatabaseconfigurations" }, + { "$ref": "https://schema.management.azure.com/schemas/2020-09-18/Microsoft.Kusto.json#/resourceDefinitions/clusters_dataconnections" }, + { "$ref": "https://schema.management.azure.com/schemas/2020-09-18/Microsoft.Kusto.json#/resourceDefinitions/clusters_principalassignments" }, + { "$ref": "https://schema.management.azure.com/schemas/2020-09-18/Microsoft.Kusto.json#/resourceDefinitions/clusters_databases_principalassignments" }, { "$ref": "https://schema.management.azure.com/schemas/2014-04-01/Microsoft.Insights.json#/resourceDefinitions/alertrules" }, { "$ref": "https://schema.management.azure.com/schemas/2014-04-01/Microsoft.Insights.json#/resourceDefinitions/components" }, { "$ref": "https://schema.management.azure.com/schemas/2019-11-01-preview/Microsoft.Insights.json#/resourceDefinitions/dataCollectionRules" }, diff --git a/schemas/2019-09-01/Microsoft.CostManagement.json b/schemas/2019-09-01/Microsoft.CostManagement.json new file mode 100644 index 0000000000..8a9b28cebd --- /dev/null +++ b/schemas/2019-09-01/Microsoft.CostManagement.json @@ -0,0 +1,604 @@ +{ + "id": "https://schema.management.azure.com/schemas/2019-09-01/Microsoft.CostManagement.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.CostManagement", + "description": "Microsoft CostManagement Resource Types", + "resourceDefinitions": {}, + "unknown_resourceDefinitions": { + "exports": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2019-09-01" + ] + }, + "name": { + "type": "string", + "description": "Export Name." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ExportProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The properties of the export." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.CostManagement/exports" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.CostManagement/exports" + } + }, + "definitions": { + "ExportDeliveryDestination": { + "type": "object", + "properties": { + "container": { + "type": "string", + "description": "The name of the container where exports will be uploaded." + }, + "resourceId": { + "type": "string", + "description": "The resource id of the storage account where exports will be delivered." + }, + "rootFolderPath": { + "type": "string", + "description": "The name of the directory where exports will be uploaded." + } + }, + "required": [ + "container", + "resourceId" + ], + "description": "The destination information for the delivery of the export." + }, + "ExportDeliveryInfo": { + "type": "object", + "properties": { + "destination": { + "oneOf": [ + { + "$ref": "#/definitions/ExportDeliveryDestination" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The destination information for the delivery of the export." + } + }, + "required": [ + "destination" + ], + "description": "The delivery information associated with a export." + }, + "ExportProperties": { + "type": "object", + "properties": { + "definition": { + "oneOf": [ + { + "$ref": "#/definitions/QueryDefinition" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The definition of a query." + }, + "deliveryInfo": { + "oneOf": [ + { + "$ref": "#/definitions/ExportDeliveryInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The delivery information associated with a export." + }, + "format": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Csv" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The format of the export being delivered." + }, + "schedule": { + "oneOf": [ + { + "$ref": "#/definitions/ExportSchedule" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The schedule associated with a export." + } + }, + "required": [ + "definition", + "deliveryInfo" + ], + "description": "The properties of the export." + }, + "ExportRecurrencePeriod": { + "type": "object", + "properties": { + "from": { + "type": "string", + "format": "date-time", + "description": "The start date of recurrence." + }, + "to": { + "type": "string", + "format": "date-time", + "description": "The end date of recurrence." + } + }, + "required": [ + "from" + ], + "description": "The start and end date for recurrence schedule." + }, + "ExportSchedule": { + "type": "object", + "properties": { + "recurrence": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Daily", + "Weekly", + "Monthly", + "Annually" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The schedule recurrence." + }, + "recurrencePeriod": { + "oneOf": [ + { + "$ref": "#/definitions/ExportRecurrencePeriod" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The start and end date for recurrence schedule." + }, + "status": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Active", + "Inactive" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The status of the schedule. Whether active or not. If inactive, the export's scheduled execution is paused." + } + }, + "required": [ + "recurrence" + ], + "description": "The schedule associated with a export." + }, + "QueryAggregation": { + "type": "object", + "properties": { + "function": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Sum" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The name of the aggregation function to use." + }, + "name": { + "type": "string", + "description": "The name of the column to aggregate." + } + }, + "required": [ + "function", + "name" + ], + "description": "The aggregation expression to be used in the query." + }, + "QueryComparisonExpression": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the column to use in comparison." + }, + "operator": { + "oneOf": [ + { + "type": "string", + "enum": [ + "In" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The operator to use for comparison." + }, + "values": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Array of values to use for comparison" + } + }, + "required": [ + "name", + "operator", + "values" + ], + "description": "The comparison expression to be used in the query." + }, + "QueryDataset": { + "type": "object", + "properties": { + "aggregation": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/QueryAggregation" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "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." + }, + "configuration": { + "oneOf": [ + { + "$ref": "#/definitions/QueryDatasetConfiguration" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The configuration of dataset in the query." + }, + "filter": { + "oneOf": [ + { + "$ref": "#/definitions/QueryFilter" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The filter expression to be used in the export." + }, + "granularity": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Daily", + "Hourly" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The granularity of rows in the query." + }, + "grouping": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/QueryGrouping" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Array of group by expression to use in the query. Query can have up to 2 group by clauses." + }, + "sorting": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/QuerySortingConfiguration" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Array of sorting by columns in query." + } + }, + "description": "The definition of data present in the query." + }, + "QueryDatasetConfiguration": { + "type": "object", + "properties": { + "columns": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "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." + } + }, + "description": "The configuration of dataset in the query." + }, + "QueryDefinition": { + "type": "object", + "properties": { + "dataset": { + "oneOf": [ + { + "$ref": "#/definitions/QueryDataset" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The definition of data present in the query." + }, + "timeframe": { + "oneOf": [ + { + "type": "string", + "enum": [ + "WeekToDate", + "MonthToDate", + "YearToDate", + "TheLastWeek", + "TheLastMonth", + "TheLastYear", + "Custom" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The time frame for pulling data for the query. If custom, then a specific time period must be provided." + }, + "timePeriod": { + "oneOf": [ + { + "$ref": "#/definitions/QueryTimePeriod" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The start and end date for pulling data for the query." + }, + "type": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Usage" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The type of the query." + } + }, + "required": [ + "timeframe", + "type" + ], + "description": "The definition of a query." + }, + "QueryFilter": { + "type": "object", + "properties": { + "and": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/QueryFilter" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The logical \"AND\" expression. Must have at least 2 items." + }, + "dimension": { + "oneOf": [ + { + "$ref": "#/definitions/QueryComparisonExpression" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The comparison expression to be used in the query." + }, + "not": { + "oneOf": [ + { + "$ref": "#/definitions/QueryFilter" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The filter expression to be used in the export." + }, + "or": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/QueryFilter" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The logical \"OR\" expression. Must have at least 2 items." + }, + "tag": { + "oneOf": [ + { + "$ref": "#/definitions/QueryComparisonExpression" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The comparison expression to be used in the query." + } + }, + "description": "The filter expression to be used in the export." + }, + "QueryGrouping": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the column to group." + }, + "type": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Tag", + "Dimension" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Has type of the column to group." + } + }, + "required": [ + "name", + "type" + ], + "description": "The group by expression to be used in the query." + }, + "QuerySortingConfiguration": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the column to use in sorting." + }, + "querySortingDirection": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Ascending", + "Descending" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The sorting direction." + } + }, + "description": "The configuration for sorting in the query." + }, + "QueryTimePeriod": { + "type": "object", + "properties": { + "from": { + "type": "string", + "format": "date-time", + "description": "The start date to pull data from." + }, + "to": { + "type": "string", + "format": "date-time", + "description": "The end date to pull data to." + } + }, + "required": [ + "from", + "to" + ], + "description": "The start and end date for pulling data for the query." + } + } +} diff --git a/schemas/2019-10-01-preview/Microsoft.Migrate.json b/schemas/2019-10-01-preview/Microsoft.Migrate.json new file mode 100644 index 0000000000..4a1e94fd5e --- /dev/null +++ b/schemas/2019-10-01-preview/Microsoft.Migrate.json @@ -0,0 +1,939 @@ +{ + "id": "https://schema.management.azure.com/schemas/2019-10-01-preview/Microsoft.Migrate.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.Migrate", + "description": "Microsoft Migrate Resource Types", + "resourceDefinitions": { + "moveCollections": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2019-10-01-preview" + ] + }, + "identity": { + "oneOf": [ + { + "$ref": "#/definitions/Identity" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines the MSI properties of the Move Collection." + }, + "location": { + "type": "string", + "description": "The geo-location where the resource lives." + }, + "name": { + "type": "string", + "description": "The Move Collection Name." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/MoveCollectionProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines the move collection properties." + }, + "resources": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/moveCollections_moveResources_childResource" + } + ] + } + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource tags." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Migrate/moveCollections" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Migrate/moveCollections" + }, + "moveCollections_moveResources": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2019-10-01-preview" + ] + }, + "name": { + "type": "string", + "description": "The Move Resource Name." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/MoveResourceProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines the move resource properties." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Migrate/moveCollections/moveResources" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Migrate/moveCollections/moveResources" + } + }, + "definitions": { + "AvailabilitySetResourceSettings": { + "type": "object", + "properties": { + "faultDomain": { + "oneOf": [ + { + "type": "integer", + "minimum": 1 + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Gets or sets the target fault domain." + }, + "resourceType": { + "type": "string", + "enum": [ + "Microsoft.Compute/availabilitySets" + ] + }, + "updateDomain": { + "oneOf": [ + { + "type": "integer", + "minimum": 1, + "maximum": 20 + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Gets or sets the target update domain." + } + }, + "required": [ + "resourceType" + ], + "description": "Gets or sets the availability set resource settings." + }, + "Identity": { + "type": "object", + "properties": { + "principalId": { + "type": "string", + "description": "Gets or sets the principal id." + }, + "tenantId": { + "type": "string", + "description": "Gets or sets the tenant id." + }, + "type": { + "oneOf": [ + { + "type": "string", + "enum": [ + "None", + "SystemAssigned", + "UserAssigned" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + } + }, + "description": "Defines the MSI properties of the Move Collection." + }, + "LBBackendAddressPoolResourceSettings": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Gets or sets the backend address pool name." + } + }, + "description": "Defines load balancer backend address pool properties." + }, + "LBFrontendIPConfigurationResourceSettings": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Gets or sets the frontend IP configuration name." + }, + "privateIpAddress": { + "type": "string", + "description": "Gets or sets the IP address of the Load Balancer.This is only specified if a specific\r\nprivate IP address shall be allocated from the subnet specified in subnetRef." + }, + "privateIpAllocationMethod": { + "type": "string", + "description": "Gets or sets PrivateIP allocation method (Static/Dynamic)." + }, + "subnet": { + "oneOf": [ + { + "$ref": "#/definitions/SubnetReference" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines reference to subnet." + }, + "zones": { + "type": "string", + "description": "Gets or sets the csv list of zones." + } + }, + "description": "Defines load balancer frontend IP configuration properties." + }, + "LoadBalancerBackendAddressPoolReference": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Gets the name of the proxy resource on the target side." + }, + "sourceArmResourceId": { + "type": "string", + "description": "Gets the ARM resource ID of the tracked resource being referenced." + } + }, + "required": [ + "sourceArmResourceId" + ], + "description": "Defines reference to load balancer backend address pools." + }, + "LoadBalancerResourceSettings": { + "type": "object", + "properties": { + "backendAddressPools": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/LBBackendAddressPoolResourceSettings" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Gets or sets the backend address pools of the load balancer." + }, + "frontendIPConfigurations": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/LBFrontendIPConfigurationResourceSettings" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Gets or sets the frontend IP configurations of the load balancer." + }, + "resourceType": { + "type": "string", + "enum": [ + "Microsoft.Network/loadBalancers" + ] + }, + "sku": { + "type": "string", + "description": "Gets or sets load balancer sku (Basic/Standard)." + }, + "zones": { + "type": "string", + "description": "Gets or sets the csv list of zones common for all frontend IP configurations. Note this is given\r\n precedence only if frontend IP configurations settings are not present." + } + }, + "required": [ + "resourceType" + ], + "description": "Defines the load balancer resource settings." + }, + "MoveCollectionProperties": { + "type": "object", + "properties": { + "provisioningState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Succeeded", + "Updating", + "Creating", + "Failed" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + }, + "sourceRegion": { + "type": "string", + "description": "Gets or sets the source region." + }, + "targetRegion": { + "type": "string", + "description": "Gets or sets the target region." + } + }, + "required": [ + "sourceRegion", + "targetRegion" + ], + "description": "Defines the move collection properties." + }, + "moveCollections_moveResources_childResource": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2019-10-01-preview" + ] + }, + "name": { + "type": "string", + "description": "The Move Resource Name." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/MoveResourceProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines the move resource properties." + }, + "type": { + "type": "string", + "enum": [ + "moveResources" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Migrate/moveCollections/moveResources" + }, + "MoveResourceDependencyOverride": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Gets or sets the ARM ID of the dependent resource." + }, + "targetId": { + "type": "string", + "description": "Gets or sets the resource ARM id of either the MoveResource or the resource ARM ID of\r\nthe dependent resource." + } + }, + "description": "Defines the dependency override of the move resource." + }, + "MoveResourceProperties": { + "type": "object", + "properties": { + "dependsOnOverrides": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/MoveResourceDependencyOverride" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Gets or sets the move resource dependencies overrides." + }, + "existingTargetId": { + "type": "string", + "description": "Gets or sets the existing target ARM Id of the resource." + }, + "provisioningState": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Succeeded", + "Updating", + "Creating", + "Failed" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + }, + "resourceSettings": { + "oneOf": [ + { + "$ref": "#/definitions/ResourceSettings" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Gets or sets the resource settings." + }, + "sourceId": { + "type": "string", + "description": "Gets or sets the Source ARM Id of the resource." + } + }, + "required": [ + "sourceId" + ], + "description": "Defines the move resource properties." + }, + "NetworkInterfaceResourceSettings": { + "type": "object", + "properties": { + "enableAcceleratedNetworking": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Gets or sets a value indicating whether accelerated networking is enabled." + }, + "ipConfigurations": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/NicIpConfigurationResourceSettings" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Gets or sets the IP configurations of the NIC." + }, + "resourceType": { + "type": "string", + "enum": [ + "Microsoft.Network/networkInterfaces" + ] + } + }, + "required": [ + "resourceType" + ], + "description": "Defines the network interface resource settings." + }, + "NetworkSecurityGroupResourceSettings": { + "type": "object", + "properties": { + "resourceType": { + "type": "string", + "enum": [ + "Microsoft.Network/networkSecurityGroups" + ] + }, + "securityRules": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/NsgSecurityRule" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Gets or sets Security rules of network security group." + } + }, + "required": [ + "resourceType" + ], + "description": "Defines the NSG resource settings." + }, + "NicIpConfigurationResourceSettings": { + "type": "object", + "properties": { + "loadBalancerBackendAddressPools": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/LoadBalancerBackendAddressPoolReference" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Gets or sets the references of the load balancer backend address pools." + }, + "name": { + "type": "string", + "description": "Gets or sets the IP configuration name." + }, + "primary": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Gets or sets a value indicating whether this IP configuration is the primary." + }, + "privateIpAddress": { + "type": "string", + "description": "Gets or sets the private IP address of the network interface IP Configuration." + }, + "privateIpAllocationMethod": { + "type": "string", + "description": "Gets or sets the private IP address allocation method." + }, + "subnet": { + "oneOf": [ + { + "$ref": "#/definitions/SubnetReference" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Defines reference to subnet." + } + }, + "description": "Defines NIC IP configuration properties." + }, + "NsgSecurityRule": { + "type": "object", + "properties": { + "access": { + "type": "string", + "description": "Gets or sets whether network traffic is allowed or denied.\r\nPossible values are “Allow” and “Deny”." + }, + "description": { + "type": "string", + "description": "Gets or sets a description for this rule. Restricted to 140 chars." + }, + "destinationAddressPrefix": { + "type": "string", + "description": "Gets or sets destination address prefix. CIDR or source IP range.\r\n A “*” can also be used to match all source IPs. Default tags such\r\nas ‘VirtualNetwork’, ‘AzureLoadBalancer’ and ‘Internet’ can also be used." + }, + "destinationPortRange": { + "type": "string", + "description": "Gets or sets Destination Port or Range. Integer or range between\r\n0 and 65535. A “*” can also be used to match all ports." + }, + "direction": { + "type": "string", + "description": "Gets or sets the direction of the rule.InBound or Outbound. The\r\ndirection specifies if rule will be evaluated on incoming or outgoing traffic." + }, + "name": { + "type": "string", + "description": "Gets or sets the Security rule name." + }, + "priority": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Gets or sets the priority of the rule. The value can be between\r\n100 and 4096. The priority number must be unique for each rule in the collection.\r\nThe lower the priority number, the higher the priority of the rule." + }, + "protocol": { + "type": "string", + "description": "Gets or sets Network protocol this rule applies to. Can be Tcp, Udp or All(*)." + }, + "sourceAddressPrefix": { + "type": "string", + "description": "Gets or sets source address prefix. CIDR or source IP range. A\r\n“*” can also be used to match all source IPs. Default tags such as ‘VirtualNetwork’,\r\n‘AzureLoadBalancer’ and ‘Internet’ can also be used. If this is an ingress\r\nrule, specifies where network traffic originates from." + }, + "sourcePortRange": { + "type": "string", + "description": "Gets or sets Source Port or Range. Integer or range between 0 and\r\n65535. A “*” can also be used to match all ports." + } + }, + "description": "Security Rule data model for Network Security Groups." + }, + "PublicIPAddressResourceSettings": { + "type": "object", + "properties": { + "domainNameLabel": { + "type": "string", + "description": "Gets or sets the domain name label." + }, + "fQDN": { + "type": "string", + "description": "Gets or sets the fully qualified domain name." + }, + "publicIpAllocationMethod": { + "type": "string", + "description": "Gets or sets public IP allocation method." + }, + "resourceType": { + "type": "string", + "enum": [ + "Microsoft.Network/publicIPAddresses" + ] + }, + "sku": { + "type": "string", + "description": "Gets or sets public IP sku." + }, + "zones": { + "type": "string", + "description": "Gets or sets public IP zones." + } + }, + "required": [ + "resourceType" + ], + "description": "Defines the public IP address resource settings." + }, + "ResourceGroupResourceSettings": { + "type": "object", + "properties": { + "resourceType": { + "type": "string", + "enum": [ + "resourceGroups" + ] + } + }, + "required": [ + "resourceType" + ], + "description": "Defines the resource group resource settings." + }, + "ResourceSettings": { + "type": "object", + "oneOf": [ + { + "$ref": "#/definitions/VirtualMachineResourceSettings" + }, + { + "$ref": "#/definitions/AvailabilitySetResourceSettings" + }, + { + "$ref": "#/definitions/VirtualNetworkResourceSettings" + }, + { + "$ref": "#/definitions/NetworkInterfaceResourceSettings" + }, + { + "$ref": "#/definitions/NetworkSecurityGroupResourceSettings" + }, + { + "$ref": "#/definitions/LoadBalancerResourceSettings" + }, + { + "$ref": "#/definitions/SqlServerResourceSettings" + }, + { + "$ref": "#/definitions/SqlElasticPoolResourceSettings" + }, + { + "$ref": "#/definitions/SqlDatabaseResourceSettings" + }, + { + "$ref": "#/definitions/ResourceGroupResourceSettings" + }, + { + "$ref": "#/definitions/PublicIPAddressResourceSettings" + } + ], + "properties": { + "targetResourceName": { + "type": "string", + "description": "Gets or sets the target Resource name." + } + }, + "required": [ + "targetResourceName" + ], + "description": "Gets or sets the resource settings." + }, + "SqlDatabaseResourceSettings": { + "type": "object", + "properties": { + "resourceType": { + "type": "string", + "enum": [ + "Microsoft.Sql/servers/databases" + ] + }, + "zoneRedundant": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Enable", + "Disable" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + } + }, + "required": [ + "resourceType" + ], + "description": "Defines the Sql Database resource settings." + }, + "SqlElasticPoolResourceSettings": { + "type": "object", + "properties": { + "resourceType": { + "type": "string", + "enum": [ + "Microsoft.Sql/servers/elasticPools" + ] + }, + "zoneRedundant": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Enable", + "Disable" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + } + }, + "required": [ + "resourceType" + ], + "description": "Defines the Sql ElasticPool resource settings." + }, + "SqlServerResourceSettings": { + "type": "object", + "properties": { + "resourceType": { + "type": "string", + "enum": [ + "Microsoft.Sql/servers" + ] + } + }, + "required": [ + "resourceType" + ], + "description": "Defines the SQL Server resource settings." + }, + "SubnetReference": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Gets the name of the proxy resource on the target side." + }, + "sourceArmResourceId": { + "type": "string", + "description": "Gets the ARM resource ID of the tracked resource being referenced." + } + }, + "required": [ + "sourceArmResourceId" + ], + "description": "Defines reference to subnet." + }, + "SubnetResourceSettings": { + "type": "object", + "properties": { + "addressPrefix": { + "type": "string", + "description": "Gets or sets address prefix for the subnet." + }, + "name": { + "type": "string", + "description": "Gets or sets the Subnet name." + } + }, + "description": "Defines the virtual network subnets resource settings." + }, + "VirtualMachineResourceSettings": { + "type": "object", + "properties": { + "resourceType": { + "type": "string", + "enum": [ + "Microsoft.Compute/virtualMachines" + ] + }, + "targetAvailabilitySetId": { + "type": "string", + "description": "Gets or sets the target availability set id for virtual machines not in an availability set at source." + }, + "targetAvailabilityZone": { + "oneOf": [ + { + "type": "string", + "enum": [ + "1", + "2", + "3", + "NA" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Gets or sets the target availability zone." + }, + "targetVmSize": { + "type": "string", + "description": "Gets or sets the target virtual machine size." + } + }, + "required": [ + "resourceType" + ], + "description": "Gets or sets the virtual machine resource settings." + }, + "VirtualNetworkResourceSettings": { + "type": "object", + "properties": { + "addressSpace": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Gets or sets the address prefixes for the virtual network." + }, + "dnsServers": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Gets or sets DHCPOptions that contains an array of DNS servers available to VMs\r\ndeployed in the virtual network." + }, + "enableDdosProtection": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Gets or sets a value indicating whether gets or sets whether the\r\nDDOS protection should be switched on." + }, + "resourceType": { + "type": "string", + "enum": [ + "Microsoft.Network/virtualNetworks" + ] + }, + "subnets": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SubnetResourceSettings" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Gets or sets List of subnets in a VirtualNetwork." + } + }, + "required": [ + "resourceType" + ], + "description": "Defines the virtual network resource settings." + } + } +} \ No newline at end of file diff --git a/schemas/2019-10-01/Microsoft.CostManagement.json b/schemas/2019-10-01/Microsoft.CostManagement.json new file mode 100644 index 0000000000..40638d82cb --- /dev/null +++ b/schemas/2019-10-01/Microsoft.CostManagement.json @@ -0,0 +1,604 @@ +{ + "id": "https://schema.management.azure.com/schemas/2019-10-01/Microsoft.CostManagement.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.CostManagement", + "description": "Microsoft CostManagement Resource Types", + "resourceDefinitions": {}, + "unknown_resourceDefinitions": { + "exports": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2019-10-01" + ] + }, + "name": { + "type": "string", + "description": "Export Name." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ExportProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The properties of the export." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.CostManagement/exports" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.CostManagement/exports" + } + }, + "definitions": { + "ExportDeliveryDestination": { + "type": "object", + "properties": { + "container": { + "type": "string", + "description": "The name of the container where exports will be uploaded." + }, + "resourceId": { + "type": "string", + "description": "The resource id of the storage account where exports will be delivered." + }, + "rootFolderPath": { + "type": "string", + "description": "The name of the directory where exports will be uploaded." + } + }, + "required": [ + "container", + "resourceId" + ], + "description": "The destination information for the delivery of the export." + }, + "ExportDeliveryInfo": { + "type": "object", + "properties": { + "destination": { + "oneOf": [ + { + "$ref": "#/definitions/ExportDeliveryDestination" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The destination information for the delivery of the export." + } + }, + "required": [ + "destination" + ], + "description": "The delivery information associated with a export." + }, + "ExportProperties": { + "type": "object", + "properties": { + "definition": { + "oneOf": [ + { + "$ref": "#/definitions/QueryDefinition" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The definition of a query." + }, + "deliveryInfo": { + "oneOf": [ + { + "$ref": "#/definitions/ExportDeliveryInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The delivery information associated with a export." + }, + "format": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Csv" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The format of the export being delivered." + }, + "schedule": { + "oneOf": [ + { + "$ref": "#/definitions/ExportSchedule" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The schedule associated with a export." + } + }, + "required": [ + "definition", + "deliveryInfo" + ], + "description": "The properties of the export." + }, + "ExportRecurrencePeriod": { + "type": "object", + "properties": { + "from": { + "type": "string", + "format": "date-time", + "description": "The start date of recurrence." + }, + "to": { + "type": "string", + "format": "date-time", + "description": "The end date of recurrence." + } + }, + "required": [ + "from" + ], + "description": "The start and end date for recurrence schedule." + }, + "ExportSchedule": { + "type": "object", + "properties": { + "recurrence": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Daily", + "Weekly", + "Monthly", + "Annually" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The schedule recurrence." + }, + "recurrencePeriod": { + "oneOf": [ + { + "$ref": "#/definitions/ExportRecurrencePeriod" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The start and end date for recurrence schedule." + }, + "status": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Active", + "Inactive" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The status of the schedule. Whether active or not. If inactive, the export's scheduled execution is paused." + } + }, + "required": [ + "recurrence" + ], + "description": "The schedule associated with a export." + }, + "QueryAggregation": { + "type": "object", + "properties": { + "function": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Sum" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The name of the aggregation function to use." + }, + "name": { + "type": "string", + "description": "The name of the column to aggregate." + } + }, + "required": [ + "function", + "name" + ], + "description": "The aggregation expression to be used in the query." + }, + "QueryComparisonExpression": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the column to use in comparison." + }, + "operator": { + "oneOf": [ + { + "type": "string", + "enum": [ + "In" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The operator to use for comparison." + }, + "values": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Array of values to use for comparison" + } + }, + "required": [ + "name", + "operator", + "values" + ], + "description": "The comparison expression to be used in the query." + }, + "QueryDataset": { + "type": "object", + "properties": { + "aggregation": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/QueryAggregation" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "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." + }, + "configuration": { + "oneOf": [ + { + "$ref": "#/definitions/QueryDatasetConfiguration" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The configuration of dataset in the query." + }, + "filter": { + "oneOf": [ + { + "$ref": "#/definitions/QueryFilter" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The filter expression to be used in the export." + }, + "granularity": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Daily", + "Hourly" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The granularity of rows in the query." + }, + "grouping": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/QueryGrouping" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Array of group by expression to use in the query. Query can have up to 2 group by clauses." + }, + "sorting": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/QuerySortingConfiguration" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Array of sorting by columns in query." + } + }, + "description": "The definition of data present in the query." + }, + "QueryDatasetConfiguration": { + "type": "object", + "properties": { + "columns": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "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." + } + }, + "description": "The configuration of dataset in the query." + }, + "QueryDefinition": { + "type": "object", + "properties": { + "dataset": { + "oneOf": [ + { + "$ref": "#/definitions/QueryDataset" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The definition of data present in the query." + }, + "timeframe": { + "oneOf": [ + { + "type": "string", + "enum": [ + "WeekToDate", + "MonthToDate", + "YearToDate", + "TheLastWeek", + "TheLastMonth", + "TheLastYear", + "Custom" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The time frame for pulling data for the query. If custom, then a specific time period must be provided." + }, + "timePeriod": { + "oneOf": [ + { + "$ref": "#/definitions/QueryTimePeriod" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The start and end date for pulling data for the query." + }, + "type": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Usage" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The type of the query." + } + }, + "required": [ + "timeframe", + "type" + ], + "description": "The definition of a query." + }, + "QueryFilter": { + "type": "object", + "properties": { + "and": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/QueryFilter" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The logical \"AND\" expression. Must have at least 2 items." + }, + "dimension": { + "oneOf": [ + { + "$ref": "#/definitions/QueryComparisonExpression" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The comparison expression to be used in the query." + }, + "not": { + "oneOf": [ + { + "$ref": "#/definitions/QueryFilter" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The filter expression to be used in the export." + }, + "or": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/QueryFilter" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The logical \"OR\" expression. Must have at least 2 items." + }, + "tag": { + "oneOf": [ + { + "$ref": "#/definitions/QueryComparisonExpression" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The comparison expression to be used in the query." + } + }, + "description": "The filter expression to be used in the export." + }, + "QueryGrouping": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the column to group." + }, + "type": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Tag", + "Dimension" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Has type of the column to group." + } + }, + "required": [ + "name", + "type" + ], + "description": "The group by expression to be used in the query." + }, + "QuerySortingConfiguration": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the column to use in sorting." + }, + "querySortingDirection": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Ascending", + "Descending" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The sorting direction." + } + }, + "description": "The configuration for sorting in the query." + }, + "QueryTimePeriod": { + "type": "object", + "properties": { + "from": { + "type": "string", + "format": "date-time", + "description": "The start date to pull data from." + }, + "to": { + "type": "string", + "format": "date-time", + "description": "The end date to pull data to." + } + }, + "required": [ + "from", + "to" + ], + "description": "The start and end date for pulling data for the query." + } + } +} diff --git a/schemas/2019-11-01/Microsoft.CostManagement.json b/schemas/2019-11-01/Microsoft.CostManagement.json new file mode 100644 index 0000000000..b703ee9f5c --- /dev/null +++ b/schemas/2019-11-01/Microsoft.CostManagement.json @@ -0,0 +1,1206 @@ +{ + "id": "https://schema.management.azure.com/schemas/2019-11-01/Microsoft.CostManagement.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.CostManagement", + "description": "Microsoft CostManagement Resource Types", + "resourceDefinitions": {}, + "tenant_resourceDefinitions": { + "views": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2019-11-01" + ] + }, + "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." + }, + "name": { + "type": "string", + "description": "View name" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ViewProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The properties of the view." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.CostManagement/views" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.CostManagement/views" + } + }, + "unknown_resourceDefinitions": { + "exports": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2019-11-01" + ] + }, + "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." + }, + "name": { + "type": "string", + "description": "Export Name." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ExportProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The properties of the export." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.CostManagement/exports" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.CostManagement/exports" + }, + "views": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2019-11-01" + ] + }, + "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." + }, + "name": { + "type": "string", + "description": "View name" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ViewProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The properties of the view." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.CostManagement/views" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.CostManagement/views" + } + }, + "definitions": { + "ExportDefinition": { + "type": "object", + "properties": { + "dataSet": { + "oneOf": [ + { + "$ref": "#/definitions/QueryDatasetModel" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The definition of data present in the query." + }, + "timeframe": { + "oneOf": [ + { + "type": "string", + "enum": [ + "MonthToDate", + "BillingMonthToDate", + "TheLastMonth", + "TheLastBillingMonth", + "WeekToDate", + "Custom" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The time frame for pulling data for the query. If custom, then a specific time period must be provided." + }, + "timePeriod": { + "oneOf": [ + { + "$ref": "#/definitions/QueryTimePeriod" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The start and end date for pulling data for the query." + }, + "type": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Usage", + "ActualCost", + "AmortizedCost" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The type of the query." + } + }, + "required": [ + "timeframe", + "type" + ], + "description": "The definition of a query." + }, + "ExportDeliveryDestination": { + "type": "object", + "properties": { + "container": { + "type": "string", + "description": "The name of the container where exports will be uploaded." + }, + "resourceId": { + "type": "string", + "description": "The resource id of the storage account where exports will be delivered." + }, + "rootFolderPath": { + "type": "string", + "description": "The name of the directory where exports will be uploaded." + } + }, + "required": [ + "container", + "resourceId" + ], + "description": "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 ." + }, + "ExportDeliveryInfo": { + "type": "object", + "properties": { + "destination": { + "oneOf": [ + { + "$ref": "#/definitions/ExportDeliveryDestination" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "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 ." + } + }, + "required": [ + "destination" + ], + "description": "The delivery information associated with a export." + }, + "ExportProperties": { + "type": "object", + "properties": { + "definition": { + "oneOf": [ + { + "$ref": "#/definitions/ExportDefinition" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The definition of a query." + }, + "deliveryInfo": { + "oneOf": [ + { + "$ref": "#/definitions/ExportDeliveryInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The delivery information associated with a export." + }, + "format": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Csv" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The format of the export being delivered." + }, + "schedule": { + "oneOf": [ + { + "$ref": "#/definitions/ExportSchedule" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The schedule associated with a export." + } + }, + "required": [ + "definition", + "deliveryInfo" + ], + "description": "The properties of the export." + }, + "ExportRecurrencePeriod": { + "type": "object", + "properties": { + "from": { + "type": "string", + "format": "date-time", + "description": "The start date of recurrence." + }, + "to": { + "type": "string", + "format": "date-time", + "description": "The end date of recurrence." + } + }, + "required": [ + "from" + ], + "description": "The start and end date for recurrence schedule." + }, + "ExportSchedule": { + "type": "object", + "properties": { + "recurrence": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Daily", + "Weekly", + "Monthly", + "Annually" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The schedule recurrence." + }, + "recurrencePeriod": { + "oneOf": [ + { + "$ref": "#/definitions/ExportRecurrencePeriod" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The start and end date for recurrence schedule." + }, + "status": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Active", + "Inactive" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The status of the schedule. Whether active or not. If inactive, the export's scheduled execution is paused." + } + }, + "required": [ + "recurrence" + ], + "description": "The schedule associated with a export." + }, + "KpiProperties": { + "type": "object", + "properties": { + "enabled": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "show the KPI in the UI?" + }, + "id": { + "type": "string", + "description": "ID of resource related to metric (budget)." + }, + "type": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Forecast", + "Budget" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "KPI type (Forecast, Budget)." + } + }, + "description": "Each KPI must contain a 'type' and 'enabled' key." + }, + "PivotProperties": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Data field to show in view." + }, + "type": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Dimension", + "TagKey" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Data type to show in view." + } + }, + "description": "Each pivot must contain a 'type' and 'name'." + }, + "QueryAggregation": { + "type": "object", + "properties": { + "function": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Sum" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The name of the aggregation function to use." + }, + "name": { + "type": "string", + "description": "The name of the column to aggregate." + } + }, + "required": [ + "function", + "name" + ], + "description": "The aggregation expression to be used in the query." + }, + "QueryComparisonExpression": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the column to use in comparison." + }, + "operator": { + "oneOf": [ + { + "type": "string", + "enum": [ + "In", + "Contains" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The operator to use for comparison." + }, + "values": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Array of values to use for comparison" + } + }, + "required": [ + "name", + "operator", + "values" + ], + "description": "The comparison expression to be used in the query." + }, + "QueryDatasetConfiguration": { + "type": "object", + "properties": { + "columns": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "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." + } + }, + "description": "The configuration of dataset in the query." + }, + "QueryDatasetModel": { + "type": "object", + "properties": { + "aggregation": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/QueryAggregation" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "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." + }, + "configuration": { + "oneOf": [ + { + "$ref": "#/definitions/QueryDatasetConfiguration" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The configuration of dataset in the query." + }, + "filter": { + "oneOf": [ + { + "$ref": "#/definitions/QueryFilterModel" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The filter expression to be used in the export." + }, + "granularity": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Daily" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The granularity of rows in the query." + }, + "grouping": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/QueryGrouping" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Array of group by expression to use in the query. Query can have up to 2 group by clauses." + } + }, + "description": "The definition of data present in the query." + }, + "QueryFilterModel": { + "type": "object", + "properties": { + "and": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/QueryFilterModel" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The logical \"AND\" expression. Must have at least 2 items." + }, + "dimension": { + "oneOf": [ + { + "$ref": "#/definitions/QueryComparisonExpression" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The comparison expression to be used in the query." + }, + "not": { + "oneOf": [ + { + "$ref": "#/definitions/QueryFilterModel" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The filter expression to be used in the export." + }, + "or": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/QueryFilterModel" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The logical \"OR\" expression. Must have at least 2 items." + }, + "tag": { + "oneOf": [ + { + "$ref": "#/definitions/QueryComparisonExpression" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The comparison expression to be used in the query." + } + }, + "description": "The filter expression to be used in the export." + }, + "QueryGrouping": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the column to group." + }, + "type": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Tag", + "Dimension" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Has type of the column to group." + } + }, + "required": [ + "name", + "type" + ], + "description": "The group by expression to be used in the query." + }, + "QueryTimePeriod": { + "type": "object", + "properties": { + "from": { + "type": "string", + "format": "date-time", + "description": "The start date to pull data from." + }, + "to": { + "type": "string", + "format": "date-time", + "description": "The end date to pull data to." + } + }, + "required": [ + "from", + "to" + ], + "description": "The start and end date for pulling data for the query." + }, + "ReportConfigAggregation": { + "type": "object", + "properties": { + "function": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Sum" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The name of the aggregation function to use." + }, + "name": { + "type": "string", + "description": "The name of the column to aggregate." + } + }, + "required": [ + "function", + "name" + ], + "description": "The aggregation expression to be used in the report." + }, + "ReportConfigComparisonExpression": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the column to use in comparison." + }, + "operator": { + "oneOf": [ + { + "type": "string", + "enum": [ + "In", + "Contains" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The operator to use for comparison." + }, + "values": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Array of values to use for comparison" + } + }, + "required": [ + "name", + "operator", + "values" + ], + "description": "The comparison expression to be used in the report." + }, + "ReportConfigDataset": { + "type": "object", + "properties": { + "aggregation": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/ReportConfigAggregation" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "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." + }, + "configuration": { + "oneOf": [ + { + "$ref": "#/definitions/ReportConfigDatasetConfiguration" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The configuration of dataset in the report." + }, + "filter": { + "oneOf": [ + { + "$ref": "#/definitions/ReportConfigFilter" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The filter expression to be used in the report." + }, + "granularity": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Daily", + "Monthly" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The granularity of rows in the report." + }, + "grouping": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ReportConfigGrouping" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Array of group by expression to use in the report. Report can have up to 2 group by clauses." + }, + "sorting": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ReportConfigSorting" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Array of order by expression to use in the report." + } + }, + "description": "The definition of data present in the report." + }, + "ReportConfigDatasetConfiguration": { + "type": "object", + "properties": { + "columns": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "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." + } + }, + "description": "The configuration of dataset in the report." + }, + "ReportConfigDefinition": { + "type": "object", + "properties": { + "dataset": { + "oneOf": [ + { + "$ref": "#/definitions/ReportConfigDataset" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The definition of data present in the report." + }, + "timeframe": { + "oneOf": [ + { + "type": "string", + "enum": [ + "WeekToDate", + "MonthToDate", + "YearToDate", + "Custom" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The time frame for pulling data for the report. If custom, then a specific time period must be provided." + }, + "timePeriod": { + "oneOf": [ + { + "$ref": "#/definitions/ReportConfigTimePeriod" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The start and end date for pulling data for the report." + }, + "type": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Usage" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The type of the report. Usage represents actual usage, forecast represents forecasted data and UsageAndForecast represents both usage and forecasted data. Actual usage and forecasted data can be differentiated based on dates." + } + }, + "required": [ + "timeframe", + "type" + ], + "description": "The definition of a report config." + }, + "ReportConfigFilter": { + "type": "object", + "properties": { + "and": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ReportConfigFilter" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The logical \"AND\" expression. Must have at least 2 items." + }, + "dimension": { + "oneOf": [ + { + "$ref": "#/definitions/ReportConfigComparisonExpression" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The comparison expression to be used in the report." + }, + "not": { + "oneOf": [ + { + "$ref": "#/definitions/ReportConfigFilter" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The filter expression to be used in the report." + }, + "or": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ReportConfigFilter" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The logical \"OR\" expression. Must have at least 2 items." + }, + "tag": { + "oneOf": [ + { + "$ref": "#/definitions/ReportConfigComparisonExpression" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The comparison expression to be used in the report." + } + }, + "description": "The filter expression to be used in the report." + }, + "ReportConfigGrouping": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the column to group. This version supports subscription lowest possible grain." + }, + "type": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Tag", + "Dimension" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Has type of the column to group." + } + }, + "required": [ + "name", + "type" + ], + "description": "The group by expression to be used in the report." + }, + "ReportConfigSorting": { + "type": "object", + "properties": { + "direction": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Ascending", + "Descending" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Direction of sort." + }, + "name": { + "type": "string", + "description": "The name of the column to sort." + } + }, + "required": [ + "name" + ], + "description": "The order by expression to be used in the report." + }, + "ReportConfigTimePeriod": { + "type": "object", + "properties": { + "from": { + "type": "string", + "format": "date-time", + "description": "The start date to pull data from." + }, + "to": { + "type": "string", + "format": "date-time", + "description": "The end date to pull data to." + } + }, + "required": [ + "from", + "to" + ], + "description": "The start and end date for pulling data for the report." + }, + "ViewProperties": { + "type": "object", + "properties": { + "accumulated": { + "oneOf": [ + { + "type": "string", + "enum": [ + "true", + "false" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Show costs accumulated over time." + }, + "chart": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Area", + "Line", + "StackedColumn", + "GroupedColumn", + "Table" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Chart type of the main view in Cost Analysis. Required." + }, + "displayName": { + "type": "string", + "description": "User input name of the view. Required." + }, + "kpis": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/KpiProperties" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of KPIs to show in Cost Analysis UI." + }, + "metric": { + "oneOf": [ + { + "type": "string", + "enum": [ + "ActualCost", + "AmortizedCost", + "AHUB" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Metric to use when displaying costs." + }, + "pivots": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/PivotProperties" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Configuration of 3 sub-views in the Cost Analysis UI." + }, + "query": { + "oneOf": [ + { + "$ref": "#/definitions/ReportConfigDefinition" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The definition of a report config." + }, + "scope": { + "type": "string", + "description": "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." + } + }, + "description": "The properties of the view." + } + } +} diff --git a/schemas/2020-03-01-preview/Microsoft.CostManagement.json b/schemas/2020-03-01-preview/Microsoft.CostManagement.json new file mode 100644 index 0000000000..a6f15e3437 --- /dev/null +++ b/schemas/2020-03-01-preview/Microsoft.CostManagement.json @@ -0,0 +1,253 @@ +{ + "id": "https://schema.management.azure.com/schemas/2020-03-01-preview/Microsoft.CostManagement.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.CostManagement", + "description": "Microsoft CostManagement Resource Types", + "resourceDefinitions": {}, + "extension_resourceDefinitions": { + "costAllocationRules": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2020-03-01-preview" + ] + }, + "name": { + "type": "string", + "description": "Cost allocation rule name. The name cannot include spaces or any non alphanumeric characters other than '_' and '-'. The max length is 260 characters." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/CostAllocationRuleProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The properties of a cost allocation rule" + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.CostManagement/costAllocationRules" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.CostManagement/costAllocationRules" + } + }, + "definitions": { + "CostAllocationProportion": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Target resource for cost allocation" + }, + "percentage": { + "oneOf": [ + { + "type": "number" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Percentage of source cost to allocate to this resource. This value can be specified to two decimal places and the total percentage of all resources in this rule must sum to 100.00." + } + }, + "required": [ + "name", + "percentage" + ], + "description": "Target resources and allocation" + }, + "CostAllocationRuleDetails": { + "type": "object", + "properties": { + "sourceResources": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SourceCostAllocationResource" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Source resources for cost allocation. At this time, this list can contain no more than one element." + }, + "targetResources": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/TargetCostAllocationResource" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Target resources for cost allocation. At this time, this list can contain no more than one element." + } + }, + "description": "Resource details of the cost allocation rule" + }, + "CostAllocationRuleProperties": { + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "Description of a cost allocation rule." + }, + "details": { + "oneOf": [ + { + "$ref": "#/definitions/CostAllocationRuleDetails" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource details of the cost allocation rule" + }, + "status": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NotActive", + "Active", + "Processing" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Status of the rule." + } + }, + "required": [ + "details", + "status" + ], + "description": "The properties of a cost allocation rule" + }, + "SourceCostAllocationResource": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "If resource type is dimension, this must be either ResourceGroupName or SubscriptionId. If resource type is tag, this must be a valid Azure tag" + }, + "resourceType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Dimension", + "Tag" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Type of resources contained in this cost allocation rule." + }, + "values": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Source Resources for cost allocation. This list cannot contain more than 25 values." + } + }, + "required": [ + "name", + "resourceType", + "values" + ], + "description": "Source resources for cost allocation" + }, + "TargetCostAllocationResource": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "If resource type is dimension, this must be either ResourceGroupName or SubscriptionId. If resource type is tag, this must be a valid Azure tag" + }, + "policyType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "FixedProportion" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Method of cost allocation for the rule" + }, + "resourceType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Dimension", + "Tag" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Type of resources contained in this cost allocation rule." + }, + "values": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/CostAllocationProportion" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Target resources for cost allocation. This list cannot contain more than 25 values." + } + }, + "required": [ + "name", + "policyType", + "resourceType", + "values" + ], + "description": "Target resources for cost allocation." + } + } +} diff --git a/schemas/2020-06-01/Microsoft.CostManagement.json b/schemas/2020-06-01/Microsoft.CostManagement.json new file mode 100644 index 0000000000..b25a05a770 --- /dev/null +++ b/schemas/2020-06-01/Microsoft.CostManagement.json @@ -0,0 +1,647 @@ +{ + "id": "https://schema.management.azure.com/schemas/2020-06-01/Microsoft.CostManagement.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.CostManagement", + "description": "Microsoft CostManagement Resource Types", + "resourceDefinitions": {}, + "tenant_resourceDefinitions": { + "views": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2020-06-01" + ] + }, + "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." + }, + "name": { + "type": "string", + "description": "View name" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ViewProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The properties of the view." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.CostManagement/views" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.CostManagement/views" + } + }, + "unknown_resourceDefinitions": { + "views": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2020-06-01" + ] + }, + "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." + }, + "name": { + "type": "string", + "description": "View name" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ViewProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The properties of the view." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.CostManagement/views" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.CostManagement/views" + } + }, + "definitions": { + "KpiProperties": { + "type": "object", + "properties": { + "enabled": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "show the KPI in the UI?" + }, + "id": { + "type": "string", + "description": "ID of resource related to metric (budget)." + }, + "type": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Forecast", + "Budget" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "KPI type (Forecast, Budget)." + } + }, + "description": "Each KPI must contain a 'type' and 'enabled' key." + }, + "PivotProperties": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Data field to show in view." + }, + "type": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Dimension", + "TagKey" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Data type to show in view." + } + }, + "description": "Each pivot must contain a 'type' and 'name'." + }, + "ReportConfigAggregation": { + "type": "object", + "properties": { + "function": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Sum" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The name of the aggregation function to use." + }, + "name": { + "type": "string", + "description": "The name of the column to aggregate." + } + }, + "required": [ + "function", + "name" + ], + "description": "The aggregation expression to be used in the report." + }, + "ReportConfigComparisonExpression": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the column to use in comparison." + }, + "operator": { + "oneOf": [ + { + "type": "string", + "enum": [ + "In", + "Contains" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The operator to use for comparison." + }, + "values": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Array of values to use for comparison" + } + }, + "required": [ + "name", + "operator", + "values" + ], + "description": "The comparison expression to be used in the report." + }, + "ReportConfigDataset": { + "type": "object", + "properties": { + "aggregation": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/ReportConfigAggregation" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "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." + }, + "configuration": { + "oneOf": [ + { + "$ref": "#/definitions/ReportConfigDatasetConfiguration" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The configuration of dataset in the report." + }, + "filter": { + "oneOf": [ + { + "$ref": "#/definitions/ReportConfigFilter" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The filter expression to be used in the report." + }, + "granularity": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Daily", + "Monthly" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The granularity of rows in the report." + }, + "grouping": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ReportConfigGrouping" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Array of group by expression to use in the report. Report can have up to 2 group by clauses." + }, + "sorting": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ReportConfigSorting" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Array of order by expression to use in the report." + } + }, + "description": "The definition of data present in the report." + }, + "ReportConfigDatasetConfiguration": { + "type": "object", + "properties": { + "columns": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "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." + } + }, + "description": "The configuration of dataset in the report." + }, + "ReportConfigDefinition": { + "type": "object", + "properties": { + "dataset": { + "oneOf": [ + { + "$ref": "#/definitions/ReportConfigDataset" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The definition of data present in the report." + }, + "timeframe": { + "oneOf": [ + { + "type": "string", + "enum": [ + "WeekToDate", + "MonthToDate", + "YearToDate", + "Custom" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The time frame for pulling data for the report. If custom, then a specific time period must be provided." + }, + "timePeriod": { + "oneOf": [ + { + "$ref": "#/definitions/ReportConfigTimePeriod" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The start and end date for pulling data for the report." + }, + "type": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Usage" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The type of the report. Usage represents actual usage, forecast represents forecasted data and UsageAndForecast represents both usage and forecasted data. Actual usage and forecasted data can be differentiated based on dates." + } + }, + "required": [ + "timeframe", + "type" + ], + "description": "The definition of a report config." + }, + "ReportConfigFilter": { + "type": "object", + "properties": { + "and": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ReportConfigFilter" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The logical \"AND\" expression. Must have at least 2 items." + }, + "dimension": { + "oneOf": [ + { + "$ref": "#/definitions/ReportConfigComparisonExpression" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The comparison expression to be used in the report." + }, + "not": { + "oneOf": [ + { + "$ref": "#/definitions/ReportConfigFilter" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The filter expression to be used in the report." + }, + "or": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ReportConfigFilter" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The logical \"OR\" expression. Must have at least 2 items." + }, + "tag": { + "oneOf": [ + { + "$ref": "#/definitions/ReportConfigComparisonExpression" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The comparison expression to be used in the report." + } + }, + "description": "The filter expression to be used in the report." + }, + "ReportConfigGrouping": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the column to group. This version supports subscription lowest possible grain." + }, + "type": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Tag", + "Dimension" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Has type of the column to group." + } + }, + "required": [ + "name", + "type" + ], + "description": "The group by expression to be used in the report." + }, + "ReportConfigSorting": { + "type": "object", + "properties": { + "direction": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Ascending", + "Descending" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Direction of sort." + }, + "name": { + "type": "string", + "description": "The name of the column to sort." + } + }, + "required": [ + "name" + ], + "description": "The order by expression to be used in the report." + }, + "ReportConfigTimePeriod": { + "type": "object", + "properties": { + "from": { + "type": "string", + "format": "date-time", + "description": "The start date to pull data from." + }, + "to": { + "type": "string", + "format": "date-time", + "description": "The end date to pull data to." + } + }, + "required": [ + "from", + "to" + ], + "description": "The start and end date for pulling data for the report." + }, + "ViewProperties": { + "type": "object", + "properties": { + "accumulated": { + "oneOf": [ + { + "type": "string", + "enum": [ + "true", + "false" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Show costs accumulated over time." + }, + "chart": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Area", + "Line", + "StackedColumn", + "GroupedColumn", + "Table" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Chart type of the main view in Cost Analysis. Required." + }, + "displayName": { + "type": "string", + "description": "User input name of the view. Required." + }, + "kpis": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/KpiProperties" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of KPIs to show in Cost Analysis UI." + }, + "metric": { + "oneOf": [ + { + "type": "string", + "enum": [ + "ActualCost", + "AmortizedCost", + "AHUB" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Metric to use when displaying costs." + }, + "pivots": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/PivotProperties" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Configuration of 3 sub-views in the Cost Analysis UI." + }, + "query": { + "oneOf": [ + { + "$ref": "#/definitions/ReportConfigDefinition" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The definition of a report config." + }, + "scope": { + "type": "string", + "description": "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." + } + }, + "description": "The properties of the view." + } + } +} diff --git a/schemas/2020-09-18/Microsoft.Kusto.json b/schemas/2020-09-18/Microsoft.Kusto.json new file mode 100644 index 0000000000..2388d58713 --- /dev/null +++ b/schemas/2020-09-18/Microsoft.Kusto.json @@ -0,0 +1,1210 @@ +{ + "id": "https://schema.management.azure.com/schemas/2020-09-18/Microsoft.Kusto.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.Kusto", + "description": "Microsoft Kusto Resource Types", + "resourceDefinitions": { + "clusters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the Kusto cluster." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Kusto/clusters" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2020-09-18" + ] + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Resource tags." + }, + "location": { + "type": "string", + "description": "The geo-location where the resource lives" + }, + "sku": { + "oneOf": [ + { + "$ref": "#/definitions/AzureSku" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The SKU of the Kusto cluster." + }, + "zones": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "An array represents the availability zones of the cluster." + }, + "identity": { + "oneOf": [ + { + "$ref": "#/definitions/Identity" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Identity for the resource." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ClusterProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + }, + "resources": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/resourceDefinitions/clusters_databases" + }, + { + "$ref": "#/resourceDefinitions/clusters_attacheddatabaseconfigurations" + }, + { + "$ref": "#/resourceDefinitions/clusters_principalassignments" + } + ] + } + } + }, + "required": [ + "name", + "type", + "apiVersion", + "location", + "sku" + ], + "description": "Microsoft.Kusto/clusters" + }, + "clusters_databases": { + "type": "object", + "oneOf": [ + { + "$ref": "#/definitions/ReadWriteDatabase" + } + ], + "properties": { + "name": { + "type": "string", + "description": "The name of the database in the Kusto cluster." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Kusto/clusters/databases" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2020-09-18" + ] + }, + "location": { + "type": "string", + "description": "Resource location." + }, + "resources": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/resourceDefinitions/clusters_databases_dataconnections" + }, + { + "$ref": "#/resourceDefinitions/clusters_databases_principalassignments" + } + ] + } + } + }, + "required": [ + "name", + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Kusto/clusters/databases" + }, + "clusters_dataconnections": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The data connection name" + }, + "type": { + "enum": [ + "Microsoft.Kusto/clusters/dataConnections" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2020-09-18" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/GenevaDataConnection" + }, + { + "$ref": "#/definitions/GenevaLegacyDataConnection" + } + ], + "description": "Properties supplied to the data connection create or update Kusto operation." + } + }, + "required": [ + "name", + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Kusto/clusters/dataConnections" + }, + "clusters_databases_dataconnections": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The data connection name" + }, + "type": { + "enum": [ + "Microsoft.Kusto/clusters/databases/dataConnections" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2020-09-18" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/EventHubDataConnection" + }, + { + "$ref": "#/definitions/EventGridDataConnection" + }, + { + "$ref": "#/definitions/IotHubDataConnection" + } + ], + "description": "Properties supplied to the Data Connection Create Or Update Kusto operation." + } + }, + "required": [ + "name", + "type", + "apiVersion", + "properties" + ], + "description": "Microsoft.Kusto/clusters/databases/dataConnections" + }, + "clusters_attacheddatabaseconfigurations": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the attached database configurations." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Kusto/clusters/AttachedDatabaseConfigurations" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2020-09-18" + ] + }, + "location": { + "type": "string", + "description": "Resource location." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/AttachedDatabaseConfigurationsProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + } + }, + "required": [ + "name", + "type", + "apiVersion", + "properties" + ], + "description": "Class representing an attached database configurations." + }, + "clusters_principalassignments": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the cluster principal assignment" + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Kusto/clusters/principalAssignments" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2020-09-18" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ClusterPrincipalProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + } + }, + "required": [ + "name", + "type", + "apiVersion", + "properties" + ], + "description": "Class representing a cluster principal assignment." + }, + "clusters_databases_principalassignments": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the database principal assignment" + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Kusto/clusters/databases/principalAssignments" + ] + }, + "apiVersion": { + "type": "string", + "enum": [ + "2020-09-18" + ] + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/DatabasePrincipalProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + } + }, + "required": [ + "name", + "type", + "apiVersion", + "properties" + ], + "description": "Class representing a database principal assignment." + } + }, + "definitions": { + "AzureSku": { + "type": "object", + "properties": { + "name": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Standard_DS13_v2+1TB_PS", + "Standard_DS13_v2+2TB_PS", + "Standard_DS14_v2+3TB_PS", + "Standard_DS14_v2+4TB_PS", + "Standard_D13_v2", + "Standard_D14_v2", + "Standard_L8s", + "Standard_L16s", + "Standard_D11_v2", + "Standard_D12_v2", + "Standard_L4s", + "Dev(No SLA)_Standard_D11_v2", + "Standard_E64i_v3", + "Standard_E2a_v4", + "Standard_E4a_v4", + "Standard_E8a_v4", + "Standard_E16a_v4", + "Standard_E8as_v4+1TB_PS", + "Standard_E8as_v4+2TB_PS", + "Standard_E16as_v4+3TB_PS", + "Standard_E16as_v4+4TB_PS", + "Dev(No SLA)_Standard_E2a_v4" + ], + "x-ms-enum": { + "name": "AzureSkuName", + "modelAsString": true + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "SKU name. Possible values include: 'Standard_DS13_v2+1TB_PS', 'Standard_DS13_v2+2TB_PS', 'Standard_DS14_v2+3TB_PS', 'Standard_DS14_v2+4TB_PS', 'Standard_D13_v2', 'Standard_D14_v2', 'Standard_L8s', 'Standard_L16s', 'Standard_D11_v2', 'Standard_D12_v2', 'Standard_L4s', 'Dev(No SLA)_Standard_D11_v2', 'Standard_E2a_v4', 'Standard_E4a_v4', 'Standard_E8a_v4', 'Standard_E16a_v4', 'Standard_E8as_v4+1TB_PS', 'Standard_E8as_v4+2TB_PS', 'Standard_E16as_v4+3TB_PS', 'Standard_E16as_v4+4TB_PS', 'Dev(No SLA)_Standard_E2a_v4'" + }, + "capacity": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The number of instances of the cluster." + }, + "tier": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Standard", + "Basic" + ], + "x-ms-enum": { + "name": "AzureSkuTier", + "modelAsString": true + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "SKU tier." + } + }, + "required": [ + "name", + "tier" + ], + "description": "Azure SKU definition." + }, + "ClusterProperties": { + "type": "object", + "properties": { + "trustedExternalTenants": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/TrustedExternalTenant" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The cluster's external tenants." + }, + "optimizedAutoscale": { + "oneOf": [ + { + "$ref": "#/definitions/OptimizedAutoscale" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "A class that contains the optimized auto scale definition." + }, + "enableDiskEncryption": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "A boolean value that indicates if the cluster's disks are encrypted." + }, + "enableStreamingIngest": { + "oneOf": [ + { + "type": "boolean", + "default": false + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "A boolean value that indicates if the streaming ingest is enabled." + }, + "virtualNetworkConfiguration": { + "oneOf": [ + { + "$ref": "#/definitions/VirtualNetworkConfiguration" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "A class that contains virtual network definition." + }, + "keyVaultProperties": { + "oneOf": [ + { + "$ref": "#/definitions/KeyVaultProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "KeyVault properties for the cluster encryption." + }, + "enablePurge": { + "oneOf": [ + { + "type": "boolean", + "default": false + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "A boolean value that indicates if the purge operations are enabled." + }, + "enableDoubleEncryption": { + "oneOf": [ + { + "type": "boolean", + "default": false + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Indicates whether or not Double-Encryption is enabled on storage account." + }, + "engineType": { + "oneOf": [ + { + "type": "string" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "A string value that indicates the Azure Data Explorer engine type." + } + } + }, + "ReadWriteDatabaseProperties": { + "type": "object", + "properties": { + "softDeletePeriod": { + "type": "string", + "format": "duration", + "description": "The time the data should be kept before it stops being accessible to queries in TimeSpan." + }, + "hotCachePeriod": { + "type": "string", + "format": "duration", + "description": "The time the data should be kept in cache for fast queries in TimeSpan." + } + } + }, + "ReadWriteDatabase": { + "type": "object", + "properties": { + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ReadWriteDatabaseProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Read write database properties" + }, + "kind": { + "type": "string", + "enum": [ + "ReadWrite" + ], + "description": "Kind of the database" + } + }, + "required": [ + "kind", + "properties" + ], + "description": "Information about the readWrite database" + }, + "AttachedDatabaseConfigurationsProperties": { + "type": "object", + "properties": { + "databaseName": { + "type": "string", + "description": "The name of the database which you would like to attach, use * if you want to follow all current and future databases." + }, + "clusterResourceId": { + "type": "string", + "description": "The resource id of the cluster where the databases you would like to attach reside." + }, + "defaultPrincipalsModificationKind": { + "type": "string", + "enum": [ + "Union", + "Replace", + "None" + ], + "description": "The default principals modification kind" + } + } + }, + "EventGridDataConnectionProperties": { + "type": "object", + "properties": { + "storageAccountResourceId": { + "type": "string", + "description": "The resource ID of the storage account where the data resides." + }, + "eventHubResourceId": { + "type": "string", + "description": "The resource ID where the event grid is configured to send events." + }, + "consumerGroup": { + "type": "string", + "description": "The event hub consumer group." + }, + "tableName": { + "type": "string", + "description": "The table where the data should be ingested. Optionally the table information can be added to each message." + }, + "mappingRuleName": { + "type": "string", + "description": "The mapping rule to be used to ingest the data. Optionally the mapping information can be added to each message." + }, + "dataFormat": { + "oneOf": [ + { + "$ref": "#/definitions/DataFormat" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The data format of the message. Optionally the data format can be added to each message." + }, + "ignoreFirstRecord": { + "type": "boolean", + "description": "A Boolean value that, if set to true, indicates that ingestion should ignore the first record of every file." + }, + "blobStorageEventType": { + "oneOf": [ + { + "$ref": "#/definitions/BlobStorageEventType" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The name of blob storage event type to process." + } + }, + "required": [ + "storageAccountResourceId", + "eventHubResourceId", + "consumerGroup" + ], + "description": "Class representing the Kusto event grid connection properties." + }, + "DatabasePrincipalProperties": { + "type": "object", + "properties": { + "principalId": { + "description": "The principal ID assigned to the database principal. It can be a user email, application ID, or security group name.", + "type": "string" + }, + "role": { + "description": "Database principal role.", + "type": "string", + "enum": [ + "Admin", + "Ingestor", + "Monitor", + "User", + "UnrestrictedViewers", + "Viewer" + ] + }, + "tenantId": { + "type": "string", + "description": "The tenant id of the principal" + }, + "principalType": { + "description": "Principal type.", + "type": "string", + "enum": [ + "App", + "Group", + "User" + ] + } + }, + "required": [ + "principalId", + "role", + "principalType" + ], + "description": "A class representing database principal property." + }, + "ClusterPrincipalProperties": { + "type": "object", + "properties": { + "principalId": { + "description": "The principal ID assigned to the cluster principal. It can be a user email, application ID, or security group name.", + "type": "string" + }, + "role": { + "description": "Cluster principal role.", + "type": "string", + "enum": [ + "AllDatabasesAdmin", + "AllDatabasesViewer" + ] + }, + "tenantId": { + "type": "string", + "description": "The tenant id of the principal" + }, + "principalType": { + "description": "Principal type.", + "type": "string", + "enum": [ + "App", + "Group", + "User" + ] + } + }, + "required": [ + "principalId", + "role", + "principalType" + ], + "description": "A class representing cluster principal property." + }, + "EventGridDataConnection": { + "type": "object", + "properties": { + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/EventGridDataConnectionProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Class representing the Kusto event grid connection properties." + }, + "kind": { + "type": "string", + "enum": [ + "EventGrid" + ] + } + }, + "required": [ + "kind" + ], + "description": "Class representing an Event Grid data connection." + }, + "EventHubDataConnectionProperties": { + "type": "object", + "properties": { + "eventHubResourceId": { + "type": "string", + "description": "The resource ID of the event hub to be used to create a data connection." + }, + "consumerGroup": { + "type": "string", + "description": "The event hub consumer group." + }, + "tableName": { + "type": "string", + "description": "The table where the data should be ingested. Optionally the table information can be added to each message." + }, + "mappingRuleName": { + "type": "string", + "description": "The mapping rule to be used to ingest the data. Optionally the mapping information can be added to each message." + }, + "dataFormat": { + "oneOf": [ + { + "$ref": "#/definitions/DataFormat" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The data format of the message. Optionally the data format can be added to each message." + }, + "eventSystemProperties": { + "oneOf": [ + { + "$ref": "#/definitions/EventSystemProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "System properties of the event hub" + } + }, + "required": [ + "eventHubResourceId", + "consumerGroup" + ], + "description": "Class representing the Kusto event hub connection properties." + }, + "EventHubDataConnection": { + "type": "object", + "properties": { + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/EventHubDataConnectionProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Event hub data connection properties" + }, + "kind": { + "type": "string", + "enum": [ + "EventHub" + ] + } + }, + "required": [ + "kind" + ], + "description": "Information about the event hub data connection" + }, + "Identity": { + "type": "object", + "properties": { + "type": { + "oneOf": [ + { + "type": "string", + "enum": [ + "None", + "SystemAssigned", + "UserAssigned", + "SystemAssigned, UserAssigned" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove all identities." + } + }, + "required": [ + "type" + ], + "description": "Identity for the resource." + }, + "IotHubDataConnectionProperties": { + "type": "object", + "properties": { + "iotHubResourceId": { + "type": "string", + "description": "The resource ID of the iot hub to be used to create a data connection." + }, + "consumerGroup": { + "type": "string", + "description": "The iot hub consumer group." + }, + "tableName": { + "type": "string", + "description": "The table where the data should be ingested. Optionally the table information can be added to each message." + }, + "mappingRuleName": { + "type": "string", + "description": "The mapping rule to be used to ingest the data. Optionally the mapping information can be added to each message." + }, + "dataFormat": { + "oneOf": [ + { + "$ref": "#/definitions/DataFormat" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The data format of the message. Optionally the data format can be added to each message." + }, + "eventSystemProperties": { + "oneOf": [ + { + "$ref": "#/definitions/EventSystemProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The iot hub system properties." + }, + "sharedAccessPolicyName": { + "type": "string", + "description": "The name of the shared access policy." + } + }, + "required": [ + "iotHubResourceId", + "consumerGroup", + "sharedAccessPolicyName" + ], + "description": "Class representing the Kusto Iot hub connection properties." + }, + "IotHubDataConnection": { + "type": "object", + "properties": { + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/IotHubDataConnectionProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Iot hub data connection properties" + }, + "kind": { + "type": "string", + "enum": [ + "IotHub" + ] + } + }, + "required": [ + "kind" + ], + "description": "Information about the Iot hub data connection" + }, + "GenevaDataConnectionProperties": { + "type": "object", + "properties": { + "genevaEnvironment": { + "type": "string", + "description": "The Geneva environment of the geneva data connection." + } + }, + "required": [ + "genevaEnvironment" + ], + "description": "Class representing the Kusto Geneva (GDS) connection properties." + }, + "GenevaDataConnection": { + "type": "object", + "properties": { + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/GenevaDataConnectionProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Geneva (DGS) data connection properties" + }, + "kind": { + "type": "string", + "enum": [ + "Geneva" + ] + } + }, + "required": [ + "kind" + ], + "description": "Information about the Geneva (GDS) data connection" + }, + "GenevaLegacyDataConnectionProperties": { + "type": "object", + "properties": { + "genevaEnvironment": { + "type": "string", + "description": "The Geneva environment of the geneva data connection." + }, + "mdsAccounts": { + "type:": "array", + "description": "The list of mds accounts of the geneva data connection." + }, + "isScrubbed": { + "type:": "boolean", + "description": "Indicates whether the data is scrubbed." + } + }, + "required": [ + "genevaEnvironment", + "mdsAccounts", + "isScrubbed" + ], + "description": "Class representing the Kusto Geneva legacy connection properties." + }, + "GenevaLegacyDataConnection": { + "type": "object", + "properties": { + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/GenevaLegacyDataConnectionProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Geneva legacy data connection properties" + }, + "kind": { + "type": "string", + "enum": [ + "GenevaLegacy" + ] + } + }, + "required": [ + "kind" + ], + "description": "Information about the Geneva (GDS) data connection" + }, + "KeyVaultProperties": { + "type": "object", + "properties": { + "keyName": { + "type": "string", + "description": "The name of the key vault key.", + "x-ms-client-name": "KeyName" + }, + "keyVersion": { + "type": "string", + "description": "The version of the key vault key.", + "x-ms-client-name": "KeyVersion" + }, + "keyVaultUri": { + "type": "string", + "description": "The Uri of the key vault.", + "x-ms-client-name": "KeyVaultUri" + }, + "userIdentity": { + "type": "string", + "description": "The user assigned identity (ARM resource id) that has access to the key.", + "x-ms-client-name": "UserIdentity" + } + }, + "required": [ + "keyName", + "keyVaultUri" + ], + "description": "Properties of the key vault." + }, + "OptimizedAutoscale": { + "type": "object", + "properties": { + "version": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The version of the template defined, for instance 1." + }, + "isEnabled": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "A boolean value that indicate if the optimized autoscale feature is enabled or not." + }, + "minimum": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Minimum allowed instances count." + }, + "maximum": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Maximum allowed instances count." + } + }, + "required": [ + "version", + "isEnabled", + "minimum", + "maximum" + ], + "description": "A class that contains the optimized auto scale definition." + }, + "TrustedExternalTenant": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "GUID representing an external tenant." + } + }, + "description": "Represents a tenant ID that is trusted by the cluster." + }, + "VirtualNetworkConfiguration": { + "type": "object", + "properties": { + "subnetId": { + "type": "string", + "description": "The subnet resource id." + }, + "enginePublicIpId": { + "type": "string", + "description": "Engine service's public IP address resource id." + }, + "dataManagementPublicIpId": { + "type": "string", + "description": "Data management's service public IP address resource id." + } + }, + "required": [ + "subnetId", + "enginePublicIpId", + "dataManagementPublicIpId" + ], + "description": "A class that contains virtual network definition." + }, + "DataFormat": { + "type": "string", + "enum": [ + "MULTIJSON", + "JSON", + "CSV", + "TSV", + "SCSV", + "SOHSV", + "PSV", + "TXT", + "RAW", + "SINGLEJSON", + "AVRO", + "TSVE", + "PARQUET", + "ORC", + "APACHEAVRO", + "W3CLOGFILE" + ], + "description": "The data format of the message. Optionally the data format can be added to each message.", + "x-ms-enum": { + "name": "dataFormat", + "modelAsString": true + } + }, + "EventSystemProperties": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The resource system properties." + }, + "BlobStorageEventType": { + "description": "The name of blob storage event type to process.", + "type": "string", + "enum": [ + "Microsoft.Storage.BlobCreated", + "Microsoft.Storage.BlobRenamed" + ], + "x-ms-enum": { + "name": "blobStorageEventType", + "modelAsString": true + } + } + } +} diff --git a/schemas/common/autogeneratedResources.json b/schemas/common/autogeneratedResources.json index 73893a3f0d..ace52e0359 100644 --- a/schemas/common/autogeneratedResources.json +++ b/schemas/common/autogeneratedResources.json @@ -3937,6 +3937,12 @@ { "$ref": "https://schema.management.azure.com/schemas/2019-10-01/Microsoft.Migrate.json#/resourceDefinitions/assessmentProjects_vmwarecollectors" }, + { + "$ref": "https://schema.management.azure.com/schemas/2019-10-01-preview/Microsoft.Migrate.json#/resourceDefinitions/moveCollections" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2019-10-01-preview/Microsoft.Migrate.json#/resourceDefinitions/moveCollections_moveResources" + }, { "$ref": "https://schema.management.azure.com/schemas/2017-08-15/Microsoft.NetApp.json#/resourceDefinitions/netAppAccounts" },