1package frontdoor 2 3// Copyright (c) Microsoft Corporation. All rights reserved. 4// Licensed under the MIT License. See License.txt in the project root for license information. 5// 6// Code generated by Microsoft (R) AutoRest Code Generator. 7// Changes may cause incorrect behavior and will be lost if the code is regenerated. 8 9import ( 10 "context" 11 "github.com/Azure/go-autorest/autorest" 12 "github.com/Azure/go-autorest/autorest/azure" 13 "github.com/Azure/go-autorest/autorest/validation" 14 "github.com/Azure/go-autorest/tracing" 15 "net/http" 16) 17 18// FrontDoorsClient is the frontDoor Client 19type FrontDoorsClient struct { 20 BaseClient 21} 22 23// NewFrontDoorsClient creates an instance of the FrontDoorsClient client. 24func NewFrontDoorsClient(subscriptionID string) FrontDoorsClient { 25 return NewFrontDoorsClientWithBaseURI(DefaultBaseURI, subscriptionID) 26} 27 28// NewFrontDoorsClientWithBaseURI creates an instance of the FrontDoorsClient client using a custom endpoint. Use this 29// when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure stack). 30func NewFrontDoorsClientWithBaseURI(baseURI string, subscriptionID string) FrontDoorsClient { 31 return FrontDoorsClient{NewWithBaseURI(baseURI, subscriptionID)} 32} 33 34// CreateOrUpdate creates a new Front Door with a Front Door name under the specified subscription and resource group. 35// Parameters: 36// resourceGroupName - name of the Resource group within the Azure subscription. 37// frontDoorName - name of the Front Door which is globally unique. 38// frontDoorParameters - front Door properties needed to create a new Front Door. 39func (client FrontDoorsClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, frontDoorName string, frontDoorParameters FrontDoor) (result FrontDoorsCreateOrUpdateFutureType, err error) { 40 if tracing.IsEnabled() { 41 ctx = tracing.StartSpan(ctx, fqdn+"/FrontDoorsClient.CreateOrUpdate") 42 defer func() { 43 sc := -1 44 if result.FutureAPI != nil && result.FutureAPI.Response() != nil { 45 sc = result.FutureAPI.Response().StatusCode 46 } 47 tracing.EndSpan(ctx, sc, err) 48 }() 49 } 50 if err := validation.Validate([]validation.Validation{ 51 {TargetValue: resourceGroupName, 52 Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 80, Chain: nil}, 53 {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, 54 {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[a-zA-Z0-9_\-\(\)\.]*[^\.]$`, Chain: nil}}}, 55 {TargetValue: frontDoorName, 56 Constraints: []validation.Constraint{{Target: "frontDoorName", Name: validation.MaxLength, Rule: 64, Chain: nil}, 57 {Target: "frontDoorName", Name: validation.MinLength, Rule: 5, Chain: nil}, 58 {Target: "frontDoorName", Name: validation.Pattern, Rule: `^[a-zA-Z0-9]+([-a-zA-Z0-9]?[a-zA-Z0-9])*$`, Chain: nil}}}}); err != nil { 59 return result, validation.NewError("frontdoor.FrontDoorsClient", "CreateOrUpdate", err.Error()) 60 } 61 62 req, err := client.CreateOrUpdatePreparer(ctx, resourceGroupName, frontDoorName, frontDoorParameters) 63 if err != nil { 64 err = autorest.NewErrorWithError(err, "frontdoor.FrontDoorsClient", "CreateOrUpdate", nil, "Failure preparing request") 65 return 66 } 67 68 result, err = client.CreateOrUpdateSender(req) 69 if err != nil { 70 err = autorest.NewErrorWithError(err, "frontdoor.FrontDoorsClient", "CreateOrUpdate", nil, "Failure sending request") 71 return 72 } 73 74 return 75} 76 77// CreateOrUpdatePreparer prepares the CreateOrUpdate request. 78func (client FrontDoorsClient) CreateOrUpdatePreparer(ctx context.Context, resourceGroupName string, frontDoorName string, frontDoorParameters FrontDoor) (*http.Request, error) { 79 pathParameters := map[string]interface{}{ 80 "frontDoorName": autorest.Encode("path", frontDoorName), 81 "resourceGroupName": autorest.Encode("path", resourceGroupName), 82 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 83 } 84 85 const APIVersion = "2020-04-01" 86 queryParameters := map[string]interface{}{ 87 "api-version": APIVersion, 88 } 89 90 preparer := autorest.CreatePreparer( 91 autorest.AsContentType("application/json; charset=utf-8"), 92 autorest.AsPut(), 93 autorest.WithBaseURL(client.BaseURI), 94 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}", pathParameters), 95 autorest.WithJSON(frontDoorParameters), 96 autorest.WithQueryParameters(queryParameters)) 97 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 98} 99 100// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the 101// http.Response Body if it receives an error. 102func (client FrontDoorsClient) CreateOrUpdateSender(req *http.Request) (future FrontDoorsCreateOrUpdateFutureType, err error) { 103 var resp *http.Response 104 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) 105 if err != nil { 106 return 107 } 108 var azf azure.Future 109 azf, err = azure.NewFutureFromResponse(resp) 110 future.FutureAPI = &azf 111 future.Result = future.result 112 return 113} 114 115// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always 116// closes the http.Response Body. 117func (client FrontDoorsClient) CreateOrUpdateResponder(resp *http.Response) (result FrontDoor, err error) { 118 err = autorest.Respond( 119 resp, 120 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated, http.StatusAccepted), 121 autorest.ByUnmarshallingJSON(&result), 122 autorest.ByClosing()) 123 result.Response = autorest.Response{Response: resp} 124 return 125} 126 127// Delete deletes an existing Front Door with the specified parameters. 128// Parameters: 129// resourceGroupName - name of the Resource group within the Azure subscription. 130// frontDoorName - name of the Front Door which is globally unique. 131func (client FrontDoorsClient) Delete(ctx context.Context, resourceGroupName string, frontDoorName string) (result FrontDoorsDeleteFutureType, err error) { 132 if tracing.IsEnabled() { 133 ctx = tracing.StartSpan(ctx, fqdn+"/FrontDoorsClient.Delete") 134 defer func() { 135 sc := -1 136 if result.FutureAPI != nil && result.FutureAPI.Response() != nil { 137 sc = result.FutureAPI.Response().StatusCode 138 } 139 tracing.EndSpan(ctx, sc, err) 140 }() 141 } 142 if err := validation.Validate([]validation.Validation{ 143 {TargetValue: resourceGroupName, 144 Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 80, Chain: nil}, 145 {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, 146 {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[a-zA-Z0-9_\-\(\)\.]*[^\.]$`, Chain: nil}}}, 147 {TargetValue: frontDoorName, 148 Constraints: []validation.Constraint{{Target: "frontDoorName", Name: validation.MaxLength, Rule: 64, Chain: nil}, 149 {Target: "frontDoorName", Name: validation.MinLength, Rule: 5, Chain: nil}, 150 {Target: "frontDoorName", Name: validation.Pattern, Rule: `^[a-zA-Z0-9]+([-a-zA-Z0-9]?[a-zA-Z0-9])*$`, Chain: nil}}}}); err != nil { 151 return result, validation.NewError("frontdoor.FrontDoorsClient", "Delete", err.Error()) 152 } 153 154 req, err := client.DeletePreparer(ctx, resourceGroupName, frontDoorName) 155 if err != nil { 156 err = autorest.NewErrorWithError(err, "frontdoor.FrontDoorsClient", "Delete", nil, "Failure preparing request") 157 return 158 } 159 160 result, err = client.DeleteSender(req) 161 if err != nil { 162 err = autorest.NewErrorWithError(err, "frontdoor.FrontDoorsClient", "Delete", nil, "Failure sending request") 163 return 164 } 165 166 return 167} 168 169// DeletePreparer prepares the Delete request. 170func (client FrontDoorsClient) DeletePreparer(ctx context.Context, resourceGroupName string, frontDoorName string) (*http.Request, error) { 171 pathParameters := map[string]interface{}{ 172 "frontDoorName": autorest.Encode("path", frontDoorName), 173 "resourceGroupName": autorest.Encode("path", resourceGroupName), 174 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 175 } 176 177 const APIVersion = "2020-04-01" 178 queryParameters := map[string]interface{}{ 179 "api-version": APIVersion, 180 } 181 182 preparer := autorest.CreatePreparer( 183 autorest.AsDelete(), 184 autorest.WithBaseURL(client.BaseURI), 185 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}", pathParameters), 186 autorest.WithQueryParameters(queryParameters)) 187 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 188} 189 190// DeleteSender sends the Delete request. The method will close the 191// http.Response Body if it receives an error. 192func (client FrontDoorsClient) DeleteSender(req *http.Request) (future FrontDoorsDeleteFutureType, err error) { 193 var resp *http.Response 194 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) 195 if err != nil { 196 return 197 } 198 var azf azure.Future 199 azf, err = azure.NewFutureFromResponse(resp) 200 future.FutureAPI = &azf 201 future.Result = future.result 202 return 203} 204 205// DeleteResponder handles the response to the Delete request. The method always 206// closes the http.Response Body. 207func (client FrontDoorsClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { 208 err = autorest.Respond( 209 resp, 210 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent), 211 autorest.ByClosing()) 212 result.Response = resp 213 return 214} 215 216// Get gets a Front Door with the specified Front Door name under the specified subscription and resource group. 217// Parameters: 218// resourceGroupName - name of the Resource group within the Azure subscription. 219// frontDoorName - name of the Front Door which is globally unique. 220func (client FrontDoorsClient) Get(ctx context.Context, resourceGroupName string, frontDoorName string) (result FrontDoor, err error) { 221 if tracing.IsEnabled() { 222 ctx = tracing.StartSpan(ctx, fqdn+"/FrontDoorsClient.Get") 223 defer func() { 224 sc := -1 225 if result.Response.Response != nil { 226 sc = result.Response.Response.StatusCode 227 } 228 tracing.EndSpan(ctx, sc, err) 229 }() 230 } 231 if err := validation.Validate([]validation.Validation{ 232 {TargetValue: resourceGroupName, 233 Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 80, Chain: nil}, 234 {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, 235 {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[a-zA-Z0-9_\-\(\)\.]*[^\.]$`, Chain: nil}}}, 236 {TargetValue: frontDoorName, 237 Constraints: []validation.Constraint{{Target: "frontDoorName", Name: validation.MaxLength, Rule: 64, Chain: nil}, 238 {Target: "frontDoorName", Name: validation.MinLength, Rule: 5, Chain: nil}, 239 {Target: "frontDoorName", Name: validation.Pattern, Rule: `^[a-zA-Z0-9]+([-a-zA-Z0-9]?[a-zA-Z0-9])*$`, Chain: nil}}}}); err != nil { 240 return result, validation.NewError("frontdoor.FrontDoorsClient", "Get", err.Error()) 241 } 242 243 req, err := client.GetPreparer(ctx, resourceGroupName, frontDoorName) 244 if err != nil { 245 err = autorest.NewErrorWithError(err, "frontdoor.FrontDoorsClient", "Get", nil, "Failure preparing request") 246 return 247 } 248 249 resp, err := client.GetSender(req) 250 if err != nil { 251 result.Response = autorest.Response{Response: resp} 252 err = autorest.NewErrorWithError(err, "frontdoor.FrontDoorsClient", "Get", resp, "Failure sending request") 253 return 254 } 255 256 result, err = client.GetResponder(resp) 257 if err != nil { 258 err = autorest.NewErrorWithError(err, "frontdoor.FrontDoorsClient", "Get", resp, "Failure responding to request") 259 return 260 } 261 262 return 263} 264 265// GetPreparer prepares the Get request. 266func (client FrontDoorsClient) GetPreparer(ctx context.Context, resourceGroupName string, frontDoorName string) (*http.Request, error) { 267 pathParameters := map[string]interface{}{ 268 "frontDoorName": autorest.Encode("path", frontDoorName), 269 "resourceGroupName": autorest.Encode("path", resourceGroupName), 270 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 271 } 272 273 const APIVersion = "2020-04-01" 274 queryParameters := map[string]interface{}{ 275 "api-version": APIVersion, 276 } 277 278 preparer := autorest.CreatePreparer( 279 autorest.AsGet(), 280 autorest.WithBaseURL(client.BaseURI), 281 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}", pathParameters), 282 autorest.WithQueryParameters(queryParameters)) 283 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 284} 285 286// GetSender sends the Get request. The method will close the 287// http.Response Body if it receives an error. 288func (client FrontDoorsClient) GetSender(req *http.Request) (*http.Response, error) { 289 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 290} 291 292// GetResponder handles the response to the Get request. The method always 293// closes the http.Response Body. 294func (client FrontDoorsClient) GetResponder(resp *http.Response) (result FrontDoor, err error) { 295 err = autorest.Respond( 296 resp, 297 azure.WithErrorUnlessStatusCode(http.StatusOK), 298 autorest.ByUnmarshallingJSON(&result), 299 autorest.ByClosing()) 300 result.Response = autorest.Response{Response: resp} 301 return 302} 303 304// List lists all of the Front Doors within an Azure subscription. 305func (client FrontDoorsClient) List(ctx context.Context) (result ListResultPage, err error) { 306 if tracing.IsEnabled() { 307 ctx = tracing.StartSpan(ctx, fqdn+"/FrontDoorsClient.List") 308 defer func() { 309 sc := -1 310 if result.lr.Response.Response != nil { 311 sc = result.lr.Response.Response.StatusCode 312 } 313 tracing.EndSpan(ctx, sc, err) 314 }() 315 } 316 result.fn = client.listNextResults 317 req, err := client.ListPreparer(ctx) 318 if err != nil { 319 err = autorest.NewErrorWithError(err, "frontdoor.FrontDoorsClient", "List", nil, "Failure preparing request") 320 return 321 } 322 323 resp, err := client.ListSender(req) 324 if err != nil { 325 result.lr.Response = autorest.Response{Response: resp} 326 err = autorest.NewErrorWithError(err, "frontdoor.FrontDoorsClient", "List", resp, "Failure sending request") 327 return 328 } 329 330 result.lr, err = client.ListResponder(resp) 331 if err != nil { 332 err = autorest.NewErrorWithError(err, "frontdoor.FrontDoorsClient", "List", resp, "Failure responding to request") 333 return 334 } 335 if result.lr.hasNextLink() && result.lr.IsEmpty() { 336 err = result.NextWithContext(ctx) 337 return 338 } 339 340 return 341} 342 343// ListPreparer prepares the List request. 344func (client FrontDoorsClient) ListPreparer(ctx context.Context) (*http.Request, error) { 345 pathParameters := map[string]interface{}{ 346 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 347 } 348 349 const APIVersion = "2020-04-01" 350 queryParameters := map[string]interface{}{ 351 "api-version": APIVersion, 352 } 353 354 preparer := autorest.CreatePreparer( 355 autorest.AsGet(), 356 autorest.WithBaseURL(client.BaseURI), 357 autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.Network/frontDoors", pathParameters), 358 autorest.WithQueryParameters(queryParameters)) 359 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 360} 361 362// ListSender sends the List request. The method will close the 363// http.Response Body if it receives an error. 364func (client FrontDoorsClient) ListSender(req *http.Request) (*http.Response, error) { 365 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 366} 367 368// ListResponder handles the response to the List request. The method always 369// closes the http.Response Body. 370func (client FrontDoorsClient) ListResponder(resp *http.Response) (result ListResult, err error) { 371 err = autorest.Respond( 372 resp, 373 azure.WithErrorUnlessStatusCode(http.StatusOK), 374 autorest.ByUnmarshallingJSON(&result), 375 autorest.ByClosing()) 376 result.Response = autorest.Response{Response: resp} 377 return 378} 379 380// listNextResults retrieves the next set of results, if any. 381func (client FrontDoorsClient) listNextResults(ctx context.Context, lastResults ListResult) (result ListResult, err error) { 382 req, err := lastResults.listResultPreparer(ctx) 383 if err != nil { 384 return result, autorest.NewErrorWithError(err, "frontdoor.FrontDoorsClient", "listNextResults", nil, "Failure preparing next results request") 385 } 386 if req == nil { 387 return 388 } 389 resp, err := client.ListSender(req) 390 if err != nil { 391 result.Response = autorest.Response{Response: resp} 392 return result, autorest.NewErrorWithError(err, "frontdoor.FrontDoorsClient", "listNextResults", resp, "Failure sending next results request") 393 } 394 result, err = client.ListResponder(resp) 395 if err != nil { 396 err = autorest.NewErrorWithError(err, "frontdoor.FrontDoorsClient", "listNextResults", resp, "Failure responding to next results request") 397 } 398 return 399} 400 401// ListComplete enumerates all values, automatically crossing page boundaries as required. 402func (client FrontDoorsClient) ListComplete(ctx context.Context) (result ListResultIterator, err error) { 403 if tracing.IsEnabled() { 404 ctx = tracing.StartSpan(ctx, fqdn+"/FrontDoorsClient.List") 405 defer func() { 406 sc := -1 407 if result.Response().Response.Response != nil { 408 sc = result.page.Response().Response.Response.StatusCode 409 } 410 tracing.EndSpan(ctx, sc, err) 411 }() 412 } 413 result.page, err = client.List(ctx) 414 return 415} 416 417// ListByResourceGroup lists all of the Front Doors within a resource group under a subscription. 418// Parameters: 419// resourceGroupName - name of the Resource group within the Azure subscription. 420func (client FrontDoorsClient) ListByResourceGroup(ctx context.Context, resourceGroupName string) (result ListResultPage, err error) { 421 if tracing.IsEnabled() { 422 ctx = tracing.StartSpan(ctx, fqdn+"/FrontDoorsClient.ListByResourceGroup") 423 defer func() { 424 sc := -1 425 if result.lr.Response.Response != nil { 426 sc = result.lr.Response.Response.StatusCode 427 } 428 tracing.EndSpan(ctx, sc, err) 429 }() 430 } 431 if err := validation.Validate([]validation.Validation{ 432 {TargetValue: resourceGroupName, 433 Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 80, Chain: nil}, 434 {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, 435 {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[a-zA-Z0-9_\-\(\)\.]*[^\.]$`, Chain: nil}}}}); err != nil { 436 return result, validation.NewError("frontdoor.FrontDoorsClient", "ListByResourceGroup", err.Error()) 437 } 438 439 result.fn = client.listByResourceGroupNextResults 440 req, err := client.ListByResourceGroupPreparer(ctx, resourceGroupName) 441 if err != nil { 442 err = autorest.NewErrorWithError(err, "frontdoor.FrontDoorsClient", "ListByResourceGroup", nil, "Failure preparing request") 443 return 444 } 445 446 resp, err := client.ListByResourceGroupSender(req) 447 if err != nil { 448 result.lr.Response = autorest.Response{Response: resp} 449 err = autorest.NewErrorWithError(err, "frontdoor.FrontDoorsClient", "ListByResourceGroup", resp, "Failure sending request") 450 return 451 } 452 453 result.lr, err = client.ListByResourceGroupResponder(resp) 454 if err != nil { 455 err = autorest.NewErrorWithError(err, "frontdoor.FrontDoorsClient", "ListByResourceGroup", resp, "Failure responding to request") 456 return 457 } 458 if result.lr.hasNextLink() && result.lr.IsEmpty() { 459 err = result.NextWithContext(ctx) 460 return 461 } 462 463 return 464} 465 466// ListByResourceGroupPreparer prepares the ListByResourceGroup request. 467func (client FrontDoorsClient) ListByResourceGroupPreparer(ctx context.Context, resourceGroupName string) (*http.Request, error) { 468 pathParameters := map[string]interface{}{ 469 "resourceGroupName": autorest.Encode("path", resourceGroupName), 470 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 471 } 472 473 const APIVersion = "2020-04-01" 474 queryParameters := map[string]interface{}{ 475 "api-version": APIVersion, 476 } 477 478 preparer := autorest.CreatePreparer( 479 autorest.AsGet(), 480 autorest.WithBaseURL(client.BaseURI), 481 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors", pathParameters), 482 autorest.WithQueryParameters(queryParameters)) 483 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 484} 485 486// ListByResourceGroupSender sends the ListByResourceGroup request. The method will close the 487// http.Response Body if it receives an error. 488func (client FrontDoorsClient) ListByResourceGroupSender(req *http.Request) (*http.Response, error) { 489 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 490} 491 492// ListByResourceGroupResponder handles the response to the ListByResourceGroup request. The method always 493// closes the http.Response Body. 494func (client FrontDoorsClient) ListByResourceGroupResponder(resp *http.Response) (result ListResult, err error) { 495 err = autorest.Respond( 496 resp, 497 azure.WithErrorUnlessStatusCode(http.StatusOK), 498 autorest.ByUnmarshallingJSON(&result), 499 autorest.ByClosing()) 500 result.Response = autorest.Response{Response: resp} 501 return 502} 503 504// listByResourceGroupNextResults retrieves the next set of results, if any. 505func (client FrontDoorsClient) listByResourceGroupNextResults(ctx context.Context, lastResults ListResult) (result ListResult, err error) { 506 req, err := lastResults.listResultPreparer(ctx) 507 if err != nil { 508 return result, autorest.NewErrorWithError(err, "frontdoor.FrontDoorsClient", "listByResourceGroupNextResults", nil, "Failure preparing next results request") 509 } 510 if req == nil { 511 return 512 } 513 resp, err := client.ListByResourceGroupSender(req) 514 if err != nil { 515 result.Response = autorest.Response{Response: resp} 516 return result, autorest.NewErrorWithError(err, "frontdoor.FrontDoorsClient", "listByResourceGroupNextResults", resp, "Failure sending next results request") 517 } 518 result, err = client.ListByResourceGroupResponder(resp) 519 if err != nil { 520 err = autorest.NewErrorWithError(err, "frontdoor.FrontDoorsClient", "listByResourceGroupNextResults", resp, "Failure responding to next results request") 521 } 522 return 523} 524 525// ListByResourceGroupComplete enumerates all values, automatically crossing page boundaries as required. 526func (client FrontDoorsClient) ListByResourceGroupComplete(ctx context.Context, resourceGroupName string) (result ListResultIterator, err error) { 527 if tracing.IsEnabled() { 528 ctx = tracing.StartSpan(ctx, fqdn+"/FrontDoorsClient.ListByResourceGroup") 529 defer func() { 530 sc := -1 531 if result.Response().Response.Response != nil { 532 sc = result.page.Response().Response.Response.StatusCode 533 } 534 tracing.EndSpan(ctx, sc, err) 535 }() 536 } 537 result.page, err = client.ListByResourceGroup(ctx, resourceGroupName) 538 return 539} 540 541// ValidateCustomDomain validates the custom domain mapping to ensure it maps to the correct Front Door endpoint in 542// DNS. 543// Parameters: 544// resourceGroupName - name of the Resource group within the Azure subscription. 545// frontDoorName - name of the Front Door which is globally unique. 546// customDomainProperties - custom domain to be validated. 547func (client FrontDoorsClient) ValidateCustomDomain(ctx context.Context, resourceGroupName string, frontDoorName string, customDomainProperties ValidateCustomDomainInput) (result ValidateCustomDomainOutput, err error) { 548 if tracing.IsEnabled() { 549 ctx = tracing.StartSpan(ctx, fqdn+"/FrontDoorsClient.ValidateCustomDomain") 550 defer func() { 551 sc := -1 552 if result.Response.Response != nil { 553 sc = result.Response.Response.StatusCode 554 } 555 tracing.EndSpan(ctx, sc, err) 556 }() 557 } 558 if err := validation.Validate([]validation.Validation{ 559 {TargetValue: resourceGroupName, 560 Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 80, Chain: nil}, 561 {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}, 562 {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[a-zA-Z0-9_\-\(\)\.]*[^\.]$`, Chain: nil}}}, 563 {TargetValue: frontDoorName, 564 Constraints: []validation.Constraint{{Target: "frontDoorName", Name: validation.MaxLength, Rule: 64, Chain: nil}, 565 {Target: "frontDoorName", Name: validation.MinLength, Rule: 5, Chain: nil}, 566 {Target: "frontDoorName", Name: validation.Pattern, Rule: `^[a-zA-Z0-9]+([-a-zA-Z0-9]?[a-zA-Z0-9])*$`, Chain: nil}}}, 567 {TargetValue: customDomainProperties, 568 Constraints: []validation.Constraint{{Target: "customDomainProperties.HostName", Name: validation.Null, Rule: true, Chain: nil}}}}); err != nil { 569 return result, validation.NewError("frontdoor.FrontDoorsClient", "ValidateCustomDomain", err.Error()) 570 } 571 572 req, err := client.ValidateCustomDomainPreparer(ctx, resourceGroupName, frontDoorName, customDomainProperties) 573 if err != nil { 574 err = autorest.NewErrorWithError(err, "frontdoor.FrontDoorsClient", "ValidateCustomDomain", nil, "Failure preparing request") 575 return 576 } 577 578 resp, err := client.ValidateCustomDomainSender(req) 579 if err != nil { 580 result.Response = autorest.Response{Response: resp} 581 err = autorest.NewErrorWithError(err, "frontdoor.FrontDoorsClient", "ValidateCustomDomain", resp, "Failure sending request") 582 return 583 } 584 585 result, err = client.ValidateCustomDomainResponder(resp) 586 if err != nil { 587 err = autorest.NewErrorWithError(err, "frontdoor.FrontDoorsClient", "ValidateCustomDomain", resp, "Failure responding to request") 588 return 589 } 590 591 return 592} 593 594// ValidateCustomDomainPreparer prepares the ValidateCustomDomain request. 595func (client FrontDoorsClient) ValidateCustomDomainPreparer(ctx context.Context, resourceGroupName string, frontDoorName string, customDomainProperties ValidateCustomDomainInput) (*http.Request, error) { 596 pathParameters := map[string]interface{}{ 597 "frontDoorName": autorest.Encode("path", frontDoorName), 598 "resourceGroupName": autorest.Encode("path", resourceGroupName), 599 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 600 } 601 602 const APIVersion = "2020-04-01" 603 queryParameters := map[string]interface{}{ 604 "api-version": APIVersion, 605 } 606 607 preparer := autorest.CreatePreparer( 608 autorest.AsContentType("application/json; charset=utf-8"), 609 autorest.AsPost(), 610 autorest.WithBaseURL(client.BaseURI), 611 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/frontDoors/{frontDoorName}/validateCustomDomain", pathParameters), 612 autorest.WithJSON(customDomainProperties), 613 autorest.WithQueryParameters(queryParameters)) 614 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 615} 616 617// ValidateCustomDomainSender sends the ValidateCustomDomain request. The method will close the 618// http.Response Body if it receives an error. 619func (client FrontDoorsClient) ValidateCustomDomainSender(req *http.Request) (*http.Response, error) { 620 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 621} 622 623// ValidateCustomDomainResponder handles the response to the ValidateCustomDomain request. The method always 624// closes the http.Response Body. 625func (client FrontDoorsClient) ValidateCustomDomainResponder(resp *http.Response) (result ValidateCustomDomainOutput, err error) { 626 err = autorest.Respond( 627 resp, 628 azure.WithErrorUnlessStatusCode(http.StatusOK), 629 autorest.ByUnmarshallingJSON(&result), 630 autorest.ByClosing()) 631 result.Response = autorest.Response{Response: resp} 632 return 633} 634