1package web
2
3// Copyright (c) Microsoft and contributors.  All rights reserved.
4//
5// Licensed under the Apache License, Version 2.0 (the "License");
6// you may not use this file except in compliance with the License.
7// You may obtain a copy of the License at
8// http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13//
14// See the License for the specific language governing permissions and
15// limitations under the License.
16//
17// Code generated by Microsoft (R) AutoRest Code Generator.
18// Changes may cause incorrect behavior and will be lost if the code is regenerated.
19
20import (
21	"context"
22	"github.com/Azure/go-autorest/autorest"
23	"github.com/Azure/go-autorest/autorest/azure"
24	"github.com/Azure/go-autorest/tracing"
25	"net/http"
26)
27
28// DomainsClient is the webSite Management Client
29type DomainsClient struct {
30	BaseClient
31}
32
33// NewDomainsClient creates an instance of the DomainsClient client.
34func NewDomainsClient(subscriptionID string) DomainsClient {
35	return NewDomainsClientWithBaseURI(DefaultBaseURI, subscriptionID)
36}
37
38// NewDomainsClientWithBaseURI creates an instance of the DomainsClient client.
39func NewDomainsClientWithBaseURI(baseURI string, subscriptionID string) DomainsClient {
40	return DomainsClient{NewWithBaseURI(baseURI, subscriptionID)}
41}
42
43// CreateOrUpdateDomain sends the create or update domain request.
44// Parameters:
45// resourceGroupName - >Name of the resource group
46// domainName - name of the domain
47// domain - domain registration information
48func (client DomainsClient) CreateOrUpdateDomain(ctx context.Context, resourceGroupName string, domainName string, domain Domain) (result Domain, err error) {
49	if tracing.IsEnabled() {
50		ctx = tracing.StartSpan(ctx, fqdn+"/DomainsClient.CreateOrUpdateDomain")
51		defer func() {
52			sc := -1
53			if result.Response.Response != nil {
54				sc = result.Response.Response.StatusCode
55			}
56			tracing.EndSpan(ctx, sc, err)
57		}()
58	}
59	req, err := client.CreateOrUpdateDomainPreparer(ctx, resourceGroupName, domainName, domain)
60	if err != nil {
61		err = autorest.NewErrorWithError(err, "web.DomainsClient", "CreateOrUpdateDomain", nil, "Failure preparing request")
62		return
63	}
64
65	resp, err := client.CreateOrUpdateDomainSender(req)
66	if err != nil {
67		result.Response = autorest.Response{Response: resp}
68		err = autorest.NewErrorWithError(err, "web.DomainsClient", "CreateOrUpdateDomain", resp, "Failure sending request")
69		return
70	}
71
72	result, err = client.CreateOrUpdateDomainResponder(resp)
73	if err != nil {
74		err = autorest.NewErrorWithError(err, "web.DomainsClient", "CreateOrUpdateDomain", resp, "Failure responding to request")
75	}
76
77	return
78}
79
80// CreateOrUpdateDomainPreparer prepares the CreateOrUpdateDomain request.
81func (client DomainsClient) CreateOrUpdateDomainPreparer(ctx context.Context, resourceGroupName string, domainName string, domain Domain) (*http.Request, error) {
82	pathParameters := map[string]interface{}{
83		"domainName":        autorest.Encode("path", domainName),
84		"resourceGroupName": autorest.Encode("path", resourceGroupName),
85		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
86	}
87
88	const APIVersion = "2015-08-01"
89	queryParameters := map[string]interface{}{
90		"api-version": APIVersion,
91	}
92
93	preparer := autorest.CreatePreparer(
94		autorest.AsContentType("application/json; charset=utf-8"),
95		autorest.AsPut(),
96		autorest.WithBaseURL(client.BaseURI),
97		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DomainRegistration/domains/{domainName}", pathParameters),
98		autorest.WithJSON(domain),
99		autorest.WithQueryParameters(queryParameters))
100	return preparer.Prepare((&http.Request{}).WithContext(ctx))
101}
102
103// CreateOrUpdateDomainSender sends the CreateOrUpdateDomain request. The method will close the
104// http.Response Body if it receives an error.
105func (client DomainsClient) CreateOrUpdateDomainSender(req *http.Request) (*http.Response, error) {
106	sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client))
107	return autorest.SendWithSender(client, req, sd...)
108}
109
110// CreateOrUpdateDomainResponder handles the response to the CreateOrUpdateDomain request. The method always
111// closes the http.Response Body.
112func (client DomainsClient) CreateOrUpdateDomainResponder(resp *http.Response) (result Domain, err error) {
113	err = autorest.Respond(
114		resp,
115		client.ByInspecting(),
116		azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted),
117		autorest.ByUnmarshallingJSON(&result),
118		autorest.ByClosing())
119	result.Response = autorest.Response{Response: resp}
120	return
121}
122
123// DeleteDomain sends the delete domain request.
124// Parameters:
125// resourceGroupName - name of the resource group
126// domainName - name of the domain
127// forceHardDeleteDomain - if true then the domain will be deleted immediately instead of after 24 hours
128func (client DomainsClient) DeleteDomain(ctx context.Context, resourceGroupName string, domainName string, forceHardDeleteDomain *bool) (result SetObject, err error) {
129	if tracing.IsEnabled() {
130		ctx = tracing.StartSpan(ctx, fqdn+"/DomainsClient.DeleteDomain")
131		defer func() {
132			sc := -1
133			if result.Response.Response != nil {
134				sc = result.Response.Response.StatusCode
135			}
136			tracing.EndSpan(ctx, sc, err)
137		}()
138	}
139	req, err := client.DeleteDomainPreparer(ctx, resourceGroupName, domainName, forceHardDeleteDomain)
140	if err != nil {
141		err = autorest.NewErrorWithError(err, "web.DomainsClient", "DeleteDomain", nil, "Failure preparing request")
142		return
143	}
144
145	resp, err := client.DeleteDomainSender(req)
146	if err != nil {
147		result.Response = autorest.Response{Response: resp}
148		err = autorest.NewErrorWithError(err, "web.DomainsClient", "DeleteDomain", resp, "Failure sending request")
149		return
150	}
151
152	result, err = client.DeleteDomainResponder(resp)
153	if err != nil {
154		err = autorest.NewErrorWithError(err, "web.DomainsClient", "DeleteDomain", resp, "Failure responding to request")
155	}
156
157	return
158}
159
160// DeleteDomainPreparer prepares the DeleteDomain request.
161func (client DomainsClient) DeleteDomainPreparer(ctx context.Context, resourceGroupName string, domainName string, forceHardDeleteDomain *bool) (*http.Request, error) {
162	pathParameters := map[string]interface{}{
163		"domainName":        autorest.Encode("path", domainName),
164		"resourceGroupName": autorest.Encode("path", resourceGroupName),
165		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
166	}
167
168	const APIVersion = "2015-08-01"
169	queryParameters := map[string]interface{}{
170		"api-version": APIVersion,
171	}
172	if forceHardDeleteDomain != nil {
173		queryParameters["forceHardDeleteDomain"] = autorest.Encode("query", *forceHardDeleteDomain)
174	}
175
176	preparer := autorest.CreatePreparer(
177		autorest.AsDelete(),
178		autorest.WithBaseURL(client.BaseURI),
179		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DomainRegistration/domains/{domainName}", pathParameters),
180		autorest.WithQueryParameters(queryParameters))
181	return preparer.Prepare((&http.Request{}).WithContext(ctx))
182}
183
184// DeleteDomainSender sends the DeleteDomain request. The method will close the
185// http.Response Body if it receives an error.
186func (client DomainsClient) DeleteDomainSender(req *http.Request) (*http.Response, error) {
187	sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client))
188	return autorest.SendWithSender(client, req, sd...)
189}
190
191// DeleteDomainResponder handles the response to the DeleteDomain request. The method always
192// closes the http.Response Body.
193func (client DomainsClient) DeleteDomainResponder(resp *http.Response) (result SetObject, err error) {
194	err = autorest.Respond(
195		resp,
196		client.ByInspecting(),
197		azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent),
198		autorest.ByUnmarshallingJSON(&result.Value),
199		autorest.ByClosing())
200	result.Response = autorest.Response{Response: resp}
201	return
202}
203
204// GetDomain sends the get domain request.
205// Parameters:
206// resourceGroupName - name of the resource group
207// domainName - name of the domain
208func (client DomainsClient) GetDomain(ctx context.Context, resourceGroupName string, domainName string) (result Domain, err error) {
209	if tracing.IsEnabled() {
210		ctx = tracing.StartSpan(ctx, fqdn+"/DomainsClient.GetDomain")
211		defer func() {
212			sc := -1
213			if result.Response.Response != nil {
214				sc = result.Response.Response.StatusCode
215			}
216			tracing.EndSpan(ctx, sc, err)
217		}()
218	}
219	req, err := client.GetDomainPreparer(ctx, resourceGroupName, domainName)
220	if err != nil {
221		err = autorest.NewErrorWithError(err, "web.DomainsClient", "GetDomain", nil, "Failure preparing request")
222		return
223	}
224
225	resp, err := client.GetDomainSender(req)
226	if err != nil {
227		result.Response = autorest.Response{Response: resp}
228		err = autorest.NewErrorWithError(err, "web.DomainsClient", "GetDomain", resp, "Failure sending request")
229		return
230	}
231
232	result, err = client.GetDomainResponder(resp)
233	if err != nil {
234		err = autorest.NewErrorWithError(err, "web.DomainsClient", "GetDomain", resp, "Failure responding to request")
235	}
236
237	return
238}
239
240// GetDomainPreparer prepares the GetDomain request.
241func (client DomainsClient) GetDomainPreparer(ctx context.Context, resourceGroupName string, domainName string) (*http.Request, error) {
242	pathParameters := map[string]interface{}{
243		"domainName":        autorest.Encode("path", domainName),
244		"resourceGroupName": autorest.Encode("path", resourceGroupName),
245		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
246	}
247
248	const APIVersion = "2015-08-01"
249	queryParameters := map[string]interface{}{
250		"api-version": APIVersion,
251	}
252
253	preparer := autorest.CreatePreparer(
254		autorest.AsGet(),
255		autorest.WithBaseURL(client.BaseURI),
256		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DomainRegistration/domains/{domainName}", pathParameters),
257		autorest.WithQueryParameters(queryParameters))
258	return preparer.Prepare((&http.Request{}).WithContext(ctx))
259}
260
261// GetDomainSender sends the GetDomain request. The method will close the
262// http.Response Body if it receives an error.
263func (client DomainsClient) GetDomainSender(req *http.Request) (*http.Response, error) {
264	sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client))
265	return autorest.SendWithSender(client, req, sd...)
266}
267
268// GetDomainResponder handles the response to the GetDomain request. The method always
269// closes the http.Response Body.
270func (client DomainsClient) GetDomainResponder(resp *http.Response) (result Domain, err error) {
271	err = autorest.Respond(
272		resp,
273		client.ByInspecting(),
274		azure.WithErrorUnlessStatusCode(http.StatusOK),
275		autorest.ByUnmarshallingJSON(&result),
276		autorest.ByClosing())
277	result.Response = autorest.Response{Response: resp}
278	return
279}
280
281// GetDomainOperation sends the get domain operation request.
282// Parameters:
283// resourceGroupName - name of the resource group
284// domainName - name of the domain
285// operationID - domain purchase operation Id
286func (client DomainsClient) GetDomainOperation(ctx context.Context, resourceGroupName string, domainName string, operationID string) (result Domain, err error) {
287	if tracing.IsEnabled() {
288		ctx = tracing.StartSpan(ctx, fqdn+"/DomainsClient.GetDomainOperation")
289		defer func() {
290			sc := -1
291			if result.Response.Response != nil {
292				sc = result.Response.Response.StatusCode
293			}
294			tracing.EndSpan(ctx, sc, err)
295		}()
296	}
297	req, err := client.GetDomainOperationPreparer(ctx, resourceGroupName, domainName, operationID)
298	if err != nil {
299		err = autorest.NewErrorWithError(err, "web.DomainsClient", "GetDomainOperation", nil, "Failure preparing request")
300		return
301	}
302
303	resp, err := client.GetDomainOperationSender(req)
304	if err != nil {
305		result.Response = autorest.Response{Response: resp}
306		err = autorest.NewErrorWithError(err, "web.DomainsClient", "GetDomainOperation", resp, "Failure sending request")
307		return
308	}
309
310	result, err = client.GetDomainOperationResponder(resp)
311	if err != nil {
312		err = autorest.NewErrorWithError(err, "web.DomainsClient", "GetDomainOperation", resp, "Failure responding to request")
313	}
314
315	return
316}
317
318// GetDomainOperationPreparer prepares the GetDomainOperation request.
319func (client DomainsClient) GetDomainOperationPreparer(ctx context.Context, resourceGroupName string, domainName string, operationID string) (*http.Request, error) {
320	pathParameters := map[string]interface{}{
321		"domainName":        autorest.Encode("path", domainName),
322		"operationId":       autorest.Encode("path", operationID),
323		"resourceGroupName": autorest.Encode("path", resourceGroupName),
324		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
325	}
326
327	const APIVersion = "2015-08-01"
328	queryParameters := map[string]interface{}{
329		"api-version": APIVersion,
330	}
331
332	preparer := autorest.CreatePreparer(
333		autorest.AsGet(),
334		autorest.WithBaseURL(client.BaseURI),
335		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DomainRegistration/domains/{domainName}/operationresults/{operationId}", pathParameters),
336		autorest.WithQueryParameters(queryParameters))
337	return preparer.Prepare((&http.Request{}).WithContext(ctx))
338}
339
340// GetDomainOperationSender sends the GetDomainOperation request. The method will close the
341// http.Response Body if it receives an error.
342func (client DomainsClient) GetDomainOperationSender(req *http.Request) (*http.Response, error) {
343	sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client))
344	return autorest.SendWithSender(client, req, sd...)
345}
346
347// GetDomainOperationResponder handles the response to the GetDomainOperation request. The method always
348// closes the http.Response Body.
349func (client DomainsClient) GetDomainOperationResponder(resp *http.Response) (result Domain, err error) {
350	err = autorest.Respond(
351		resp,
352		client.ByInspecting(),
353		azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusInternalServerError),
354		autorest.ByUnmarshallingJSON(&result),
355		autorest.ByClosing())
356	result.Response = autorest.Response{Response: resp}
357	return
358}
359
360// GetDomains sends the get domains request.
361// Parameters:
362// resourceGroupName - name of the resource group
363func (client DomainsClient) GetDomains(ctx context.Context, resourceGroupName string) (result DomainCollectionPage, err error) {
364	if tracing.IsEnabled() {
365		ctx = tracing.StartSpan(ctx, fqdn+"/DomainsClient.GetDomains")
366		defer func() {
367			sc := -1
368			if result.dc.Response.Response != nil {
369				sc = result.dc.Response.Response.StatusCode
370			}
371			tracing.EndSpan(ctx, sc, err)
372		}()
373	}
374	result.fn = client.getDomainsNextResults
375	req, err := client.GetDomainsPreparer(ctx, resourceGroupName)
376	if err != nil {
377		err = autorest.NewErrorWithError(err, "web.DomainsClient", "GetDomains", nil, "Failure preparing request")
378		return
379	}
380
381	resp, err := client.GetDomainsSender(req)
382	if err != nil {
383		result.dc.Response = autorest.Response{Response: resp}
384		err = autorest.NewErrorWithError(err, "web.DomainsClient", "GetDomains", resp, "Failure sending request")
385		return
386	}
387
388	result.dc, err = client.GetDomainsResponder(resp)
389	if err != nil {
390		err = autorest.NewErrorWithError(err, "web.DomainsClient", "GetDomains", resp, "Failure responding to request")
391	}
392
393	return
394}
395
396// GetDomainsPreparer prepares the GetDomains request.
397func (client DomainsClient) GetDomainsPreparer(ctx context.Context, resourceGroupName string) (*http.Request, error) {
398	pathParameters := map[string]interface{}{
399		"resourceGroupName": autorest.Encode("path", resourceGroupName),
400		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
401	}
402
403	const APIVersion = "2015-08-01"
404	queryParameters := map[string]interface{}{
405		"api-version": APIVersion,
406	}
407
408	preparer := autorest.CreatePreparer(
409		autorest.AsGet(),
410		autorest.WithBaseURL(client.BaseURI),
411		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DomainRegistration/domains", pathParameters),
412		autorest.WithQueryParameters(queryParameters))
413	return preparer.Prepare((&http.Request{}).WithContext(ctx))
414}
415
416// GetDomainsSender sends the GetDomains request. The method will close the
417// http.Response Body if it receives an error.
418func (client DomainsClient) GetDomainsSender(req *http.Request) (*http.Response, error) {
419	sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client))
420	return autorest.SendWithSender(client, req, sd...)
421}
422
423// GetDomainsResponder handles the response to the GetDomains request. The method always
424// closes the http.Response Body.
425func (client DomainsClient) GetDomainsResponder(resp *http.Response) (result DomainCollection, err error) {
426	err = autorest.Respond(
427		resp,
428		client.ByInspecting(),
429		azure.WithErrorUnlessStatusCode(http.StatusOK),
430		autorest.ByUnmarshallingJSON(&result),
431		autorest.ByClosing())
432	result.Response = autorest.Response{Response: resp}
433	return
434}
435
436// getDomainsNextResults retrieves the next set of results, if any.
437func (client DomainsClient) getDomainsNextResults(ctx context.Context, lastResults DomainCollection) (result DomainCollection, err error) {
438	req, err := lastResults.domainCollectionPreparer(ctx)
439	if err != nil {
440		return result, autorest.NewErrorWithError(err, "web.DomainsClient", "getDomainsNextResults", nil, "Failure preparing next results request")
441	}
442	if req == nil {
443		return
444	}
445	resp, err := client.GetDomainsSender(req)
446	if err != nil {
447		result.Response = autorest.Response{Response: resp}
448		return result, autorest.NewErrorWithError(err, "web.DomainsClient", "getDomainsNextResults", resp, "Failure sending next results request")
449	}
450	result, err = client.GetDomainsResponder(resp)
451	if err != nil {
452		err = autorest.NewErrorWithError(err, "web.DomainsClient", "getDomainsNextResults", resp, "Failure responding to next results request")
453	}
454	return
455}
456
457// GetDomainsComplete enumerates all values, automatically crossing page boundaries as required.
458func (client DomainsClient) GetDomainsComplete(ctx context.Context, resourceGroupName string) (result DomainCollectionIterator, err error) {
459	if tracing.IsEnabled() {
460		ctx = tracing.StartSpan(ctx, fqdn+"/DomainsClient.GetDomains")
461		defer func() {
462			sc := -1
463			if result.Response().Response.Response != nil {
464				sc = result.page.Response().Response.Response.StatusCode
465			}
466			tracing.EndSpan(ctx, sc, err)
467		}()
468	}
469	result.page, err = client.GetDomains(ctx, resourceGroupName)
470	return
471}
472
473// UpdateDomain sends the update domain request.
474// Parameters:
475// resourceGroupName - >Name of the resource group
476// domainName - name of the domain
477// domain - domain registration information
478func (client DomainsClient) UpdateDomain(ctx context.Context, resourceGroupName string, domainName string, domain Domain) (result Domain, err error) {
479	if tracing.IsEnabled() {
480		ctx = tracing.StartSpan(ctx, fqdn+"/DomainsClient.UpdateDomain")
481		defer func() {
482			sc := -1
483			if result.Response.Response != nil {
484				sc = result.Response.Response.StatusCode
485			}
486			tracing.EndSpan(ctx, sc, err)
487		}()
488	}
489	req, err := client.UpdateDomainPreparer(ctx, resourceGroupName, domainName, domain)
490	if err != nil {
491		err = autorest.NewErrorWithError(err, "web.DomainsClient", "UpdateDomain", nil, "Failure preparing request")
492		return
493	}
494
495	resp, err := client.UpdateDomainSender(req)
496	if err != nil {
497		result.Response = autorest.Response{Response: resp}
498		err = autorest.NewErrorWithError(err, "web.DomainsClient", "UpdateDomain", resp, "Failure sending request")
499		return
500	}
501
502	result, err = client.UpdateDomainResponder(resp)
503	if err != nil {
504		err = autorest.NewErrorWithError(err, "web.DomainsClient", "UpdateDomain", resp, "Failure responding to request")
505	}
506
507	return
508}
509
510// UpdateDomainPreparer prepares the UpdateDomain request.
511func (client DomainsClient) UpdateDomainPreparer(ctx context.Context, resourceGroupName string, domainName string, domain Domain) (*http.Request, error) {
512	pathParameters := map[string]interface{}{
513		"domainName":        autorest.Encode("path", domainName),
514		"resourceGroupName": autorest.Encode("path", resourceGroupName),
515		"subscriptionId":    autorest.Encode("path", client.SubscriptionID),
516	}
517
518	const APIVersion = "2015-08-01"
519	queryParameters := map[string]interface{}{
520		"api-version": APIVersion,
521	}
522
523	preparer := autorest.CreatePreparer(
524		autorest.AsContentType("application/json; charset=utf-8"),
525		autorest.AsPatch(),
526		autorest.WithBaseURL(client.BaseURI),
527		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DomainRegistration/domains/{domainName}", pathParameters),
528		autorest.WithJSON(domain),
529		autorest.WithQueryParameters(queryParameters))
530	return preparer.Prepare((&http.Request{}).WithContext(ctx))
531}
532
533// UpdateDomainSender sends the UpdateDomain request. The method will close the
534// http.Response Body if it receives an error.
535func (client DomainsClient) UpdateDomainSender(req *http.Request) (*http.Response, error) {
536	sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client))
537	return autorest.SendWithSender(client, req, sd...)
538}
539
540// UpdateDomainResponder handles the response to the UpdateDomain request. The method always
541// closes the http.Response Body.
542func (client DomainsClient) UpdateDomainResponder(resp *http.Response) (result Domain, err error) {
543	err = autorest.Respond(
544		resp,
545		client.ByInspecting(),
546		azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted),
547		autorest.ByUnmarshallingJSON(&result),
548		autorest.ByClosing())
549	result.Response = autorest.Response{Response: resp}
550	return
551}
552