in internal/scanners/diagnostics_settings.go [126:167]
func (d *DiagnosticSettingsScanner) restCall(ctx context.Context, resourceIds []*string) (*ArmBatchResponse, error) {
req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(d.client.Endpoint(), "batch"))
if err != nil {
return nil, err
}
reqQP := req.Raw().URL.Query()
reqQP.Set("api-version", "2020-06-01")
req.Raw().URL.RawQuery = reqQP.Encode()
req.Raw().Header["Accept"] = []string{"application/json"}
batch := ArmBatchRequest{
Requests: []ArmBatchRequestItem{},
}
for _, resourceId := range resourceIds {
batch.Requests = append(batch.Requests, ArmBatchRequestItem{
HttpMethod: http.MethodGet,
RelativeUrl: *resourceId + "/providers/microsoft.insights/diagnosticSettings?api-version=2021-05-01-preview",
})
}
// set request body
err = runtime.MarshalAsJSON(req, batch)
if err != nil {
return nil, err
}
resp, err := d.client.Pipeline().Do(req)
if err != nil {
return nil, err
}
if !runtime.HasStatusCode(resp, http.StatusOK, http.StatusAccepted) {
return nil, runtime.NewResponseError(resp)
}
result := ArmBatchResponse{}
if err := runtime.UnmarshalAsJSON(resp, &result); err != nil {
return nil, err
}
return &result, nil
}