1package logz
2
3// Copyright (c) Microsoft Corporation. All rights reserved.
4// Licensed under the MIT License. See License.txt in the project root for license information.
5//
6// Code generated by Microsoft (R) AutoRest Code Generator.
7// Changes may cause incorrect behavior and will be lost if the code is regenerated.
8
9import (
10	"context"
11	"github.com/Azure/go-autorest/autorest"
12	"github.com/Azure/go-autorest/autorest/azure"
13	"github.com/Azure/go-autorest/autorest/validation"
14	"github.com/Azure/go-autorest/tracing"
15	"net/http"
16)
17
18// SubAccountClient is the client for the SubAccount methods of the Logz service.
19type SubAccountClient struct {
20	BaseClient
21}
22
23// NewSubAccountClient creates an instance of the SubAccountClient client.
24func NewSubAccountClient(subscriptionID string) SubAccountClient {
25	return NewSubAccountClientWithBaseURI(DefaultBaseURI, subscriptionID)
26}
27
28// NewSubAccountClientWithBaseURI creates an instance of the SubAccountClient client using a custom endpoint.  Use this
29// when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure stack).
30func NewSubAccountClientWithBaseURI(baseURI string, subscriptionID string) SubAccountClient {
31	return SubAccountClient{NewWithBaseURI(baseURI, subscriptionID)}
32}
33
34// Create sends the create request.
35// Parameters:
36// resourceGroupName - the name of the resource group. The name is case insensitive.
37// monitorName - monitor resource name
38// subAccountName - sub Account resource name
39func (client SubAccountClient) Create(ctx context.Context, resourceGroupName string, monitorName string, subAccountName string, body *MonitorResource) (result SubAccountCreateFuture, err error) {
40	if tracing.IsEnabled() {
41		ctx = tracing.StartSpan(ctx, fqdn+"/SubAccountClient.Create")
42		defer func() {
43			sc := -1
44			if result.FutureAPI != nil && result.FutureAPI.Response() != nil {
45				sc = result.FutureAPI.Response().StatusCode
46			}
47			tracing.EndSpan(ctx, sc, err)
48		}()
49	}
50	if err := validation.Validate([]validation.Validation{
51		{TargetValue: client.SubscriptionID,
52			Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}},
53		{TargetValue: resourceGroupName,
54			Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
55				{Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
56				{Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}},
57		{TargetValue: body,
58			Constraints: []validation.Constraint{{Target: "body", Name: validation.Null, Rule: false,
59				Chain: []validation.Constraint{{Target: "body.Properties", Name: validation.Null, Rule: false,
60					Chain: []validation.Constraint{{Target: "body.Properties.UserInfo", Name: validation.Null, Rule: false,
61						Chain: []validation.Constraint{{Target: "body.Properties.UserInfo.FirstName", Name: validation.Null, Rule: false,
62							Chain: []validation.Constraint{{Target: "body.Properties.UserInfo.FirstName", Name: validation.MaxLength, Rule: 50, Chain: nil}}},
63							{Target: "body.Properties.UserInfo.LastName", Name: validation.Null, Rule: false,
64								Chain: []validation.Constraint{{Target: "body.Properties.UserInfo.LastName", Name: validation.MaxLength, Rule: 50, Chain: nil}}},
65							{Target: "body.Properties.UserInfo.EmailAddress", Name: validation.Null, Rule: false,
66								Chain: []validation.Constraint{{Target: "body.Properties.UserInfo.EmailAddress", Name: validation.Pattern, Rule: `^[A-Za-z0-9._%+-]+@(?:[A-Za-z0-9-]+\.)+[A-Za-z]{2,}$`, Chain: nil}}},
67							{Target: "body.Properties.UserInfo.PhoneNumber", Name: validation.Null, Rule: false,
68								Chain: []validation.Constraint{{Target: "body.Properties.UserInfo.PhoneNumber", Name: validation.MaxLength, Rule: 40, Chain: nil}}},
69						}},
70						{Target: "body.Properties.PlanData", Name: validation.Null, Rule: false,
71							Chain: []validation.Constraint{{Target: "body.Properties.PlanData.UsageType", Name: validation.Null, Rule: false,
72								Chain: []validation.Constraint{{Target: "body.Properties.PlanData.UsageType", Name: validation.MaxLength, Rule: 50, Chain: nil}}},
73								{Target: "body.Properties.PlanData.BillingCycle", Name: validation.Null, Rule: false,
74									Chain: []validation.Constraint{{Target: "body.Properties.PlanData.BillingCycle", Name: validation.MaxLength, Rule: 50, Chain: nil}}},
75								{Target: "body.Properties.PlanData.PlanDetails", Name: validation.Null, Rule: false,
76									Chain: []validation.Constraint{{Target: "body.Properties.PlanData.PlanDetails", Name: validation.MaxLength, Rule: 50, Chain: nil}}},
77							}},
78					}},
79					{Target: "body.Location", Name: validation.Null, Rule: true, Chain: nil},
80				}}}}}); err != nil {
81		return result, validation.NewError("logz.SubAccountClient", "Create", err.Error())
82	}
83
84	req, err := client.CreatePreparer(ctx, resourceGroupName, monitorName, subAccountName, body)
85	if err != nil {
86		err = autorest.NewErrorWithError(err, "logz.SubAccountClient", "Create", nil, "Failure preparing request")
87		return
88	}
89
90	result, err = client.CreateSender(req)
91	if err != nil {
92		err = autorest.NewErrorWithError(err, "logz.SubAccountClient", "Create", nil, "Failure sending request")
93		return
94	}
95
96	return
97}
98
99// CreatePreparer prepares the Create request.
100func (client SubAccountClient) CreatePreparer(ctx context.Context, resourceGroupName string, monitorName string, subAccountName string, body *MonitorResource) (*http.Request, error) {
101	pathParameters := map[string]interface{}{
102		"monitorName":       autorest.Encode("path", monitorName),
103		"resourceGroupName": autorest.Encode("path", resourceGroupName),
104		"subAccountName":    autorest.Encode("path", subAccountName),
105		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
106	}
107
108	const APIVersion = "2020-10-01-preview"
109	queryParameters := map[string]interface{}{
110		"api-version": APIVersion,
111	}
112
113	body.ID = nil
114	body.SystemData = nil
115	body.Name = nil
116	body.Type = nil
117	preparer := autorest.CreatePreparer(
118		autorest.AsContentType("application/json; charset=utf-8"),
119		autorest.AsPut(),
120		autorest.WithBaseURL(client.BaseURI),
121		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Logz/monitors/{monitorName}/accounts/{subAccountName}", pathParameters),
122		autorest.WithQueryParameters(queryParameters))
123	if body != nil {
124		preparer = autorest.DecoratePreparer(preparer,
125			autorest.WithJSON(body))
126	}
127	return preparer.Prepare((&http.Request{}).WithContext(ctx))
128}
129
130// CreateSender sends the Create request. The method will close the
131// http.Response Body if it receives an error.
132func (client SubAccountClient) CreateSender(req *http.Request) (future SubAccountCreateFuture, err error) {
133	var resp *http.Response
134	resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client))
135	if err != nil {
136		return
137	}
138	var azf azure.Future
139	azf, err = azure.NewFutureFromResponse(resp)
140	future.FutureAPI = &azf
141	future.Result = future.result
142	return
143}
144
145// CreateResponder handles the response to the Create request. The method always
146// closes the http.Response Body.
147func (client SubAccountClient) CreateResponder(resp *http.Response) (result MonitorResource, err error) {
148	err = autorest.Respond(
149		resp,
150		azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated),
151		autorest.ByUnmarshallingJSON(&result),
152		autorest.ByClosing())
153	result.Response = autorest.Response{Response: resp}
154	return
155}
156
157// Delete sends the delete request.
158// Parameters:
159// resourceGroupName - the name of the resource group. The name is case insensitive.
160// monitorName - monitor resource name
161// subAccountName - sub Account resource name
162func (client SubAccountClient) Delete(ctx context.Context, resourceGroupName string, monitorName string, subAccountName string) (result SubAccountDeleteFuture, err error) {
163	if tracing.IsEnabled() {
164		ctx = tracing.StartSpan(ctx, fqdn+"/SubAccountClient.Delete")
165		defer func() {
166			sc := -1
167			if result.FutureAPI != nil && result.FutureAPI.Response() != nil {
168				sc = result.FutureAPI.Response().StatusCode
169			}
170			tracing.EndSpan(ctx, sc, err)
171		}()
172	}
173	if err := validation.Validate([]validation.Validation{
174		{TargetValue: client.SubscriptionID,
175			Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}},
176		{TargetValue: resourceGroupName,
177			Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
178				{Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
179				{Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil {
180		return result, validation.NewError("logz.SubAccountClient", "Delete", err.Error())
181	}
182
183	req, err := client.DeletePreparer(ctx, resourceGroupName, monitorName, subAccountName)
184	if err != nil {
185		err = autorest.NewErrorWithError(err, "logz.SubAccountClient", "Delete", nil, "Failure preparing request")
186		return
187	}
188
189	result, err = client.DeleteSender(req)
190	if err != nil {
191		err = autorest.NewErrorWithError(err, "logz.SubAccountClient", "Delete", nil, "Failure sending request")
192		return
193	}
194
195	return
196}
197
198// DeletePreparer prepares the Delete request.
199func (client SubAccountClient) DeletePreparer(ctx context.Context, resourceGroupName string, monitorName string, subAccountName string) (*http.Request, error) {
200	pathParameters := map[string]interface{}{
201		"monitorName":       autorest.Encode("path", monitorName),
202		"resourceGroupName": autorest.Encode("path", resourceGroupName),
203		"subAccountName":    autorest.Encode("path", subAccountName),
204		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
205	}
206
207	const APIVersion = "2020-10-01-preview"
208	queryParameters := map[string]interface{}{
209		"api-version": APIVersion,
210	}
211
212	preparer := autorest.CreatePreparer(
213		autorest.AsDelete(),
214		autorest.WithBaseURL(client.BaseURI),
215		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Logz/monitors/{monitorName}/accounts/{subAccountName}", pathParameters),
216		autorest.WithQueryParameters(queryParameters))
217	return preparer.Prepare((&http.Request{}).WithContext(ctx))
218}
219
220// DeleteSender sends the Delete request. The method will close the
221// http.Response Body if it receives an error.
222func (client SubAccountClient) DeleteSender(req *http.Request) (future SubAccountDeleteFuture, err error) {
223	var resp *http.Response
224	resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client))
225	if err != nil {
226		return
227	}
228	var azf azure.Future
229	azf, err = azure.NewFutureFromResponse(resp)
230	future.FutureAPI = &azf
231	future.Result = future.result
232	return
233}
234
235// DeleteResponder handles the response to the Delete request. The method always
236// closes the http.Response Body.
237func (client SubAccountClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) {
238	err = autorest.Respond(
239		resp,
240		azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent),
241		autorest.ByClosing())
242	result.Response = resp
243	return
244}
245
246// Get sends the get request.
247// Parameters:
248// resourceGroupName - the name of the resource group. The name is case insensitive.
249// monitorName - monitor resource name
250// subAccountName - sub Account resource name
251func (client SubAccountClient) Get(ctx context.Context, resourceGroupName string, monitorName string, subAccountName string) (result MonitorResource, err error) {
252	if tracing.IsEnabled() {
253		ctx = tracing.StartSpan(ctx, fqdn+"/SubAccountClient.Get")
254		defer func() {
255			sc := -1
256			if result.Response.Response != nil {
257				sc = result.Response.Response.StatusCode
258			}
259			tracing.EndSpan(ctx, sc, err)
260		}()
261	}
262	if err := validation.Validate([]validation.Validation{
263		{TargetValue: client.SubscriptionID,
264			Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}},
265		{TargetValue: resourceGroupName,
266			Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
267				{Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
268				{Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil {
269		return result, validation.NewError("logz.SubAccountClient", "Get", err.Error())
270	}
271
272	req, err := client.GetPreparer(ctx, resourceGroupName, monitorName, subAccountName)
273	if err != nil {
274		err = autorest.NewErrorWithError(err, "logz.SubAccountClient", "Get", nil, "Failure preparing request")
275		return
276	}
277
278	resp, err := client.GetSender(req)
279	if err != nil {
280		result.Response = autorest.Response{Response: resp}
281		err = autorest.NewErrorWithError(err, "logz.SubAccountClient", "Get", resp, "Failure sending request")
282		return
283	}
284
285	result, err = client.GetResponder(resp)
286	if err != nil {
287		err = autorest.NewErrorWithError(err, "logz.SubAccountClient", "Get", resp, "Failure responding to request")
288		return
289	}
290
291	return
292}
293
294// GetPreparer prepares the Get request.
295func (client SubAccountClient) GetPreparer(ctx context.Context, resourceGroupName string, monitorName string, subAccountName string) (*http.Request, error) {
296	pathParameters := map[string]interface{}{
297		"monitorName":       autorest.Encode("path", monitorName),
298		"resourceGroupName": autorest.Encode("path", resourceGroupName),
299		"subAccountName":    autorest.Encode("path", subAccountName),
300		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
301	}
302
303	const APIVersion = "2020-10-01-preview"
304	queryParameters := map[string]interface{}{
305		"api-version": APIVersion,
306	}
307
308	preparer := autorest.CreatePreparer(
309		autorest.AsGet(),
310		autorest.WithBaseURL(client.BaseURI),
311		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Logz/monitors/{monitorName}/accounts/{subAccountName}", pathParameters),
312		autorest.WithQueryParameters(queryParameters))
313	return preparer.Prepare((&http.Request{}).WithContext(ctx))
314}
315
316// GetSender sends the Get request. The method will close the
317// http.Response Body if it receives an error.
318func (client SubAccountClient) GetSender(req *http.Request) (*http.Response, error) {
319	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
320}
321
322// GetResponder handles the response to the Get request. The method always
323// closes the http.Response Body.
324func (client SubAccountClient) GetResponder(resp *http.Response) (result MonitorResource, err error) {
325	err = autorest.Respond(
326		resp,
327		azure.WithErrorUnlessStatusCode(http.StatusOK),
328		autorest.ByUnmarshallingJSON(&result),
329		autorest.ByClosing())
330	result.Response = autorest.Response{Response: resp}
331	return
332}
333
334// List sends the list request.
335// Parameters:
336// resourceGroupName - the name of the resource group. The name is case insensitive.
337// monitorName - monitor resource name
338func (client SubAccountClient) List(ctx context.Context, resourceGroupName string, monitorName string) (result MonitorResourceListResponsePage, err error) {
339	if tracing.IsEnabled() {
340		ctx = tracing.StartSpan(ctx, fqdn+"/SubAccountClient.List")
341		defer func() {
342			sc := -1
343			if result.mrlr.Response.Response != nil {
344				sc = result.mrlr.Response.Response.StatusCode
345			}
346			tracing.EndSpan(ctx, sc, err)
347		}()
348	}
349	if err := validation.Validate([]validation.Validation{
350		{TargetValue: client.SubscriptionID,
351			Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}},
352		{TargetValue: resourceGroupName,
353			Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
354				{Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
355				{Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil {
356		return result, validation.NewError("logz.SubAccountClient", "List", err.Error())
357	}
358
359	result.fn = client.listNextResults
360	req, err := client.ListPreparer(ctx, resourceGroupName, monitorName)
361	if err != nil {
362		err = autorest.NewErrorWithError(err, "logz.SubAccountClient", "List", nil, "Failure preparing request")
363		return
364	}
365
366	resp, err := client.ListSender(req)
367	if err != nil {
368		result.mrlr.Response = autorest.Response{Response: resp}
369		err = autorest.NewErrorWithError(err, "logz.SubAccountClient", "List", resp, "Failure sending request")
370		return
371	}
372
373	result.mrlr, err = client.ListResponder(resp)
374	if err != nil {
375		err = autorest.NewErrorWithError(err, "logz.SubAccountClient", "List", resp, "Failure responding to request")
376		return
377	}
378	if result.mrlr.hasNextLink() && result.mrlr.IsEmpty() {
379		err = result.NextWithContext(ctx)
380		return
381	}
382
383	return
384}
385
386// ListPreparer prepares the List request.
387func (client SubAccountClient) ListPreparer(ctx context.Context, resourceGroupName string, monitorName string) (*http.Request, error) {
388	pathParameters := map[string]interface{}{
389		"monitorName":       autorest.Encode("path", monitorName),
390		"resourceGroupName": autorest.Encode("path", resourceGroupName),
391		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
392	}
393
394	const APIVersion = "2020-10-01-preview"
395	queryParameters := map[string]interface{}{
396		"api-version": APIVersion,
397	}
398
399	preparer := autorest.CreatePreparer(
400		autorest.AsGet(),
401		autorest.WithBaseURL(client.BaseURI),
402		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Logz/monitors/{monitorName}/accounts", pathParameters),
403		autorest.WithQueryParameters(queryParameters))
404	return preparer.Prepare((&http.Request{}).WithContext(ctx))
405}
406
407// ListSender sends the List request. The method will close the
408// http.Response Body if it receives an error.
409func (client SubAccountClient) ListSender(req *http.Request) (*http.Response, error) {
410	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
411}
412
413// ListResponder handles the response to the List request. The method always
414// closes the http.Response Body.
415func (client SubAccountClient) ListResponder(resp *http.Response) (result MonitorResourceListResponse, err error) {
416	err = autorest.Respond(
417		resp,
418		azure.WithErrorUnlessStatusCode(http.StatusOK),
419		autorest.ByUnmarshallingJSON(&result),
420		autorest.ByClosing())
421	result.Response = autorest.Response{Response: resp}
422	return
423}
424
425// listNextResults retrieves the next set of results, if any.
426func (client SubAccountClient) listNextResults(ctx context.Context, lastResults MonitorResourceListResponse) (result MonitorResourceListResponse, err error) {
427	req, err := lastResults.monitorResourceListResponsePreparer(ctx)
428	if err != nil {
429		return result, autorest.NewErrorWithError(err, "logz.SubAccountClient", "listNextResults", nil, "Failure preparing next results request")
430	}
431	if req == nil {
432		return
433	}
434	resp, err := client.ListSender(req)
435	if err != nil {
436		result.Response = autorest.Response{Response: resp}
437		return result, autorest.NewErrorWithError(err, "logz.SubAccountClient", "listNextResults", resp, "Failure sending next results request")
438	}
439	result, err = client.ListResponder(resp)
440	if err != nil {
441		err = autorest.NewErrorWithError(err, "logz.SubAccountClient", "listNextResults", resp, "Failure responding to next results request")
442	}
443	return
444}
445
446// ListComplete enumerates all values, automatically crossing page boundaries as required.
447func (client SubAccountClient) ListComplete(ctx context.Context, resourceGroupName string, monitorName string) (result MonitorResourceListResponseIterator, err error) {
448	if tracing.IsEnabled() {
449		ctx = tracing.StartSpan(ctx, fqdn+"/SubAccountClient.List")
450		defer func() {
451			sc := -1
452			if result.Response().Response.Response != nil {
453				sc = result.page.Response().Response.Response.StatusCode
454			}
455			tracing.EndSpan(ctx, sc, err)
456		}()
457	}
458	result.page, err = client.List(ctx, resourceGroupName, monitorName)
459	return
460}
461
462// ListMonitoredResources sends the list monitored resources request.
463// Parameters:
464// resourceGroupName - the name of the resource group. The name is case insensitive.
465// monitorName - monitor resource name
466// subAccountName - sub Account resource name
467func (client SubAccountClient) ListMonitoredResources(ctx context.Context, resourceGroupName string, monitorName string, subAccountName string) (result MonitoredResourceListResponsePage, err error) {
468	if tracing.IsEnabled() {
469		ctx = tracing.StartSpan(ctx, fqdn+"/SubAccountClient.ListMonitoredResources")
470		defer func() {
471			sc := -1
472			if result.mrlr.Response.Response != nil {
473				sc = result.mrlr.Response.Response.StatusCode
474			}
475			tracing.EndSpan(ctx, sc, err)
476		}()
477	}
478	if err := validation.Validate([]validation.Validation{
479		{TargetValue: client.SubscriptionID,
480			Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}},
481		{TargetValue: resourceGroupName,
482			Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
483				{Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
484				{Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil {
485		return result, validation.NewError("logz.SubAccountClient", "ListMonitoredResources", err.Error())
486	}
487
488	result.fn = client.listMonitoredResourcesNextResults
489	req, err := client.ListMonitoredResourcesPreparer(ctx, resourceGroupName, monitorName, subAccountName)
490	if err != nil {
491		err = autorest.NewErrorWithError(err, "logz.SubAccountClient", "ListMonitoredResources", nil, "Failure preparing request")
492		return
493	}
494
495	resp, err := client.ListMonitoredResourcesSender(req)
496	if err != nil {
497		result.mrlr.Response = autorest.Response{Response: resp}
498		err = autorest.NewErrorWithError(err, "logz.SubAccountClient", "ListMonitoredResources", resp, "Failure sending request")
499		return
500	}
501
502	result.mrlr, err = client.ListMonitoredResourcesResponder(resp)
503	if err != nil {
504		err = autorest.NewErrorWithError(err, "logz.SubAccountClient", "ListMonitoredResources", resp, "Failure responding to request")
505		return
506	}
507	if result.mrlr.hasNextLink() && result.mrlr.IsEmpty() {
508		err = result.NextWithContext(ctx)
509		return
510	}
511
512	return
513}
514
515// ListMonitoredResourcesPreparer prepares the ListMonitoredResources request.
516func (client SubAccountClient) ListMonitoredResourcesPreparer(ctx context.Context, resourceGroupName string, monitorName string, subAccountName string) (*http.Request, error) {
517	pathParameters := map[string]interface{}{
518		"monitorName":       autorest.Encode("path", monitorName),
519		"resourceGroupName": autorest.Encode("path", resourceGroupName),
520		"subAccountName":    autorest.Encode("path", subAccountName),
521		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
522	}
523
524	const APIVersion = "2020-10-01-preview"
525	queryParameters := map[string]interface{}{
526		"api-version": APIVersion,
527	}
528
529	preparer := autorest.CreatePreparer(
530		autorest.AsPost(),
531		autorest.WithBaseURL(client.BaseURI),
532		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Logz/monitors/{monitorName}/accounts/{subAccountName}/listMonitoredResources", pathParameters),
533		autorest.WithQueryParameters(queryParameters))
534	return preparer.Prepare((&http.Request{}).WithContext(ctx))
535}
536
537// ListMonitoredResourcesSender sends the ListMonitoredResources request. The method will close the
538// http.Response Body if it receives an error.
539func (client SubAccountClient) ListMonitoredResourcesSender(req *http.Request) (*http.Response, error) {
540	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
541}
542
543// ListMonitoredResourcesResponder handles the response to the ListMonitoredResources request. The method always
544// closes the http.Response Body.
545func (client SubAccountClient) ListMonitoredResourcesResponder(resp *http.Response) (result MonitoredResourceListResponse, err error) {
546	err = autorest.Respond(
547		resp,
548		azure.WithErrorUnlessStatusCode(http.StatusOK),
549		autorest.ByUnmarshallingJSON(&result),
550		autorest.ByClosing())
551	result.Response = autorest.Response{Response: resp}
552	return
553}
554
555// listMonitoredResourcesNextResults retrieves the next set of results, if any.
556func (client SubAccountClient) listMonitoredResourcesNextResults(ctx context.Context, lastResults MonitoredResourceListResponse) (result MonitoredResourceListResponse, err error) {
557	req, err := lastResults.monitoredResourceListResponsePreparer(ctx)
558	if err != nil {
559		return result, autorest.NewErrorWithError(err, "logz.SubAccountClient", "listMonitoredResourcesNextResults", nil, "Failure preparing next results request")
560	}
561	if req == nil {
562		return
563	}
564	resp, err := client.ListMonitoredResourcesSender(req)
565	if err != nil {
566		result.Response = autorest.Response{Response: resp}
567		return result, autorest.NewErrorWithError(err, "logz.SubAccountClient", "listMonitoredResourcesNextResults", resp, "Failure sending next results request")
568	}
569	result, err = client.ListMonitoredResourcesResponder(resp)
570	if err != nil {
571		err = autorest.NewErrorWithError(err, "logz.SubAccountClient", "listMonitoredResourcesNextResults", resp, "Failure responding to next results request")
572	}
573	return
574}
575
576// ListMonitoredResourcesComplete enumerates all values, automatically crossing page boundaries as required.
577func (client SubAccountClient) ListMonitoredResourcesComplete(ctx context.Context, resourceGroupName string, monitorName string, subAccountName string) (result MonitoredResourceListResponseIterator, err error) {
578	if tracing.IsEnabled() {
579		ctx = tracing.StartSpan(ctx, fqdn+"/SubAccountClient.ListMonitoredResources")
580		defer func() {
581			sc := -1
582			if result.Response().Response.Response != nil {
583				sc = result.page.Response().Response.Response.StatusCode
584			}
585			tracing.EndSpan(ctx, sc, err)
586		}()
587	}
588	result.page, err = client.ListMonitoredResources(ctx, resourceGroupName, monitorName, subAccountName)
589	return
590}
591
592// ListVMHosts sends the list vm hosts request.
593// Parameters:
594// resourceGroupName - the name of the resource group. The name is case insensitive.
595// monitorName - monitor resource name
596// subAccountName - sub Account resource name
597func (client SubAccountClient) ListVMHosts(ctx context.Context, resourceGroupName string, monitorName string, subAccountName string) (result VMResourcesListResponsePage, err error) {
598	if tracing.IsEnabled() {
599		ctx = tracing.StartSpan(ctx, fqdn+"/SubAccountClient.ListVMHosts")
600		defer func() {
601			sc := -1
602			if result.vrlr.Response.Response != nil {
603				sc = result.vrlr.Response.Response.StatusCode
604			}
605			tracing.EndSpan(ctx, sc, err)
606		}()
607	}
608	if err := validation.Validate([]validation.Validation{
609		{TargetValue: client.SubscriptionID,
610			Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}},
611		{TargetValue: resourceGroupName,
612			Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
613				{Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
614				{Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil {
615		return result, validation.NewError("logz.SubAccountClient", "ListVMHosts", err.Error())
616	}
617
618	result.fn = client.listVMHostsNextResults
619	req, err := client.ListVMHostsPreparer(ctx, resourceGroupName, monitorName, subAccountName)
620	if err != nil {
621		err = autorest.NewErrorWithError(err, "logz.SubAccountClient", "ListVMHosts", nil, "Failure preparing request")
622		return
623	}
624
625	resp, err := client.ListVMHostsSender(req)
626	if err != nil {
627		result.vrlr.Response = autorest.Response{Response: resp}
628		err = autorest.NewErrorWithError(err, "logz.SubAccountClient", "ListVMHosts", resp, "Failure sending request")
629		return
630	}
631
632	result.vrlr, err = client.ListVMHostsResponder(resp)
633	if err != nil {
634		err = autorest.NewErrorWithError(err, "logz.SubAccountClient", "ListVMHosts", resp, "Failure responding to request")
635		return
636	}
637	if result.vrlr.hasNextLink() && result.vrlr.IsEmpty() {
638		err = result.NextWithContext(ctx)
639		return
640	}
641
642	return
643}
644
645// ListVMHostsPreparer prepares the ListVMHosts request.
646func (client SubAccountClient) ListVMHostsPreparer(ctx context.Context, resourceGroupName string, monitorName string, subAccountName string) (*http.Request, error) {
647	pathParameters := map[string]interface{}{
648		"monitorName":       autorest.Encode("path", monitorName),
649		"resourceGroupName": autorest.Encode("path", resourceGroupName),
650		"subAccountName":    autorest.Encode("path", subAccountName),
651		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
652	}
653
654	const APIVersion = "2020-10-01-preview"
655	queryParameters := map[string]interface{}{
656		"api-version": APIVersion,
657	}
658
659	preparer := autorest.CreatePreparer(
660		autorest.AsPost(),
661		autorest.WithBaseURL(client.BaseURI),
662		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Logz/monitors/{monitorName}/accounts/{subAccountName}/listVMHosts", pathParameters),
663		autorest.WithQueryParameters(queryParameters))
664	return preparer.Prepare((&http.Request{}).WithContext(ctx))
665}
666
667// ListVMHostsSender sends the ListVMHosts request. The method will close the
668// http.Response Body if it receives an error.
669func (client SubAccountClient) ListVMHostsSender(req *http.Request) (*http.Response, error) {
670	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
671}
672
673// ListVMHostsResponder handles the response to the ListVMHosts request. The method always
674// closes the http.Response Body.
675func (client SubAccountClient) ListVMHostsResponder(resp *http.Response) (result VMResourcesListResponse, err error) {
676	err = autorest.Respond(
677		resp,
678		azure.WithErrorUnlessStatusCode(http.StatusOK),
679		autorest.ByUnmarshallingJSON(&result),
680		autorest.ByClosing())
681	result.Response = autorest.Response{Response: resp}
682	return
683}
684
685// listVMHostsNextResults retrieves the next set of results, if any.
686func (client SubAccountClient) listVMHostsNextResults(ctx context.Context, lastResults VMResourcesListResponse) (result VMResourcesListResponse, err error) {
687	req, err := lastResults.vMResourcesListResponsePreparer(ctx)
688	if err != nil {
689		return result, autorest.NewErrorWithError(err, "logz.SubAccountClient", "listVMHostsNextResults", nil, "Failure preparing next results request")
690	}
691	if req == nil {
692		return
693	}
694	resp, err := client.ListVMHostsSender(req)
695	if err != nil {
696		result.Response = autorest.Response{Response: resp}
697		return result, autorest.NewErrorWithError(err, "logz.SubAccountClient", "listVMHostsNextResults", resp, "Failure sending next results request")
698	}
699	result, err = client.ListVMHostsResponder(resp)
700	if err != nil {
701		err = autorest.NewErrorWithError(err, "logz.SubAccountClient", "listVMHostsNextResults", resp, "Failure responding to next results request")
702	}
703	return
704}
705
706// ListVMHostsComplete enumerates all values, automatically crossing page boundaries as required.
707func (client SubAccountClient) ListVMHostsComplete(ctx context.Context, resourceGroupName string, monitorName string, subAccountName string) (result VMResourcesListResponseIterator, err error) {
708	if tracing.IsEnabled() {
709		ctx = tracing.StartSpan(ctx, fqdn+"/SubAccountClient.ListVMHosts")
710		defer func() {
711			sc := -1
712			if result.Response().Response.Response != nil {
713				sc = result.page.Response().Response.Response.StatusCode
714			}
715			tracing.EndSpan(ctx, sc, err)
716		}()
717	}
718	result.page, err = client.ListVMHosts(ctx, resourceGroupName, monitorName, subAccountName)
719	return
720}
721
722// ListVMHostUpdate sends the list vm host update request.
723// Parameters:
724// resourceGroupName - the name of the resource group. The name is case insensitive.
725// monitorName - monitor resource name
726// subAccountName - sub Account resource name
727// body - request body to update the collection for agent installed in the given monitor.
728func (client SubAccountClient) ListVMHostUpdate(ctx context.Context, resourceGroupName string, monitorName string, subAccountName string, body *VMHostUpdateRequest) (result VMResourcesListResponsePage, err error) {
729	if tracing.IsEnabled() {
730		ctx = tracing.StartSpan(ctx, fqdn+"/SubAccountClient.ListVMHostUpdate")
731		defer func() {
732			sc := -1
733			if result.vrlr.Response.Response != nil {
734				sc = result.vrlr.Response.Response.StatusCode
735			}
736			tracing.EndSpan(ctx, sc, err)
737		}()
738	}
739	if err := validation.Validate([]validation.Validation{
740		{TargetValue: client.SubscriptionID,
741			Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}},
742		{TargetValue: resourceGroupName,
743			Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
744				{Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
745				{Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil {
746		return result, validation.NewError("logz.SubAccountClient", "ListVMHostUpdate", err.Error())
747	}
748
749	result.fn = client.listVMHostUpdateNextResults
750	req, err := client.ListVMHostUpdatePreparer(ctx, resourceGroupName, monitorName, subAccountName, body)
751	if err != nil {
752		err = autorest.NewErrorWithError(err, "logz.SubAccountClient", "ListVMHostUpdate", nil, "Failure preparing request")
753		return
754	}
755
756	resp, err := client.ListVMHostUpdateSender(req)
757	if err != nil {
758		result.vrlr.Response = autorest.Response{Response: resp}
759		err = autorest.NewErrorWithError(err, "logz.SubAccountClient", "ListVMHostUpdate", resp, "Failure sending request")
760		return
761	}
762
763	result.vrlr, err = client.ListVMHostUpdateResponder(resp)
764	if err != nil {
765		err = autorest.NewErrorWithError(err, "logz.SubAccountClient", "ListVMHostUpdate", resp, "Failure responding to request")
766		return
767	}
768	if result.vrlr.hasNextLink() && result.vrlr.IsEmpty() {
769		err = result.NextWithContext(ctx)
770		return
771	}
772
773	return
774}
775
776// ListVMHostUpdatePreparer prepares the ListVMHostUpdate request.
777func (client SubAccountClient) ListVMHostUpdatePreparer(ctx context.Context, resourceGroupName string, monitorName string, subAccountName string, body *VMHostUpdateRequest) (*http.Request, error) {
778	pathParameters := map[string]interface{}{
779		"monitorName":       autorest.Encode("path", monitorName),
780		"resourceGroupName": autorest.Encode("path", resourceGroupName),
781		"subAccountName":    autorest.Encode("path", subAccountName),
782		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
783	}
784
785	const APIVersion = "2020-10-01-preview"
786	queryParameters := map[string]interface{}{
787		"api-version": APIVersion,
788	}
789
790	preparer := autorest.CreatePreparer(
791		autorest.AsContentType("application/json; charset=utf-8"),
792		autorest.AsPost(),
793		autorest.WithBaseURL(client.BaseURI),
794		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Logz/monitors/{monitorName}/accounts/{subAccountName}/vmHostUpdate", pathParameters),
795		autorest.WithQueryParameters(queryParameters))
796	if body != nil {
797		preparer = autorest.DecoratePreparer(preparer,
798			autorest.WithJSON(body))
799	}
800	return preparer.Prepare((&http.Request{}).WithContext(ctx))
801}
802
803// ListVMHostUpdateSender sends the ListVMHostUpdate request. The method will close the
804// http.Response Body if it receives an error.
805func (client SubAccountClient) ListVMHostUpdateSender(req *http.Request) (*http.Response, error) {
806	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
807}
808
809// ListVMHostUpdateResponder handles the response to the ListVMHostUpdate request. The method always
810// closes the http.Response Body.
811func (client SubAccountClient) ListVMHostUpdateResponder(resp *http.Response) (result VMResourcesListResponse, err error) {
812	err = autorest.Respond(
813		resp,
814		azure.WithErrorUnlessStatusCode(http.StatusOK),
815		autorest.ByUnmarshallingJSON(&result),
816		autorest.ByClosing())
817	result.Response = autorest.Response{Response: resp}
818	return
819}
820
821// listVMHostUpdateNextResults retrieves the next set of results, if any.
822func (client SubAccountClient) listVMHostUpdateNextResults(ctx context.Context, lastResults VMResourcesListResponse) (result VMResourcesListResponse, err error) {
823	req, err := lastResults.vMResourcesListResponsePreparer(ctx)
824	if err != nil {
825		return result, autorest.NewErrorWithError(err, "logz.SubAccountClient", "listVMHostUpdateNextResults", nil, "Failure preparing next results request")
826	}
827	if req == nil {
828		return
829	}
830	resp, err := client.ListVMHostUpdateSender(req)
831	if err != nil {
832		result.Response = autorest.Response{Response: resp}
833		return result, autorest.NewErrorWithError(err, "logz.SubAccountClient", "listVMHostUpdateNextResults", resp, "Failure sending next results request")
834	}
835	result, err = client.ListVMHostUpdateResponder(resp)
836	if err != nil {
837		err = autorest.NewErrorWithError(err, "logz.SubAccountClient", "listVMHostUpdateNextResults", resp, "Failure responding to next results request")
838	}
839	return
840}
841
842// ListVMHostUpdateComplete enumerates all values, automatically crossing page boundaries as required.
843func (client SubAccountClient) ListVMHostUpdateComplete(ctx context.Context, resourceGroupName string, monitorName string, subAccountName string, body *VMHostUpdateRequest) (result VMResourcesListResponseIterator, err error) {
844	if tracing.IsEnabled() {
845		ctx = tracing.StartSpan(ctx, fqdn+"/SubAccountClient.ListVMHostUpdate")
846		defer func() {
847			sc := -1
848			if result.Response().Response.Response != nil {
849				sc = result.page.Response().Response.Response.StatusCode
850			}
851			tracing.EndSpan(ctx, sc, err)
852		}()
853	}
854	result.page, err = client.ListVMHostUpdate(ctx, resourceGroupName, monitorName, subAccountName, body)
855	return
856}
857
858// Update sends the update request.
859// Parameters:
860// resourceGroupName - the name of the resource group. The name is case insensitive.
861// monitorName - monitor resource name
862// subAccountName - sub Account resource name
863func (client SubAccountClient) Update(ctx context.Context, resourceGroupName string, monitorName string, subAccountName string, body *MonitorResourceUpdateParameters) (result MonitorResource, err error) {
864	if tracing.IsEnabled() {
865		ctx = tracing.StartSpan(ctx, fqdn+"/SubAccountClient.Update")
866		defer func() {
867			sc := -1
868			if result.Response.Response != nil {
869				sc = result.Response.Response.StatusCode
870			}
871			tracing.EndSpan(ctx, sc, err)
872		}()
873	}
874	if err := validation.Validate([]validation.Validation{
875		{TargetValue: client.SubscriptionID,
876			Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}},
877		{TargetValue: resourceGroupName,
878			Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
879				{Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
880				{Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil {
881		return result, validation.NewError("logz.SubAccountClient", "Update", err.Error())
882	}
883
884	req, err := client.UpdatePreparer(ctx, resourceGroupName, monitorName, subAccountName, body)
885	if err != nil {
886		err = autorest.NewErrorWithError(err, "logz.SubAccountClient", "Update", nil, "Failure preparing request")
887		return
888	}
889
890	resp, err := client.UpdateSender(req)
891	if err != nil {
892		result.Response = autorest.Response{Response: resp}
893		err = autorest.NewErrorWithError(err, "logz.SubAccountClient", "Update", resp, "Failure sending request")
894		return
895	}
896
897	result, err = client.UpdateResponder(resp)
898	if err != nil {
899		err = autorest.NewErrorWithError(err, "logz.SubAccountClient", "Update", resp, "Failure responding to request")
900		return
901	}
902
903	return
904}
905
906// UpdatePreparer prepares the Update request.
907func (client SubAccountClient) UpdatePreparer(ctx context.Context, resourceGroupName string, monitorName string, subAccountName string, body *MonitorResourceUpdateParameters) (*http.Request, error) {
908	pathParameters := map[string]interface{}{
909		"monitorName":       autorest.Encode("path", monitorName),
910		"resourceGroupName": autorest.Encode("path", resourceGroupName),
911		"subAccountName":    autorest.Encode("path", subAccountName),
912		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
913	}
914
915	const APIVersion = "2020-10-01-preview"
916	queryParameters := map[string]interface{}{
917		"api-version": APIVersion,
918	}
919
920	preparer := autorest.CreatePreparer(
921		autorest.AsContentType("application/json; charset=utf-8"),
922		autorest.AsPatch(),
923		autorest.WithBaseURL(client.BaseURI),
924		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Logz/monitors/{monitorName}/accounts/{subAccountName}", pathParameters),
925		autorest.WithQueryParameters(queryParameters))
926	if body != nil {
927		preparer = autorest.DecoratePreparer(preparer,
928			autorest.WithJSON(body))
929	}
930	return preparer.Prepare((&http.Request{}).WithContext(ctx))
931}
932
933// UpdateSender sends the Update request. The method will close the
934// http.Response Body if it receives an error.
935func (client SubAccountClient) UpdateSender(req *http.Request) (*http.Response, error) {
936	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
937}
938
939// UpdateResponder handles the response to the Update request. The method always
940// closes the http.Response Body.
941func (client SubAccountClient) UpdateResponder(resp *http.Response) (result MonitorResource, err error) {
942	err = autorest.Respond(
943		resp,
944		azure.WithErrorUnlessStatusCode(http.StatusOK),
945		autorest.ByUnmarshallingJSON(&result),
946		autorest.ByClosing())
947	result.Response = autorest.Response{Response: resp}
948	return
949}
950
951// VMHostPayload sends the vm host payload request.
952// Parameters:
953// resourceGroupName - the name of the resource group. The name is case insensitive.
954// monitorName - monitor resource name
955// subAccountName - sub Account resource name
956func (client SubAccountClient) VMHostPayload(ctx context.Context, resourceGroupName string, monitorName string, subAccountName string) (result VMExtensionPayload, err error) {
957	if tracing.IsEnabled() {
958		ctx = tracing.StartSpan(ctx, fqdn+"/SubAccountClient.VMHostPayload")
959		defer func() {
960			sc := -1
961			if result.Response.Response != nil {
962				sc = result.Response.Response.StatusCode
963			}
964			tracing.EndSpan(ctx, sc, err)
965		}()
966	}
967	if err := validation.Validate([]validation.Validation{
968		{TargetValue: client.SubscriptionID,
969			Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}},
970		{TargetValue: resourceGroupName,
971			Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
972				{Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
973				{Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil {
974		return result, validation.NewError("logz.SubAccountClient", "VMHostPayload", err.Error())
975	}
976
977	req, err := client.VMHostPayloadPreparer(ctx, resourceGroupName, monitorName, subAccountName)
978	if err != nil {
979		err = autorest.NewErrorWithError(err, "logz.SubAccountClient", "VMHostPayload", nil, "Failure preparing request")
980		return
981	}
982
983	resp, err := client.VMHostPayloadSender(req)
984	if err != nil {
985		result.Response = autorest.Response{Response: resp}
986		err = autorest.NewErrorWithError(err, "logz.SubAccountClient", "VMHostPayload", resp, "Failure sending request")
987		return
988	}
989
990	result, err = client.VMHostPayloadResponder(resp)
991	if err != nil {
992		err = autorest.NewErrorWithError(err, "logz.SubAccountClient", "VMHostPayload", resp, "Failure responding to request")
993		return
994	}
995
996	return
997}
998
999// VMHostPayloadPreparer prepares the VMHostPayload request.
1000func (client SubAccountClient) VMHostPayloadPreparer(ctx context.Context, resourceGroupName string, monitorName string, subAccountName string) (*http.Request, error) {
1001	pathParameters := map[string]interface{}{
1002		"monitorName":       autorest.Encode("path", monitorName),
1003		"resourceGroupName": autorest.Encode("path", resourceGroupName),
1004		"subAccountName":    autorest.Encode("path", subAccountName),
1005		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
1006	}
1007
1008	const APIVersion = "2020-10-01-preview"
1009	queryParameters := map[string]interface{}{
1010		"api-version": APIVersion,
1011	}
1012
1013	preparer := autorest.CreatePreparer(
1014		autorest.AsPost(),
1015		autorest.WithBaseURL(client.BaseURI),
1016		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Logz/monitors/{monitorName}/accounts/{subAccountName}/vmHostPayload", pathParameters),
1017		autorest.WithQueryParameters(queryParameters))
1018	return preparer.Prepare((&http.Request{}).WithContext(ctx))
1019}
1020
1021// VMHostPayloadSender sends the VMHostPayload request. The method will close the
1022// http.Response Body if it receives an error.
1023func (client SubAccountClient) VMHostPayloadSender(req *http.Request) (*http.Response, error) {
1024	return client.Send(req, azure.DoRetryWithRegistration(client.Client))
1025}
1026
1027// VMHostPayloadResponder handles the response to the VMHostPayload request. The method always
1028// closes the http.Response Body.
1029func (client SubAccountClient) VMHostPayloadResponder(resp *http.Response) (result VMExtensionPayload, err error) {
1030	err = autorest.Respond(
1031		resp,
1032		azure.WithErrorUnlessStatusCode(http.StatusOK),
1033		autorest.ByUnmarshallingJSON(&result),
1034		autorest.ByClosing())
1035	result.Response = autorest.Response{Response: resp}
1036	return
1037}
1038