diff --git a/specification/resourcegraph/resource-manager/Microsoft.ResourceGraph/stable/2021-03-01/examples/OperationsList.json b/specification/resourcegraph/resource-manager/Microsoft.ResourceGraph/stable/2021-03-01/examples/OperationsList.json new file mode 100644 index 000000000000..8a25f12df348 --- /dev/null +++ b/specification/resourcegraph/resource-manager/Microsoft.ResourceGraph/stable/2021-03-01/examples/OperationsList.json @@ -0,0 +1,31 @@ +{ + "parameters": { + "api-version": "2021-03-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "Microsoft.ResourceGraph/operations/read", + "display": { + "provider": "Microsoft Resource Graph", + "resource": "Operation", + "operation": "Get Operations", + "description": "Gets the list of supported operations" + } + }, + { + "name": "Microsoft.ResourceGraph/resources/read", + "display": { + "provider": "Microsoft Resource Graph", + "resource": "Resources", + "operation": "Query resources", + "description": "Submits a query on resources within specified subscriptions, the specified management groups, or against all access granted in the tenant." + } + } + ] + } + } + } +} diff --git a/specification/resourcegraph/resource-manager/Microsoft.ResourceGraph/stable/2021-03-01/examples/ResourcesBasicQuery.json b/specification/resourcegraph/resource-manager/Microsoft.ResourceGraph/stable/2021-03-01/examples/ResourcesBasicQuery.json new file mode 100644 index 000000000000..e369394f39d8 --- /dev/null +++ b/specification/resourcegraph/resource-manager/Microsoft.ResourceGraph/stable/2021-03-01/examples/ResourcesBasicQuery.json @@ -0,0 +1,48 @@ +{ + "title": "Basic Query", + "description": "A simple resources query.", + "parameters": { + "api-version": "2021-03-01", + "query": { + "subscriptions": [ + "cfbbd179-59d2-4052-aa06-9270a38aa9d6" + ], + "query": "Resources | project id, name, type, location, tags | limit 3" + } + }, + "responses": { + "200": { + "body": { + "totalRecords": 3, + "count": 3, + "resultTruncated": "false", + "facets": [], + "data": [ + { + "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG1/providers/Microsoft.Network/networkInterfaces/myNetworkInterface", + "name": "myNetworkInterface", + "type": "microsoft.network/networkinterfaces", + "location": "centralus", + "tags": { + "tag1": "Value1" + } + }, + { + "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG2/providers/Microsoft.Network/virtualNetworks/myVnet", + "name": "myVnet", + "type": "microsoft.network/virtualnetworks", + "location": "westus", + "tags": {} + }, + { + "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG2/providers/Microsoft.Network/publicIPAddresses/myPublicIp", + "name": "myPublicIp", + "type": "microsoft.network/publicipaddresses", + "location": "westus", + "tags": {} + } + ] + } + } + } +} diff --git a/specification/resourcegraph/resource-manager/Microsoft.ResourceGraph/stable/2021-03-01/examples/ResourcesComplexQuery.json b/specification/resourcegraph/resource-manager/Microsoft.ResourceGraph/stable/2021-03-01/examples/ResourcesComplexQuery.json new file mode 100644 index 000000000000..81aa52716a1a --- /dev/null +++ b/specification/resourcegraph/resource-manager/Microsoft.ResourceGraph/stable/2021-03-01/examples/ResourcesComplexQuery.json @@ -0,0 +1,37 @@ +{ + "title": "Complex Query", + "description": "A complex query on resources featuring multiple operations.", + "parameters": { + "api-version": "2021-03-01", + "query": { + "subscriptions": [ + "cfbbd179-59d2-4052-aa06-9270a38aa9d6" + ], + "query": "Resources | project id, name, type, location | where type =~ 'Microsoft.Compute/virtualMachines' | summarize count() by location | top 3 by count_" + } + }, + "responses": { + "200": { + "body": { + "totalRecords": 3, + "count": 3, + "resultTruncated": "false", + "facets": [], + "data": [ + { + "location": "centralus", + "count_": 11 + }, + { + "location": "eastus", + "count_": 11 + }, + { + "location": "southcentralus", + "count_": 3 + } + ] + } + } + } +} diff --git a/specification/resourcegraph/resource-manager/Microsoft.ResourceGraph/stable/2021-03-01/examples/ResourcesFacetQuery.json b/specification/resourcegraph/resource-manager/Microsoft.ResourceGraph/stable/2021-03-01/examples/ResourcesFacetQuery.json new file mode 100644 index 000000000000..d953f1866428 --- /dev/null +++ b/specification/resourcegraph/resource-manager/Microsoft.ResourceGraph/stable/2021-03-01/examples/ResourcesFacetQuery.json @@ -0,0 +1,185 @@ +{ + "title": "Facet Query", + "description": "A query on resources requesting extra facets.", + "parameters": { + "api-version": "2021-03-01", + "query": { + "subscriptions": [ + "cfbbd179-59d2-4052-aa06-9270a38aa9d6" + ], + "query": "Resources | where type =~ 'Microsoft.Compute/virtualMachines' | project id, name, location, resourceGroup, properties.storageProfile.osDisk.osType | limit 5", + "facets": [ + { + "expression": "location", + "options": { + "sortOrder": "desc", + "$top": 3 + } + }, + { + "expression": "properties.storageProfile.osDisk.osType", + "options": { + "sortOrder": "desc", + "$top": 3 + } + }, + { + "expression": "nonExistingColumn", + "options": { + "sortOrder": "desc", + "$top": 3 + } + }, + { + "expression": "resourceGroup", + "options": { + "sortBy": "tolower(resourceGroup)", + "sortOrder": "asc", + "$top": 3 + } + }, + { + "expression": "resourceGroup", + "options": { + "filter": "resourceGroup contains 'test'", + "$top": 3 + } + } + ] + } + }, + "responses": { + "200": { + "body": { + "totalRecords": 5, + "count": 5, + "resultTruncated": "false", + "data": [ + { + "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/B-TEST-RG/providers/Microsoft.Compute/virtualMachines/myTestVm", + "name": "myTestVm", + "location": "eastus", + "resourceGroup": "B-TEST-RG", + "properties_storageProfile_osDisk_osType": "Windows" + }, + { + "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/c-rg/providers/Microsoft.Compute/virtualMachines/myTestAccountVm", + "name": "myTestAccountVm", + "location": "westcentralus", + "resourceGroup": "c-rg", + "properties_storageProfile_osDisk_osType": "Windows" + }, + { + "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/I-RG/providers/Microsoft.Compute/virtualMachines/yetanothertest", + "name": "yetanothertest", + "location": "eastus", + "resourceGroup": "I-RG", + "properties_storageProfile_osDisk_osType": "Linux" + }, + { + "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/x-test-rg/providers/Microsoft.Compute/virtualMachines/drafttest1bux4cv7a7q3aw", + "name": "drafttest1bux4cv7a7q3aw", + "location": "southcentralus", + "resourceGroup": "x-test-rg", + "properties_storageProfile_osDisk_osType": "Linux" + }, + { + "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/y-rg/providers/Microsoft.Compute/virtualMachines/testvmntp25370", + "name": "testvmntp25370", + "location": "eastus", + "resourceGroup": "y-rg", + "properties_storageProfile_osDisk_osType": "Windows" + } + ], + "facets": [ + { + "expression": "location", + "resultType": "FacetResult", + "totalRecords": 3, + "count": 3, + "data": [ + { + "location": "eastus", + "count": 3 + }, + { + "location": "southcentralus", + "count": 1 + }, + { + "location": "westcentralus", + "count": 1 + } + ] + }, + { + "expression": "properties.storageProfile.osDisk.osType", + "resultType": "FacetResult", + "totalRecords": 2, + "count": 2, + "data": [ + { + "properties_storageProfile_osDisk_osType": "Linux", + "count": 2 + }, + { + "properties_storageProfile_osDisk_osType": "Windows", + "count": 3 + } + ] + }, + { + "expression": "nonExistingColumn", + "resultType": "FacetError", + "errors": [ + { + "code": "NoValidColumns", + "message": "No valid columns in facet expression." + }, + { + "code": "InvalidColumnNames", + "message": "Invalid column names: [nonExistingColumn]." + } + ] + }, + { + "expression": "resourceGroup", + "resultType": "FacetResult", + "totalRecords": 5, + "count": 3, + "data": [ + { + "resourceGroup": "B-TEST-RG", + "count": 1 + }, + { + "resourceGroup": "c-rg", + "count": 1 + }, + { + "resourceGroup": "I-RG", + "count": 1 + } + ] + }, + { + "expression": "resourceGroup", + "resultType": "FacetResult", + "totalRecords": 2, + "count": 2, + "data": [ + { + "resourceGroup": "B-TEST-RG", + "count": 1 + }, + { + "resourceGroup": "x-test-rg", + "count": 1 + } + ] + } + ] + } + } + } +} diff --git a/specification/resourcegraph/resource-manager/Microsoft.ResourceGraph/stable/2021-03-01/examples/ResourcesFilterQuery.json b/specification/resourcegraph/resource-manager/Microsoft.ResourceGraph/stable/2021-03-01/examples/ResourcesFilterQuery.json new file mode 100644 index 000000000000..f83289ab7992 --- /dev/null +++ b/specification/resourcegraph/resource-manager/Microsoft.ResourceGraph/stable/2021-03-01/examples/ResourcesFilterQuery.json @@ -0,0 +1,43 @@ +{ + "title": "Filter query", + "description": "A filtering query on resources.", + "parameters": { + "api-version": "2021-03-01", + "query": { + "subscriptions": [ + "cfbbd179-59d2-4052-aa06-9270a38aa9d6" + ], + "query": "Resources | project id, name, type, location | where type =~ 'Microsoft.Compute/virtualMachines' | limit 3" + } + }, + "responses": { + "200": { + "body": { + "totalRecords": 3, + "count": 3, + "resultTruncated": "false", + "facets": [], + "data": [ + { + "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG1/providers/Microsoft.Compute/virtualMachines/myVm1", + "name": "myVm1", + "type": "microsoft.compute/virtualmachines", + "location": "centralus" + }, + { + "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG2/providers/Microsoft.Compute/virtualMachines/myVirtualMachine", + "name": "myVirtualMachine", + "type": "microsoft.compute/virtualmachines", + "location": "eastus" + }, + { + "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG3/providers/Microsoft.Compute/virtualMachines/testVm", + "name": "testVm", + "type": "microsoft.compute/virtualmachines", + "location": "eastus" + } + ] + } + } + } +} diff --git a/specification/resourcegraph/resource-manager/Microsoft.ResourceGraph/stable/2021-03-01/examples/ResourcesFirstPageQuery.json b/specification/resourcegraph/resource-manager/Microsoft.ResourceGraph/stable/2021-03-01/examples/ResourcesFirstPageQuery.json new file mode 100644 index 000000000000..eb72dc19b770 --- /dev/null +++ b/specification/resourcegraph/resource-manager/Microsoft.ResourceGraph/stable/2021-03-01/examples/ResourcesFirstPageQuery.json @@ -0,0 +1,48 @@ +{ + "title": "First page query", + "description": "A query requesting a first page with of results. Please note id field is required in the response to return the pages in stable sorted fashion.", + "parameters": { + "api-version": "2021-03-01", + "query": { + "subscriptions": [ + "cfbbd179-59d2-4052-aa06-9270a38aa9d6" + ], + "query": "Resources | where name contains 'test' | project id, name, type, location", + "options": { + "$top": 3, + "$skip": 0 + } + } + }, + "responses": { + "200": { + "body": { + "totalRecords": 386, + "count": 3, + "resultTruncated": "false", + "facets": [], + "$skipToken": "eyAibm8iOiAibHVjayIsICJidXQiOiAibmljZSIsICJ0cnkiOiAiISIgfQ==", + "data": [ + { + "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG1/providers/Microsoft.Compute/disks/yetanothertest_OsDisk_1_f396cbcb625a457bb69fe2abf5975820", + "name": "yetanothertest_OsDisk_1_f396cbcb625a457bb69fe2abf5975820", + "type": "microsoft.compute/disks", + "location": "eastus" + }, + { + "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG2/providers/Microsoft.Automation/automationAccounts/TestAA", + "name": "TestAA", + "type": "microsoft.automation/automationaccounts", + "location": "westcentralus" + }, + { + "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG2/providers/Microsoft.Automation/automationAccounts/TestAA/runbooks/TestRB", + "name": "TestRB", + "type": "microsoft.automation/automationaccounts/runbooks", + "location": "westcentralus" + } + ] + } + } + } +} diff --git a/specification/resourcegraph/resource-manager/Microsoft.ResourceGraph/stable/2021-03-01/examples/ResourcesMgBasicQuery.json b/specification/resourcegraph/resource-manager/Microsoft.ResourceGraph/stable/2021-03-01/examples/ResourcesMgBasicQuery.json new file mode 100644 index 000000000000..08dd50a8a3fd --- /dev/null +++ b/specification/resourcegraph/resource-manager/Microsoft.ResourceGraph/stable/2021-03-01/examples/ResourcesMgBasicQuery.json @@ -0,0 +1,49 @@ +{ + "title": "Basic Query", + "description": "A simple management groups scoped resources query.", + "parameters": { + "api-version": "2021-03-01", + "query": { + "managementGroups": [ + "e927f598-c1d4-4f72-8541-95d83a6a4ac8", + "ProductionMG" + ], + "query": "Resources | project id, name, type, location, tags | limit 3" + } + }, + "responses": { + "200": { + "body": { + "totalRecords": 3, + "count": 3, + "resultTruncated": "false", + "facets": [], + "data": [ + { + "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG1/providers/Microsoft.Network/networkInterfaces/myNetworkInterface", + "name": "myNetworkInterface", + "type": "microsoft.network/networkinterfaces", + "location": "centralus", + "tags": { + "tag1": "Value1" + } + }, + { + "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG2/providers/Microsoft.Network/virtualNetworks/myVnet", + "name": "myVnet", + "type": "microsoft.network/virtualnetworks", + "location": "westus", + "tags": {} + }, + { + "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG2/providers/Microsoft.Network/publicIPAddresses/myPublicIp", + "name": "myPublicIp", + "type": "microsoft.network/publicipaddresses", + "location": "westus", + "tags": {} + } + ] + } + } + } +} diff --git a/specification/resourcegraph/resource-manager/Microsoft.ResourceGraph/stable/2021-03-01/examples/ResourcesNextPageQuery.json b/specification/resourcegraph/resource-manager/Microsoft.ResourceGraph/stable/2021-03-01/examples/ResourcesNextPageQuery.json new file mode 100644 index 000000000000..f5c910be896e --- /dev/null +++ b/specification/resourcegraph/resource-manager/Microsoft.ResourceGraph/stable/2021-03-01/examples/ResourcesNextPageQuery.json @@ -0,0 +1,47 @@ +{ + "title": "Next page query", + "description": "A query on resources requesting the next page using skip token. Please note id field is required in the response to return the pages in stable sorted fashion.", + "parameters": { + "api-version": "2021-03-01", + "query": { + "subscriptions": [ + "cfbbd179-59d2-4052-aa06-9270a38aa9d6" + ], + "query": "Resources | where name contains 'test' | project id, name, type, location", + "options": { + "$skipToken": "eyAibm8iOiAibHVjayIsICJidXQiOiAibmljZSIsICJ0cnkiOiAiISIgfQ==" + } + } + }, + "responses": { + "200": { + "body": { + "totalRecords": 386, + "count": 3, + "resultTruncated": "false", + "facets": [], + "$skipToken": "eyAibm8yIjogImx1Y2syIiwgImJ1dDIiOiAibmljZTIiLCAidHJ5MiI6ICIhIiB9", + "data": [ + { + "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG1/providers/Microsoft.Compute/disks/second_OsDisk_dddddbcb625a457bb69fe2abf5975820", + "name": "second_OsDisk_dddddbcb625a457bb69fe2abf5975820", + "type": "microsoft.compute/disks", + "location": "eastus" + }, + { + "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG2/providers/Microsoft.Automation/automationAccounts/AATest", + "name": "AATest", + "type": "microsoft.automation/automationaccounts", + "location": "westcentralus" + }, + { + "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG2/providers/Microsoft.Automation/automationAccounts/TestAA/runbooks/RBTest", + "name": "RBTest", + "type": "microsoft.automation/automationaccounts/runbooks", + "location": "westcentralus" + } + ] + } + } + } +} diff --git a/specification/resourcegraph/resource-manager/Microsoft.ResourceGraph/stable/2021-03-01/examples/ResourcesPropertiesQuery.json b/specification/resourcegraph/resource-manager/Microsoft.ResourceGraph/stable/2021-03-01/examples/ResourcesPropertiesQuery.json new file mode 100644 index 000000000000..5896b6336ce0 --- /dev/null +++ b/specification/resourcegraph/resource-manager/Microsoft.ResourceGraph/stable/2021-03-01/examples/ResourcesPropertiesQuery.json @@ -0,0 +1,33 @@ +{ + "title": "Properties Query", + "description": "A query accessing one of the resource properties.", + "parameters": { + "api-version": "2021-03-01", + "query": { + "subscriptions": [ + "cfbbd179-59d2-4052-aa06-9270a38aa9d6" + ], + "query": "Resources | where type =~ 'Microsoft.Compute/virtualMachines' | summarize count() by tostring(properties.storageProfile.osDisk.osType)" + } + }, + "responses": { + "200": { + "body": { + "totalRecords": 2, + "count": 2, + "resultTruncated": "false", + "facets": [], + "data": [ + { + "properties_storageProfile_osDisk_osType": "Linux", + "count": 7 + }, + { + "properties_storageProfile_osDisk_osType": "Windows", + "count": 23 + } + ] + } + } + } +} diff --git a/specification/resourcegraph/resource-manager/Microsoft.ResourceGraph/stable/2021-03-01/examples/ResourcesRandomPageQuery.json b/specification/resourcegraph/resource-manager/Microsoft.ResourceGraph/stable/2021-03-01/examples/ResourcesRandomPageQuery.json new file mode 100644 index 000000000000..be33e7cce8e8 --- /dev/null +++ b/specification/resourcegraph/resource-manager/Microsoft.ResourceGraph/stable/2021-03-01/examples/ResourcesRandomPageQuery.json @@ -0,0 +1,42 @@ +{ + "title": "Random page query", + "description": "A query on resources specifying paging and max rows through query options", + "parameters": { + "api-version": "2021-03-01", + "query": { + "subscriptions": [ + "cfbbd179-59d2-4052-aa06-9270a38aa9d6" + ], + "query": "Resources | where name contains 'test' | project id, name, type, location", + "options": { + "$top": 2, + "$skip": 10 + } + } + }, + "responses": { + "200": { + "body": { + "totalRecords": 386, + "count": 2, + "resultTruncated": "false", + "facets": [], + "$skipToken": "eyAibm8iOiAibHVjayIsICJidXQiOiAibmljZSIsICJ0cnkiOiAiISIgfQ==", + "data": [ + { + "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG1/providers/Microsoft.Compute/disks/third_OsDisk_dddddbcb625a457bb69fe2abf5975820", + "name": "third_OsDisk_dddddbcb625a457bb69fe2abf5975820", + "type": "microsoft.compute/disks", + "location": "eastus" + }, + { + "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG2/providers/Microsoft.Automation/automationAccounts/CCTest", + "name": "CCTest", + "type": "microsoft.automation/automationaccounts", + "location": "westcentralus" + } + ] + } + } + } +} diff --git a/specification/resourcegraph/resource-manager/Microsoft.ResourceGraph/stable/2021-03-01/examples/ResourcesSummarizeQuery.json b/specification/resourcegraph/resource-manager/Microsoft.ResourceGraph/stable/2021-03-01/examples/ResourcesSummarizeQuery.json new file mode 100644 index 000000000000..16dc602820c9 --- /dev/null +++ b/specification/resourcegraph/resource-manager/Microsoft.ResourceGraph/stable/2021-03-01/examples/ResourcesSummarizeQuery.json @@ -0,0 +1,34 @@ +{ + "title": "Summarize Query", + "description": "A summarizing query on resources.", + "parameters": { + "api-version": "2021-03-01", + "query": { + "subscriptions": [ + "cfbbd179-59d2-4052-aa06-9270a38aa9d6" + ], + "query": "Resources | project id, name, type, location | summarize by location" + } + }, + "responses": { + "200": { + "body": { + "totalRecords": 3, + "count": 3, + "resultTruncated": "false", + "facets": [], + "data": [ + { + "location": "centralus" + }, + { + "location": "eastus" + }, + { + "location": "westus" + } + ] + } + } + } +} diff --git a/specification/resourcegraph/resource-manager/Microsoft.ResourceGraph/stable/2021-03-01/examples/ResourcesTenantBasicQuery.json b/specification/resourcegraph/resource-manager/Microsoft.ResourceGraph/stable/2021-03-01/examples/ResourcesTenantBasicQuery.json new file mode 100644 index 000000000000..c1933f2d74e9 --- /dev/null +++ b/specification/resourcegraph/resource-manager/Microsoft.ResourceGraph/stable/2021-03-01/examples/ResourcesTenantBasicQuery.json @@ -0,0 +1,45 @@ +{ + "title": "Basic Query", + "description": "A simple tenant scoped resources query.", + "parameters": { + "api-version": "2021-03-01", + "query": { + "query": "Resources | project id, name, type, location, tags | limit 3" + } + }, + "responses": { + "200": { + "body": { + "totalRecords": 3, + "count": 3, + "resultTruncated": "false", + "facets": [], + "data": [ + { + "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG1/providers/Microsoft.Network/networkInterfaces/myNetworkInterface", + "name": "myNetworkInterface", + "type": "microsoft.network/networkinterfaces", + "location": "centralus", + "tags": { + "tag1": "Value1" + } + }, + { + "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG2/providers/Microsoft.Network/virtualNetworks/myVnet", + "name": "myVnet", + "type": "microsoft.network/virtualnetworks", + "location": "westus", + "tags": {} + }, + { + "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG2/providers/Microsoft.Network/publicIPAddresses/myPublicIp", + "name": "myPublicIp", + "type": "microsoft.network/publicipaddresses", + "location": "westus", + "tags": {} + } + ] + } + } + } +} diff --git a/specification/resourcegraph/resource-manager/Microsoft.ResourceGraph/stable/2021-03-01/resourcegraph.json b/specification/resourcegraph/resource-manager/Microsoft.ResourceGraph/stable/2021-03-01/resourcegraph.json new file mode 100644 index 000000000000..e3a725443ced --- /dev/null +++ b/specification/resourcegraph/resource-manager/Microsoft.ResourceGraph/stable/2021-03-01/resourcegraph.json @@ -0,0 +1,586 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Resource Graph", + "description": "Azure Resource Graph API Reference", + "version": "2021-03-01" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/providers/Microsoft.ResourceGraph/resources": { + "post": { + "tags": [ + "Resources" + ], + "operationId": "Resources", + "description": "Queries the resources managed by Azure Resource Manager for scopes specified in the request.", + "externalDocs": { + "description": "Learn more about the query syntax here", + "url": "https://aka.ms/resource-graph/learntoquery" + }, + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "name": "query", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/QueryRequest" + }, + "description": "Request specifying query and its options." + } + ], + "responses": { + "200": { + "description": "Result of the query operation", + "schema": { + "$ref": "#/definitions/QueryResponse" + } + }, + "default": { + "description": "An error occurred while processing the request. See the error.code parameter to identify the specific error.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Basic query": { + "$ref": "./examples/ResourcesBasicQuery.json" + }, + "Basic tenant query": { + "$ref": "./examples/ResourcesTenantBasicQuery.json" + }, + "Basic management group query": { + "$ref": "./examples/ResourcesMgBasicQuery.json" + }, + "Filter resources": { + "$ref": "./examples/ResourcesFilterQuery.json" + }, + "Summarize resources by location": { + "$ref": "./examples/ResourcesSummarizeQuery.json" + }, + "Complex query": { + "$ref": "./examples/ResourcesComplexQuery.json" + }, + "Access a properties field": { + "$ref": "./examples/ResourcesPropertiesQuery.json" + }, + "Query with a facet request": { + "$ref": "./examples/ResourcesFacetQuery.json" + }, + "First page query": { + "$ref": "./examples/ResourcesFirstPageQuery.json" + }, + "Next page query": { + "$ref": "./examples/ResourcesNextPageQuery.json" + }, + "Random page query": { + "$ref": "./examples/ResourcesRandomPageQuery.json" + } + } + } + }, + "/providers/Microsoft.ResourceGraph/operations": { + "get": { + "tags": [ + "Operations" + ], + "description": "Lists all of the available REST API operations.", + "operationId": "Operations_List", + "x-ms-examples": { + "OperationsList": { + "$ref": "./examples/OperationsList.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK. The request has succeeded.", + "schema": { + "$ref": "#/definitions/OperationListResult" + } + }, + "default": { + "description": "An error occurred while processing the request. See the error.code parameter to identify the specific error.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": null + } + } + } + }, + "definitions": { + "QueryRequest": { + "description": "Describes a query to be executed.", + "type": "object", + "properties": { + "subscriptions": { + "description": "Azure subscriptions against which to execute the query.", + "type": "array", + "items": { + "type": "string", + "description": "Subscription Id." + } + }, + "managementGroups": { + "description": "Azure management groups against which to execute the query. Example: [ 'mg1', 'mg2' ]", + "type": "array", + "items": { + "type": "string", + "description": "The name of Management group." + } + }, + "query": { + "description": "The resources query.", + "type": "string" + }, + "options": { + "description": "The query evaluation options", + "$ref": "#/definitions/QueryRequestOptions" + }, + "facets": { + "description": "An array of facet requests to be computed against the query result.", + "type": "array", + "items": { + "$ref": "#/definitions/FacetRequest" + } + } + }, + "required": [ + "query" + ] + }, + "QueryRequestOptions": { + "description": "The options for query evaluation", + "properties": { + "$skipToken": { + "description": "Continuation token for pagination, capturing the next page size and offset, as well as the context of the query.", + "type": "string" + }, + "$top": { + "description": "The maximum number of rows that the query should return. Overrides the page size when ```$skipToken``` property is present.", + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 1000 + }, + "$skip": { + "description": "The number of rows to skip from the beginning of the results. Overrides the next page offset when ```$skipToken``` property is present.", + "type": "integer", + "format": "int32", + "minimum": 0 + }, + "resultFormat": { + "description": "Defines in which format query result returned.", + "type": "string", + "enum": [ + "table", + "objectArray" + ], + "default": "objectArray", + "x-ms-enum": { + "name": "ResultFormat", + "modelAsString": false + } + }, + "allowPartialScopes": { + "description": "Only applicable for tenant and management group level queries to decide whether to allow partial scopes for result in case the number of subscriptions exceed allowed limits.", + "type": "boolean", + "default": false + } + } + }, + "FacetRequest": { + "description": "A request to compute additional statistics (facets) over the query results.", + "type": "object", + "properties": { + "expression": { + "description": "The column or list of columns to summarize by", + "type": "string" + }, + "options": { + "description": "The options for facet evaluation", + "$ref": "#/definitions/FacetRequestOptions" + } + }, + "required": [ + "expression" + ] + }, + "FacetRequestOptions": { + "description": "The options for facet evaluation", + "properties": { + "sortBy": { + "description": "The column name or query expression to sort on. Defaults to count if not present.", + "type": "string" + }, + "sortOrder": { + "description": "The sorting order by the selected column (count by default).", + "type": "string", + "default": "desc", + "enum": [ + "asc", + "desc" + ], + "x-ms-enum": { + "name": "FacetSortOrder", + "modelAsString": false + } + }, + "filter": { + "description": "Specifies the filter condition for the 'where' clause which will be run on main query's result, just before the actual faceting.", + "type": "string" + }, + "$top": { + "description": "The maximum number of facet rows that should be returned.", + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 1000 + } + } + }, + "QueryResponse": { + "description": "Query result.", + "type": "object", + "properties": { + "totalRecords": { + "description": "Number of total records matching the query.", + "type": "integer", + "format": "int64" + }, + "count": { + "description": "Number of records returned in the current response. In the case of paging, this is the number of records in the current page.", + "type": "integer", + "format": "int64" + }, + "resultTruncated": { + "description": "Indicates whether the query results are truncated.", + "type": "string", + "enum": [ + "true", + "false" + ], + "x-ms-enum": { + "name": "ResultTruncated", + "modelAsString": false + } + }, + "$skipToken": { + "description": "When present, the value can be passed to a subsequent query call (together with the same query and scopes used in the current request) to retrieve the next page of data.", + "type": "string" + }, + "data": { + "description": "Query output in JObject array or Table format.", + "type": "object" + }, + "facets": { + "description": "Query facets.", + "type": "array", + "items": { + "$ref": "#/definitions/Facet" + } + } + }, + "required": [ + "totalRecords", + "count", + "resultTruncated", + "data" + ] + }, + "Table": { + "description": "Query output in tabular format.", + "type": "object", + "properties": { + "columns": { + "description": "Query result column descriptors.", + "type": "array", + "items": { + "$ref": "#/definitions/Column", + "description": "Column descriptor." + } + }, + "rows": { + "description": "Query result rows.", + "type": "array", + "items": { + "$ref": "#/definitions/Row", + "description": "Query result row." + } + } + }, + "required": [ + "columns", + "rows" + ] + }, + "Column": { + "description": "Query result column descriptor.", + "type": "object", + "properties": { + "name": { + "description": "Column name.", + "type": "string" + }, + "type": { + "description": "Column data type.", + "$ref": "#/definitions/ColumnDataType" + } + }, + "required": [ + "name", + "type" + ] + }, + "ColumnDataType": { + "description": "Data type of a column in a table.", + "type": "string", + "enum": [ + "string", + "integer", + "number", + "boolean", + "object" + ], + "x-ms-enum": { + "name": "ColumnDataType", + "modelAsString": false + } + }, + "Row": { + "description": "Query result row.", + "type": "array", + "items": { + "type": "object", + "description": "Cell value." + } + }, + "Facet": { + "description": "A facet containing additional statistics on the response of a query. Can be either FacetResult or FacetError.", + "type": "object", + "properties": { + "expression": { + "description": "Facet expression, same as in the corresponding facet request.", + "type": "string" + }, + "resultType": { + "description": "Result type", + "type": "string" + } + }, + "required": [ + "expression", + "resultType" + ], + "discriminator": "resultType" + }, + "FacetResult": { + "x-ms-discriminator-value": "FacetResult", + "description": "Successfully executed facet containing additional statistics on the response of a query.", + "type": "object", + "properties": { + "totalRecords": { + "description": "Number of total records in the facet results.", + "type": "integer", + "format": "int64" + }, + "count": { + "description": "Number of records returned in the facet response.", + "type": "integer", + "format": "int32" + }, + "data": { + "description": "A JObject array or Table containing the desired facets. Only present if the facet is valid.", + "type": "object" + } + }, + "required": [ + "totalRecords", + "count", + "data" + ], + "allOf": [ + { + "$ref": "#/definitions/Facet" + } + ] + }, + "FacetError": { + "x-ms-discriminator-value": "FacetError", + "description": "A facet whose execution resulted in an error.", + "type": "object", + "properties": { + "errors": { + "description": "An array containing detected facet errors with details.", + "type": "array", + "items": { + "$ref": "#/definitions/ErrorDetails" + } + } + }, + "required": [ + "errors" + ], + "allOf": [ + { + "$ref": "#/definitions/Facet" + } + ] + }, + "ErrorResponse": { + "title": "Error response.", + "type": "object", + "description": "An error response from the API.", + "properties": { + "error": { + "$ref": "#/definitions/Error", + "description": "Error information." + } + }, + "required": [ + "error" + ] + }, + "Error": { + "title": "Error info.", + "type": "object", + "description": "Error details.", + "properties": { + "code": { + "type": "string", + "description": "Error code identifying the specific error." + }, + "message": { + "type": "string", + "description": "A human readable error message." + }, + "details": { + "type": "array", + "description": "Error details", + "items": { + "$ref": "#/definitions/ErrorDetails" + } + } + }, + "required": [ + "code", + "message" + ] + }, + "ErrorDetails": { + "title": "Error details.", + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Error code identifying the specific error." + }, + "message": { + "type": "string", + "description": "A human readable error message." + } + }, + "additionalProperties": { + "type": "object" + }, + "required": [ + "code", + "message" + ] + }, + "OperationListResult": { + "description": "Result of the request to list Resource Graph operations. It contains a list of operations and a URL link to get the next set of results.", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/Operation" + }, + "description": "List of Resource Graph operations supported by the Resource Graph resource provider." + } + } + }, + "Operation": { + "description": "Resource Graph REST API operation definition.", + "properties": { + "name": { + "description": "Operation name: {provider}/{resource}/{operation}", + "type": "string" + }, + "display": { + "description": "Display metadata associated with the operation.", + "properties": { + "provider": { + "description": "Service provider: Microsoft Resource Graph.", + "type": "string" + }, + "resource": { + "description": "Resource on which the operation is performed etc.", + "type": "string" + }, + "operation": { + "description": "Type of operation: get, read, delete, etc.", + "type": "string" + }, + "description": { + "description": "Description for the operation.", + "type": "string" + } + } + }, + "origin": { + "type": "string", + "description": "The origin of operations." + } + } + } + }, + "parameters": { + "ApiVersionParameter": { + "name": "api-version", + "in": "query", + "required": true, + "type": "string", + "description": "Api Version." + } + } +} diff --git a/specification/resourcegraph/resource-manager/readme.md b/specification/resourcegraph/resource-manager/readme.md index 6c21b9dad41b..a384324849c0 100644 --- a/specification/resourcegraph/resource-manager/readme.md +++ b/specification/resourcegraph/resource-manager/readme.md @@ -27,7 +27,7 @@ These are the global settings for the ResourceGraph API. ``` yaml title: ResourceGraphClient openapi-type: arm -tag: package-preview-2020-09 +tag: package-2021-03 ``` ### Validations @@ -40,6 +40,15 @@ semantic-validator: true model-validator: true message-format: json ``` +### Tag: package-2021-03 + +These settings apply only when `--tag=package-2021-03` is specified on the command line. + +``` yaml $(tag) == 'package-2021-03' +input-file: + - Microsoft.ResourceGraph/stable/2021-03-01/resourcegraph.json +``` + ### Tag: package-preview-2020-09 These settings apply only when `--tag=package-preview-2020-09` is specified on the command line.