in pkg/providers/instance/azureresourcegraphutils.go [38:63]
func GetResourceData(ctx context.Context, client AzureResourceGraphAPI, req arg.QueryRequest) ([]Resource, error) {
dataRemaining := true // used to handle ARG responses > 1 page long
var data []Resource
for dataRemaining {
resp, err := client.Resources(ctx, req, nil)
if err != nil {
return nil, err
}
interfaceArray, ok := resp.Data.([]interface{})
if !ok {
return nil, fmt.Errorf("type casting query response as interface array failed")
}
for i := range interfaceArray {
switch resource := interfaceArray[i].(type) {
case map[string]interface{}:
data = append(data, resource)
}
}
dataRemaining = false
if resp.SkipToken != nil {
req.Options.SkipToken = resp.SkipToken
dataRemaining = true
}
}
return data, nil
}