1// +build go1.13
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// Code generated by Microsoft (R) AutoRest Code Generator.
6// Changes may cause incorrect behavior and will be lost if the code is regenerated.
7
8package armweb
9
10import (
11	"context"
12	"errors"
13	"fmt"
14	"github.com/Azure/azure-sdk-for-go/sdk/armcore"
15	"github.com/Azure/azure-sdk-for-go/sdk/azcore"
16	"net/http"
17	"net/url"
18	"strings"
19	"time"
20)
21
22// AppServiceCertificateOrdersClient contains the methods for the AppServiceCertificateOrders group.
23// Don't use this type directly, use NewAppServiceCertificateOrdersClient() instead.
24type AppServiceCertificateOrdersClient struct {
25	con            *armcore.Connection
26	subscriptionID string
27}
28
29// NewAppServiceCertificateOrdersClient creates a new instance of AppServiceCertificateOrdersClient with the specified values.
30func NewAppServiceCertificateOrdersClient(con *armcore.Connection, subscriptionID string) *AppServiceCertificateOrdersClient {
31	return &AppServiceCertificateOrdersClient{con: con, subscriptionID: subscriptionID}
32}
33
34// BeginCreateOrUpdate - Description for Create or update a certificate purchase order.
35// If the operation fails it returns the *DefaultErrorResponse error type.
36func (client *AppServiceCertificateOrdersClient) BeginCreateOrUpdate(ctx context.Context, resourceGroupName string, certificateOrderName string, certificateDistinguishedName AppServiceCertificateOrder, options *AppServiceCertificateOrdersBeginCreateOrUpdateOptions) (AppServiceCertificateOrdersCreateOrUpdatePollerResponse, error) {
37	resp, err := client.createOrUpdate(ctx, resourceGroupName, certificateOrderName, certificateDistinguishedName, options)
38	if err != nil {
39		return AppServiceCertificateOrdersCreateOrUpdatePollerResponse{}, err
40	}
41	result := AppServiceCertificateOrdersCreateOrUpdatePollerResponse{
42		RawResponse: resp.Response,
43	}
44	pt, err := armcore.NewLROPoller("AppServiceCertificateOrdersClient.CreateOrUpdate", "", resp, client.con.Pipeline(), client.createOrUpdateHandleError)
45	if err != nil {
46		return AppServiceCertificateOrdersCreateOrUpdatePollerResponse{}, err
47	}
48	poller := &appServiceCertificateOrdersCreateOrUpdatePoller{
49		pt: pt,
50	}
51	result.Poller = poller
52	result.PollUntilDone = func(ctx context.Context, frequency time.Duration) (AppServiceCertificateOrdersCreateOrUpdateResponse, error) {
53		return poller.pollUntilDone(ctx, frequency)
54	}
55	return result, nil
56}
57
58// ResumeCreateOrUpdate creates a new AppServiceCertificateOrdersCreateOrUpdatePoller from the specified resume token.
59// token - The value must come from a previous call to AppServiceCertificateOrdersCreateOrUpdatePoller.ResumeToken().
60func (client *AppServiceCertificateOrdersClient) ResumeCreateOrUpdate(ctx context.Context, token string) (AppServiceCertificateOrdersCreateOrUpdatePollerResponse, error) {
61	pt, err := armcore.NewLROPollerFromResumeToken("AppServiceCertificateOrdersClient.CreateOrUpdate", token, client.con.Pipeline(), client.createOrUpdateHandleError)
62	if err != nil {
63		return AppServiceCertificateOrdersCreateOrUpdatePollerResponse{}, err
64	}
65	poller := &appServiceCertificateOrdersCreateOrUpdatePoller{
66		pt: pt,
67	}
68	resp, err := poller.Poll(ctx)
69	if err != nil {
70		return AppServiceCertificateOrdersCreateOrUpdatePollerResponse{}, err
71	}
72	result := AppServiceCertificateOrdersCreateOrUpdatePollerResponse{
73		RawResponse: resp,
74	}
75	result.Poller = poller
76	result.PollUntilDone = func(ctx context.Context, frequency time.Duration) (AppServiceCertificateOrdersCreateOrUpdateResponse, error) {
77		return poller.pollUntilDone(ctx, frequency)
78	}
79	return result, nil
80}
81
82// CreateOrUpdate - Description for Create or update a certificate purchase order.
83// If the operation fails it returns the *DefaultErrorResponse error type.
84func (client *AppServiceCertificateOrdersClient) createOrUpdate(ctx context.Context, resourceGroupName string, certificateOrderName string, certificateDistinguishedName AppServiceCertificateOrder, options *AppServiceCertificateOrdersBeginCreateOrUpdateOptions) (*azcore.Response, error) {
85	req, err := client.createOrUpdateCreateRequest(ctx, resourceGroupName, certificateOrderName, certificateDistinguishedName, options)
86	if err != nil {
87		return nil, err
88	}
89	resp, err := client.con.Pipeline().Do(req)
90	if err != nil {
91		return nil, err
92	}
93	if !resp.HasStatusCode(http.StatusOK, http.StatusCreated) {
94		return nil, client.createOrUpdateHandleError(resp)
95	}
96	return resp, nil
97}
98
99// createOrUpdateCreateRequest creates the CreateOrUpdate request.
100func (client *AppServiceCertificateOrdersClient) createOrUpdateCreateRequest(ctx context.Context, resourceGroupName string, certificateOrderName string, certificateDistinguishedName AppServiceCertificateOrder, options *AppServiceCertificateOrdersBeginCreateOrUpdateOptions) (*azcore.Request, error) {
101	urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}"
102	if resourceGroupName == "" {
103		return nil, errors.New("parameter resourceGroupName cannot be empty")
104	}
105	urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName))
106	if certificateOrderName == "" {
107		return nil, errors.New("parameter certificateOrderName cannot be empty")
108	}
109	urlPath = strings.ReplaceAll(urlPath, "{certificateOrderName}", url.PathEscape(certificateOrderName))
110	if client.subscriptionID == "" {
111		return nil, errors.New("parameter client.subscriptionID cannot be empty")
112	}
113	urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID))
114	req, err := azcore.NewRequest(ctx, http.MethodPut, azcore.JoinPaths(client.con.Endpoint(), urlPath))
115	if err != nil {
116		return nil, err
117	}
118	req.Telemetry(telemetryInfo)
119	reqQP := req.URL.Query()
120	reqQP.Set("api-version", "2021-01-15")
121	req.URL.RawQuery = reqQP.Encode()
122	req.Header.Set("Accept", "application/json")
123	return req, req.MarshalAsJSON(certificateDistinguishedName)
124}
125
126// createOrUpdateHandleError handles the CreateOrUpdate error response.
127func (client *AppServiceCertificateOrdersClient) createOrUpdateHandleError(resp *azcore.Response) error {
128	body, err := resp.Payload()
129	if err != nil {
130		return azcore.NewResponseError(err, resp.Response)
131	}
132	errType := DefaultErrorResponse{raw: string(body)}
133	if err := resp.UnmarshalAsJSON(&errType); err != nil {
134		return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response)
135	}
136	return azcore.NewResponseError(&errType, resp.Response)
137}
138
139// BeginCreateOrUpdateCertificate - Description for Creates or updates a certificate and associates with key vault secret.
140// If the operation fails it returns the *DefaultErrorResponse error type.
141func (client *AppServiceCertificateOrdersClient) BeginCreateOrUpdateCertificate(ctx context.Context, resourceGroupName string, certificateOrderName string, name string, keyVaultCertificate AppServiceCertificateResource, options *AppServiceCertificateOrdersBeginCreateOrUpdateCertificateOptions) (AppServiceCertificateOrdersCreateOrUpdateCertificatePollerResponse, error) {
142	resp, err := client.createOrUpdateCertificate(ctx, resourceGroupName, certificateOrderName, name, keyVaultCertificate, options)
143	if err != nil {
144		return AppServiceCertificateOrdersCreateOrUpdateCertificatePollerResponse{}, err
145	}
146	result := AppServiceCertificateOrdersCreateOrUpdateCertificatePollerResponse{
147		RawResponse: resp.Response,
148	}
149	pt, err := armcore.NewLROPoller("AppServiceCertificateOrdersClient.CreateOrUpdateCertificate", "", resp, client.con.Pipeline(), client.createOrUpdateCertificateHandleError)
150	if err != nil {
151		return AppServiceCertificateOrdersCreateOrUpdateCertificatePollerResponse{}, err
152	}
153	poller := &appServiceCertificateOrdersCreateOrUpdateCertificatePoller{
154		pt: pt,
155	}
156	result.Poller = poller
157	result.PollUntilDone = func(ctx context.Context, frequency time.Duration) (AppServiceCertificateOrdersCreateOrUpdateCertificateResponse, error) {
158		return poller.pollUntilDone(ctx, frequency)
159	}
160	return result, nil
161}
162
163// ResumeCreateOrUpdateCertificate creates a new AppServiceCertificateOrdersCreateOrUpdateCertificatePoller from the specified resume token.
164// token - The value must come from a previous call to AppServiceCertificateOrdersCreateOrUpdateCertificatePoller.ResumeToken().
165func (client *AppServiceCertificateOrdersClient) ResumeCreateOrUpdateCertificate(ctx context.Context, token string) (AppServiceCertificateOrdersCreateOrUpdateCertificatePollerResponse, error) {
166	pt, err := armcore.NewLROPollerFromResumeToken("AppServiceCertificateOrdersClient.CreateOrUpdateCertificate", token, client.con.Pipeline(), client.createOrUpdateCertificateHandleError)
167	if err != nil {
168		return AppServiceCertificateOrdersCreateOrUpdateCertificatePollerResponse{}, err
169	}
170	poller := &appServiceCertificateOrdersCreateOrUpdateCertificatePoller{
171		pt: pt,
172	}
173	resp, err := poller.Poll(ctx)
174	if err != nil {
175		return AppServiceCertificateOrdersCreateOrUpdateCertificatePollerResponse{}, err
176	}
177	result := AppServiceCertificateOrdersCreateOrUpdateCertificatePollerResponse{
178		RawResponse: resp,
179	}
180	result.Poller = poller
181	result.PollUntilDone = func(ctx context.Context, frequency time.Duration) (AppServiceCertificateOrdersCreateOrUpdateCertificateResponse, error) {
182		return poller.pollUntilDone(ctx, frequency)
183	}
184	return result, nil
185}
186
187// CreateOrUpdateCertificate - Description for Creates or updates a certificate and associates with key vault secret.
188// If the operation fails it returns the *DefaultErrorResponse error type.
189func (client *AppServiceCertificateOrdersClient) createOrUpdateCertificate(ctx context.Context, resourceGroupName string, certificateOrderName string, name string, keyVaultCertificate AppServiceCertificateResource, options *AppServiceCertificateOrdersBeginCreateOrUpdateCertificateOptions) (*azcore.Response, error) {
190	req, err := client.createOrUpdateCertificateCreateRequest(ctx, resourceGroupName, certificateOrderName, name, keyVaultCertificate, options)
191	if err != nil {
192		return nil, err
193	}
194	resp, err := client.con.Pipeline().Do(req)
195	if err != nil {
196		return nil, err
197	}
198	if !resp.HasStatusCode(http.StatusOK, http.StatusCreated) {
199		return nil, client.createOrUpdateCertificateHandleError(resp)
200	}
201	return resp, nil
202}
203
204// createOrUpdateCertificateCreateRequest creates the CreateOrUpdateCertificate request.
205func (client *AppServiceCertificateOrdersClient) createOrUpdateCertificateCreateRequest(ctx context.Context, resourceGroupName string, certificateOrderName string, name string, keyVaultCertificate AppServiceCertificateResource, options *AppServiceCertificateOrdersBeginCreateOrUpdateCertificateOptions) (*azcore.Request, error) {
206	urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}/certificates/{name}"
207	if resourceGroupName == "" {
208		return nil, errors.New("parameter resourceGroupName cannot be empty")
209	}
210	urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName))
211	if certificateOrderName == "" {
212		return nil, errors.New("parameter certificateOrderName cannot be empty")
213	}
214	urlPath = strings.ReplaceAll(urlPath, "{certificateOrderName}", url.PathEscape(certificateOrderName))
215	if name == "" {
216		return nil, errors.New("parameter name cannot be empty")
217	}
218	urlPath = strings.ReplaceAll(urlPath, "{name}", url.PathEscape(name))
219	if client.subscriptionID == "" {
220		return nil, errors.New("parameter client.subscriptionID cannot be empty")
221	}
222	urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID))
223	req, err := azcore.NewRequest(ctx, http.MethodPut, azcore.JoinPaths(client.con.Endpoint(), urlPath))
224	if err != nil {
225		return nil, err
226	}
227	req.Telemetry(telemetryInfo)
228	reqQP := req.URL.Query()
229	reqQP.Set("api-version", "2021-01-15")
230	req.URL.RawQuery = reqQP.Encode()
231	req.Header.Set("Accept", "application/json")
232	return req, req.MarshalAsJSON(keyVaultCertificate)
233}
234
235// createOrUpdateCertificateHandleError handles the CreateOrUpdateCertificate error response.
236func (client *AppServiceCertificateOrdersClient) createOrUpdateCertificateHandleError(resp *azcore.Response) error {
237	body, err := resp.Payload()
238	if err != nil {
239		return azcore.NewResponseError(err, resp.Response)
240	}
241	errType := DefaultErrorResponse{raw: string(body)}
242	if err := resp.UnmarshalAsJSON(&errType); err != nil {
243		return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response)
244	}
245	return azcore.NewResponseError(&errType, resp.Response)
246}
247
248// Delete - Description for Delete an existing certificate order.
249// If the operation fails it returns the *DefaultErrorResponse error type.
250func (client *AppServiceCertificateOrdersClient) Delete(ctx context.Context, resourceGroupName string, certificateOrderName string, options *AppServiceCertificateOrdersDeleteOptions) (AppServiceCertificateOrdersDeleteResponse, error) {
251	req, err := client.deleteCreateRequest(ctx, resourceGroupName, certificateOrderName, options)
252	if err != nil {
253		return AppServiceCertificateOrdersDeleteResponse{}, err
254	}
255	resp, err := client.con.Pipeline().Do(req)
256	if err != nil {
257		return AppServiceCertificateOrdersDeleteResponse{}, err
258	}
259	if !resp.HasStatusCode(http.StatusOK, http.StatusNoContent) {
260		return AppServiceCertificateOrdersDeleteResponse{}, client.deleteHandleError(resp)
261	}
262	return AppServiceCertificateOrdersDeleteResponse{RawResponse: resp.Response}, nil
263}
264
265// deleteCreateRequest creates the Delete request.
266func (client *AppServiceCertificateOrdersClient) deleteCreateRequest(ctx context.Context, resourceGroupName string, certificateOrderName string, options *AppServiceCertificateOrdersDeleteOptions) (*azcore.Request, error) {
267	urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}"
268	if resourceGroupName == "" {
269		return nil, errors.New("parameter resourceGroupName cannot be empty")
270	}
271	urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName))
272	if certificateOrderName == "" {
273		return nil, errors.New("parameter certificateOrderName cannot be empty")
274	}
275	urlPath = strings.ReplaceAll(urlPath, "{certificateOrderName}", url.PathEscape(certificateOrderName))
276	if client.subscriptionID == "" {
277		return nil, errors.New("parameter client.subscriptionID cannot be empty")
278	}
279	urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID))
280	req, err := azcore.NewRequest(ctx, http.MethodDelete, azcore.JoinPaths(client.con.Endpoint(), urlPath))
281	if err != nil {
282		return nil, err
283	}
284	req.Telemetry(telemetryInfo)
285	reqQP := req.URL.Query()
286	reqQP.Set("api-version", "2021-01-15")
287	req.URL.RawQuery = reqQP.Encode()
288	req.Header.Set("Accept", "application/json")
289	return req, nil
290}
291
292// deleteHandleError handles the Delete error response.
293func (client *AppServiceCertificateOrdersClient) deleteHandleError(resp *azcore.Response) error {
294	body, err := resp.Payload()
295	if err != nil {
296		return azcore.NewResponseError(err, resp.Response)
297	}
298	errType := DefaultErrorResponse{raw: string(body)}
299	if err := resp.UnmarshalAsJSON(&errType); err != nil {
300		return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response)
301	}
302	return azcore.NewResponseError(&errType, resp.Response)
303}
304
305// DeleteCertificate - Description for Delete the certificate associated with a certificate order.
306// If the operation fails it returns the *DefaultErrorResponse error type.
307func (client *AppServiceCertificateOrdersClient) DeleteCertificate(ctx context.Context, resourceGroupName string, certificateOrderName string, name string, options *AppServiceCertificateOrdersDeleteCertificateOptions) (AppServiceCertificateOrdersDeleteCertificateResponse, error) {
308	req, err := client.deleteCertificateCreateRequest(ctx, resourceGroupName, certificateOrderName, name, options)
309	if err != nil {
310		return AppServiceCertificateOrdersDeleteCertificateResponse{}, err
311	}
312	resp, err := client.con.Pipeline().Do(req)
313	if err != nil {
314		return AppServiceCertificateOrdersDeleteCertificateResponse{}, err
315	}
316	if !resp.HasStatusCode(http.StatusOK, http.StatusNoContent) {
317		return AppServiceCertificateOrdersDeleteCertificateResponse{}, client.deleteCertificateHandleError(resp)
318	}
319	return AppServiceCertificateOrdersDeleteCertificateResponse{RawResponse: resp.Response}, nil
320}
321
322// deleteCertificateCreateRequest creates the DeleteCertificate request.
323func (client *AppServiceCertificateOrdersClient) deleteCertificateCreateRequest(ctx context.Context, resourceGroupName string, certificateOrderName string, name string, options *AppServiceCertificateOrdersDeleteCertificateOptions) (*azcore.Request, error) {
324	urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}/certificates/{name}"
325	if resourceGroupName == "" {
326		return nil, errors.New("parameter resourceGroupName cannot be empty")
327	}
328	urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName))
329	if certificateOrderName == "" {
330		return nil, errors.New("parameter certificateOrderName cannot be empty")
331	}
332	urlPath = strings.ReplaceAll(urlPath, "{certificateOrderName}", url.PathEscape(certificateOrderName))
333	if name == "" {
334		return nil, errors.New("parameter name cannot be empty")
335	}
336	urlPath = strings.ReplaceAll(urlPath, "{name}", url.PathEscape(name))
337	if client.subscriptionID == "" {
338		return nil, errors.New("parameter client.subscriptionID cannot be empty")
339	}
340	urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID))
341	req, err := azcore.NewRequest(ctx, http.MethodDelete, azcore.JoinPaths(client.con.Endpoint(), urlPath))
342	if err != nil {
343		return nil, err
344	}
345	req.Telemetry(telemetryInfo)
346	reqQP := req.URL.Query()
347	reqQP.Set("api-version", "2021-01-15")
348	req.URL.RawQuery = reqQP.Encode()
349	req.Header.Set("Accept", "application/json")
350	return req, nil
351}
352
353// deleteCertificateHandleError handles the DeleteCertificate error response.
354func (client *AppServiceCertificateOrdersClient) deleteCertificateHandleError(resp *azcore.Response) error {
355	body, err := resp.Payload()
356	if err != nil {
357		return azcore.NewResponseError(err, resp.Response)
358	}
359	errType := DefaultErrorResponse{raw: string(body)}
360	if err := resp.UnmarshalAsJSON(&errType); err != nil {
361		return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response)
362	}
363	return azcore.NewResponseError(&errType, resp.Response)
364}
365
366// Get - Description for Get a certificate order.
367// If the operation fails it returns the *DefaultErrorResponse error type.
368func (client *AppServiceCertificateOrdersClient) Get(ctx context.Context, resourceGroupName string, certificateOrderName string, options *AppServiceCertificateOrdersGetOptions) (AppServiceCertificateOrdersGetResponse, error) {
369	req, err := client.getCreateRequest(ctx, resourceGroupName, certificateOrderName, options)
370	if err != nil {
371		return AppServiceCertificateOrdersGetResponse{}, err
372	}
373	resp, err := client.con.Pipeline().Do(req)
374	if err != nil {
375		return AppServiceCertificateOrdersGetResponse{}, err
376	}
377	if !resp.HasStatusCode(http.StatusOK) {
378		return AppServiceCertificateOrdersGetResponse{}, client.getHandleError(resp)
379	}
380	return client.getHandleResponse(resp)
381}
382
383// getCreateRequest creates the Get request.
384func (client *AppServiceCertificateOrdersClient) getCreateRequest(ctx context.Context, resourceGroupName string, certificateOrderName string, options *AppServiceCertificateOrdersGetOptions) (*azcore.Request, error) {
385	urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}"
386	if resourceGroupName == "" {
387		return nil, errors.New("parameter resourceGroupName cannot be empty")
388	}
389	urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName))
390	if certificateOrderName == "" {
391		return nil, errors.New("parameter certificateOrderName cannot be empty")
392	}
393	urlPath = strings.ReplaceAll(urlPath, "{certificateOrderName}", url.PathEscape(certificateOrderName))
394	if client.subscriptionID == "" {
395		return nil, errors.New("parameter client.subscriptionID cannot be empty")
396	}
397	urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID))
398	req, err := azcore.NewRequest(ctx, http.MethodGet, azcore.JoinPaths(client.con.Endpoint(), urlPath))
399	if err != nil {
400		return nil, err
401	}
402	req.Telemetry(telemetryInfo)
403	reqQP := req.URL.Query()
404	reqQP.Set("api-version", "2021-01-15")
405	req.URL.RawQuery = reqQP.Encode()
406	req.Header.Set("Accept", "application/json")
407	return req, nil
408}
409
410// getHandleResponse handles the Get response.
411func (client *AppServiceCertificateOrdersClient) getHandleResponse(resp *azcore.Response) (AppServiceCertificateOrdersGetResponse, error) {
412	result := AppServiceCertificateOrdersGetResponse{RawResponse: resp.Response}
413	if err := resp.UnmarshalAsJSON(&result.AppServiceCertificateOrder); err != nil {
414		return AppServiceCertificateOrdersGetResponse{}, err
415	}
416	return result, nil
417}
418
419// getHandleError handles the Get error response.
420func (client *AppServiceCertificateOrdersClient) getHandleError(resp *azcore.Response) error {
421	body, err := resp.Payload()
422	if err != nil {
423		return azcore.NewResponseError(err, resp.Response)
424	}
425	errType := DefaultErrorResponse{raw: string(body)}
426	if err := resp.UnmarshalAsJSON(&errType); err != nil {
427		return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response)
428	}
429	return azcore.NewResponseError(&errType, resp.Response)
430}
431
432// GetCertificate - Description for Get the certificate associated with a certificate order.
433// If the operation fails it returns the *DefaultErrorResponse error type.
434func (client *AppServiceCertificateOrdersClient) GetCertificate(ctx context.Context, resourceGroupName string, certificateOrderName string, name string, options *AppServiceCertificateOrdersGetCertificateOptions) (AppServiceCertificateOrdersGetCertificateResponse, error) {
435	req, err := client.getCertificateCreateRequest(ctx, resourceGroupName, certificateOrderName, name, options)
436	if err != nil {
437		return AppServiceCertificateOrdersGetCertificateResponse{}, err
438	}
439	resp, err := client.con.Pipeline().Do(req)
440	if err != nil {
441		return AppServiceCertificateOrdersGetCertificateResponse{}, err
442	}
443	if !resp.HasStatusCode(http.StatusOK) {
444		return AppServiceCertificateOrdersGetCertificateResponse{}, client.getCertificateHandleError(resp)
445	}
446	return client.getCertificateHandleResponse(resp)
447}
448
449// getCertificateCreateRequest creates the GetCertificate request.
450func (client *AppServiceCertificateOrdersClient) getCertificateCreateRequest(ctx context.Context, resourceGroupName string, certificateOrderName string, name string, options *AppServiceCertificateOrdersGetCertificateOptions) (*azcore.Request, error) {
451	urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}/certificates/{name}"
452	if resourceGroupName == "" {
453		return nil, errors.New("parameter resourceGroupName cannot be empty")
454	}
455	urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName))
456	if certificateOrderName == "" {
457		return nil, errors.New("parameter certificateOrderName cannot be empty")
458	}
459	urlPath = strings.ReplaceAll(urlPath, "{certificateOrderName}", url.PathEscape(certificateOrderName))
460	if name == "" {
461		return nil, errors.New("parameter name cannot be empty")
462	}
463	urlPath = strings.ReplaceAll(urlPath, "{name}", url.PathEscape(name))
464	if client.subscriptionID == "" {
465		return nil, errors.New("parameter client.subscriptionID cannot be empty")
466	}
467	urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID))
468	req, err := azcore.NewRequest(ctx, http.MethodGet, azcore.JoinPaths(client.con.Endpoint(), urlPath))
469	if err != nil {
470		return nil, err
471	}
472	req.Telemetry(telemetryInfo)
473	reqQP := req.URL.Query()
474	reqQP.Set("api-version", "2021-01-15")
475	req.URL.RawQuery = reqQP.Encode()
476	req.Header.Set("Accept", "application/json")
477	return req, nil
478}
479
480// getCertificateHandleResponse handles the GetCertificate response.
481func (client *AppServiceCertificateOrdersClient) getCertificateHandleResponse(resp *azcore.Response) (AppServiceCertificateOrdersGetCertificateResponse, error) {
482	result := AppServiceCertificateOrdersGetCertificateResponse{RawResponse: resp.Response}
483	if err := resp.UnmarshalAsJSON(&result.AppServiceCertificateResource); err != nil {
484		return AppServiceCertificateOrdersGetCertificateResponse{}, err
485	}
486	return result, nil
487}
488
489// getCertificateHandleError handles the GetCertificate error response.
490func (client *AppServiceCertificateOrdersClient) getCertificateHandleError(resp *azcore.Response) error {
491	body, err := resp.Payload()
492	if err != nil {
493		return azcore.NewResponseError(err, resp.Response)
494	}
495	errType := DefaultErrorResponse{raw: string(body)}
496	if err := resp.UnmarshalAsJSON(&errType); err != nil {
497		return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response)
498	}
499	return azcore.NewResponseError(&errType, resp.Response)
500}
501
502// List - Description for List all certificate orders in a subscription.
503// If the operation fails it returns the *DefaultErrorResponse error type.
504func (client *AppServiceCertificateOrdersClient) List(options *AppServiceCertificateOrdersListOptions) AppServiceCertificateOrdersListPager {
505	return &appServiceCertificateOrdersListPager{
506		client: client,
507		requester: func(ctx context.Context) (*azcore.Request, error) {
508			return client.listCreateRequest(ctx, options)
509		},
510		advancer: func(ctx context.Context, resp AppServiceCertificateOrdersListResponse) (*azcore.Request, error) {
511			return azcore.NewRequest(ctx, http.MethodGet, *resp.AppServiceCertificateOrderCollection.NextLink)
512		},
513	}
514}
515
516// listCreateRequest creates the List request.
517func (client *AppServiceCertificateOrdersClient) listCreateRequest(ctx context.Context, options *AppServiceCertificateOrdersListOptions) (*azcore.Request, error) {
518	urlPath := "/subscriptions/{subscriptionId}/providers/Microsoft.CertificateRegistration/certificateOrders"
519	if client.subscriptionID == "" {
520		return nil, errors.New("parameter client.subscriptionID cannot be empty")
521	}
522	urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID))
523	req, err := azcore.NewRequest(ctx, http.MethodGet, azcore.JoinPaths(client.con.Endpoint(), urlPath))
524	if err != nil {
525		return nil, err
526	}
527	req.Telemetry(telemetryInfo)
528	reqQP := req.URL.Query()
529	reqQP.Set("api-version", "2021-01-15")
530	req.URL.RawQuery = reqQP.Encode()
531	req.Header.Set("Accept", "application/json")
532	return req, nil
533}
534
535// listHandleResponse handles the List response.
536func (client *AppServiceCertificateOrdersClient) listHandleResponse(resp *azcore.Response) (AppServiceCertificateOrdersListResponse, error) {
537	result := AppServiceCertificateOrdersListResponse{RawResponse: resp.Response}
538	if err := resp.UnmarshalAsJSON(&result.AppServiceCertificateOrderCollection); err != nil {
539		return AppServiceCertificateOrdersListResponse{}, err
540	}
541	return result, nil
542}
543
544// listHandleError handles the List error response.
545func (client *AppServiceCertificateOrdersClient) listHandleError(resp *azcore.Response) error {
546	body, err := resp.Payload()
547	if err != nil {
548		return azcore.NewResponseError(err, resp.Response)
549	}
550	errType := DefaultErrorResponse{raw: string(body)}
551	if err := resp.UnmarshalAsJSON(&errType); err != nil {
552		return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response)
553	}
554	return azcore.NewResponseError(&errType, resp.Response)
555}
556
557// ListByResourceGroup - Description for Get certificate orders in a resource group.
558// If the operation fails it returns the *DefaultErrorResponse error type.
559func (client *AppServiceCertificateOrdersClient) ListByResourceGroup(resourceGroupName string, options *AppServiceCertificateOrdersListByResourceGroupOptions) AppServiceCertificateOrdersListByResourceGroupPager {
560	return &appServiceCertificateOrdersListByResourceGroupPager{
561		client: client,
562		requester: func(ctx context.Context) (*azcore.Request, error) {
563			return client.listByResourceGroupCreateRequest(ctx, resourceGroupName, options)
564		},
565		advancer: func(ctx context.Context, resp AppServiceCertificateOrdersListByResourceGroupResponse) (*azcore.Request, error) {
566			return azcore.NewRequest(ctx, http.MethodGet, *resp.AppServiceCertificateOrderCollection.NextLink)
567		},
568	}
569}
570
571// listByResourceGroupCreateRequest creates the ListByResourceGroup request.
572func (client *AppServiceCertificateOrdersClient) listByResourceGroupCreateRequest(ctx context.Context, resourceGroupName string, options *AppServiceCertificateOrdersListByResourceGroupOptions) (*azcore.Request, error) {
573	urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders"
574	if resourceGroupName == "" {
575		return nil, errors.New("parameter resourceGroupName cannot be empty")
576	}
577	urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName))
578	if client.subscriptionID == "" {
579		return nil, errors.New("parameter client.subscriptionID cannot be empty")
580	}
581	urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID))
582	req, err := azcore.NewRequest(ctx, http.MethodGet, azcore.JoinPaths(client.con.Endpoint(), urlPath))
583	if err != nil {
584		return nil, err
585	}
586	req.Telemetry(telemetryInfo)
587	reqQP := req.URL.Query()
588	reqQP.Set("api-version", "2021-01-15")
589	req.URL.RawQuery = reqQP.Encode()
590	req.Header.Set("Accept", "application/json")
591	return req, nil
592}
593
594// listByResourceGroupHandleResponse handles the ListByResourceGroup response.
595func (client *AppServiceCertificateOrdersClient) listByResourceGroupHandleResponse(resp *azcore.Response) (AppServiceCertificateOrdersListByResourceGroupResponse, error) {
596	result := AppServiceCertificateOrdersListByResourceGroupResponse{RawResponse: resp.Response}
597	if err := resp.UnmarshalAsJSON(&result.AppServiceCertificateOrderCollection); err != nil {
598		return AppServiceCertificateOrdersListByResourceGroupResponse{}, err
599	}
600	return result, nil
601}
602
603// listByResourceGroupHandleError handles the ListByResourceGroup error response.
604func (client *AppServiceCertificateOrdersClient) listByResourceGroupHandleError(resp *azcore.Response) error {
605	body, err := resp.Payload()
606	if err != nil {
607		return azcore.NewResponseError(err, resp.Response)
608	}
609	errType := DefaultErrorResponse{raw: string(body)}
610	if err := resp.UnmarshalAsJSON(&errType); err != nil {
611		return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response)
612	}
613	return azcore.NewResponseError(&errType, resp.Response)
614}
615
616// ListCertificates - Description for List all certificates associated with a certificate order.
617// If the operation fails it returns the *DefaultErrorResponse error type.
618func (client *AppServiceCertificateOrdersClient) ListCertificates(resourceGroupName string, certificateOrderName string, options *AppServiceCertificateOrdersListCertificatesOptions) AppServiceCertificateOrdersListCertificatesPager {
619	return &appServiceCertificateOrdersListCertificatesPager{
620		client: client,
621		requester: func(ctx context.Context) (*azcore.Request, error) {
622			return client.listCertificatesCreateRequest(ctx, resourceGroupName, certificateOrderName, options)
623		},
624		advancer: func(ctx context.Context, resp AppServiceCertificateOrdersListCertificatesResponse) (*azcore.Request, error) {
625			return azcore.NewRequest(ctx, http.MethodGet, *resp.AppServiceCertificateCollection.NextLink)
626		},
627	}
628}
629
630// listCertificatesCreateRequest creates the ListCertificates request.
631func (client *AppServiceCertificateOrdersClient) listCertificatesCreateRequest(ctx context.Context, resourceGroupName string, certificateOrderName string, options *AppServiceCertificateOrdersListCertificatesOptions) (*azcore.Request, error) {
632	urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}/certificates"
633	if resourceGroupName == "" {
634		return nil, errors.New("parameter resourceGroupName cannot be empty")
635	}
636	urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName))
637	if certificateOrderName == "" {
638		return nil, errors.New("parameter certificateOrderName cannot be empty")
639	}
640	urlPath = strings.ReplaceAll(urlPath, "{certificateOrderName}", url.PathEscape(certificateOrderName))
641	if client.subscriptionID == "" {
642		return nil, errors.New("parameter client.subscriptionID cannot be empty")
643	}
644	urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID))
645	req, err := azcore.NewRequest(ctx, http.MethodGet, azcore.JoinPaths(client.con.Endpoint(), urlPath))
646	if err != nil {
647		return nil, err
648	}
649	req.Telemetry(telemetryInfo)
650	reqQP := req.URL.Query()
651	reqQP.Set("api-version", "2021-01-15")
652	req.URL.RawQuery = reqQP.Encode()
653	req.Header.Set("Accept", "application/json")
654	return req, nil
655}
656
657// listCertificatesHandleResponse handles the ListCertificates response.
658func (client *AppServiceCertificateOrdersClient) listCertificatesHandleResponse(resp *azcore.Response) (AppServiceCertificateOrdersListCertificatesResponse, error) {
659	result := AppServiceCertificateOrdersListCertificatesResponse{RawResponse: resp.Response}
660	if err := resp.UnmarshalAsJSON(&result.AppServiceCertificateCollection); err != nil {
661		return AppServiceCertificateOrdersListCertificatesResponse{}, err
662	}
663	return result, nil
664}
665
666// listCertificatesHandleError handles the ListCertificates error response.
667func (client *AppServiceCertificateOrdersClient) listCertificatesHandleError(resp *azcore.Response) error {
668	body, err := resp.Payload()
669	if err != nil {
670		return azcore.NewResponseError(err, resp.Response)
671	}
672	errType := DefaultErrorResponse{raw: string(body)}
673	if err := resp.UnmarshalAsJSON(&errType); err != nil {
674		return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response)
675	}
676	return azcore.NewResponseError(&errType, resp.Response)
677}
678
679// Reissue - Description for Reissue an existing certificate order.
680// If the operation fails it returns the *DefaultErrorResponse error type.
681func (client *AppServiceCertificateOrdersClient) Reissue(ctx context.Context, resourceGroupName string, certificateOrderName string, reissueCertificateOrderRequest ReissueCertificateOrderRequest, options *AppServiceCertificateOrdersReissueOptions) (AppServiceCertificateOrdersReissueResponse, error) {
682	req, err := client.reissueCreateRequest(ctx, resourceGroupName, certificateOrderName, reissueCertificateOrderRequest, options)
683	if err != nil {
684		return AppServiceCertificateOrdersReissueResponse{}, err
685	}
686	resp, err := client.con.Pipeline().Do(req)
687	if err != nil {
688		return AppServiceCertificateOrdersReissueResponse{}, err
689	}
690	if !resp.HasStatusCode(http.StatusNoContent) {
691		return AppServiceCertificateOrdersReissueResponse{}, client.reissueHandleError(resp)
692	}
693	return AppServiceCertificateOrdersReissueResponse{RawResponse: resp.Response}, nil
694}
695
696// reissueCreateRequest creates the Reissue request.
697func (client *AppServiceCertificateOrdersClient) reissueCreateRequest(ctx context.Context, resourceGroupName string, certificateOrderName string, reissueCertificateOrderRequest ReissueCertificateOrderRequest, options *AppServiceCertificateOrdersReissueOptions) (*azcore.Request, error) {
698	urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}/reissue"
699	if resourceGroupName == "" {
700		return nil, errors.New("parameter resourceGroupName cannot be empty")
701	}
702	urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName))
703	if certificateOrderName == "" {
704		return nil, errors.New("parameter certificateOrderName cannot be empty")
705	}
706	urlPath = strings.ReplaceAll(urlPath, "{certificateOrderName}", url.PathEscape(certificateOrderName))
707	if client.subscriptionID == "" {
708		return nil, errors.New("parameter client.subscriptionID cannot be empty")
709	}
710	urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID))
711	req, err := azcore.NewRequest(ctx, http.MethodPost, azcore.JoinPaths(client.con.Endpoint(), urlPath))
712	if err != nil {
713		return nil, err
714	}
715	req.Telemetry(telemetryInfo)
716	reqQP := req.URL.Query()
717	reqQP.Set("api-version", "2021-01-15")
718	req.URL.RawQuery = reqQP.Encode()
719	req.Header.Set("Accept", "application/json")
720	return req, req.MarshalAsJSON(reissueCertificateOrderRequest)
721}
722
723// reissueHandleError handles the Reissue error response.
724func (client *AppServiceCertificateOrdersClient) reissueHandleError(resp *azcore.Response) error {
725	body, err := resp.Payload()
726	if err != nil {
727		return azcore.NewResponseError(err, resp.Response)
728	}
729	errType := DefaultErrorResponse{raw: string(body)}
730	if err := resp.UnmarshalAsJSON(&errType); err != nil {
731		return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response)
732	}
733	return azcore.NewResponseError(&errType, resp.Response)
734}
735
736// Renew - Description for Renew an existing certificate order.
737// If the operation fails it returns the *DefaultErrorResponse error type.
738func (client *AppServiceCertificateOrdersClient) Renew(ctx context.Context, resourceGroupName string, certificateOrderName string, renewCertificateOrderRequest RenewCertificateOrderRequest, options *AppServiceCertificateOrdersRenewOptions) (AppServiceCertificateOrdersRenewResponse, error) {
739	req, err := client.renewCreateRequest(ctx, resourceGroupName, certificateOrderName, renewCertificateOrderRequest, options)
740	if err != nil {
741		return AppServiceCertificateOrdersRenewResponse{}, err
742	}
743	resp, err := client.con.Pipeline().Do(req)
744	if err != nil {
745		return AppServiceCertificateOrdersRenewResponse{}, err
746	}
747	if !resp.HasStatusCode(http.StatusNoContent) {
748		return AppServiceCertificateOrdersRenewResponse{}, client.renewHandleError(resp)
749	}
750	return AppServiceCertificateOrdersRenewResponse{RawResponse: resp.Response}, nil
751}
752
753// renewCreateRequest creates the Renew request.
754func (client *AppServiceCertificateOrdersClient) renewCreateRequest(ctx context.Context, resourceGroupName string, certificateOrderName string, renewCertificateOrderRequest RenewCertificateOrderRequest, options *AppServiceCertificateOrdersRenewOptions) (*azcore.Request, error) {
755	urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}/renew"
756	if resourceGroupName == "" {
757		return nil, errors.New("parameter resourceGroupName cannot be empty")
758	}
759	urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName))
760	if certificateOrderName == "" {
761		return nil, errors.New("parameter certificateOrderName cannot be empty")
762	}
763	urlPath = strings.ReplaceAll(urlPath, "{certificateOrderName}", url.PathEscape(certificateOrderName))
764	if client.subscriptionID == "" {
765		return nil, errors.New("parameter client.subscriptionID cannot be empty")
766	}
767	urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID))
768	req, err := azcore.NewRequest(ctx, http.MethodPost, azcore.JoinPaths(client.con.Endpoint(), urlPath))
769	if err != nil {
770		return nil, err
771	}
772	req.Telemetry(telemetryInfo)
773	reqQP := req.URL.Query()
774	reqQP.Set("api-version", "2021-01-15")
775	req.URL.RawQuery = reqQP.Encode()
776	req.Header.Set("Accept", "application/json")
777	return req, req.MarshalAsJSON(renewCertificateOrderRequest)
778}
779
780// renewHandleError handles the Renew error response.
781func (client *AppServiceCertificateOrdersClient) renewHandleError(resp *azcore.Response) error {
782	body, err := resp.Payload()
783	if err != nil {
784		return azcore.NewResponseError(err, resp.Response)
785	}
786	errType := DefaultErrorResponse{raw: string(body)}
787	if err := resp.UnmarshalAsJSON(&errType); err != nil {
788		return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response)
789	}
790	return azcore.NewResponseError(&errType, resp.Response)
791}
792
793// ResendEmail - Description for Resend certificate email.
794// If the operation fails it returns the *DefaultErrorResponse error type.
795func (client *AppServiceCertificateOrdersClient) ResendEmail(ctx context.Context, resourceGroupName string, certificateOrderName string, options *AppServiceCertificateOrdersResendEmailOptions) (AppServiceCertificateOrdersResendEmailResponse, error) {
796	req, err := client.resendEmailCreateRequest(ctx, resourceGroupName, certificateOrderName, options)
797	if err != nil {
798		return AppServiceCertificateOrdersResendEmailResponse{}, err
799	}
800	resp, err := client.con.Pipeline().Do(req)
801	if err != nil {
802		return AppServiceCertificateOrdersResendEmailResponse{}, err
803	}
804	if !resp.HasStatusCode(http.StatusNoContent) {
805		return AppServiceCertificateOrdersResendEmailResponse{}, client.resendEmailHandleError(resp)
806	}
807	return AppServiceCertificateOrdersResendEmailResponse{RawResponse: resp.Response}, nil
808}
809
810// resendEmailCreateRequest creates the ResendEmail request.
811func (client *AppServiceCertificateOrdersClient) resendEmailCreateRequest(ctx context.Context, resourceGroupName string, certificateOrderName string, options *AppServiceCertificateOrdersResendEmailOptions) (*azcore.Request, error) {
812	urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}/resendEmail"
813	if resourceGroupName == "" {
814		return nil, errors.New("parameter resourceGroupName cannot be empty")
815	}
816	urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName))
817	if certificateOrderName == "" {
818		return nil, errors.New("parameter certificateOrderName cannot be empty")
819	}
820	urlPath = strings.ReplaceAll(urlPath, "{certificateOrderName}", url.PathEscape(certificateOrderName))
821	if client.subscriptionID == "" {
822		return nil, errors.New("parameter client.subscriptionID cannot be empty")
823	}
824	urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID))
825	req, err := azcore.NewRequest(ctx, http.MethodPost, azcore.JoinPaths(client.con.Endpoint(), urlPath))
826	if err != nil {
827		return nil, err
828	}
829	req.Telemetry(telemetryInfo)
830	reqQP := req.URL.Query()
831	reqQP.Set("api-version", "2021-01-15")
832	req.URL.RawQuery = reqQP.Encode()
833	req.Header.Set("Accept", "application/json")
834	return req, nil
835}
836
837// resendEmailHandleError handles the ResendEmail error response.
838func (client *AppServiceCertificateOrdersClient) resendEmailHandleError(resp *azcore.Response) error {
839	body, err := resp.Payload()
840	if err != nil {
841		return azcore.NewResponseError(err, resp.Response)
842	}
843	errType := DefaultErrorResponse{raw: string(body)}
844	if err := resp.UnmarshalAsJSON(&errType); err != nil {
845		return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response)
846	}
847	return azcore.NewResponseError(&errType, resp.Response)
848}
849
850// ResendRequestEmails - Description for Verify domain ownership for this certificate order.
851// If the operation fails it returns the *DefaultErrorResponse error type.
852func (client *AppServiceCertificateOrdersClient) ResendRequestEmails(ctx context.Context, resourceGroupName string, certificateOrderName string, nameIdentifier NameIdentifier, options *AppServiceCertificateOrdersResendRequestEmailsOptions) (AppServiceCertificateOrdersResendRequestEmailsResponse, error) {
853	req, err := client.resendRequestEmailsCreateRequest(ctx, resourceGroupName, certificateOrderName, nameIdentifier, options)
854	if err != nil {
855		return AppServiceCertificateOrdersResendRequestEmailsResponse{}, err
856	}
857	resp, err := client.con.Pipeline().Do(req)
858	if err != nil {
859		return AppServiceCertificateOrdersResendRequestEmailsResponse{}, err
860	}
861	if !resp.HasStatusCode(http.StatusNoContent) {
862		return AppServiceCertificateOrdersResendRequestEmailsResponse{}, client.resendRequestEmailsHandleError(resp)
863	}
864	return AppServiceCertificateOrdersResendRequestEmailsResponse{RawResponse: resp.Response}, nil
865}
866
867// resendRequestEmailsCreateRequest creates the ResendRequestEmails request.
868func (client *AppServiceCertificateOrdersClient) resendRequestEmailsCreateRequest(ctx context.Context, resourceGroupName string, certificateOrderName string, nameIdentifier NameIdentifier, options *AppServiceCertificateOrdersResendRequestEmailsOptions) (*azcore.Request, error) {
869	urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}/resendRequestEmails"
870	if resourceGroupName == "" {
871		return nil, errors.New("parameter resourceGroupName cannot be empty")
872	}
873	urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName))
874	if certificateOrderName == "" {
875		return nil, errors.New("parameter certificateOrderName cannot be empty")
876	}
877	urlPath = strings.ReplaceAll(urlPath, "{certificateOrderName}", url.PathEscape(certificateOrderName))
878	if client.subscriptionID == "" {
879		return nil, errors.New("parameter client.subscriptionID cannot be empty")
880	}
881	urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID))
882	req, err := azcore.NewRequest(ctx, http.MethodPost, azcore.JoinPaths(client.con.Endpoint(), urlPath))
883	if err != nil {
884		return nil, err
885	}
886	req.Telemetry(telemetryInfo)
887	reqQP := req.URL.Query()
888	reqQP.Set("api-version", "2021-01-15")
889	req.URL.RawQuery = reqQP.Encode()
890	req.Header.Set("Accept", "application/json")
891	return req, req.MarshalAsJSON(nameIdentifier)
892}
893
894// resendRequestEmailsHandleError handles the ResendRequestEmails error response.
895func (client *AppServiceCertificateOrdersClient) resendRequestEmailsHandleError(resp *azcore.Response) error {
896	body, err := resp.Payload()
897	if err != nil {
898		return azcore.NewResponseError(err, resp.Response)
899	}
900	errType := DefaultErrorResponse{raw: string(body)}
901	if err := resp.UnmarshalAsJSON(&errType); err != nil {
902		return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response)
903	}
904	return azcore.NewResponseError(&errType, resp.Response)
905}
906
907// RetrieveCertificateActions - Description for Retrieve the list of certificate actions.
908// If the operation fails it returns the *DefaultErrorResponse error type.
909func (client *AppServiceCertificateOrdersClient) RetrieveCertificateActions(ctx context.Context, resourceGroupName string, name string, options *AppServiceCertificateOrdersRetrieveCertificateActionsOptions) (AppServiceCertificateOrdersRetrieveCertificateActionsResponse, error) {
910	req, err := client.retrieveCertificateActionsCreateRequest(ctx, resourceGroupName, name, options)
911	if err != nil {
912		return AppServiceCertificateOrdersRetrieveCertificateActionsResponse{}, err
913	}
914	resp, err := client.con.Pipeline().Do(req)
915	if err != nil {
916		return AppServiceCertificateOrdersRetrieveCertificateActionsResponse{}, err
917	}
918	if !resp.HasStatusCode(http.StatusOK) {
919		return AppServiceCertificateOrdersRetrieveCertificateActionsResponse{}, client.retrieveCertificateActionsHandleError(resp)
920	}
921	return client.retrieveCertificateActionsHandleResponse(resp)
922}
923
924// retrieveCertificateActionsCreateRequest creates the RetrieveCertificateActions request.
925func (client *AppServiceCertificateOrdersClient) retrieveCertificateActionsCreateRequest(ctx context.Context, resourceGroupName string, name string, options *AppServiceCertificateOrdersRetrieveCertificateActionsOptions) (*azcore.Request, error) {
926	urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{name}/retrieveCertificateActions"
927	if resourceGroupName == "" {
928		return nil, errors.New("parameter resourceGroupName cannot be empty")
929	}
930	urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName))
931	if name == "" {
932		return nil, errors.New("parameter name cannot be empty")
933	}
934	urlPath = strings.ReplaceAll(urlPath, "{name}", url.PathEscape(name))
935	if client.subscriptionID == "" {
936		return nil, errors.New("parameter client.subscriptionID cannot be empty")
937	}
938	urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID))
939	req, err := azcore.NewRequest(ctx, http.MethodPost, azcore.JoinPaths(client.con.Endpoint(), urlPath))
940	if err != nil {
941		return nil, err
942	}
943	req.Telemetry(telemetryInfo)
944	reqQP := req.URL.Query()
945	reqQP.Set("api-version", "2021-01-15")
946	req.URL.RawQuery = reqQP.Encode()
947	req.Header.Set("Accept", "application/json")
948	return req, nil
949}
950
951// retrieveCertificateActionsHandleResponse handles the RetrieveCertificateActions response.
952func (client *AppServiceCertificateOrdersClient) retrieveCertificateActionsHandleResponse(resp *azcore.Response) (AppServiceCertificateOrdersRetrieveCertificateActionsResponse, error) {
953	result := AppServiceCertificateOrdersRetrieveCertificateActionsResponse{RawResponse: resp.Response}
954	if err := resp.UnmarshalAsJSON(&result.CertificateOrderActionArray); err != nil {
955		return AppServiceCertificateOrdersRetrieveCertificateActionsResponse{}, err
956	}
957	return result, nil
958}
959
960// retrieveCertificateActionsHandleError handles the RetrieveCertificateActions error response.
961func (client *AppServiceCertificateOrdersClient) retrieveCertificateActionsHandleError(resp *azcore.Response) error {
962	body, err := resp.Payload()
963	if err != nil {
964		return azcore.NewResponseError(err, resp.Response)
965	}
966	errType := DefaultErrorResponse{raw: string(body)}
967	if err := resp.UnmarshalAsJSON(&errType); err != nil {
968		return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response)
969	}
970	return azcore.NewResponseError(&errType, resp.Response)
971}
972
973// RetrieveCertificateEmailHistory - Description for Retrieve email history.
974// If the operation fails it returns the *DefaultErrorResponse error type.
975func (client *AppServiceCertificateOrdersClient) RetrieveCertificateEmailHistory(ctx context.Context, resourceGroupName string, name string, options *AppServiceCertificateOrdersRetrieveCertificateEmailHistoryOptions) (AppServiceCertificateOrdersRetrieveCertificateEmailHistoryResponse, error) {
976	req, err := client.retrieveCertificateEmailHistoryCreateRequest(ctx, resourceGroupName, name, options)
977	if err != nil {
978		return AppServiceCertificateOrdersRetrieveCertificateEmailHistoryResponse{}, err
979	}
980	resp, err := client.con.Pipeline().Do(req)
981	if err != nil {
982		return AppServiceCertificateOrdersRetrieveCertificateEmailHistoryResponse{}, err
983	}
984	if !resp.HasStatusCode(http.StatusOK) {
985		return AppServiceCertificateOrdersRetrieveCertificateEmailHistoryResponse{}, client.retrieveCertificateEmailHistoryHandleError(resp)
986	}
987	return client.retrieveCertificateEmailHistoryHandleResponse(resp)
988}
989
990// retrieveCertificateEmailHistoryCreateRequest creates the RetrieveCertificateEmailHistory request.
991func (client *AppServiceCertificateOrdersClient) retrieveCertificateEmailHistoryCreateRequest(ctx context.Context, resourceGroupName string, name string, options *AppServiceCertificateOrdersRetrieveCertificateEmailHistoryOptions) (*azcore.Request, error) {
992	urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{name}/retrieveEmailHistory"
993	if resourceGroupName == "" {
994		return nil, errors.New("parameter resourceGroupName cannot be empty")
995	}
996	urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName))
997	if name == "" {
998		return nil, errors.New("parameter name cannot be empty")
999	}
1000	urlPath = strings.ReplaceAll(urlPath, "{name}", url.PathEscape(name))
1001	if client.subscriptionID == "" {
1002		return nil, errors.New("parameter client.subscriptionID cannot be empty")
1003	}
1004	urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID))
1005	req, err := azcore.NewRequest(ctx, http.MethodPost, azcore.JoinPaths(client.con.Endpoint(), urlPath))
1006	if err != nil {
1007		return nil, err
1008	}
1009	req.Telemetry(telemetryInfo)
1010	reqQP := req.URL.Query()
1011	reqQP.Set("api-version", "2021-01-15")
1012	req.URL.RawQuery = reqQP.Encode()
1013	req.Header.Set("Accept", "application/json")
1014	return req, nil
1015}
1016
1017// retrieveCertificateEmailHistoryHandleResponse handles the RetrieveCertificateEmailHistory response.
1018func (client *AppServiceCertificateOrdersClient) retrieveCertificateEmailHistoryHandleResponse(resp *azcore.Response) (AppServiceCertificateOrdersRetrieveCertificateEmailHistoryResponse, error) {
1019	result := AppServiceCertificateOrdersRetrieveCertificateEmailHistoryResponse{RawResponse: resp.Response}
1020	if err := resp.UnmarshalAsJSON(&result.CertificateEmailArray); err != nil {
1021		return AppServiceCertificateOrdersRetrieveCertificateEmailHistoryResponse{}, err
1022	}
1023	return result, nil
1024}
1025
1026// retrieveCertificateEmailHistoryHandleError handles the RetrieveCertificateEmailHistory error response.
1027func (client *AppServiceCertificateOrdersClient) retrieveCertificateEmailHistoryHandleError(resp *azcore.Response) error {
1028	body, err := resp.Payload()
1029	if err != nil {
1030		return azcore.NewResponseError(err, resp.Response)
1031	}
1032	errType := DefaultErrorResponse{raw: string(body)}
1033	if err := resp.UnmarshalAsJSON(&errType); err != nil {
1034		return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response)
1035	}
1036	return azcore.NewResponseError(&errType, resp.Response)
1037}
1038
1039// RetrieveSiteSeal - Description for Verify domain ownership for this certificate order.
1040// If the operation fails it returns the *DefaultErrorResponse error type.
1041func (client *AppServiceCertificateOrdersClient) RetrieveSiteSeal(ctx context.Context, resourceGroupName string, certificateOrderName string, siteSealRequest SiteSealRequest, options *AppServiceCertificateOrdersRetrieveSiteSealOptions) (AppServiceCertificateOrdersRetrieveSiteSealResponse, error) {
1042	req, err := client.retrieveSiteSealCreateRequest(ctx, resourceGroupName, certificateOrderName, siteSealRequest, options)
1043	if err != nil {
1044		return AppServiceCertificateOrdersRetrieveSiteSealResponse{}, err
1045	}
1046	resp, err := client.con.Pipeline().Do(req)
1047	if err != nil {
1048		return AppServiceCertificateOrdersRetrieveSiteSealResponse{}, err
1049	}
1050	if !resp.HasStatusCode(http.StatusOK) {
1051		return AppServiceCertificateOrdersRetrieveSiteSealResponse{}, client.retrieveSiteSealHandleError(resp)
1052	}
1053	return client.retrieveSiteSealHandleResponse(resp)
1054}
1055
1056// retrieveSiteSealCreateRequest creates the RetrieveSiteSeal request.
1057func (client *AppServiceCertificateOrdersClient) retrieveSiteSealCreateRequest(ctx context.Context, resourceGroupName string, certificateOrderName string, siteSealRequest SiteSealRequest, options *AppServiceCertificateOrdersRetrieveSiteSealOptions) (*azcore.Request, error) {
1058	urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}/retrieveSiteSeal"
1059	if resourceGroupName == "" {
1060		return nil, errors.New("parameter resourceGroupName cannot be empty")
1061	}
1062	urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName))
1063	if certificateOrderName == "" {
1064		return nil, errors.New("parameter certificateOrderName cannot be empty")
1065	}
1066	urlPath = strings.ReplaceAll(urlPath, "{certificateOrderName}", url.PathEscape(certificateOrderName))
1067	if client.subscriptionID == "" {
1068		return nil, errors.New("parameter client.subscriptionID cannot be empty")
1069	}
1070	urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID))
1071	req, err := azcore.NewRequest(ctx, http.MethodPost, azcore.JoinPaths(client.con.Endpoint(), urlPath))
1072	if err != nil {
1073		return nil, err
1074	}
1075	req.Telemetry(telemetryInfo)
1076	reqQP := req.URL.Query()
1077	reqQP.Set("api-version", "2021-01-15")
1078	req.URL.RawQuery = reqQP.Encode()
1079	req.Header.Set("Accept", "application/json")
1080	return req, req.MarshalAsJSON(siteSealRequest)
1081}
1082
1083// retrieveSiteSealHandleResponse handles the RetrieveSiteSeal response.
1084func (client *AppServiceCertificateOrdersClient) retrieveSiteSealHandleResponse(resp *azcore.Response) (AppServiceCertificateOrdersRetrieveSiteSealResponse, error) {
1085	result := AppServiceCertificateOrdersRetrieveSiteSealResponse{RawResponse: resp.Response}
1086	if err := resp.UnmarshalAsJSON(&result.SiteSeal); err != nil {
1087		return AppServiceCertificateOrdersRetrieveSiteSealResponse{}, err
1088	}
1089	return result, nil
1090}
1091
1092// retrieveSiteSealHandleError handles the RetrieveSiteSeal error response.
1093func (client *AppServiceCertificateOrdersClient) retrieveSiteSealHandleError(resp *azcore.Response) error {
1094	body, err := resp.Payload()
1095	if err != nil {
1096		return azcore.NewResponseError(err, resp.Response)
1097	}
1098	errType := DefaultErrorResponse{raw: string(body)}
1099	if err := resp.UnmarshalAsJSON(&errType); err != nil {
1100		return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response)
1101	}
1102	return azcore.NewResponseError(&errType, resp.Response)
1103}
1104
1105// Update - Description for Create or update a certificate purchase order.
1106// If the operation fails it returns the *DefaultErrorResponse error type.
1107func (client *AppServiceCertificateOrdersClient) Update(ctx context.Context, resourceGroupName string, certificateOrderName string, certificateDistinguishedName AppServiceCertificateOrderPatchResource, options *AppServiceCertificateOrdersUpdateOptions) (AppServiceCertificateOrdersUpdateResponse, error) {
1108	req, err := client.updateCreateRequest(ctx, resourceGroupName, certificateOrderName, certificateDistinguishedName, options)
1109	if err != nil {
1110		return AppServiceCertificateOrdersUpdateResponse{}, err
1111	}
1112	resp, err := client.con.Pipeline().Do(req)
1113	if err != nil {
1114		return AppServiceCertificateOrdersUpdateResponse{}, err
1115	}
1116	if !resp.HasStatusCode(http.StatusOK, http.StatusCreated) {
1117		return AppServiceCertificateOrdersUpdateResponse{}, client.updateHandleError(resp)
1118	}
1119	return client.updateHandleResponse(resp)
1120}
1121
1122// updateCreateRequest creates the Update request.
1123func (client *AppServiceCertificateOrdersClient) updateCreateRequest(ctx context.Context, resourceGroupName string, certificateOrderName string, certificateDistinguishedName AppServiceCertificateOrderPatchResource, options *AppServiceCertificateOrdersUpdateOptions) (*azcore.Request, error) {
1124	urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}"
1125	if resourceGroupName == "" {
1126		return nil, errors.New("parameter resourceGroupName cannot be empty")
1127	}
1128	urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName))
1129	if certificateOrderName == "" {
1130		return nil, errors.New("parameter certificateOrderName cannot be empty")
1131	}
1132	urlPath = strings.ReplaceAll(urlPath, "{certificateOrderName}", url.PathEscape(certificateOrderName))
1133	if client.subscriptionID == "" {
1134		return nil, errors.New("parameter client.subscriptionID cannot be empty")
1135	}
1136	urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID))
1137	req, err := azcore.NewRequest(ctx, http.MethodPatch, azcore.JoinPaths(client.con.Endpoint(), urlPath))
1138	if err != nil {
1139		return nil, err
1140	}
1141	req.Telemetry(telemetryInfo)
1142	reqQP := req.URL.Query()
1143	reqQP.Set("api-version", "2021-01-15")
1144	req.URL.RawQuery = reqQP.Encode()
1145	req.Header.Set("Accept", "application/json")
1146	return req, req.MarshalAsJSON(certificateDistinguishedName)
1147}
1148
1149// updateHandleResponse handles the Update response.
1150func (client *AppServiceCertificateOrdersClient) updateHandleResponse(resp *azcore.Response) (AppServiceCertificateOrdersUpdateResponse, error) {
1151	result := AppServiceCertificateOrdersUpdateResponse{RawResponse: resp.Response}
1152	if err := resp.UnmarshalAsJSON(&result.AppServiceCertificateOrder); err != nil {
1153		return AppServiceCertificateOrdersUpdateResponse{}, err
1154	}
1155	return result, nil
1156}
1157
1158// updateHandleError handles the Update error response.
1159func (client *AppServiceCertificateOrdersClient) updateHandleError(resp *azcore.Response) error {
1160	body, err := resp.Payload()
1161	if err != nil {
1162		return azcore.NewResponseError(err, resp.Response)
1163	}
1164	errType := DefaultErrorResponse{raw: string(body)}
1165	if err := resp.UnmarshalAsJSON(&errType); err != nil {
1166		return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response)
1167	}
1168	return azcore.NewResponseError(&errType, resp.Response)
1169}
1170
1171// UpdateCertificate - Description for Creates or updates a certificate and associates with key vault secret.
1172// If the operation fails it returns the *DefaultErrorResponse error type.
1173func (client *AppServiceCertificateOrdersClient) UpdateCertificate(ctx context.Context, resourceGroupName string, certificateOrderName string, name string, keyVaultCertificate AppServiceCertificatePatchResource, options *AppServiceCertificateOrdersUpdateCertificateOptions) (AppServiceCertificateOrdersUpdateCertificateResponse, error) {
1174	req, err := client.updateCertificateCreateRequest(ctx, resourceGroupName, certificateOrderName, name, keyVaultCertificate, options)
1175	if err != nil {
1176		return AppServiceCertificateOrdersUpdateCertificateResponse{}, err
1177	}
1178	resp, err := client.con.Pipeline().Do(req)
1179	if err != nil {
1180		return AppServiceCertificateOrdersUpdateCertificateResponse{}, err
1181	}
1182	if !resp.HasStatusCode(http.StatusOK, http.StatusCreated) {
1183		return AppServiceCertificateOrdersUpdateCertificateResponse{}, client.updateCertificateHandleError(resp)
1184	}
1185	return client.updateCertificateHandleResponse(resp)
1186}
1187
1188// updateCertificateCreateRequest creates the UpdateCertificate request.
1189func (client *AppServiceCertificateOrdersClient) updateCertificateCreateRequest(ctx context.Context, resourceGroupName string, certificateOrderName string, name string, keyVaultCertificate AppServiceCertificatePatchResource, options *AppServiceCertificateOrdersUpdateCertificateOptions) (*azcore.Request, error) {
1190	urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}/certificates/{name}"
1191	if resourceGroupName == "" {
1192		return nil, errors.New("parameter resourceGroupName cannot be empty")
1193	}
1194	urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName))
1195	if certificateOrderName == "" {
1196		return nil, errors.New("parameter certificateOrderName cannot be empty")
1197	}
1198	urlPath = strings.ReplaceAll(urlPath, "{certificateOrderName}", url.PathEscape(certificateOrderName))
1199	if name == "" {
1200		return nil, errors.New("parameter name cannot be empty")
1201	}
1202	urlPath = strings.ReplaceAll(urlPath, "{name}", url.PathEscape(name))
1203	if client.subscriptionID == "" {
1204		return nil, errors.New("parameter client.subscriptionID cannot be empty")
1205	}
1206	urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID))
1207	req, err := azcore.NewRequest(ctx, http.MethodPatch, azcore.JoinPaths(client.con.Endpoint(), urlPath))
1208	if err != nil {
1209		return nil, err
1210	}
1211	req.Telemetry(telemetryInfo)
1212	reqQP := req.URL.Query()
1213	reqQP.Set("api-version", "2021-01-15")
1214	req.URL.RawQuery = reqQP.Encode()
1215	req.Header.Set("Accept", "application/json")
1216	return req, req.MarshalAsJSON(keyVaultCertificate)
1217}
1218
1219// updateCertificateHandleResponse handles the UpdateCertificate response.
1220func (client *AppServiceCertificateOrdersClient) updateCertificateHandleResponse(resp *azcore.Response) (AppServiceCertificateOrdersUpdateCertificateResponse, error) {
1221	result := AppServiceCertificateOrdersUpdateCertificateResponse{RawResponse: resp.Response}
1222	if err := resp.UnmarshalAsJSON(&result.AppServiceCertificateResource); err != nil {
1223		return AppServiceCertificateOrdersUpdateCertificateResponse{}, err
1224	}
1225	return result, nil
1226}
1227
1228// updateCertificateHandleError handles the UpdateCertificate error response.
1229func (client *AppServiceCertificateOrdersClient) updateCertificateHandleError(resp *azcore.Response) error {
1230	body, err := resp.Payload()
1231	if err != nil {
1232		return azcore.NewResponseError(err, resp.Response)
1233	}
1234	errType := DefaultErrorResponse{raw: string(body)}
1235	if err := resp.UnmarshalAsJSON(&errType); err != nil {
1236		return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response)
1237	}
1238	return azcore.NewResponseError(&errType, resp.Response)
1239}
1240
1241// ValidatePurchaseInformation - Description for Validate information for a certificate order.
1242// If the operation fails it returns the *DefaultErrorResponse error type.
1243func (client *AppServiceCertificateOrdersClient) ValidatePurchaseInformation(ctx context.Context, appServiceCertificateOrder AppServiceCertificateOrder, options *AppServiceCertificateOrdersValidatePurchaseInformationOptions) (AppServiceCertificateOrdersValidatePurchaseInformationResponse, error) {
1244	req, err := client.validatePurchaseInformationCreateRequest(ctx, appServiceCertificateOrder, options)
1245	if err != nil {
1246		return AppServiceCertificateOrdersValidatePurchaseInformationResponse{}, err
1247	}
1248	resp, err := client.con.Pipeline().Do(req)
1249	if err != nil {
1250		return AppServiceCertificateOrdersValidatePurchaseInformationResponse{}, err
1251	}
1252	if !resp.HasStatusCode(http.StatusNoContent) {
1253		return AppServiceCertificateOrdersValidatePurchaseInformationResponse{}, client.validatePurchaseInformationHandleError(resp)
1254	}
1255	return AppServiceCertificateOrdersValidatePurchaseInformationResponse{RawResponse: resp.Response}, nil
1256}
1257
1258// validatePurchaseInformationCreateRequest creates the ValidatePurchaseInformation request.
1259func (client *AppServiceCertificateOrdersClient) validatePurchaseInformationCreateRequest(ctx context.Context, appServiceCertificateOrder AppServiceCertificateOrder, options *AppServiceCertificateOrdersValidatePurchaseInformationOptions) (*azcore.Request, error) {
1260	urlPath := "/subscriptions/{subscriptionId}/providers/Microsoft.CertificateRegistration/validateCertificateRegistrationInformation"
1261	if client.subscriptionID == "" {
1262		return nil, errors.New("parameter client.subscriptionID cannot be empty")
1263	}
1264	urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID))
1265	req, err := azcore.NewRequest(ctx, http.MethodPost, azcore.JoinPaths(client.con.Endpoint(), urlPath))
1266	if err != nil {
1267		return nil, err
1268	}
1269	req.Telemetry(telemetryInfo)
1270	reqQP := req.URL.Query()
1271	reqQP.Set("api-version", "2021-01-15")
1272	req.URL.RawQuery = reqQP.Encode()
1273	req.Header.Set("Accept", "application/json")
1274	return req, req.MarshalAsJSON(appServiceCertificateOrder)
1275}
1276
1277// validatePurchaseInformationHandleError handles the ValidatePurchaseInformation error response.
1278func (client *AppServiceCertificateOrdersClient) validatePurchaseInformationHandleError(resp *azcore.Response) error {
1279	body, err := resp.Payload()
1280	if err != nil {
1281		return azcore.NewResponseError(err, resp.Response)
1282	}
1283	errType := DefaultErrorResponse{raw: string(body)}
1284	if err := resp.UnmarshalAsJSON(&errType); err != nil {
1285		return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response)
1286	}
1287	return azcore.NewResponseError(&errType, resp.Response)
1288}
1289
1290// VerifyDomainOwnership - Description for Verify domain ownership for this certificate order.
1291// If the operation fails it returns the *DefaultErrorResponse error type.
1292func (client *AppServiceCertificateOrdersClient) VerifyDomainOwnership(ctx context.Context, resourceGroupName string, certificateOrderName string, options *AppServiceCertificateOrdersVerifyDomainOwnershipOptions) (AppServiceCertificateOrdersVerifyDomainOwnershipResponse, error) {
1293	req, err := client.verifyDomainOwnershipCreateRequest(ctx, resourceGroupName, certificateOrderName, options)
1294	if err != nil {
1295		return AppServiceCertificateOrdersVerifyDomainOwnershipResponse{}, err
1296	}
1297	resp, err := client.con.Pipeline().Do(req)
1298	if err != nil {
1299		return AppServiceCertificateOrdersVerifyDomainOwnershipResponse{}, err
1300	}
1301	if !resp.HasStatusCode(http.StatusNoContent) {
1302		return AppServiceCertificateOrdersVerifyDomainOwnershipResponse{}, client.verifyDomainOwnershipHandleError(resp)
1303	}
1304	return AppServiceCertificateOrdersVerifyDomainOwnershipResponse{RawResponse: resp.Response}, nil
1305}
1306
1307// verifyDomainOwnershipCreateRequest creates the VerifyDomainOwnership request.
1308func (client *AppServiceCertificateOrdersClient) verifyDomainOwnershipCreateRequest(ctx context.Context, resourceGroupName string, certificateOrderName string, options *AppServiceCertificateOrdersVerifyDomainOwnershipOptions) (*azcore.Request, error) {
1309	urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CertificateRegistration/certificateOrders/{certificateOrderName}/verifyDomainOwnership"
1310	if resourceGroupName == "" {
1311		return nil, errors.New("parameter resourceGroupName cannot be empty")
1312	}
1313	urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName))
1314	if certificateOrderName == "" {
1315		return nil, errors.New("parameter certificateOrderName cannot be empty")
1316	}
1317	urlPath = strings.ReplaceAll(urlPath, "{certificateOrderName}", url.PathEscape(certificateOrderName))
1318	if client.subscriptionID == "" {
1319		return nil, errors.New("parameter client.subscriptionID cannot be empty")
1320	}
1321	urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID))
1322	req, err := azcore.NewRequest(ctx, http.MethodPost, azcore.JoinPaths(client.con.Endpoint(), urlPath))
1323	if err != nil {
1324		return nil, err
1325	}
1326	req.Telemetry(telemetryInfo)
1327	reqQP := req.URL.Query()
1328	reqQP.Set("api-version", "2021-01-15")
1329	req.URL.RawQuery = reqQP.Encode()
1330	req.Header.Set("Accept", "application/json")
1331	return req, nil
1332}
1333
1334// verifyDomainOwnershipHandleError handles the VerifyDomainOwnership error response.
1335func (client *AppServiceCertificateOrdersClient) verifyDomainOwnershipHandleError(resp *azcore.Response) error {
1336	body, err := resp.Payload()
1337	if err != nil {
1338		return azcore.NewResponseError(err, resp.Response)
1339	}
1340	errType := DefaultErrorResponse{raw: string(body)}
1341	if err := resp.UnmarshalAsJSON(&errType); err != nil {
1342		return azcore.NewResponseError(fmt.Errorf("%s\n%s", string(body), err), resp.Response)
1343	}
1344	return azcore.NewResponseError(&errType, resp.Response)
1345}
1346