1package apimanagement 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/autorest/validation" 25 "github.com/Azure/go-autorest/tracing" 26 "net/http" 27) 28 29// OpenIDConnectProviderClient is the client for the OpenIDConnectProvider methods of the Apimanagement service. 30type OpenIDConnectProviderClient struct { 31 BaseClient 32} 33 34// NewOpenIDConnectProviderClient creates an instance of the OpenIDConnectProviderClient client. 35func NewOpenIDConnectProviderClient() OpenIDConnectProviderClient { 36 return OpenIDConnectProviderClient{New()} 37} 38 39// CreateOrUpdate creates or updates the OpenID Connect Provider. 40// Parameters: 41// apimBaseURL - the management endpoint of the API Management service, for example 42// https://myapimservice.management.azure-api.net. 43// opid - identifier of the OpenID Connect Provider. 44// parameters - create parameters. 45func (client OpenIDConnectProviderClient) CreateOrUpdate(ctx context.Context, apimBaseURL string, opid string, parameters OpenidConnectProviderContract) (result OpenidConnectProviderContract, err error) { 46 if tracing.IsEnabled() { 47 ctx = tracing.StartSpan(ctx, fqdn+"/OpenIDConnectProviderClient.CreateOrUpdate") 48 defer func() { 49 sc := -1 50 if result.Response.Response != nil { 51 sc = result.Response.Response.StatusCode 52 } 53 tracing.EndSpan(ctx, sc, err) 54 }() 55 } 56 if err := validation.Validate([]validation.Validation{ 57 {TargetValue: opid, 58 Constraints: []validation.Constraint{{Target: "opid", Name: validation.MaxLength, Rule: 256, Chain: nil}, 59 {Target: "opid", Name: validation.Pattern, Rule: `^[^*#&+:<>?]+$`, Chain: nil}}}}); err != nil { 60 return result, validation.NewError("apimanagement.OpenIDConnectProviderClient", "CreateOrUpdate", err.Error()) 61 } 62 63 req, err := client.CreateOrUpdatePreparer(ctx, apimBaseURL, opid, parameters) 64 if err != nil { 65 err = autorest.NewErrorWithError(err, "apimanagement.OpenIDConnectProviderClient", "CreateOrUpdate", nil, "Failure preparing request") 66 return 67 } 68 69 resp, err := client.CreateOrUpdateSender(req) 70 if err != nil { 71 result.Response = autorest.Response{Response: resp} 72 err = autorest.NewErrorWithError(err, "apimanagement.OpenIDConnectProviderClient", "CreateOrUpdate", resp, "Failure sending request") 73 return 74 } 75 76 result, err = client.CreateOrUpdateResponder(resp) 77 if err != nil { 78 err = autorest.NewErrorWithError(err, "apimanagement.OpenIDConnectProviderClient", "CreateOrUpdate", resp, "Failure responding to request") 79 } 80 81 return 82} 83 84// CreateOrUpdatePreparer prepares the CreateOrUpdate request. 85func (client OpenIDConnectProviderClient) CreateOrUpdatePreparer(ctx context.Context, apimBaseURL string, opid string, parameters OpenidConnectProviderContract) (*http.Request, error) { 86 urlParameters := map[string]interface{}{ 87 "apimBaseUrl": apimBaseURL, 88 } 89 90 pathParameters := map[string]interface{}{ 91 "opid": autorest.Encode("path", opid), 92 } 93 94 const APIVersion = "2017-03-01" 95 queryParameters := map[string]interface{}{ 96 "api-version": APIVersion, 97 } 98 99 preparer := autorest.CreatePreparer( 100 autorest.AsContentType("application/json; charset=utf-8"), 101 autorest.AsPut(), 102 autorest.WithCustomBaseURL("{apimBaseUrl}", urlParameters), 103 autorest.WithPathParameters("/openidConnectProviders/{opid}", pathParameters), 104 autorest.WithJSON(parameters), 105 autorest.WithQueryParameters(queryParameters)) 106 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 107} 108 109// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the 110// http.Response Body if it receives an error. 111func (client OpenIDConnectProviderClient) CreateOrUpdateSender(req *http.Request) (*http.Response, error) { 112 sd := autorest.GetSendDecorators(req.Context(), autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 113 return autorest.SendWithSender(client, req, sd...) 114} 115 116// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always 117// closes the http.Response Body. 118func (client OpenIDConnectProviderClient) CreateOrUpdateResponder(resp *http.Response) (result OpenidConnectProviderContract, err error) { 119 err = autorest.Respond( 120 resp, 121 client.ByInspecting(), 122 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated), 123 autorest.ByUnmarshallingJSON(&result), 124 autorest.ByClosing()) 125 result.Response = autorest.Response{Response: resp} 126 return 127} 128 129// Delete deletes specific OpenID Connect Provider of the API Management service instance. 130// Parameters: 131// apimBaseURL - the management endpoint of the API Management service, for example 132// https://myapimservice.management.azure-api.net. 133// opid - identifier of the OpenID Connect Provider. 134// ifMatch - the entity state (Etag) version of the OpenID Connect Provider to delete. A value of "*" can be 135// used for If-Match to unconditionally apply the operation. 136func (client OpenIDConnectProviderClient) Delete(ctx context.Context, apimBaseURL string, opid string, ifMatch string) (result autorest.Response, err error) { 137 if tracing.IsEnabled() { 138 ctx = tracing.StartSpan(ctx, fqdn+"/OpenIDConnectProviderClient.Delete") 139 defer func() { 140 sc := -1 141 if result.Response != nil { 142 sc = result.Response.StatusCode 143 } 144 tracing.EndSpan(ctx, sc, err) 145 }() 146 } 147 if err := validation.Validate([]validation.Validation{ 148 {TargetValue: opid, 149 Constraints: []validation.Constraint{{Target: "opid", Name: validation.MaxLength, Rule: 256, Chain: nil}, 150 {Target: "opid", Name: validation.Pattern, Rule: `^[^*#&+:<>?]+$`, Chain: nil}}}}); err != nil { 151 return result, validation.NewError("apimanagement.OpenIDConnectProviderClient", "Delete", err.Error()) 152 } 153 154 req, err := client.DeletePreparer(ctx, apimBaseURL, opid, ifMatch) 155 if err != nil { 156 err = autorest.NewErrorWithError(err, "apimanagement.OpenIDConnectProviderClient", "Delete", nil, "Failure preparing request") 157 return 158 } 159 160 resp, err := client.DeleteSender(req) 161 if err != nil { 162 result.Response = resp 163 err = autorest.NewErrorWithError(err, "apimanagement.OpenIDConnectProviderClient", "Delete", resp, "Failure sending request") 164 return 165 } 166 167 result, err = client.DeleteResponder(resp) 168 if err != nil { 169 err = autorest.NewErrorWithError(err, "apimanagement.OpenIDConnectProviderClient", "Delete", resp, "Failure responding to request") 170 } 171 172 return 173} 174 175// DeletePreparer prepares the Delete request. 176func (client OpenIDConnectProviderClient) DeletePreparer(ctx context.Context, apimBaseURL string, opid string, ifMatch string) (*http.Request, error) { 177 urlParameters := map[string]interface{}{ 178 "apimBaseUrl": apimBaseURL, 179 } 180 181 pathParameters := map[string]interface{}{ 182 "opid": autorest.Encode("path", opid), 183 } 184 185 const APIVersion = "2017-03-01" 186 queryParameters := map[string]interface{}{ 187 "api-version": APIVersion, 188 } 189 190 preparer := autorest.CreatePreparer( 191 autorest.AsDelete(), 192 autorest.WithCustomBaseURL("{apimBaseUrl}", urlParameters), 193 autorest.WithPathParameters("/openidConnectProviders/{opid}", pathParameters), 194 autorest.WithQueryParameters(queryParameters), 195 autorest.WithHeader("If-Match", autorest.String(ifMatch))) 196 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 197} 198 199// DeleteSender sends the Delete request. The method will close the 200// http.Response Body if it receives an error. 201func (client OpenIDConnectProviderClient) DeleteSender(req *http.Request) (*http.Response, error) { 202 sd := autorest.GetSendDecorators(req.Context(), autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 203 return autorest.SendWithSender(client, req, sd...) 204} 205 206// DeleteResponder handles the response to the Delete request. The method always 207// closes the http.Response Body. 208func (client OpenIDConnectProviderClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { 209 err = autorest.Respond( 210 resp, 211 client.ByInspecting(), 212 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent), 213 autorest.ByClosing()) 214 result.Response = resp 215 return 216} 217 218// Get gets specific OpenID Connect Provider. 219// Parameters: 220// apimBaseURL - the management endpoint of the API Management service, for example 221// https://myapimservice.management.azure-api.net. 222// opid - identifier of the OpenID Connect Provider. 223func (client OpenIDConnectProviderClient) Get(ctx context.Context, apimBaseURL string, opid string) (result OpenidConnectProviderContract, err error) { 224 if tracing.IsEnabled() { 225 ctx = tracing.StartSpan(ctx, fqdn+"/OpenIDConnectProviderClient.Get") 226 defer func() { 227 sc := -1 228 if result.Response.Response != nil { 229 sc = result.Response.Response.StatusCode 230 } 231 tracing.EndSpan(ctx, sc, err) 232 }() 233 } 234 if err := validation.Validate([]validation.Validation{ 235 {TargetValue: opid, 236 Constraints: []validation.Constraint{{Target: "opid", Name: validation.MaxLength, Rule: 256, Chain: nil}, 237 {Target: "opid", Name: validation.Pattern, Rule: `^[^*#&+:<>?]+$`, Chain: nil}}}}); err != nil { 238 return result, validation.NewError("apimanagement.OpenIDConnectProviderClient", "Get", err.Error()) 239 } 240 241 req, err := client.GetPreparer(ctx, apimBaseURL, opid) 242 if err != nil { 243 err = autorest.NewErrorWithError(err, "apimanagement.OpenIDConnectProviderClient", "Get", nil, "Failure preparing request") 244 return 245 } 246 247 resp, err := client.GetSender(req) 248 if err != nil { 249 result.Response = autorest.Response{Response: resp} 250 err = autorest.NewErrorWithError(err, "apimanagement.OpenIDConnectProviderClient", "Get", resp, "Failure sending request") 251 return 252 } 253 254 result, err = client.GetResponder(resp) 255 if err != nil { 256 err = autorest.NewErrorWithError(err, "apimanagement.OpenIDConnectProviderClient", "Get", resp, "Failure responding to request") 257 } 258 259 return 260} 261 262// GetPreparer prepares the Get request. 263func (client OpenIDConnectProviderClient) GetPreparer(ctx context.Context, apimBaseURL string, opid string) (*http.Request, error) { 264 urlParameters := map[string]interface{}{ 265 "apimBaseUrl": apimBaseURL, 266 } 267 268 pathParameters := map[string]interface{}{ 269 "opid": autorest.Encode("path", opid), 270 } 271 272 const APIVersion = "2017-03-01" 273 queryParameters := map[string]interface{}{ 274 "api-version": APIVersion, 275 } 276 277 preparer := autorest.CreatePreparer( 278 autorest.AsGet(), 279 autorest.WithCustomBaseURL("{apimBaseUrl}", urlParameters), 280 autorest.WithPathParameters("/openidConnectProviders/{opid}", pathParameters), 281 autorest.WithQueryParameters(queryParameters)) 282 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 283} 284 285// GetSender sends the Get request. The method will close the 286// http.Response Body if it receives an error. 287func (client OpenIDConnectProviderClient) GetSender(req *http.Request) (*http.Response, error) { 288 sd := autorest.GetSendDecorators(req.Context(), autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 289 return autorest.SendWithSender(client, req, sd...) 290} 291 292// GetResponder handles the response to the Get request. The method always 293// closes the http.Response Body. 294func (client OpenIDConnectProviderClient) GetResponder(resp *http.Response) (result OpenidConnectProviderContract, err error) { 295 err = autorest.Respond( 296 resp, 297 client.ByInspecting(), 298 azure.WithErrorUnlessStatusCode(http.StatusOK), 299 autorest.ByUnmarshallingJSON(&result), 300 autorest.ByClosing()) 301 result.Response = autorest.Response{Response: resp} 302 return 303} 304 305// List lists all OpenID Connect Providers. 306// Parameters: 307// apimBaseURL - the management endpoint of the API Management service, for example 308// https://myapimservice.management.azure-api.net. 309// filter - | Field | Supported operators | Supported functions | 310// |-------|------------------------|---------------------------------------------| 311// | id | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith | 312// | name | ge, le, eq, ne, gt, lt | substringof, contains, startswith, endswith | 313// top - number of records to return. 314// skip - number of records to skip. 315func (client OpenIDConnectProviderClient) List(ctx context.Context, apimBaseURL string, filter string, top *int32, skip *int32) (result OpenIDConnectProviderCollectionPage, err error) { 316 if tracing.IsEnabled() { 317 ctx = tracing.StartSpan(ctx, fqdn+"/OpenIDConnectProviderClient.List") 318 defer func() { 319 sc := -1 320 if result.oicpc.Response.Response != nil { 321 sc = result.oicpc.Response.Response.StatusCode 322 } 323 tracing.EndSpan(ctx, sc, err) 324 }() 325 } 326 if err := validation.Validate([]validation.Validation{ 327 {TargetValue: top, 328 Constraints: []validation.Constraint{{Target: "top", Name: validation.Null, Rule: false, 329 Chain: []validation.Constraint{{Target: "top", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}}}}}, 330 {TargetValue: skip, 331 Constraints: []validation.Constraint{{Target: "skip", Name: validation.Null, Rule: false, 332 Chain: []validation.Constraint{{Target: "skip", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}}}}}}); err != nil { 333 return result, validation.NewError("apimanagement.OpenIDConnectProviderClient", "List", err.Error()) 334 } 335 336 result.fn = client.listNextResults 337 req, err := client.ListPreparer(ctx, apimBaseURL, filter, top, skip) 338 if err != nil { 339 err = autorest.NewErrorWithError(err, "apimanagement.OpenIDConnectProviderClient", "List", nil, "Failure preparing request") 340 return 341 } 342 343 resp, err := client.ListSender(req) 344 if err != nil { 345 result.oicpc.Response = autorest.Response{Response: resp} 346 err = autorest.NewErrorWithError(err, "apimanagement.OpenIDConnectProviderClient", "List", resp, "Failure sending request") 347 return 348 } 349 350 result.oicpc, err = client.ListResponder(resp) 351 if err != nil { 352 err = autorest.NewErrorWithError(err, "apimanagement.OpenIDConnectProviderClient", "List", resp, "Failure responding to request") 353 } 354 355 return 356} 357 358// ListPreparer prepares the List request. 359func (client OpenIDConnectProviderClient) ListPreparer(ctx context.Context, apimBaseURL string, filter string, top *int32, skip *int32) (*http.Request, error) { 360 urlParameters := map[string]interface{}{ 361 "apimBaseUrl": apimBaseURL, 362 } 363 364 const APIVersion = "2017-03-01" 365 queryParameters := map[string]interface{}{ 366 "api-version": APIVersion, 367 } 368 if len(filter) > 0 { 369 queryParameters["$filter"] = autorest.Encode("query", filter) 370 } 371 if top != nil { 372 queryParameters["$top"] = autorest.Encode("query", *top) 373 } 374 if skip != nil { 375 queryParameters["$skip"] = autorest.Encode("query", *skip) 376 } 377 378 preparer := autorest.CreatePreparer( 379 autorest.AsGet(), 380 autorest.WithCustomBaseURL("{apimBaseUrl}", urlParameters), 381 autorest.WithPath("/openidConnectProviders"), 382 autorest.WithQueryParameters(queryParameters)) 383 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 384} 385 386// ListSender sends the List request. The method will close the 387// http.Response Body if it receives an error. 388func (client OpenIDConnectProviderClient) ListSender(req *http.Request) (*http.Response, error) { 389 sd := autorest.GetSendDecorators(req.Context(), autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 390 return autorest.SendWithSender(client, req, sd...) 391} 392 393// ListResponder handles the response to the List request. The method always 394// closes the http.Response Body. 395func (client OpenIDConnectProviderClient) ListResponder(resp *http.Response) (result OpenIDConnectProviderCollection, err error) { 396 err = autorest.Respond( 397 resp, 398 client.ByInspecting(), 399 azure.WithErrorUnlessStatusCode(http.StatusOK), 400 autorest.ByUnmarshallingJSON(&result), 401 autorest.ByClosing()) 402 result.Response = autorest.Response{Response: resp} 403 return 404} 405 406// listNextResults retrieves the next set of results, if any. 407func (client OpenIDConnectProviderClient) listNextResults(ctx context.Context, lastResults OpenIDConnectProviderCollection) (result OpenIDConnectProviderCollection, err error) { 408 req, err := lastResults.openIDConnectProviderCollectionPreparer(ctx) 409 if err != nil { 410 return result, autorest.NewErrorWithError(err, "apimanagement.OpenIDConnectProviderClient", "listNextResults", nil, "Failure preparing next results request") 411 } 412 if req == nil { 413 return 414 } 415 resp, err := client.ListSender(req) 416 if err != nil { 417 result.Response = autorest.Response{Response: resp} 418 return result, autorest.NewErrorWithError(err, "apimanagement.OpenIDConnectProviderClient", "listNextResults", resp, "Failure sending next results request") 419 } 420 result, err = client.ListResponder(resp) 421 if err != nil { 422 err = autorest.NewErrorWithError(err, "apimanagement.OpenIDConnectProviderClient", "listNextResults", resp, "Failure responding to next results request") 423 } 424 return 425} 426 427// ListComplete enumerates all values, automatically crossing page boundaries as required. 428func (client OpenIDConnectProviderClient) ListComplete(ctx context.Context, apimBaseURL string, filter string, top *int32, skip *int32) (result OpenIDConnectProviderCollectionIterator, err error) { 429 if tracing.IsEnabled() { 430 ctx = tracing.StartSpan(ctx, fqdn+"/OpenIDConnectProviderClient.List") 431 defer func() { 432 sc := -1 433 if result.Response().Response.Response != nil { 434 sc = result.page.Response().Response.Response.StatusCode 435 } 436 tracing.EndSpan(ctx, sc, err) 437 }() 438 } 439 result.page, err = client.List(ctx, apimBaseURL, filter, top, skip) 440 return 441} 442 443// Update updates the specific OpenID Connect Provider. 444// Parameters: 445// apimBaseURL - the management endpoint of the API Management service, for example 446// https://myapimservice.management.azure-api.net. 447// opid - identifier of the OpenID Connect Provider. 448// parameters - update parameters. 449// ifMatch - the entity state (Etag) version of the OpenID Connect Provider to update. A value of "*" can be 450// used for If-Match to unconditionally apply the operation. 451func (client OpenIDConnectProviderClient) Update(ctx context.Context, apimBaseURL string, opid string, parameters OpenidConnectProviderUpdateContract, ifMatch string) (result autorest.Response, err error) { 452 if tracing.IsEnabled() { 453 ctx = tracing.StartSpan(ctx, fqdn+"/OpenIDConnectProviderClient.Update") 454 defer func() { 455 sc := -1 456 if result.Response != nil { 457 sc = result.Response.StatusCode 458 } 459 tracing.EndSpan(ctx, sc, err) 460 }() 461 } 462 if err := validation.Validate([]validation.Validation{ 463 {TargetValue: opid, 464 Constraints: []validation.Constraint{{Target: "opid", Name: validation.MaxLength, Rule: 256, Chain: nil}, 465 {Target: "opid", Name: validation.Pattern, Rule: `^[^*#&+:<>?]+$`, Chain: nil}}}}); err != nil { 466 return result, validation.NewError("apimanagement.OpenIDConnectProviderClient", "Update", err.Error()) 467 } 468 469 req, err := client.UpdatePreparer(ctx, apimBaseURL, opid, parameters, ifMatch) 470 if err != nil { 471 err = autorest.NewErrorWithError(err, "apimanagement.OpenIDConnectProviderClient", "Update", nil, "Failure preparing request") 472 return 473 } 474 475 resp, err := client.UpdateSender(req) 476 if err != nil { 477 result.Response = resp 478 err = autorest.NewErrorWithError(err, "apimanagement.OpenIDConnectProviderClient", "Update", resp, "Failure sending request") 479 return 480 } 481 482 result, err = client.UpdateResponder(resp) 483 if err != nil { 484 err = autorest.NewErrorWithError(err, "apimanagement.OpenIDConnectProviderClient", "Update", resp, "Failure responding to request") 485 } 486 487 return 488} 489 490// UpdatePreparer prepares the Update request. 491func (client OpenIDConnectProviderClient) UpdatePreparer(ctx context.Context, apimBaseURL string, opid string, parameters OpenidConnectProviderUpdateContract, ifMatch string) (*http.Request, error) { 492 urlParameters := map[string]interface{}{ 493 "apimBaseUrl": apimBaseURL, 494 } 495 496 pathParameters := map[string]interface{}{ 497 "opid": autorest.Encode("path", opid), 498 } 499 500 const APIVersion = "2017-03-01" 501 queryParameters := map[string]interface{}{ 502 "api-version": APIVersion, 503 } 504 505 preparer := autorest.CreatePreparer( 506 autorest.AsContentType("application/json; charset=utf-8"), 507 autorest.AsPatch(), 508 autorest.WithCustomBaseURL("{apimBaseUrl}", urlParameters), 509 autorest.WithPathParameters("/openidConnectProviders/{opid}", pathParameters), 510 autorest.WithJSON(parameters), 511 autorest.WithQueryParameters(queryParameters), 512 autorest.WithHeader("If-Match", autorest.String(ifMatch))) 513 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 514} 515 516// UpdateSender sends the Update request. The method will close the 517// http.Response Body if it receives an error. 518func (client OpenIDConnectProviderClient) UpdateSender(req *http.Request) (*http.Response, error) { 519 sd := autorest.GetSendDecorators(req.Context(), autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 520 return autorest.SendWithSender(client, req, sd...) 521} 522 523// UpdateResponder handles the response to the Update request. The method always 524// closes the http.Response Body. 525func (client OpenIDConnectProviderClient) UpdateResponder(resp *http.Response) (result autorest.Response, err error) { 526 err = autorest.Respond( 527 resp, 528 client.ByInspecting(), 529 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent), 530 autorest.ByClosing()) 531 result.Response = resp 532 return 533} 534