Queries the resources managed by Azure Resource Manager for scopes specified in the request.
POST https://management.azure.com/providers/Microsoft.ResourceGraph/resources?api-version=2024-04-01
URI Parameters
| Name |
In |
Required |
Type |
Description |
|
api-version
|
query |
True
|
string
minLength: 1
|
The API version to use for this operation.
|
Request Body
| Name |
Required |
Type |
Description |
|
query
|
True
|
string
|
The resources query.
|
|
facets
|
FacetRequest[]
|
An array of facet requests to be computed against the query result.
|
|
managementGroups
|
string[]
|
Azure management groups against which to execute the query. Example: [ 'mg1', 'mg2' ]
|
|
options
|
QueryRequestOptions
|
The query evaluation options
|
|
subscriptions
|
string[]
|
Azure subscriptions against which to execute the query.
|
Responses
Security
azure_auth
Azure Active Directory OAuth2 Flow.
Type:
oauth2
Flow:
implicit
Authorization URL:
https://login.microsoftonline.com/common/oauth2/authorize
Scopes
| Name |
Description |
|
user_impersonation
|
impersonate your user account
|
Examples
Access a properties field
Sample request
POST https://management.azure.com/providers/Microsoft.ResourceGraph/resources?api-version=2024-04-01
{
"query": "Resources | where type =~ 'Microsoft.Compute/virtualMachines' | summarize count() by tostring(properties.storageProfile.osDisk.osType)",
"subscriptions": [
"cfbbd179-59d2-4052-aa06-9270a38aa9d6"
]
}
from azure.identity import DefaultAzureCredential
from azure.mgmt.resourcegraph import ResourceGraphClient
"""
# PREREQUISITES
pip install azure-identity
pip install azure-mgmt-resourcegraph
# USAGE
python resources_properties_query.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
"""
def main():
client = ResourceGraphClient(
credential=DefaultAzureCredential(),
subscription_id="SUBSCRIPTION_ID",
)
response = client.resources(
query={
"query": "Resources | where type =~ 'Microsoft.Compute/virtualMachines' | summarize count() by tostring(properties.storageProfile.osDisk.osType)",
"subscriptions": ["cfbbd179-59d2-4052-aa06-9270a38aa9d6"],
},
)
print(response)
# x-ms-original-file: 2024-04-01/ResourcesPropertiesQuery.json
if __name__ == "__main__":
main()
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
package armresourcegraph_test
import (
"context"
"log"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph"
)
// Generated from example definition: 2024-04-01/ResourcesPropertiesQuery.json
func ExampleClient_Resources_accessAPropertiesField() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armresourcegraph.NewClientFactory(cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
res, err := clientFactory.NewClient().Resources(ctx, armresourcegraph.QueryRequest{
Query: to.Ptr("Resources | where type =~ 'Microsoft.Compute/virtualMachines' | summarize count() by tostring(properties.storageProfile.osDisk.osType)"),
Subscriptions: []*string{
to.Ptr("cfbbd179-59d2-4052-aa06-9270a38aa9d6"),
},
}, nil)
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res = armresourcegraph.ClientResourcesResponse{
// QueryResponse: armresourcegraph.QueryResponse{
// Count: to.Ptr[int64](2),
// Data: []any{
// map[string]any{
// "count": 7,
// "properties_storageProfile_osDisk_osType": "Linux",
// },
// map[string]any{
// "count": 23,
// "properties_storageProfile_osDisk_osType": "Windows",
// },
// },
// Facets: []armresourcegraph.FacetClassification{
// },
// ResultTruncated: to.Ptr(armresourcegraph.ResultTruncatedFalse),
// TotalRecords: to.Ptr[int64](2),
// },
// }
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
const { ResourceGraphClient } = require("@azure/arm-resourcegraph");
const { DefaultAzureCredential } = require("@azure/identity");
/**
* This sample demonstrates how to queries the resources managed by Azure Resource Manager for scopes specified in the request.
*
* @summary queries the resources managed by Azure Resource Manager for scopes specified in the request.
* x-ms-original-file: 2024-04-01/ResourcesPropertiesQuery.json
*/
async function accessAPropertiesField() {
const credential = new DefaultAzureCredential();
const client = new ResourceGraphClient(credential);
const result = await client.resources({
query:
"Resources | where type =~ 'Microsoft.Compute/virtualMachines' | summarize count() by tostring(properties.storageProfile.osDisk.osType)",
subscriptions: ["cfbbd179-59d2-4052-aa06-9270a38aa9d6"],
});
console.log(result);
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
Sample response
{
"count": 2,
"data": [
{
"count": 7,
"properties_storageProfile_osDisk_osType": "Linux"
},
{
"count": 23,
"properties_storageProfile_osDisk_osType": "Windows"
}
],
"facets": [],
"resultTruncated": "false",
"totalRecords": 2
}
Basic management group query
Sample request
POST https://management.azure.com/providers/Microsoft.ResourceGraph/resources?api-version=2024-04-01
{
"managementGroups": [
"e927f598-c1d4-4f72-8541-95d83a6a4ac8",
"ProductionMG"
],
"query": "Resources | project id, name, type, location, tags | limit 3"
}
from azure.identity import DefaultAzureCredential
from azure.mgmt.resourcegraph import ResourceGraphClient
"""
# PREREQUISITES
pip install azure-identity
pip install azure-mgmt-resourcegraph
# USAGE
python resources_mg_basic_query.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
"""
def main():
client = ResourceGraphClient(
credential=DefaultAzureCredential(),
subscription_id="SUBSCRIPTION_ID",
)
response = client.resources(
query={
"managementGroups": ["e927f598-c1d4-4f72-8541-95d83a6a4ac8", "ProductionMG"],
"query": "Resources | project id, name, type, location, tags | limit 3",
},
)
print(response)
# x-ms-original-file: 2024-04-01/ResourcesMgBasicQuery.json
if __name__ == "__main__":
main()
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
package armresourcegraph_test
import (
"context"
"log"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph"
)
// Generated from example definition: 2024-04-01/ResourcesMgBasicQuery.json
func ExampleClient_Resources_basicManagementGroupQuery() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armresourcegraph.NewClientFactory(cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
res, err := clientFactory.NewClient().Resources(ctx, armresourcegraph.QueryRequest{
ManagementGroups: []*string{
to.Ptr("e927f598-c1d4-4f72-8541-95d83a6a4ac8"),
to.Ptr("ProductionMG"),
},
Query: to.Ptr("Resources | project id, name, type, location, tags | limit 3"),
}, nil)
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res = armresourcegraph.ClientResourcesResponse{
// QueryResponse: armresourcegraph.QueryResponse{
// Count: to.Ptr[int64](3),
// Data: []any{
// map[string]any{
// "name": "myNetworkInterface",
// "type": "microsoft.network/networkinterfaces",
// "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG1/providers/Microsoft.Network/networkInterfaces/myNetworkInterface",
// "location": "centralus",
// "tags": map[string]any{
// "tag1": "Value1",
// },
// },
// map[string]any{
// "name": "myVnet",
// "type": "microsoft.network/virtualnetworks",
// "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG2/providers/Microsoft.Network/virtualNetworks/myVnet",
// "location": "westus",
// "tags": map[string]any{
// },
// },
// map[string]any{
// "name": "myPublicIp",
// "type": "microsoft.network/publicipaddresses",
// "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG2/providers/Microsoft.Network/publicIPAddresses/myPublicIp",
// "location": "westus",
// "tags": map[string]any{
// },
// },
// },
// Facets: []armresourcegraph.FacetClassification{
// },
// ResultTruncated: to.Ptr(armresourcegraph.ResultTruncatedFalse),
// TotalRecords: to.Ptr[int64](3),
// },
// }
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
const { ResourceGraphClient } = require("@azure/arm-resourcegraph");
const { DefaultAzureCredential } = require("@azure/identity");
/**
* This sample demonstrates how to queries the resources managed by Azure Resource Manager for scopes specified in the request.
*
* @summary queries the resources managed by Azure Resource Manager for scopes specified in the request.
* x-ms-original-file: 2024-04-01/ResourcesMgBasicQuery.json
*/
async function basicManagementGroupQuery() {
const credential = new DefaultAzureCredential();
const client = new ResourceGraphClient(credential);
const result = await client.resources({
managementGroups: ["e927f598-c1d4-4f72-8541-95d83a6a4ac8", "ProductionMG"],
query: "Resources | project id, name, type, location, tags | limit 3",
});
console.log(result);
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
Sample response
{
"count": 3,
"data": [
{
"name": "myNetworkInterface",
"type": "microsoft.network/networkinterfaces",
"id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG1/providers/Microsoft.Network/networkInterfaces/myNetworkInterface",
"location": "centralus",
"tags": {
"tag1": "Value1"
}
},
{
"name": "myVnet",
"type": "microsoft.network/virtualnetworks",
"id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG2/providers/Microsoft.Network/virtualNetworks/myVnet",
"location": "westus",
"tags": {}
},
{
"name": "myPublicIp",
"type": "microsoft.network/publicipaddresses",
"id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG2/providers/Microsoft.Network/publicIPAddresses/myPublicIp",
"location": "westus",
"tags": {}
}
],
"facets": [],
"resultTruncated": "false",
"totalRecords": 3
}
Basic query
Sample request
POST https://management.azure.com/providers/Microsoft.ResourceGraph/resources?api-version=2024-04-01
{
"query": "Resources | project id, name, type, location, tags | limit 3",
"subscriptions": [
"cfbbd179-59d2-4052-aa06-9270a38aa9d6"
]
}
from azure.identity import DefaultAzureCredential
from azure.mgmt.resourcegraph import ResourceGraphClient
"""
# PREREQUISITES
pip install azure-identity
pip install azure-mgmt-resourcegraph
# USAGE
python resources_basic_query.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
"""
def main():
client = ResourceGraphClient(
credential=DefaultAzureCredential(),
subscription_id="SUBSCRIPTION_ID",
)
response = client.resources(
query={
"query": "Resources | project id, name, type, location, tags | limit 3",
"subscriptions": ["cfbbd179-59d2-4052-aa06-9270a38aa9d6"],
},
)
print(response)
# x-ms-original-file: 2024-04-01/ResourcesBasicQuery.json
if __name__ == "__main__":
main()
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
package armresourcegraph_test
import (
"context"
"log"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph"
)
// Generated from example definition: 2024-04-01/ResourcesBasicQuery.json
func ExampleClient_Resources_basicQuery() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armresourcegraph.NewClientFactory(cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
res, err := clientFactory.NewClient().Resources(ctx, armresourcegraph.QueryRequest{
Query: to.Ptr("Resources | project id, name, type, location, tags | limit 3"),
Subscriptions: []*string{
to.Ptr("cfbbd179-59d2-4052-aa06-9270a38aa9d6"),
},
}, nil)
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res = armresourcegraph.ClientResourcesResponse{
// QueryResponse: armresourcegraph.QueryResponse{
// Count: to.Ptr[int64](3),
// Data: []any{
// map[string]any{
// "name": "myNetworkInterface",
// "type": "microsoft.network/networkinterfaces",
// "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG1/providers/Microsoft.Network/networkInterfaces/myNetworkInterface",
// "location": "centralus",
// "tags": map[string]any{
// "tag1": "Value1",
// },
// },
// map[string]any{
// "name": "myVnet",
// "type": "microsoft.network/virtualnetworks",
// "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG2/providers/Microsoft.Network/virtualNetworks/myVnet",
// "location": "westus",
// "tags": map[string]any{
// },
// },
// map[string]any{
// "name": "myPublicIp",
// "type": "microsoft.network/publicipaddresses",
// "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG2/providers/Microsoft.Network/publicIPAddresses/myPublicIp",
// "location": "westus",
// "tags": map[string]any{
// },
// },
// },
// Facets: []armresourcegraph.FacetClassification{
// },
// ResultTruncated: to.Ptr(armresourcegraph.ResultTruncatedFalse),
// TotalRecords: to.Ptr[int64](3),
// },
// }
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
const { ResourceGraphClient } = require("@azure/arm-resourcegraph");
const { DefaultAzureCredential } = require("@azure/identity");
/**
* This sample demonstrates how to queries the resources managed by Azure Resource Manager for scopes specified in the request.
*
* @summary queries the resources managed by Azure Resource Manager for scopes specified in the request.
* x-ms-original-file: 2024-04-01/ResourcesBasicQuery.json
*/
async function basicQuery() {
const credential = new DefaultAzureCredential();
const client = new ResourceGraphClient(credential);
const result = await client.resources({
query: "Resources | project id, name, type, location, tags | limit 3",
subscriptions: ["cfbbd179-59d2-4052-aa06-9270a38aa9d6"],
});
console.log(result);
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
Sample response
{
"count": 3,
"data": [
{
"name": "myNetworkInterface",
"type": "microsoft.network/networkinterfaces",
"id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG1/providers/Microsoft.Network/networkInterfaces/myNetworkInterface",
"location": "centralus",
"tags": {
"tag1": "Value1"
}
},
{
"name": "myVnet",
"type": "microsoft.network/virtualnetworks",
"id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG2/providers/Microsoft.Network/virtualNetworks/myVnet",
"location": "westus",
"tags": {}
},
{
"name": "myPublicIp",
"type": "microsoft.network/publicipaddresses",
"id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG2/providers/Microsoft.Network/publicIPAddresses/myPublicIp",
"location": "westus",
"tags": {}
}
],
"facets": [],
"resultTruncated": "false",
"totalRecords": 3
}
Basic tenant query
Sample request
POST https://management.azure.com/providers/Microsoft.ResourceGraph/resources?api-version=2024-04-01
{
"query": "Resources | project id, name, type, location, tags | limit 3"
}
from azure.identity import DefaultAzureCredential
from azure.mgmt.resourcegraph import ResourceGraphClient
"""
# PREREQUISITES
pip install azure-identity
pip install azure-mgmt-resourcegraph
# USAGE
python resources_tenant_basic_query.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
"""
def main():
client = ResourceGraphClient(
credential=DefaultAzureCredential(),
subscription_id="SUBSCRIPTION_ID",
)
response = client.resources(
query={"query": "Resources | project id, name, type, location, tags | limit 3"},
)
print(response)
# x-ms-original-file: 2024-04-01/ResourcesTenantBasicQuery.json
if __name__ == "__main__":
main()
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
package armresourcegraph_test
import (
"context"
"log"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph"
)
// Generated from example definition: 2024-04-01/ResourcesTenantBasicQuery.json
func ExampleClient_Resources_basicTenantQuery() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armresourcegraph.NewClientFactory(cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
res, err := clientFactory.NewClient().Resources(ctx, armresourcegraph.QueryRequest{
Query: to.Ptr("Resources | project id, name, type, location, tags | limit 3"),
}, nil)
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res = armresourcegraph.ClientResourcesResponse{
// QueryResponse: armresourcegraph.QueryResponse{
// Count: to.Ptr[int64](3),
// Data: []any{
// map[string]any{
// "name": "myNetworkInterface",
// "type": "microsoft.network/networkinterfaces",
// "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG1/providers/Microsoft.Network/networkInterfaces/myNetworkInterface",
// "location": "centralus",
// "tags": map[string]any{
// "tag1": "Value1",
// },
// },
// map[string]any{
// "name": "myVnet",
// "type": "microsoft.network/virtualnetworks",
// "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG2/providers/Microsoft.Network/virtualNetworks/myVnet",
// "location": "westus",
// "tags": map[string]any{
// },
// },
// map[string]any{
// "name": "myPublicIp",
// "type": "microsoft.network/publicipaddresses",
// "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG2/providers/Microsoft.Network/publicIPAddresses/myPublicIp",
// "location": "westus",
// "tags": map[string]any{
// },
// },
// },
// Facets: []armresourcegraph.FacetClassification{
// },
// ResultTruncated: to.Ptr(armresourcegraph.ResultTruncatedFalse),
// TotalRecords: to.Ptr[int64](3),
// },
// }
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
const { ResourceGraphClient } = require("@azure/arm-resourcegraph");
const { DefaultAzureCredential } = require("@azure/identity");
/**
* This sample demonstrates how to queries the resources managed by Azure Resource Manager for scopes specified in the request.
*
* @summary queries the resources managed by Azure Resource Manager for scopes specified in the request.
* x-ms-original-file: 2024-04-01/ResourcesTenantBasicQuery.json
*/
async function basicTenantQuery() {
const credential = new DefaultAzureCredential();
const client = new ResourceGraphClient(credential);
const result = await client.resources({
query: "Resources | project id, name, type, location, tags | limit 3",
});
console.log(result);
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
Sample response
{
"count": 3,
"data": [
{
"name": "myNetworkInterface",
"type": "microsoft.network/networkinterfaces",
"id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG1/providers/Microsoft.Network/networkInterfaces/myNetworkInterface",
"location": "centralus",
"tags": {
"tag1": "Value1"
}
},
{
"name": "myVnet",
"type": "microsoft.network/virtualnetworks",
"id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG2/providers/Microsoft.Network/virtualNetworks/myVnet",
"location": "westus",
"tags": {}
},
{
"name": "myPublicIp",
"type": "microsoft.network/publicipaddresses",
"id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG2/providers/Microsoft.Network/publicIPAddresses/myPublicIp",
"location": "westus",
"tags": {}
}
],
"facets": [],
"resultTruncated": "false",
"totalRecords": 3
}
Complex query
Sample request
POST https://management.azure.com/providers/Microsoft.ResourceGraph/resources?api-version=2024-04-01
{
"query": "Resources | project id, name, type, location | where type =~ 'Microsoft.Compute/virtualMachines' | summarize count() by location | top 3 by count_",
"subscriptions": [
"cfbbd179-59d2-4052-aa06-9270a38aa9d6"
]
}
from azure.identity import DefaultAzureCredential
from azure.mgmt.resourcegraph import ResourceGraphClient
"""
# PREREQUISITES
pip install azure-identity
pip install azure-mgmt-resourcegraph
# USAGE
python resources_complex_query.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
"""
def main():
client = ResourceGraphClient(
credential=DefaultAzureCredential(),
subscription_id="SUBSCRIPTION_ID",
)
response = client.resources(
query={
"query": "Resources | project id, name, type, location | where type =~ 'Microsoft.Compute/virtualMachines' | summarize count() by location | top 3 by count_",
"subscriptions": ["cfbbd179-59d2-4052-aa06-9270a38aa9d6"],
},
)
print(response)
# x-ms-original-file: 2024-04-01/ResourcesComplexQuery.json
if __name__ == "__main__":
main()
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
package armresourcegraph_test
import (
"context"
"log"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph"
)
// Generated from example definition: 2024-04-01/ResourcesComplexQuery.json
func ExampleClient_Resources_complexQuery() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armresourcegraph.NewClientFactory(cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
res, err := clientFactory.NewClient().Resources(ctx, armresourcegraph.QueryRequest{
Query: to.Ptr("Resources | project id, name, type, location | where type =~ 'Microsoft.Compute/virtualMachines' | summarize count() by location | top 3 by count_"),
Subscriptions: []*string{
to.Ptr("cfbbd179-59d2-4052-aa06-9270a38aa9d6"),
},
}, nil)
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res = armresourcegraph.ClientResourcesResponse{
// QueryResponse: armresourcegraph.QueryResponse{
// Count: to.Ptr[int64](3),
// Data: []any{
// map[string]any{
// "count_": 11,
// "location": "centralus",
// },
// map[string]any{
// "count_": 11,
// "location": "eastus",
// },
// map[string]any{
// "count_": 3,
// "location": "southcentralus",
// },
// },
// Facets: []armresourcegraph.FacetClassification{
// },
// ResultTruncated: to.Ptr(armresourcegraph.ResultTruncatedFalse),
// TotalRecords: to.Ptr[int64](3),
// },
// }
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
const { ResourceGraphClient } = require("@azure/arm-resourcegraph");
const { DefaultAzureCredential } = require("@azure/identity");
/**
* This sample demonstrates how to queries the resources managed by Azure Resource Manager for scopes specified in the request.
*
* @summary queries the resources managed by Azure Resource Manager for scopes specified in the request.
* x-ms-original-file: 2024-04-01/ResourcesComplexQuery.json
*/
async function complexQuery() {
const credential = new DefaultAzureCredential();
const client = new ResourceGraphClient(credential);
const result = await client.resources({
query:
"Resources | project id, name, type, location | where type =~ 'Microsoft.Compute/virtualMachines' | summarize count() by location | top 3 by count_",
subscriptions: ["cfbbd179-59d2-4052-aa06-9270a38aa9d6"],
});
console.log(result);
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
Sample response
{
"count": 3,
"data": [
{
"count_": 11,
"location": "centralus"
},
{
"count_": 11,
"location": "eastus"
},
{
"count_": 3,
"location": "southcentralus"
}
],
"facets": [],
"resultTruncated": "false",
"totalRecords": 3
}
Filter resources
Sample request
POST https://management.azure.com/providers/Microsoft.ResourceGraph/resources?api-version=2024-04-01
{
"query": "Resources | project id, name, type, location | where type =~ 'Microsoft.Compute/virtualMachines' | limit 3",
"subscriptions": [
"cfbbd179-59d2-4052-aa06-9270a38aa9d6"
]
}
from azure.identity import DefaultAzureCredential
from azure.mgmt.resourcegraph import ResourceGraphClient
"""
# PREREQUISITES
pip install azure-identity
pip install azure-mgmt-resourcegraph
# USAGE
python resources_filter_query.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
"""
def main():
client = ResourceGraphClient(
credential=DefaultAzureCredential(),
subscription_id="SUBSCRIPTION_ID",
)
response = client.resources(
query={
"query": "Resources | project id, name, type, location | where type =~ 'Microsoft.Compute/virtualMachines' | limit 3",
"subscriptions": ["cfbbd179-59d2-4052-aa06-9270a38aa9d6"],
},
)
print(response)
# x-ms-original-file: 2024-04-01/ResourcesFilterQuery.json
if __name__ == "__main__":
main()
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
package armresourcegraph_test
import (
"context"
"log"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph"
)
// Generated from example definition: 2024-04-01/ResourcesFilterQuery.json
func ExampleClient_Resources_filterResources() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armresourcegraph.NewClientFactory(cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
res, err := clientFactory.NewClient().Resources(ctx, armresourcegraph.QueryRequest{
Query: to.Ptr("Resources | project id, name, type, location | where type =~ 'Microsoft.Compute/virtualMachines' | limit 3"),
Subscriptions: []*string{
to.Ptr("cfbbd179-59d2-4052-aa06-9270a38aa9d6"),
},
}, nil)
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res = armresourcegraph.ClientResourcesResponse{
// QueryResponse: armresourcegraph.QueryResponse{
// Count: to.Ptr[int64](3),
// Data: []any{
// map[string]any{
// "name": "myVm1",
// "type": "microsoft.compute/virtualmachines",
// "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG1/providers/Microsoft.Compute/virtualMachines/myVm1",
// "location": "centralus",
// },
// map[string]any{
// "name": "myVirtualMachine",
// "type": "microsoft.compute/virtualmachines",
// "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG2/providers/Microsoft.Compute/virtualMachines/myVirtualMachine",
// "location": "eastus",
// },
// map[string]any{
// "name": "testVm",
// "type": "microsoft.compute/virtualmachines",
// "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG3/providers/Microsoft.Compute/virtualMachines/testVm",
// "location": "eastus",
// },
// },
// Facets: []armresourcegraph.FacetClassification{
// },
// ResultTruncated: to.Ptr(armresourcegraph.ResultTruncatedFalse),
// TotalRecords: to.Ptr[int64](3),
// },
// }
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
const { ResourceGraphClient } = require("@azure/arm-resourcegraph");
const { DefaultAzureCredential } = require("@azure/identity");
/**
* This sample demonstrates how to queries the resources managed by Azure Resource Manager for scopes specified in the request.
*
* @summary queries the resources managed by Azure Resource Manager for scopes specified in the request.
* x-ms-original-file: 2024-04-01/ResourcesFilterQuery.json
*/
async function filterResources() {
const credential = new DefaultAzureCredential();
const client = new ResourceGraphClient(credential);
const result = await client.resources({
query:
"Resources | project id, name, type, location | where type =~ 'Microsoft.Compute/virtualMachines' | limit 3",
subscriptions: ["cfbbd179-59d2-4052-aa06-9270a38aa9d6"],
});
console.log(result);
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
Sample response
{
"count": 3,
"data": [
{
"name": "myVm1",
"type": "microsoft.compute/virtualmachines",
"id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG1/providers/Microsoft.Compute/virtualMachines/myVm1",
"location": "centralus"
},
{
"name": "myVirtualMachine",
"type": "microsoft.compute/virtualmachines",
"id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG2/providers/Microsoft.Compute/virtualMachines/myVirtualMachine",
"location": "eastus"
},
{
"name": "testVm",
"type": "microsoft.compute/virtualmachines",
"id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG3/providers/Microsoft.Compute/virtualMachines/testVm",
"location": "eastus"
}
],
"facets": [],
"resultTruncated": "false",
"totalRecords": 3
}
First page query
Sample request
POST https://management.azure.com/providers/Microsoft.ResourceGraph/resources?api-version=2024-04-01
{
"options": {
"$skip": 0,
"$top": 3
},
"query": "Resources | where name contains 'test' | project id, name, type, location",
"subscriptions": [
"cfbbd179-59d2-4052-aa06-9270a38aa9d6"
]
}
from azure.identity import DefaultAzureCredential
from azure.mgmt.resourcegraph import ResourceGraphClient
"""
# PREREQUISITES
pip install azure-identity
pip install azure-mgmt-resourcegraph
# USAGE
python resources_first_page_query.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
"""
def main():
client = ResourceGraphClient(
credential=DefaultAzureCredential(),
subscription_id="SUBSCRIPTION_ID",
)
response = client.resources(
query={
"options": {"$skip": 0, "$top": 3},
"query": "Resources | where name contains 'test' | project id, name, type, location",
"subscriptions": ["cfbbd179-59d2-4052-aa06-9270a38aa9d6"],
},
)
print(response)
# x-ms-original-file: 2024-04-01/ResourcesFirstPageQuery.json
if __name__ == "__main__":
main()
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
package armresourcegraph_test
import (
"context"
"log"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph"
)
// Generated from example definition: 2024-04-01/ResourcesFirstPageQuery.json
func ExampleClient_Resources_firstPageQuery() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armresourcegraph.NewClientFactory(cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
res, err := clientFactory.NewClient().Resources(ctx, armresourcegraph.QueryRequest{
Options: &armresourcegraph.QueryRequestOptions{
Skip: to.Ptr[int32](0),
Top: to.Ptr[int32](3),
},
Query: to.Ptr("Resources | where name contains 'test' | project id, name, type, location"),
Subscriptions: []*string{
to.Ptr("cfbbd179-59d2-4052-aa06-9270a38aa9d6"),
},
}, nil)
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res = armresourcegraph.ClientResourcesResponse{
// QueryResponse: armresourcegraph.QueryResponse{
// SkipToken: to.Ptr("eyAibm8iOiAibHVjayIsICJidXQiOiAibmljZSIsICJ0cnkiOiAiISIgfQ=="),
// Count: to.Ptr[int64](3),
// Data: []any{
// map[string]any{
// "name": "yetanothertest_OsDisk_1_f396cbcb625a457bb69fe2abf5975820",
// "type": "microsoft.compute/disks",
// "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG1/providers/Microsoft.Compute/disks/yetanothertest_OsDisk_1_f396cbcb625a457bb69fe2abf5975820",
// "location": "eastus",
// },
// map[string]any{
// "name": "TestAA",
// "type": "microsoft.automation/automationaccounts",
// "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG2/providers/Microsoft.Automation/automationAccounts/TestAA",
// "location": "westcentralus",
// },
// map[string]any{
// "name": "TestRB",
// "type": "microsoft.automation/automationaccounts/runbooks",
// "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG2/providers/Microsoft.Automation/automationAccounts/TestAA/runbooks/TestRB",
// "location": "westcentralus",
// },
// },
// Facets: []armresourcegraph.FacetClassification{
// },
// ResultTruncated: to.Ptr(armresourcegraph.ResultTruncatedFalse),
// TotalRecords: to.Ptr[int64](386),
// },
// }
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
const { ResourceGraphClient } = require("@azure/arm-resourcegraph");
const { DefaultAzureCredential } = require("@azure/identity");
/**
* This sample demonstrates how to queries the resources managed by Azure Resource Manager for scopes specified in the request.
*
* @summary queries the resources managed by Azure Resource Manager for scopes specified in the request.
* x-ms-original-file: 2024-04-01/ResourcesFirstPageQuery.json
*/
async function firstPageQuery() {
const credential = new DefaultAzureCredential();
const client = new ResourceGraphClient(credential);
const result = await client.resources({
options: { skip: 0, top: 3 },
query: "Resources | where name contains 'test' | project id, name, type, location",
subscriptions: ["cfbbd179-59d2-4052-aa06-9270a38aa9d6"],
});
console.log(result);
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
Sample response
{
"$skipToken": "eyAibm8iOiAibHVjayIsICJidXQiOiAibmljZSIsICJ0cnkiOiAiISIgfQ==",
"count": 3,
"data": [
{
"name": "yetanothertest_OsDisk_1_f396cbcb625a457bb69fe2abf5975820",
"type": "microsoft.compute/disks",
"id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG1/providers/Microsoft.Compute/disks/yetanothertest_OsDisk_1_f396cbcb625a457bb69fe2abf5975820",
"location": "eastus"
},
{
"name": "TestAA",
"type": "microsoft.automation/automationaccounts",
"id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG2/providers/Microsoft.Automation/automationAccounts/TestAA",
"location": "westcentralus"
},
{
"name": "TestRB",
"type": "microsoft.automation/automationaccounts/runbooks",
"id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG2/providers/Microsoft.Automation/automationAccounts/TestAA/runbooks/TestRB",
"location": "westcentralus"
}
],
"facets": [],
"resultTruncated": "false",
"totalRecords": 386
}
Next page query
Sample request
POST https://management.azure.com/providers/Microsoft.ResourceGraph/resources?api-version=2024-04-01
{
"options": {
"$skipToken": "eyAibm8iOiAibHVjayIsICJidXQiOiAibmljZSIsICJ0cnkiOiAiISIgfQ=="
},
"query": "Resources | where name contains 'test' | project id, name, type, location",
"subscriptions": [
"cfbbd179-59d2-4052-aa06-9270a38aa9d6"
]
}
from azure.identity import DefaultAzureCredential
from azure.mgmt.resourcegraph import ResourceGraphClient
"""
# PREREQUISITES
pip install azure-identity
pip install azure-mgmt-resourcegraph
# USAGE
python resources_next_page_query.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
"""
def main():
client = ResourceGraphClient(
credential=DefaultAzureCredential(),
subscription_id="SUBSCRIPTION_ID",
)
response = client.resources(
query={
"options": {"$skipToken": "eyAibm8iOiAibHVjayIsICJidXQiOiAibmljZSIsICJ0cnkiOiAiISIgfQ=="},
"query": "Resources | where name contains 'test' | project id, name, type, location",
"subscriptions": ["cfbbd179-59d2-4052-aa06-9270a38aa9d6"],
},
)
print(response)
# x-ms-original-file: 2024-04-01/ResourcesNextPageQuery.json
if __name__ == "__main__":
main()
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
package armresourcegraph_test
import (
"context"
"log"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph"
)
// Generated from example definition: 2024-04-01/ResourcesNextPageQuery.json
func ExampleClient_Resources_nextPageQuery() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armresourcegraph.NewClientFactory(cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
res, err := clientFactory.NewClient().Resources(ctx, armresourcegraph.QueryRequest{
Options: &armresourcegraph.QueryRequestOptions{
SkipToken: to.Ptr("eyAibm8iOiAibHVjayIsICJidXQiOiAibmljZSIsICJ0cnkiOiAiISIgfQ=="),
},
Query: to.Ptr("Resources | where name contains 'test' | project id, name, type, location"),
Subscriptions: []*string{
to.Ptr("cfbbd179-59d2-4052-aa06-9270a38aa9d6"),
},
}, nil)
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res = armresourcegraph.ClientResourcesResponse{
// QueryResponse: armresourcegraph.QueryResponse{
// SkipToken: to.Ptr("eyAibm8yIjogImx1Y2syIiwgImJ1dDIiOiAibmljZTIiLCAidHJ5MiI6ICIhIiB9"),
// Count: to.Ptr[int64](3),
// Data: []any{
// map[string]any{
// "name": "second_OsDisk_dddddbcb625a457bb69fe2abf5975820",
// "type": "microsoft.compute/disks",
// "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG1/providers/Microsoft.Compute/disks/second_OsDisk_dddddbcb625a457bb69fe2abf5975820",
// "location": "eastus",
// },
// map[string]any{
// "name": "AATest",
// "type": "microsoft.automation/automationaccounts",
// "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG2/providers/Microsoft.Automation/automationAccounts/AATest",
// "location": "westcentralus",
// },
// map[string]any{
// "name": "RBTest",
// "type": "microsoft.automation/automationaccounts/runbooks",
// "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG2/providers/Microsoft.Automation/automationAccounts/TestAA/runbooks/RBTest",
// "location": "westcentralus",
// },
// },
// Facets: []armresourcegraph.FacetClassification{
// },
// ResultTruncated: to.Ptr(armresourcegraph.ResultTruncatedFalse),
// TotalRecords: to.Ptr[int64](386),
// },
// }
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
const { ResourceGraphClient } = require("@azure/arm-resourcegraph");
const { DefaultAzureCredential } = require("@azure/identity");
/**
* This sample demonstrates how to queries the resources managed by Azure Resource Manager for scopes specified in the request.
*
* @summary queries the resources managed by Azure Resource Manager for scopes specified in the request.
* x-ms-original-file: 2024-04-01/ResourcesNextPageQuery.json
*/
async function nextPageQuery() {
const credential = new DefaultAzureCredential();
const client = new ResourceGraphClient(credential);
const result = await client.resources({
options: { skipToken: "eyAibm8iOiAibHVjayIsICJidXQiOiAibmljZSIsICJ0cnkiOiAiISIgfQ==" },
query: "Resources | where name contains 'test' | project id, name, type, location",
subscriptions: ["cfbbd179-59d2-4052-aa06-9270a38aa9d6"],
});
console.log(result);
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
Sample response
{
"$skipToken": "eyAibm8yIjogImx1Y2syIiwgImJ1dDIiOiAibmljZTIiLCAidHJ5MiI6ICIhIiB9",
"count": 3,
"data": [
{
"name": "second_OsDisk_dddddbcb625a457bb69fe2abf5975820",
"type": "microsoft.compute/disks",
"id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG1/providers/Microsoft.Compute/disks/second_OsDisk_dddddbcb625a457bb69fe2abf5975820",
"location": "eastus"
},
{
"name": "AATest",
"type": "microsoft.automation/automationaccounts",
"id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG2/providers/Microsoft.Automation/automationAccounts/AATest",
"location": "westcentralus"
},
{
"name": "RBTest",
"type": "microsoft.automation/automationaccounts/runbooks",
"id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG2/providers/Microsoft.Automation/automationAccounts/TestAA/runbooks/RBTest",
"location": "westcentralus"
}
],
"facets": [],
"resultTruncated": "false",
"totalRecords": 386
}
Query with a facet request
Sample request
POST https://management.azure.com/providers/Microsoft.ResourceGraph/resources?api-version=2024-04-01
{
"facets": [
{
"expression": "location",
"options": {
"$top": 3,
"sortOrder": "desc"
}
},
{
"expression": "properties.storageProfile.osDisk.osType",
"options": {
"$top": 3,
"sortOrder": "desc"
}
},
{
"expression": "nonExistingColumn",
"options": {
"$top": 3,
"sortOrder": "desc"
}
},
{
"expression": "resourceGroup",
"options": {
"$top": 3,
"sortBy": "tolower(resourceGroup)",
"sortOrder": "asc"
}
},
{
"expression": "resourceGroup",
"options": {
"$top": 3,
"filter": "resourceGroup contains 'test'"
}
}
],
"query": "Resources | where type =~ 'Microsoft.Compute/virtualMachines' | project id, name, location, resourceGroup, properties.storageProfile.osDisk.osType | limit 5",
"subscriptions": [
"cfbbd179-59d2-4052-aa06-9270a38aa9d6"
]
}
from azure.identity import DefaultAzureCredential
from azure.mgmt.resourcegraph import ResourceGraphClient
"""
# PREREQUISITES
pip install azure-identity
pip install azure-mgmt-resourcegraph
# USAGE
python resources_facet_query.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
"""
def main():
client = ResourceGraphClient(
credential=DefaultAzureCredential(),
subscription_id="SUBSCRIPTION_ID",
)
response = client.resources(
query={
"facets": [
{"expression": "location", "options": {"$top": 3, "sortOrder": "desc"}},
{"expression": "properties.storageProfile.osDisk.osType", "options": {"$top": 3, "sortOrder": "desc"}},
{"expression": "nonExistingColumn", "options": {"$top": 3, "sortOrder": "desc"}},
{
"expression": "resourceGroup",
"options": {"$top": 3, "sortBy": "tolower(resourceGroup)", "sortOrder": "asc"},
},
{"expression": "resourceGroup", "options": {"$top": 3, "filter": "resourceGroup contains 'test'"}},
],
"query": "Resources | where type =~ 'Microsoft.Compute/virtualMachines' | project id, name, location, resourceGroup, properties.storageProfile.osDisk.osType | limit 5",
"subscriptions": ["cfbbd179-59d2-4052-aa06-9270a38aa9d6"],
},
)
print(response)
# x-ms-original-file: 2024-04-01/ResourcesFacetQuery.json
if __name__ == "__main__":
main()
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
package armresourcegraph_test
import (
"context"
"log"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph"
)
// Generated from example definition: 2024-04-01/ResourcesFacetQuery.json
func ExampleClient_Resources_queryWithAFacetRequest() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armresourcegraph.NewClientFactory(cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
res, err := clientFactory.NewClient().Resources(ctx, armresourcegraph.QueryRequest{
Facets: []*armresourcegraph.FacetRequest{
{
Expression: to.Ptr("location"),
Options: &armresourcegraph.FacetRequestOptions{
Top: to.Ptr[int32](3),
SortOrder: to.Ptr(armresourcegraph.FacetSortOrderDesc),
},
},
{
Expression: to.Ptr("properties.storageProfile.osDisk.osType"),
Options: &armresourcegraph.FacetRequestOptions{
Top: to.Ptr[int32](3),
SortOrder: to.Ptr(armresourcegraph.FacetSortOrderDesc),
},
},
{
Expression: to.Ptr("nonExistingColumn"),
Options: &armresourcegraph.FacetRequestOptions{
Top: to.Ptr[int32](3),
SortOrder: to.Ptr(armresourcegraph.FacetSortOrderDesc),
},
},
{
Expression: to.Ptr("resourceGroup"),
Options: &armresourcegraph.FacetRequestOptions{
Top: to.Ptr[int32](3),
SortBy: to.Ptr("tolower(resourceGroup)"),
SortOrder: to.Ptr(armresourcegraph.FacetSortOrderAsc),
},
},
{
Expression: to.Ptr("resourceGroup"),
Options: &armresourcegraph.FacetRequestOptions{
Top: to.Ptr[int32](3),
Filter: to.Ptr("resourceGroup contains 'test'"),
},
},
},
Query: to.Ptr("Resources | where type =~ 'Microsoft.Compute/virtualMachines' | project id, name, location, resourceGroup, properties.storageProfile.osDisk.osType | limit 5"),
Subscriptions: []*string{
to.Ptr("cfbbd179-59d2-4052-aa06-9270a38aa9d6"),
},
}, nil)
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res = armresourcegraph.ClientResourcesResponse{
// QueryResponse: armresourcegraph.QueryResponse{
// Count: to.Ptr[int64](5),
// Data: []any{
// map[string]any{
// "name": "myTestVm",
// "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/B-TEST-RG/providers/Microsoft.Compute/virtualMachines/myTestVm",
// "location": "eastus",
// "properties_storageProfile_osDisk_osType": "Windows",
// "resourceGroup": "B-TEST-RG",
// },
// map[string]any{
// "name": "myTestAccountVm",
// "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/c-rg/providers/Microsoft.Compute/virtualMachines/myTestAccountVm",
// "location": "westcentralus",
// "properties_storageProfile_osDisk_osType": "Windows",
// "resourceGroup": "c-rg",
// },
// map[string]any{
// "name": "yetanothertest",
// "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/I-RG/providers/Microsoft.Compute/virtualMachines/yetanothertest",
// "location": "eastus",
// "properties_storageProfile_osDisk_osType": "Linux",
// "resourceGroup": "I-RG",
// },
// map[string]any{
// "name": "drafttest1bux4cv7a7q3aw",
// "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/x-test-rg/providers/Microsoft.Compute/virtualMachines/drafttest1bux4cv7a7q3aw",
// "location": "southcentralus",
// "properties_storageProfile_osDisk_osType": "Linux",
// "resourceGroup": "x-test-rg",
// },
// map[string]any{
// "name": "testvmntp25370",
// "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/y-rg/providers/Microsoft.Compute/virtualMachines/testvmntp25370",
// "location": "eastus",
// "properties_storageProfile_osDisk_osType": "Windows",
// "resourceGroup": "y-rg",
// },
// },
// Facets: []armresourcegraph.FacetClassification{
// &armresourcegraph.FacetResult{
// Count: to.Ptr[int32](3),
// Data: []any{
// map[string]any{
// "count": 3,
// "location": "eastus",
// },
// map[string]any{
// "count": 1,
// "location": "southcentralus",
// },
// map[string]any{
// "count": 1,
// "location": "westcentralus",
// },
// },
// Expression: to.Ptr("location"),
// ResultType: to.Ptr("FacetResult"),
// TotalRecords: to.Ptr[int64](3),
// },
// &armresourcegraph.FacetResult{
// Count: to.Ptr[int32](2),
// Data: []any{
// map[string]any{
// "count": 2,
// "properties_storageProfile_osDisk_osType": "Linux",
// },
// map[string]any{
// "count": 3,
// "properties_storageProfile_osDisk_osType": "Windows",
// },
// },
// Expression: to.Ptr("properties.storageProfile.osDisk.osType"),
// ResultType: to.Ptr("FacetResult"),
// TotalRecords: to.Ptr[int64](2),
// },
// &armresourcegraph.FacetError{
// Errors: []*armresourcegraph.ErrorDetails{
// {
// Code: to.Ptr("NoValidColumns"),
// Message: to.Ptr("No valid columns in facet expression."),
// },
// {
// Code: to.Ptr("InvalidColumnNames"),
// Message: to.Ptr("Invalid column names: [nonExistingColumn]."),
// },
// },
// Expression: to.Ptr("nonExistingColumn"),
// ResultType: to.Ptr("FacetError"),
// },
// &armresourcegraph.FacetResult{
// Count: to.Ptr[int32](3),
// Data: []any{
// map[string]any{
// "count": 1,
// "resourceGroup": "B-TEST-RG",
// },
// map[string]any{
// "count": 1,
// "resourceGroup": "c-rg",
// },
// map[string]any{
// "count": 1,
// "resourceGroup": "I-RG",
// },
// },
// Expression: to.Ptr("resourceGroup"),
// ResultType: to.Ptr("FacetResult"),
// TotalRecords: to.Ptr[int64](5),
// },
// &armresourcegraph.FacetResult{
// Count: to.Ptr[int32](2),
// Data: []any{
// map[string]any{
// "count": 1,
// "resourceGroup": "B-TEST-RG",
// },
// map[string]any{
// "count": 1,
// "resourceGroup": "x-test-rg",
// },
// },
// Expression: to.Ptr("resourceGroup"),
// ResultType: to.Ptr("FacetResult"),
// TotalRecords: to.Ptr[int64](2),
// },
// },
// ResultTruncated: to.Ptr(armresourcegraph.ResultTruncatedFalse),
// TotalRecords: to.Ptr[int64](5),
// },
// }
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
const { ResourceGraphClient } = require("@azure/arm-resourcegraph");
const { DefaultAzureCredential } = require("@azure/identity");
/**
* This sample demonstrates how to queries the resources managed by Azure Resource Manager for scopes specified in the request.
*
* @summary queries the resources managed by Azure Resource Manager for scopes specified in the request.
* x-ms-original-file: 2024-04-01/ResourcesFacetQuery.json
*/
async function queryWithAFacetRequest() {
const credential = new DefaultAzureCredential();
const client = new ResourceGraphClient(credential);
const result = await client.resources({
facets: [
{ expression: "location", options: { top: 3, sortOrder: "desc" } },
{
expression: "properties.storageProfile.osDisk.osType",
options: { top: 3, sortOrder: "desc" },
},
{ expression: "nonExistingColumn", options: { top: 3, sortOrder: "desc" } },
{
expression: "resourceGroup",
options: { top: 3, sortBy: "tolower(resourceGroup)", sortOrder: "asc" },
},
{ expression: "resourceGroup", options: { top: 3, filter: "resourceGroup contains 'test'" } },
],
query:
"Resources | where type =~ 'Microsoft.Compute/virtualMachines' | project id, name, location, resourceGroup, properties.storageProfile.osDisk.osType | limit 5",
subscriptions: ["cfbbd179-59d2-4052-aa06-9270a38aa9d6"],
});
console.log(result);
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
Sample response
{
"count": 5,
"data": [
{
"name": "myTestVm",
"id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/B-TEST-RG/providers/Microsoft.Compute/virtualMachines/myTestVm",
"location": "eastus",
"properties_storageProfile_osDisk_osType": "Windows",
"resourceGroup": "B-TEST-RG"
},
{
"name": "myTestAccountVm",
"id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/c-rg/providers/Microsoft.Compute/virtualMachines/myTestAccountVm",
"location": "westcentralus",
"properties_storageProfile_osDisk_osType": "Windows",
"resourceGroup": "c-rg"
},
{
"name": "yetanothertest",
"id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/I-RG/providers/Microsoft.Compute/virtualMachines/yetanothertest",
"location": "eastus",
"properties_storageProfile_osDisk_osType": "Linux",
"resourceGroup": "I-RG"
},
{
"name": "drafttest1bux4cv7a7q3aw",
"id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/x-test-rg/providers/Microsoft.Compute/virtualMachines/drafttest1bux4cv7a7q3aw",
"location": "southcentralus",
"properties_storageProfile_osDisk_osType": "Linux",
"resourceGroup": "x-test-rg"
},
{
"name": "testvmntp25370",
"id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/y-rg/providers/Microsoft.Compute/virtualMachines/testvmntp25370",
"location": "eastus",
"properties_storageProfile_osDisk_osType": "Windows",
"resourceGroup": "y-rg"
}
],
"facets": [
{
"count": 3,
"data": [
{
"count": 3,
"location": "eastus"
},
{
"count": 1,
"location": "southcentralus"
},
{
"count": 1,
"location": "westcentralus"
}
],
"expression": "location",
"resultType": "FacetResult",
"totalRecords": 3
},
{
"count": 2,
"data": [
{
"count": 2,
"properties_storageProfile_osDisk_osType": "Linux"
},
{
"count": 3,
"properties_storageProfile_osDisk_osType": "Windows"
}
],
"expression": "properties.storageProfile.osDisk.osType",
"resultType": "FacetResult",
"totalRecords": 2
},
{
"errors": [
{
"code": "NoValidColumns",
"message": "No valid columns in facet expression."
},
{
"code": "InvalidColumnNames",
"message": "Invalid column names: [nonExistingColumn]."
}
],
"expression": "nonExistingColumn",
"resultType": "FacetError"
},
{
"count": 3,
"data": [
{
"count": 1,
"resourceGroup": "B-TEST-RG"
},
{
"count": 1,
"resourceGroup": "c-rg"
},
{
"count": 1,
"resourceGroup": "I-RG"
}
],
"expression": "resourceGroup",
"resultType": "FacetResult",
"totalRecords": 5
},
{
"count": 2,
"data": [
{
"count": 1,
"resourceGroup": "B-TEST-RG"
},
{
"count": 1,
"resourceGroup": "x-test-rg"
}
],
"expression": "resourceGroup",
"resultType": "FacetResult",
"totalRecords": 2
}
],
"resultTruncated": "false",
"totalRecords": 5
}
Random page query
Sample request
POST https://management.azure.com/providers/Microsoft.ResourceGraph/resources?api-version=2024-04-01
{
"options": {
"$skip": 10,
"$top": 2
},
"query": "Resources | where name contains 'test' | project id, name, type, location",
"subscriptions": [
"cfbbd179-59d2-4052-aa06-9270a38aa9d6"
]
}
from azure.identity import DefaultAzureCredential
from azure.mgmt.resourcegraph import ResourceGraphClient
"""
# PREREQUISITES
pip install azure-identity
pip install azure-mgmt-resourcegraph
# USAGE
python resources_random_page_query.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
"""
def main():
client = ResourceGraphClient(
credential=DefaultAzureCredential(),
subscription_id="SUBSCRIPTION_ID",
)
response = client.resources(
query={
"options": {"$skip": 10, "$top": 2},
"query": "Resources | where name contains 'test' | project id, name, type, location",
"subscriptions": ["cfbbd179-59d2-4052-aa06-9270a38aa9d6"],
},
)
print(response)
# x-ms-original-file: 2024-04-01/ResourcesRandomPageQuery.json
if __name__ == "__main__":
main()
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
package armresourcegraph_test
import (
"context"
"log"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph"
)
// Generated from example definition: 2024-04-01/ResourcesRandomPageQuery.json
func ExampleClient_Resources_randomPageQuery() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armresourcegraph.NewClientFactory(cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
res, err := clientFactory.NewClient().Resources(ctx, armresourcegraph.QueryRequest{
Options: &armresourcegraph.QueryRequestOptions{
Skip: to.Ptr[int32](10),
Top: to.Ptr[int32](2),
},
Query: to.Ptr("Resources | where name contains 'test' | project id, name, type, location"),
Subscriptions: []*string{
to.Ptr("cfbbd179-59d2-4052-aa06-9270a38aa9d6"),
},
}, nil)
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res = armresourcegraph.ClientResourcesResponse{
// QueryResponse: armresourcegraph.QueryResponse{
// SkipToken: to.Ptr("eyAibm8iOiAibHVjayIsICJidXQiOiAibmljZSIsICJ0cnkiOiAiISIgfQ=="),
// Count: to.Ptr[int64](2),
// Data: []any{
// map[string]any{
// "name": "third_OsDisk_dddddbcb625a457bb69fe2abf5975820",
// "type": "microsoft.compute/disks",
// "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG1/providers/Microsoft.Compute/disks/third_OsDisk_dddddbcb625a457bb69fe2abf5975820",
// "location": "eastus",
// },
// map[string]any{
// "name": "CCTest",
// "type": "microsoft.automation/automationaccounts",
// "id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG2/providers/Microsoft.Automation/automationAccounts/CCTest",
// "location": "westcentralus",
// },
// },
// Facets: []armresourcegraph.FacetClassification{
// },
// ResultTruncated: to.Ptr(armresourcegraph.ResultTruncatedFalse),
// TotalRecords: to.Ptr[int64](386),
// },
// }
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
const { ResourceGraphClient } = require("@azure/arm-resourcegraph");
const { DefaultAzureCredential } = require("@azure/identity");
/**
* This sample demonstrates how to queries the resources managed by Azure Resource Manager for scopes specified in the request.
*
* @summary queries the resources managed by Azure Resource Manager for scopes specified in the request.
* x-ms-original-file: 2024-04-01/ResourcesRandomPageQuery.json
*/
async function randomPageQuery() {
const credential = new DefaultAzureCredential();
const client = new ResourceGraphClient(credential);
const result = await client.resources({
options: { skip: 10, top: 2 },
query: "Resources | where name contains 'test' | project id, name, type, location",
subscriptions: ["cfbbd179-59d2-4052-aa06-9270a38aa9d6"],
});
console.log(result);
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
Sample response
{
"$skipToken": "eyAibm8iOiAibHVjayIsICJidXQiOiAibmljZSIsICJ0cnkiOiAiISIgfQ==",
"count": 2,
"data": [
{
"name": "third_OsDisk_dddddbcb625a457bb69fe2abf5975820",
"type": "microsoft.compute/disks",
"id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG1/providers/Microsoft.Compute/disks/third_OsDisk_dddddbcb625a457bb69fe2abf5975820",
"location": "eastus"
},
{
"name": "CCTest",
"type": "microsoft.automation/automationaccounts",
"id": "/subscriptions/cfbbd179-59d2-4052-aa06-9270a38aa9d6/resourceGroups/RG2/providers/Microsoft.Automation/automationAccounts/CCTest",
"location": "westcentralus"
}
],
"facets": [],
"resultTruncated": "false",
"totalRecords": 386
}
Summarize resources by location
Sample request
POST https://management.azure.com/providers/Microsoft.ResourceGraph/resources?api-version=2024-04-01
{
"query": "Resources | project id, name, type, location | summarize by location",
"subscriptions": [
"cfbbd179-59d2-4052-aa06-9270a38aa9d6"
]
}
from azure.identity import DefaultAzureCredential
from azure.mgmt.resourcegraph import ResourceGraphClient
"""
# PREREQUISITES
pip install azure-identity
pip install azure-mgmt-resourcegraph
# USAGE
python resources_summarize_query.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
"""
def main():
client = ResourceGraphClient(
credential=DefaultAzureCredential(),
subscription_id="SUBSCRIPTION_ID",
)
response = client.resources(
query={
"query": "Resources | project id, name, type, location | summarize by location",
"subscriptions": ["cfbbd179-59d2-4052-aa06-9270a38aa9d6"],
},
)
print(response)
# x-ms-original-file: 2024-04-01/ResourcesSummarizeQuery.json
if __name__ == "__main__":
main()
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
package armresourcegraph_test
import (
"context"
"log"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph"
)
// Generated from example definition: 2024-04-01/ResourcesSummarizeQuery.json
func ExampleClient_Resources_summarizeResourcesByLocation() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armresourcegraph.NewClientFactory(cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
res, err := clientFactory.NewClient().Resources(ctx, armresourcegraph.QueryRequest{
Query: to.Ptr("Resources | project id, name, type, location | summarize by location"),
Subscriptions: []*string{
to.Ptr("cfbbd179-59d2-4052-aa06-9270a38aa9d6"),
},
}, nil)
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res = armresourcegraph.ClientResourcesResponse{
// QueryResponse: armresourcegraph.QueryResponse{
// Count: to.Ptr[int64](3),
// Data: []any{
// map[string]any{
// "location": "centralus",
// },
// map[string]any{
// "location": "eastus",
// },
// map[string]any{
// "location": "westus",
// },
// },
// Facets: []armresourcegraph.FacetClassification{
// },
// ResultTruncated: to.Ptr(armresourcegraph.ResultTruncatedFalse),
// TotalRecords: to.Ptr[int64](3),
// },
// }
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
const { ResourceGraphClient } = require("@azure/arm-resourcegraph");
const { DefaultAzureCredential } = require("@azure/identity");
/**
* This sample demonstrates how to queries the resources managed by Azure Resource Manager for scopes specified in the request.
*
* @summary queries the resources managed by Azure Resource Manager for scopes specified in the request.
* x-ms-original-file: 2024-04-01/ResourcesSummarizeQuery.json
*/
async function summarizeResourcesByLocation() {
const credential = new DefaultAzureCredential();
const client = new ResourceGraphClient(credential);
const result = await client.resources({
query: "Resources | project id, name, type, location | summarize by location",
subscriptions: ["cfbbd179-59d2-4052-aa06-9270a38aa9d6"],
});
console.log(result);
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
Sample response
{
"count": 3,
"data": [
{
"location": "centralus"
},
{
"location": "eastus"
},
{
"location": "westus"
}
],
"facets": [],
"resultTruncated": "false",
"totalRecords": 3
}
Definitions
AuthorizationScopeFilter
Enumeration
Defines what level of authorization resources should be returned based on the which subscriptions and management groups are passed as scopes.
| Value |
Description |
|
AtScopeAndBelow
|
AtScopeAndBelow
|
|
AtScopeAndAbove
|
AtScopeAndAbove
|
|
AtScopeExact
|
AtScopeExact
|
|
AtScopeAboveAndBelow
|
AtScopeAboveAndBelow
|
FacetError
Object
A facet whose execution resulted in an error.
| Name |
Type |
Description |
|
errors
|
ResourceGraphCommon.ErrorDetails[]
|
An array containing detected facet errors with details.
|
|
expression
|
string
|
Facet expression, same as in the corresponding facet request.
|
|
resultType
|
string:
FacetError
|
Result type
|
FacetRequest
Object
A request to compute additional statistics (facets) over the query results.
| Name |
Type |
Description |
|
expression
|
string
|
The column or list of columns to summarize by
|
|
options
|
FacetRequestOptions
|
The options for facet evaluation
|
FacetRequestOptions
Object
The options for facet evaluation
| Name |
Type |
Default value |
Description |
|
$top
|
integer
(int32)
minimum: 1 maximum: 1000
|
The maximum number of facet rows that should be returned.
|
|
filter
|
string
|
Specifies the filter condition for the 'where' clause which will be run on main query's result, just before the actual faceting.
|
|
sortBy
|
string
|
The column name or query expression to sort on. Defaults to count if not present.
|
|
sortOrder
|
FacetSortOrder
|
desc
|
The sorting order by the selected column (count by default).
|
FacetResult
Object
Successfully executed facet containing additional statistics on the response of a query.
| Name |
Type |
Description |
|
count
|
integer
(int32)
|
Number of records returned in the facet response.
|
|
data
|
A JObject array or Table containing the desired facets. Only present if the facet is valid.
|
|
expression
|
string
|
Facet expression, same as in the corresponding facet request.
|
|
resultType
|
string:
FacetResult
|
Result type
|
|
totalRecords
|
integer
(int64)
|
Number of total records in the facet results.
|
FacetSortOrder
Enumeration
The sorting order by the selected column (count by default).
| Value |
Description |
|
asc
|
asc
|
|
desc
|
desc
|
QueryRequest
Object
Describes a query to be executed.
| Name |
Type |
Description |
|
facets
|
FacetRequest[]
|
An array of facet requests to be computed against the query result.
|
|
managementGroups
|
string[]
|
Azure management groups against which to execute the query. Example: [ 'mg1', 'mg2' ]
|
|
options
|
QueryRequestOptions
|
The query evaluation options
|
|
query
|
string
|
The resources query.
|
|
subscriptions
|
string[]
|
Azure subscriptions against which to execute the query.
|
QueryRequestOptions
Object
The options for query evaluation
| Name |
Type |
Default value |
Description |
|
$skip
|
integer
(int32)
minimum: 0
|
The number of rows to skip from the beginning of the results. Overrides the next page offset when $skipToken property is present.
|
|
$skipToken
|
string
|
Continuation token for pagination, capturing the next page size and offset, as well as the context of the query.
|
|
$top
|
integer
(int32)
minimum: 1 maximum: 1000
|
The maximum number of rows that the query should return. Overrides the page size when $skipToken property is present.
|
|
allowPartialScopes
|
boolean
|
False
|
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.
|
|
authorizationScopeFilter
|
AuthorizationScopeFilter
|
AtScopeAndBelow
|
Defines what level of authorization resources should be returned based on the which subscriptions and management groups are passed as scopes.
|
|
resultFormat
|
ResultFormat
|
objectArray
|
Defines in which format query result returned.
|
QueryResponse
Object
Query result.
| Name |
Type |
Description |
|
$skipToken
|
string
|
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.
|
|
count
|
integer
(int64)
|
Number of records returned in the current response. In the case of paging, this is the number of records in the current page.
|
|
data
|
Query output in JObject array or Table format.
|
|
facets
|
Facet[]:
|
Query facets.
|
|
resultTruncated
|
ResultTruncated
|
Indicates whether the query results are truncated.
|
|
totalRecords
|
integer
(int64)
|
Number of total records matching the query.
|
ResourceGraphCommon.Error
Object
Error info.
| Name |
Type |
Description |
|
code
|
string
|
Error code identifying the specific error.
|
|
details
|
ResourceGraphCommon.ErrorDetails[]
|
Error details
|
|
message
|
string
|
A human readable error message.
|
ResourceGraphCommon.ErrorDetails
Object
Error details.
| Name |
Type |
Description |
|
code
|
string
|
Error code identifying the specific error.
|
|
message
|
string
|
A human readable error message.
|
ResourceGraphCommon.ErrorResponse
Object
Error response.
Enumeration
Defines in which format query result returned.
| Value |
Description |
|
table
|
table
|
|
objectArray
|
objectArray
|
ResultTruncated
Enumeration
Indicates whether the query results are truncated.
| Value |
Description |
|
true
|
true
|
|
false
|
false
|