1package apimanagement 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// EmailTemplateClient is the apiManagement Client 19type EmailTemplateClient struct { 20 BaseClient 21} 22 23// NewEmailTemplateClient creates an instance of the EmailTemplateClient client. 24func NewEmailTemplateClient(subscriptionID string) EmailTemplateClient { 25 return NewEmailTemplateClientWithBaseURI(DefaultBaseURI, subscriptionID) 26} 27 28// NewEmailTemplateClientWithBaseURI creates an instance of the EmailTemplateClient client using a custom endpoint. 29// Use this when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure stack). 30func NewEmailTemplateClientWithBaseURI(baseURI string, subscriptionID string) EmailTemplateClient { 31 return EmailTemplateClient{NewWithBaseURI(baseURI, subscriptionID)} 32} 33 34// CreateOrUpdate updates an Email Template. 35// Parameters: 36// resourceGroupName - the name of the resource group. 37// serviceName - the name of the API Management service. 38// templateName - email Template Name Identifier. 39// parameters - email Template update parameters. 40// ifMatch - eTag of the Entity. Not required when creating an entity, but required when updating an entity. 41func (client EmailTemplateClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, serviceName string, templateName TemplateName, parameters EmailTemplateUpdateParameters, ifMatch string) (result EmailTemplateContract, err error) { 42 if tracing.IsEnabled() { 43 ctx = tracing.StartSpan(ctx, fqdn+"/EmailTemplateClient.CreateOrUpdate") 44 defer func() { 45 sc := -1 46 if result.Response.Response != nil { 47 sc = result.Response.Response.StatusCode 48 } 49 tracing.EndSpan(ctx, sc, err) 50 }() 51 } 52 if err := validation.Validate([]validation.Validation{ 53 {TargetValue: serviceName, 54 Constraints: []validation.Constraint{{Target: "serviceName", Name: validation.MaxLength, Rule: 50, Chain: nil}, 55 {Target: "serviceName", Name: validation.MinLength, Rule: 1, Chain: nil}, 56 {Target: "serviceName", Name: validation.Pattern, Rule: `^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$`, Chain: nil}}}, 57 {TargetValue: parameters, 58 Constraints: []validation.Constraint{{Target: "parameters.EmailTemplateUpdateParameterProperties", Name: validation.Null, Rule: false, 59 Chain: []validation.Constraint{{Target: "parameters.EmailTemplateUpdateParameterProperties.Subject", Name: validation.Null, Rule: false, 60 Chain: []validation.Constraint{{Target: "parameters.EmailTemplateUpdateParameterProperties.Subject", Name: validation.MaxLength, Rule: 1000, Chain: nil}, 61 {Target: "parameters.EmailTemplateUpdateParameterProperties.Subject", Name: validation.MinLength, Rule: 1, Chain: nil}, 62 }}, 63 {Target: "parameters.EmailTemplateUpdateParameterProperties.Body", Name: validation.Null, Rule: false, 64 Chain: []validation.Constraint{{Target: "parameters.EmailTemplateUpdateParameterProperties.Body", Name: validation.MinLength, Rule: 1, Chain: nil}}}, 65 }}}}}); err != nil { 66 return result, validation.NewError("apimanagement.EmailTemplateClient", "CreateOrUpdate", err.Error()) 67 } 68 69 req, err := client.CreateOrUpdatePreparer(ctx, resourceGroupName, serviceName, templateName, parameters, ifMatch) 70 if err != nil { 71 err = autorest.NewErrorWithError(err, "apimanagement.EmailTemplateClient", "CreateOrUpdate", nil, "Failure preparing request") 72 return 73 } 74 75 resp, err := client.CreateOrUpdateSender(req) 76 if err != nil { 77 result.Response = autorest.Response{Response: resp} 78 err = autorest.NewErrorWithError(err, "apimanagement.EmailTemplateClient", "CreateOrUpdate", resp, "Failure sending request") 79 return 80 } 81 82 result, err = client.CreateOrUpdateResponder(resp) 83 if err != nil { 84 err = autorest.NewErrorWithError(err, "apimanagement.EmailTemplateClient", "CreateOrUpdate", resp, "Failure responding to request") 85 return 86 } 87 88 return 89} 90 91// CreateOrUpdatePreparer prepares the CreateOrUpdate request. 92func (client EmailTemplateClient) CreateOrUpdatePreparer(ctx context.Context, resourceGroupName string, serviceName string, templateName TemplateName, parameters EmailTemplateUpdateParameters, ifMatch string) (*http.Request, error) { 93 pathParameters := map[string]interface{}{ 94 "resourceGroupName": autorest.Encode("path", resourceGroupName), 95 "serviceName": autorest.Encode("path", serviceName), 96 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 97 "templateName": autorest.Encode("path", templateName), 98 } 99 100 const APIVersion = "2020-12-01" 101 queryParameters := map[string]interface{}{ 102 "api-version": APIVersion, 103 } 104 105 preparer := autorest.CreatePreparer( 106 autorest.AsContentType("application/json; charset=utf-8"), 107 autorest.AsPut(), 108 autorest.WithBaseURL(client.BaseURI), 109 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/templates/{templateName}", pathParameters), 110 autorest.WithJSON(parameters), 111 autorest.WithQueryParameters(queryParameters)) 112 if len(ifMatch) > 0 { 113 preparer = autorest.DecoratePreparer(preparer, 114 autorest.WithHeader("If-Match", autorest.String(ifMatch))) 115 } 116 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 117} 118 119// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the 120// http.Response Body if it receives an error. 121func (client EmailTemplateClient) CreateOrUpdateSender(req *http.Request) (*http.Response, error) { 122 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 123} 124 125// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always 126// closes the http.Response Body. 127func (client EmailTemplateClient) CreateOrUpdateResponder(resp *http.Response) (result EmailTemplateContract, err error) { 128 err = autorest.Respond( 129 resp, 130 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated), 131 autorest.ByUnmarshallingJSON(&result), 132 autorest.ByClosing()) 133 result.Response = autorest.Response{Response: resp} 134 return 135} 136 137// Delete reset the Email Template to default template provided by the API Management service instance. 138// Parameters: 139// resourceGroupName - the name of the resource group. 140// serviceName - the name of the API Management service. 141// templateName - email Template Name Identifier. 142// ifMatch - eTag of the Entity. ETag should match the current entity state from the header response of the GET 143// request or it should be * for unconditional update. 144func (client EmailTemplateClient) Delete(ctx context.Context, resourceGroupName string, serviceName string, templateName TemplateName, ifMatch string) (result autorest.Response, err error) { 145 if tracing.IsEnabled() { 146 ctx = tracing.StartSpan(ctx, fqdn+"/EmailTemplateClient.Delete") 147 defer func() { 148 sc := -1 149 if result.Response != nil { 150 sc = result.Response.StatusCode 151 } 152 tracing.EndSpan(ctx, sc, err) 153 }() 154 } 155 if err := validation.Validate([]validation.Validation{ 156 {TargetValue: serviceName, 157 Constraints: []validation.Constraint{{Target: "serviceName", Name: validation.MaxLength, Rule: 50, Chain: nil}, 158 {Target: "serviceName", Name: validation.MinLength, Rule: 1, Chain: nil}, 159 {Target: "serviceName", Name: validation.Pattern, Rule: `^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$`, Chain: nil}}}}); err != nil { 160 return result, validation.NewError("apimanagement.EmailTemplateClient", "Delete", err.Error()) 161 } 162 163 req, err := client.DeletePreparer(ctx, resourceGroupName, serviceName, templateName, ifMatch) 164 if err != nil { 165 err = autorest.NewErrorWithError(err, "apimanagement.EmailTemplateClient", "Delete", nil, "Failure preparing request") 166 return 167 } 168 169 resp, err := client.DeleteSender(req) 170 if err != nil { 171 result.Response = resp 172 err = autorest.NewErrorWithError(err, "apimanagement.EmailTemplateClient", "Delete", resp, "Failure sending request") 173 return 174 } 175 176 result, err = client.DeleteResponder(resp) 177 if err != nil { 178 err = autorest.NewErrorWithError(err, "apimanagement.EmailTemplateClient", "Delete", resp, "Failure responding to request") 179 return 180 } 181 182 return 183} 184 185// DeletePreparer prepares the Delete request. 186func (client EmailTemplateClient) DeletePreparer(ctx context.Context, resourceGroupName string, serviceName string, templateName TemplateName, ifMatch string) (*http.Request, error) { 187 pathParameters := map[string]interface{}{ 188 "resourceGroupName": autorest.Encode("path", resourceGroupName), 189 "serviceName": autorest.Encode("path", serviceName), 190 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 191 "templateName": autorest.Encode("path", templateName), 192 } 193 194 const APIVersion = "2020-12-01" 195 queryParameters := map[string]interface{}{ 196 "api-version": APIVersion, 197 } 198 199 preparer := autorest.CreatePreparer( 200 autorest.AsDelete(), 201 autorest.WithBaseURL(client.BaseURI), 202 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/templates/{templateName}", pathParameters), 203 autorest.WithQueryParameters(queryParameters), 204 autorest.WithHeader("If-Match", autorest.String(ifMatch))) 205 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 206} 207 208// DeleteSender sends the Delete request. The method will close the 209// http.Response Body if it receives an error. 210func (client EmailTemplateClient) DeleteSender(req *http.Request) (*http.Response, error) { 211 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 212} 213 214// DeleteResponder handles the response to the Delete request. The method always 215// closes the http.Response Body. 216func (client EmailTemplateClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { 217 err = autorest.Respond( 218 resp, 219 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent), 220 autorest.ByClosing()) 221 result.Response = resp 222 return 223} 224 225// Get gets the details of the email template specified by its identifier. 226// Parameters: 227// resourceGroupName - the name of the resource group. 228// serviceName - the name of the API Management service. 229// templateName - email Template Name Identifier. 230func (client EmailTemplateClient) Get(ctx context.Context, resourceGroupName string, serviceName string, templateName TemplateName) (result EmailTemplateContract, err error) { 231 if tracing.IsEnabled() { 232 ctx = tracing.StartSpan(ctx, fqdn+"/EmailTemplateClient.Get") 233 defer func() { 234 sc := -1 235 if result.Response.Response != nil { 236 sc = result.Response.Response.StatusCode 237 } 238 tracing.EndSpan(ctx, sc, err) 239 }() 240 } 241 if err := validation.Validate([]validation.Validation{ 242 {TargetValue: serviceName, 243 Constraints: []validation.Constraint{{Target: "serviceName", Name: validation.MaxLength, Rule: 50, Chain: nil}, 244 {Target: "serviceName", Name: validation.MinLength, Rule: 1, Chain: nil}, 245 {Target: "serviceName", Name: validation.Pattern, Rule: `^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$`, Chain: nil}}}}); err != nil { 246 return result, validation.NewError("apimanagement.EmailTemplateClient", "Get", err.Error()) 247 } 248 249 req, err := client.GetPreparer(ctx, resourceGroupName, serviceName, templateName) 250 if err != nil { 251 err = autorest.NewErrorWithError(err, "apimanagement.EmailTemplateClient", "Get", nil, "Failure preparing request") 252 return 253 } 254 255 resp, err := client.GetSender(req) 256 if err != nil { 257 result.Response = autorest.Response{Response: resp} 258 err = autorest.NewErrorWithError(err, "apimanagement.EmailTemplateClient", "Get", resp, "Failure sending request") 259 return 260 } 261 262 result, err = client.GetResponder(resp) 263 if err != nil { 264 err = autorest.NewErrorWithError(err, "apimanagement.EmailTemplateClient", "Get", resp, "Failure responding to request") 265 return 266 } 267 268 return 269} 270 271// GetPreparer prepares the Get request. 272func (client EmailTemplateClient) GetPreparer(ctx context.Context, resourceGroupName string, serviceName string, templateName TemplateName) (*http.Request, error) { 273 pathParameters := map[string]interface{}{ 274 "resourceGroupName": autorest.Encode("path", resourceGroupName), 275 "serviceName": autorest.Encode("path", serviceName), 276 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 277 "templateName": autorest.Encode("path", templateName), 278 } 279 280 const APIVersion = "2020-12-01" 281 queryParameters := map[string]interface{}{ 282 "api-version": APIVersion, 283 } 284 285 preparer := autorest.CreatePreparer( 286 autorest.AsGet(), 287 autorest.WithBaseURL(client.BaseURI), 288 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/templates/{templateName}", pathParameters), 289 autorest.WithQueryParameters(queryParameters)) 290 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 291} 292 293// GetSender sends the Get request. The method will close the 294// http.Response Body if it receives an error. 295func (client EmailTemplateClient) GetSender(req *http.Request) (*http.Response, error) { 296 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 297} 298 299// GetResponder handles the response to the Get request. The method always 300// closes the http.Response Body. 301func (client EmailTemplateClient) GetResponder(resp *http.Response) (result EmailTemplateContract, err error) { 302 err = autorest.Respond( 303 resp, 304 azure.WithErrorUnlessStatusCode(http.StatusOK), 305 autorest.ByUnmarshallingJSON(&result), 306 autorest.ByClosing()) 307 result.Response = autorest.Response{Response: resp} 308 return 309} 310 311// GetEntityTag gets the entity state (Etag) version of the email template specified by its identifier. 312// Parameters: 313// resourceGroupName - the name of the resource group. 314// serviceName - the name of the API Management service. 315// templateName - email Template Name Identifier. 316func (client EmailTemplateClient) GetEntityTag(ctx context.Context, resourceGroupName string, serviceName string, templateName TemplateName) (result autorest.Response, err error) { 317 if tracing.IsEnabled() { 318 ctx = tracing.StartSpan(ctx, fqdn+"/EmailTemplateClient.GetEntityTag") 319 defer func() { 320 sc := -1 321 if result.Response != nil { 322 sc = result.Response.StatusCode 323 } 324 tracing.EndSpan(ctx, sc, err) 325 }() 326 } 327 if err := validation.Validate([]validation.Validation{ 328 {TargetValue: serviceName, 329 Constraints: []validation.Constraint{{Target: "serviceName", Name: validation.MaxLength, Rule: 50, Chain: nil}, 330 {Target: "serviceName", Name: validation.MinLength, Rule: 1, Chain: nil}, 331 {Target: "serviceName", Name: validation.Pattern, Rule: `^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$`, Chain: nil}}}}); err != nil { 332 return result, validation.NewError("apimanagement.EmailTemplateClient", "GetEntityTag", err.Error()) 333 } 334 335 req, err := client.GetEntityTagPreparer(ctx, resourceGroupName, serviceName, templateName) 336 if err != nil { 337 err = autorest.NewErrorWithError(err, "apimanagement.EmailTemplateClient", "GetEntityTag", nil, "Failure preparing request") 338 return 339 } 340 341 resp, err := client.GetEntityTagSender(req) 342 if err != nil { 343 result.Response = resp 344 err = autorest.NewErrorWithError(err, "apimanagement.EmailTemplateClient", "GetEntityTag", resp, "Failure sending request") 345 return 346 } 347 348 result, err = client.GetEntityTagResponder(resp) 349 if err != nil { 350 err = autorest.NewErrorWithError(err, "apimanagement.EmailTemplateClient", "GetEntityTag", resp, "Failure responding to request") 351 return 352 } 353 354 return 355} 356 357// GetEntityTagPreparer prepares the GetEntityTag request. 358func (client EmailTemplateClient) GetEntityTagPreparer(ctx context.Context, resourceGroupName string, serviceName string, templateName TemplateName) (*http.Request, error) { 359 pathParameters := map[string]interface{}{ 360 "resourceGroupName": autorest.Encode("path", resourceGroupName), 361 "serviceName": autorest.Encode("path", serviceName), 362 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 363 "templateName": autorest.Encode("path", templateName), 364 } 365 366 const APIVersion = "2020-12-01" 367 queryParameters := map[string]interface{}{ 368 "api-version": APIVersion, 369 } 370 371 preparer := autorest.CreatePreparer( 372 autorest.AsHead(), 373 autorest.WithBaseURL(client.BaseURI), 374 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/templates/{templateName}", pathParameters), 375 autorest.WithQueryParameters(queryParameters)) 376 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 377} 378 379// GetEntityTagSender sends the GetEntityTag request. The method will close the 380// http.Response Body if it receives an error. 381func (client EmailTemplateClient) GetEntityTagSender(req *http.Request) (*http.Response, error) { 382 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 383} 384 385// GetEntityTagResponder handles the response to the GetEntityTag request. The method always 386// closes the http.Response Body. 387func (client EmailTemplateClient) GetEntityTagResponder(resp *http.Response) (result autorest.Response, err error) { 388 err = autorest.Respond( 389 resp, 390 azure.WithErrorUnlessStatusCode(http.StatusOK), 391 autorest.ByClosing()) 392 result.Response = resp 393 return 394} 395 396// ListByService gets all email templates 397// Parameters: 398// resourceGroupName - the name of the resource group. 399// serviceName - the name of the API Management service. 400// filter - | Field | Usage | Supported operators | Supported functions 401// |</br>|-------------|-------------|-------------|-------------|</br>| name | filter | ge, le, eq, ne, gt, lt 402// | substringof, contains, startswith, endswith |</br> 403// top - number of records to return. 404// skip - number of records to skip. 405func (client EmailTemplateClient) ListByService(ctx context.Context, resourceGroupName string, serviceName string, filter string, top *int32, skip *int32) (result EmailTemplateCollectionPage, err error) { 406 if tracing.IsEnabled() { 407 ctx = tracing.StartSpan(ctx, fqdn+"/EmailTemplateClient.ListByService") 408 defer func() { 409 sc := -1 410 if result.etc.Response.Response != nil { 411 sc = result.etc.Response.Response.StatusCode 412 } 413 tracing.EndSpan(ctx, sc, err) 414 }() 415 } 416 if err := validation.Validate([]validation.Validation{ 417 {TargetValue: serviceName, 418 Constraints: []validation.Constraint{{Target: "serviceName", Name: validation.MaxLength, Rule: 50, Chain: nil}, 419 {Target: "serviceName", Name: validation.MinLength, Rule: 1, Chain: nil}, 420 {Target: "serviceName", Name: validation.Pattern, Rule: `^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$`, Chain: nil}}}, 421 {TargetValue: top, 422 Constraints: []validation.Constraint{{Target: "top", Name: validation.Null, Rule: false, 423 Chain: []validation.Constraint{{Target: "top", Name: validation.InclusiveMinimum, Rule: int64(1), Chain: nil}}}}}, 424 {TargetValue: skip, 425 Constraints: []validation.Constraint{{Target: "skip", Name: validation.Null, Rule: false, 426 Chain: []validation.Constraint{{Target: "skip", Name: validation.InclusiveMinimum, Rule: int64(0), Chain: nil}}}}}}); err != nil { 427 return result, validation.NewError("apimanagement.EmailTemplateClient", "ListByService", err.Error()) 428 } 429 430 result.fn = client.listByServiceNextResults 431 req, err := client.ListByServicePreparer(ctx, resourceGroupName, serviceName, filter, top, skip) 432 if err != nil { 433 err = autorest.NewErrorWithError(err, "apimanagement.EmailTemplateClient", "ListByService", nil, "Failure preparing request") 434 return 435 } 436 437 resp, err := client.ListByServiceSender(req) 438 if err != nil { 439 result.etc.Response = autorest.Response{Response: resp} 440 err = autorest.NewErrorWithError(err, "apimanagement.EmailTemplateClient", "ListByService", resp, "Failure sending request") 441 return 442 } 443 444 result.etc, err = client.ListByServiceResponder(resp) 445 if err != nil { 446 err = autorest.NewErrorWithError(err, "apimanagement.EmailTemplateClient", "ListByService", resp, "Failure responding to request") 447 return 448 } 449 if result.etc.hasNextLink() && result.etc.IsEmpty() { 450 err = result.NextWithContext(ctx) 451 return 452 } 453 454 return 455} 456 457// ListByServicePreparer prepares the ListByService request. 458func (client EmailTemplateClient) ListByServicePreparer(ctx context.Context, resourceGroupName string, serviceName string, filter string, top *int32, skip *int32) (*http.Request, error) { 459 pathParameters := map[string]interface{}{ 460 "resourceGroupName": autorest.Encode("path", resourceGroupName), 461 "serviceName": autorest.Encode("path", serviceName), 462 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 463 } 464 465 const APIVersion = "2020-12-01" 466 queryParameters := map[string]interface{}{ 467 "api-version": APIVersion, 468 } 469 if len(filter) > 0 { 470 queryParameters["$filter"] = autorest.Encode("query", filter) 471 } 472 if top != nil { 473 queryParameters["$top"] = autorest.Encode("query", *top) 474 } 475 if skip != nil { 476 queryParameters["$skip"] = autorest.Encode("query", *skip) 477 } 478 479 preparer := autorest.CreatePreparer( 480 autorest.AsGet(), 481 autorest.WithBaseURL(client.BaseURI), 482 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/templates", pathParameters), 483 autorest.WithQueryParameters(queryParameters)) 484 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 485} 486 487// ListByServiceSender sends the ListByService request. The method will close the 488// http.Response Body if it receives an error. 489func (client EmailTemplateClient) ListByServiceSender(req *http.Request) (*http.Response, error) { 490 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 491} 492 493// ListByServiceResponder handles the response to the ListByService request. The method always 494// closes the http.Response Body. 495func (client EmailTemplateClient) ListByServiceResponder(resp *http.Response) (result EmailTemplateCollection, err error) { 496 err = autorest.Respond( 497 resp, 498 azure.WithErrorUnlessStatusCode(http.StatusOK), 499 autorest.ByUnmarshallingJSON(&result), 500 autorest.ByClosing()) 501 result.Response = autorest.Response{Response: resp} 502 return 503} 504 505// listByServiceNextResults retrieves the next set of results, if any. 506func (client EmailTemplateClient) listByServiceNextResults(ctx context.Context, lastResults EmailTemplateCollection) (result EmailTemplateCollection, err error) { 507 req, err := lastResults.emailTemplateCollectionPreparer(ctx) 508 if err != nil { 509 return result, autorest.NewErrorWithError(err, "apimanagement.EmailTemplateClient", "listByServiceNextResults", nil, "Failure preparing next results request") 510 } 511 if req == nil { 512 return 513 } 514 resp, err := client.ListByServiceSender(req) 515 if err != nil { 516 result.Response = autorest.Response{Response: resp} 517 return result, autorest.NewErrorWithError(err, "apimanagement.EmailTemplateClient", "listByServiceNextResults", resp, "Failure sending next results request") 518 } 519 result, err = client.ListByServiceResponder(resp) 520 if err != nil { 521 err = autorest.NewErrorWithError(err, "apimanagement.EmailTemplateClient", "listByServiceNextResults", resp, "Failure responding to next results request") 522 } 523 return 524} 525 526// ListByServiceComplete enumerates all values, automatically crossing page boundaries as required. 527func (client EmailTemplateClient) ListByServiceComplete(ctx context.Context, resourceGroupName string, serviceName string, filter string, top *int32, skip *int32) (result EmailTemplateCollectionIterator, err error) { 528 if tracing.IsEnabled() { 529 ctx = tracing.StartSpan(ctx, fqdn+"/EmailTemplateClient.ListByService") 530 defer func() { 531 sc := -1 532 if result.Response().Response.Response != nil { 533 sc = result.page.Response().Response.Response.StatusCode 534 } 535 tracing.EndSpan(ctx, sc, err) 536 }() 537 } 538 result.page, err = client.ListByService(ctx, resourceGroupName, serviceName, filter, top, skip) 539 return 540} 541 542// Update updates API Management email template 543// Parameters: 544// resourceGroupName - the name of the resource group. 545// serviceName - the name of the API Management service. 546// templateName - email Template Name Identifier. 547// ifMatch - eTag of the Entity. ETag should match the current entity state from the header response of the GET 548// request or it should be * for unconditional update. 549// parameters - update parameters. 550func (client EmailTemplateClient) Update(ctx context.Context, resourceGroupName string, serviceName string, templateName TemplateName, ifMatch string, parameters EmailTemplateUpdateParameters) (result EmailTemplateContract, err error) { 551 if tracing.IsEnabled() { 552 ctx = tracing.StartSpan(ctx, fqdn+"/EmailTemplateClient.Update") 553 defer func() { 554 sc := -1 555 if result.Response.Response != nil { 556 sc = result.Response.Response.StatusCode 557 } 558 tracing.EndSpan(ctx, sc, err) 559 }() 560 } 561 if err := validation.Validate([]validation.Validation{ 562 {TargetValue: serviceName, 563 Constraints: []validation.Constraint{{Target: "serviceName", Name: validation.MaxLength, Rule: 50, Chain: nil}, 564 {Target: "serviceName", Name: validation.MinLength, Rule: 1, Chain: nil}, 565 {Target: "serviceName", Name: validation.Pattern, Rule: `^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$`, Chain: nil}}}}); err != nil { 566 return result, validation.NewError("apimanagement.EmailTemplateClient", "Update", err.Error()) 567 } 568 569 req, err := client.UpdatePreparer(ctx, resourceGroupName, serviceName, templateName, ifMatch, parameters) 570 if err != nil { 571 err = autorest.NewErrorWithError(err, "apimanagement.EmailTemplateClient", "Update", nil, "Failure preparing request") 572 return 573 } 574 575 resp, err := client.UpdateSender(req) 576 if err != nil { 577 result.Response = autorest.Response{Response: resp} 578 err = autorest.NewErrorWithError(err, "apimanagement.EmailTemplateClient", "Update", resp, "Failure sending request") 579 return 580 } 581 582 result, err = client.UpdateResponder(resp) 583 if err != nil { 584 err = autorest.NewErrorWithError(err, "apimanagement.EmailTemplateClient", "Update", resp, "Failure responding to request") 585 return 586 } 587 588 return 589} 590 591// UpdatePreparer prepares the Update request. 592func (client EmailTemplateClient) UpdatePreparer(ctx context.Context, resourceGroupName string, serviceName string, templateName TemplateName, ifMatch string, parameters EmailTemplateUpdateParameters) (*http.Request, error) { 593 pathParameters := map[string]interface{}{ 594 "resourceGroupName": autorest.Encode("path", resourceGroupName), 595 "serviceName": autorest.Encode("path", serviceName), 596 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 597 "templateName": autorest.Encode("path", templateName), 598 } 599 600 const APIVersion = "2020-12-01" 601 queryParameters := map[string]interface{}{ 602 "api-version": APIVersion, 603 } 604 605 preparer := autorest.CreatePreparer( 606 autorest.AsContentType("application/json; charset=utf-8"), 607 autorest.AsPatch(), 608 autorest.WithBaseURL(client.BaseURI), 609 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/templates/{templateName}", pathParameters), 610 autorest.WithJSON(parameters), 611 autorest.WithQueryParameters(queryParameters), 612 autorest.WithHeader("If-Match", autorest.String(ifMatch))) 613 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 614} 615 616// UpdateSender sends the Update request. The method will close the 617// http.Response Body if it receives an error. 618func (client EmailTemplateClient) UpdateSender(req *http.Request) (*http.Response, error) { 619 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 620} 621 622// UpdateResponder handles the response to the Update request. The method always 623// closes the http.Response Body. 624func (client EmailTemplateClient) UpdateResponder(resp *http.Response) (result EmailTemplateContract, err error) { 625 err = autorest.Respond( 626 resp, 627 azure.WithErrorUnlessStatusCode(http.StatusOK), 628 autorest.ByUnmarshallingJSON(&result), 629 autorest.ByClosing()) 630 result.Response = autorest.Response{Response: resp} 631 return 632} 633