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