1package web 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/tracing" 14 "net/http" 15) 16 17// ProviderClient is the webSite Management Client 18type ProviderClient struct { 19 BaseClient 20} 21 22// NewProviderClient creates an instance of the ProviderClient client. 23func NewProviderClient(subscriptionID string) ProviderClient { 24 return NewProviderClientWithBaseURI(DefaultBaseURI, subscriptionID) 25} 26 27// NewProviderClientWithBaseURI creates an instance of the ProviderClient client using a custom endpoint. Use this 28// when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure stack). 29func NewProviderClientWithBaseURI(baseURI string, subscriptionID string) ProviderClient { 30 return ProviderClient{NewWithBaseURI(baseURI, subscriptionID)} 31} 32 33// GetAvailableStacks description for Get available application frameworks and their versions 34func (client ProviderClient) GetAvailableStacks(ctx context.Context, osTypeSelected string) (result ApplicationStackCollectionPage, err error) { 35 if tracing.IsEnabled() { 36 ctx = tracing.StartSpan(ctx, fqdn+"/ProviderClient.GetAvailableStacks") 37 defer func() { 38 sc := -1 39 if result.asc.Response.Response != nil { 40 sc = result.asc.Response.Response.StatusCode 41 } 42 tracing.EndSpan(ctx, sc, err) 43 }() 44 } 45 result.fn = client.getAvailableStacksNextResults 46 req, err := client.GetAvailableStacksPreparer(ctx, osTypeSelected) 47 if err != nil { 48 err = autorest.NewErrorWithError(err, "web.ProviderClient", "GetAvailableStacks", nil, "Failure preparing request") 49 return 50 } 51 52 resp, err := client.GetAvailableStacksSender(req) 53 if err != nil { 54 result.asc.Response = autorest.Response{Response: resp} 55 err = autorest.NewErrorWithError(err, "web.ProviderClient", "GetAvailableStacks", resp, "Failure sending request") 56 return 57 } 58 59 result.asc, err = client.GetAvailableStacksResponder(resp) 60 if err != nil { 61 err = autorest.NewErrorWithError(err, "web.ProviderClient", "GetAvailableStacks", resp, "Failure responding to request") 62 return 63 } 64 if result.asc.hasNextLink() && result.asc.IsEmpty() { 65 err = result.NextWithContext(ctx) 66 return 67 } 68 69 return 70} 71 72// GetAvailableStacksPreparer prepares the GetAvailableStacks request. 73func (client ProviderClient) GetAvailableStacksPreparer(ctx context.Context, osTypeSelected string) (*http.Request, error) { 74 const APIVersion = "2019-08-01" 75 queryParameters := map[string]interface{}{ 76 "api-version": APIVersion, 77 } 78 if len(string(osTypeSelected)) > 0 { 79 queryParameters["osTypeSelected"] = autorest.Encode("query", osTypeSelected) 80 } 81 82 preparer := autorest.CreatePreparer( 83 autorest.AsGet(), 84 autorest.WithBaseURL(client.BaseURI), 85 autorest.WithPath("/providers/Microsoft.Web/availableStacks"), 86 autorest.WithQueryParameters(queryParameters)) 87 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 88} 89 90// GetAvailableStacksSender sends the GetAvailableStacks request. The method will close the 91// http.Response Body if it receives an error. 92func (client ProviderClient) GetAvailableStacksSender(req *http.Request) (*http.Response, error) { 93 return client.Send(req, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 94} 95 96// GetAvailableStacksResponder handles the response to the GetAvailableStacks request. The method always 97// closes the http.Response Body. 98func (client ProviderClient) GetAvailableStacksResponder(resp *http.Response) (result ApplicationStackCollection, err error) { 99 err = autorest.Respond( 100 resp, 101 azure.WithErrorUnlessStatusCode(http.StatusOK), 102 autorest.ByUnmarshallingJSON(&result), 103 autorest.ByClosing()) 104 result.Response = autorest.Response{Response: resp} 105 return 106} 107 108// getAvailableStacksNextResults retrieves the next set of results, if any. 109func (client ProviderClient) getAvailableStacksNextResults(ctx context.Context, lastResults ApplicationStackCollection) (result ApplicationStackCollection, err error) { 110 req, err := lastResults.applicationStackCollectionPreparer(ctx) 111 if err != nil { 112 return result, autorest.NewErrorWithError(err, "web.ProviderClient", "getAvailableStacksNextResults", nil, "Failure preparing next results request") 113 } 114 if req == nil { 115 return 116 } 117 resp, err := client.GetAvailableStacksSender(req) 118 if err != nil { 119 result.Response = autorest.Response{Response: resp} 120 return result, autorest.NewErrorWithError(err, "web.ProviderClient", "getAvailableStacksNextResults", resp, "Failure sending next results request") 121 } 122 result, err = client.GetAvailableStacksResponder(resp) 123 if err != nil { 124 err = autorest.NewErrorWithError(err, "web.ProviderClient", "getAvailableStacksNextResults", resp, "Failure responding to next results request") 125 } 126 return 127} 128 129// GetAvailableStacksComplete enumerates all values, automatically crossing page boundaries as required. 130func (client ProviderClient) GetAvailableStacksComplete(ctx context.Context, osTypeSelected string) (result ApplicationStackCollectionIterator, err error) { 131 if tracing.IsEnabled() { 132 ctx = tracing.StartSpan(ctx, fqdn+"/ProviderClient.GetAvailableStacks") 133 defer func() { 134 sc := -1 135 if result.Response().Response.Response != nil { 136 sc = result.page.Response().Response.Response.StatusCode 137 } 138 tracing.EndSpan(ctx, sc, err) 139 }() 140 } 141 result.page, err = client.GetAvailableStacks(ctx, osTypeSelected) 142 return 143} 144 145// GetAvailableStacksOnPrem description for Get available application frameworks and their versions 146func (client ProviderClient) GetAvailableStacksOnPrem(ctx context.Context, osTypeSelected string) (result ApplicationStackCollectionPage, err error) { 147 if tracing.IsEnabled() { 148 ctx = tracing.StartSpan(ctx, fqdn+"/ProviderClient.GetAvailableStacksOnPrem") 149 defer func() { 150 sc := -1 151 if result.asc.Response.Response != nil { 152 sc = result.asc.Response.Response.StatusCode 153 } 154 tracing.EndSpan(ctx, sc, err) 155 }() 156 } 157 result.fn = client.getAvailableStacksOnPremNextResults 158 req, err := client.GetAvailableStacksOnPremPreparer(ctx, osTypeSelected) 159 if err != nil { 160 err = autorest.NewErrorWithError(err, "web.ProviderClient", "GetAvailableStacksOnPrem", nil, "Failure preparing request") 161 return 162 } 163 164 resp, err := client.GetAvailableStacksOnPremSender(req) 165 if err != nil { 166 result.asc.Response = autorest.Response{Response: resp} 167 err = autorest.NewErrorWithError(err, "web.ProviderClient", "GetAvailableStacksOnPrem", resp, "Failure sending request") 168 return 169 } 170 171 result.asc, err = client.GetAvailableStacksOnPremResponder(resp) 172 if err != nil { 173 err = autorest.NewErrorWithError(err, "web.ProviderClient", "GetAvailableStacksOnPrem", resp, "Failure responding to request") 174 return 175 } 176 if result.asc.hasNextLink() && result.asc.IsEmpty() { 177 err = result.NextWithContext(ctx) 178 return 179 } 180 181 return 182} 183 184// GetAvailableStacksOnPremPreparer prepares the GetAvailableStacksOnPrem request. 185func (client ProviderClient) GetAvailableStacksOnPremPreparer(ctx context.Context, osTypeSelected string) (*http.Request, error) { 186 pathParameters := map[string]interface{}{ 187 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 188 } 189 190 const APIVersion = "2019-08-01" 191 queryParameters := map[string]interface{}{ 192 "api-version": APIVersion, 193 } 194 if len(string(osTypeSelected)) > 0 { 195 queryParameters["osTypeSelected"] = autorest.Encode("query", osTypeSelected) 196 } 197 198 preparer := autorest.CreatePreparer( 199 autorest.AsGet(), 200 autorest.WithBaseURL(client.BaseURI), 201 autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.Web/availableStacks", pathParameters), 202 autorest.WithQueryParameters(queryParameters)) 203 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 204} 205 206// GetAvailableStacksOnPremSender sends the GetAvailableStacksOnPrem request. The method will close the 207// http.Response Body if it receives an error. 208func (client ProviderClient) GetAvailableStacksOnPremSender(req *http.Request) (*http.Response, error) { 209 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 210} 211 212// GetAvailableStacksOnPremResponder handles the response to the GetAvailableStacksOnPrem request. The method always 213// closes the http.Response Body. 214func (client ProviderClient) GetAvailableStacksOnPremResponder(resp *http.Response) (result ApplicationStackCollection, err error) { 215 err = autorest.Respond( 216 resp, 217 azure.WithErrorUnlessStatusCode(http.StatusOK), 218 autorest.ByUnmarshallingJSON(&result), 219 autorest.ByClosing()) 220 result.Response = autorest.Response{Response: resp} 221 return 222} 223 224// getAvailableStacksOnPremNextResults retrieves the next set of results, if any. 225func (client ProviderClient) getAvailableStacksOnPremNextResults(ctx context.Context, lastResults ApplicationStackCollection) (result ApplicationStackCollection, err error) { 226 req, err := lastResults.applicationStackCollectionPreparer(ctx) 227 if err != nil { 228 return result, autorest.NewErrorWithError(err, "web.ProviderClient", "getAvailableStacksOnPremNextResults", nil, "Failure preparing next results request") 229 } 230 if req == nil { 231 return 232 } 233 resp, err := client.GetAvailableStacksOnPremSender(req) 234 if err != nil { 235 result.Response = autorest.Response{Response: resp} 236 return result, autorest.NewErrorWithError(err, "web.ProviderClient", "getAvailableStacksOnPremNextResults", resp, "Failure sending next results request") 237 } 238 result, err = client.GetAvailableStacksOnPremResponder(resp) 239 if err != nil { 240 err = autorest.NewErrorWithError(err, "web.ProviderClient", "getAvailableStacksOnPremNextResults", resp, "Failure responding to next results request") 241 } 242 return 243} 244 245// GetAvailableStacksOnPremComplete enumerates all values, automatically crossing page boundaries as required. 246func (client ProviderClient) GetAvailableStacksOnPremComplete(ctx context.Context, osTypeSelected string) (result ApplicationStackCollectionIterator, err error) { 247 if tracing.IsEnabled() { 248 ctx = tracing.StartSpan(ctx, fqdn+"/ProviderClient.GetAvailableStacksOnPrem") 249 defer func() { 250 sc := -1 251 if result.Response().Response.Response != nil { 252 sc = result.page.Response().Response.Response.StatusCode 253 } 254 tracing.EndSpan(ctx, sc, err) 255 }() 256 } 257 result.page, err = client.GetAvailableStacksOnPrem(ctx, osTypeSelected) 258 return 259} 260 261// ListOperations description for Gets all available operations for the Microsoft.Web resource provider. Also exposes 262// resource metric definitions 263func (client ProviderClient) ListOperations(ctx context.Context) (result CsmOperationCollectionPage, err error) { 264 if tracing.IsEnabled() { 265 ctx = tracing.StartSpan(ctx, fqdn+"/ProviderClient.ListOperations") 266 defer func() { 267 sc := -1 268 if result.coc.Response.Response != nil { 269 sc = result.coc.Response.Response.StatusCode 270 } 271 tracing.EndSpan(ctx, sc, err) 272 }() 273 } 274 result.fn = client.listOperationsNextResults 275 req, err := client.ListOperationsPreparer(ctx) 276 if err != nil { 277 err = autorest.NewErrorWithError(err, "web.ProviderClient", "ListOperations", nil, "Failure preparing request") 278 return 279 } 280 281 resp, err := client.ListOperationsSender(req) 282 if err != nil { 283 result.coc.Response = autorest.Response{Response: resp} 284 err = autorest.NewErrorWithError(err, "web.ProviderClient", "ListOperations", resp, "Failure sending request") 285 return 286 } 287 288 result.coc, err = client.ListOperationsResponder(resp) 289 if err != nil { 290 err = autorest.NewErrorWithError(err, "web.ProviderClient", "ListOperations", resp, "Failure responding to request") 291 return 292 } 293 if result.coc.hasNextLink() && result.coc.IsEmpty() { 294 err = result.NextWithContext(ctx) 295 return 296 } 297 298 return 299} 300 301// ListOperationsPreparer prepares the ListOperations request. 302func (client ProviderClient) ListOperationsPreparer(ctx context.Context) (*http.Request, error) { 303 const APIVersion = "2019-08-01" 304 queryParameters := map[string]interface{}{ 305 "api-version": APIVersion, 306 } 307 308 preparer := autorest.CreatePreparer( 309 autorest.AsGet(), 310 autorest.WithBaseURL(client.BaseURI), 311 autorest.WithPath("/providers/Microsoft.Web/operations"), 312 autorest.WithQueryParameters(queryParameters)) 313 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 314} 315 316// ListOperationsSender sends the ListOperations request. The method will close the 317// http.Response Body if it receives an error. 318func (client ProviderClient) ListOperationsSender(req *http.Request) (*http.Response, error) { 319 return client.Send(req, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 320} 321 322// ListOperationsResponder handles the response to the ListOperations request. The method always 323// closes the http.Response Body. 324func (client ProviderClient) ListOperationsResponder(resp *http.Response) (result CsmOperationCollection, err error) { 325 err = autorest.Respond( 326 resp, 327 azure.WithErrorUnlessStatusCode(http.StatusOK), 328 autorest.ByUnmarshallingJSON(&result), 329 autorest.ByClosing()) 330 result.Response = autorest.Response{Response: resp} 331 return 332} 333 334// listOperationsNextResults retrieves the next set of results, if any. 335func (client ProviderClient) listOperationsNextResults(ctx context.Context, lastResults CsmOperationCollection) (result CsmOperationCollection, err error) { 336 req, err := lastResults.csmOperationCollectionPreparer(ctx) 337 if err != nil { 338 return result, autorest.NewErrorWithError(err, "web.ProviderClient", "listOperationsNextResults", nil, "Failure preparing next results request") 339 } 340 if req == nil { 341 return 342 } 343 resp, err := client.ListOperationsSender(req) 344 if err != nil { 345 result.Response = autorest.Response{Response: resp} 346 return result, autorest.NewErrorWithError(err, "web.ProviderClient", "listOperationsNextResults", resp, "Failure sending next results request") 347 } 348 result, err = client.ListOperationsResponder(resp) 349 if err != nil { 350 err = autorest.NewErrorWithError(err, "web.ProviderClient", "listOperationsNextResults", resp, "Failure responding to next results request") 351 } 352 return 353} 354 355// ListOperationsComplete enumerates all values, automatically crossing page boundaries as required. 356func (client ProviderClient) ListOperationsComplete(ctx context.Context) (result CsmOperationCollectionIterator, err error) { 357 if tracing.IsEnabled() { 358 ctx = tracing.StartSpan(ctx, fqdn+"/ProviderClient.ListOperations") 359 defer func() { 360 sc := -1 361 if result.Response().Response.Response != nil { 362 sc = result.page.Response().Response.Response.StatusCode 363 } 364 tracing.EndSpan(ctx, sc, err) 365 }() 366 } 367 result.page, err = client.ListOperations(ctx) 368 return 369} 370