1package network 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// VirtualApplianceSitesClient is the network Client 18type VirtualApplianceSitesClient struct { 19 BaseClient 20} 21 22// NewVirtualApplianceSitesClient creates an instance of the VirtualApplianceSitesClient client. 23func NewVirtualApplianceSitesClient(subscriptionID string) VirtualApplianceSitesClient { 24 return NewVirtualApplianceSitesClientWithBaseURI(DefaultBaseURI, subscriptionID) 25} 26 27// NewVirtualApplianceSitesClientWithBaseURI creates an instance of the VirtualApplianceSitesClient client using a 28// custom endpoint. Use this when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, 29// Azure stack). 30func NewVirtualApplianceSitesClientWithBaseURI(baseURI string, subscriptionID string) VirtualApplianceSitesClient { 31 return VirtualApplianceSitesClient{NewWithBaseURI(baseURI, subscriptionID)} 32} 33 34// CreateOrUpdate creates or updates the specified Network Virtual Appliance Site. 35// Parameters: 36// resourceGroupName - the name of the resource group. 37// networkVirtualApplianceName - the name of the Network Virtual Appliance. 38// siteName - the name of the site. 39// parameters - parameters supplied to the create or update Network Virtual Appliance Site operation. 40func (client VirtualApplianceSitesClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, networkVirtualApplianceName string, siteName string, parameters VirtualApplianceSite) (result VirtualApplianceSitesCreateOrUpdateFuture, err error) { 41 if tracing.IsEnabled() { 42 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualApplianceSitesClient.CreateOrUpdate") 43 defer func() { 44 sc := -1 45 if result.FutureAPI != nil && result.FutureAPI.Response() != nil { 46 sc = result.FutureAPI.Response().StatusCode 47 } 48 tracing.EndSpan(ctx, sc, err) 49 }() 50 } 51 req, err := client.CreateOrUpdatePreparer(ctx, resourceGroupName, networkVirtualApplianceName, siteName, parameters) 52 if err != nil { 53 err = autorest.NewErrorWithError(err, "network.VirtualApplianceSitesClient", "CreateOrUpdate", nil, "Failure preparing request") 54 return 55 } 56 57 result, err = client.CreateOrUpdateSender(req) 58 if err != nil { 59 err = autorest.NewErrorWithError(err, "network.VirtualApplianceSitesClient", "CreateOrUpdate", nil, "Failure sending request") 60 return 61 } 62 63 return 64} 65 66// CreateOrUpdatePreparer prepares the CreateOrUpdate request. 67func (client VirtualApplianceSitesClient) CreateOrUpdatePreparer(ctx context.Context, resourceGroupName string, networkVirtualApplianceName string, siteName string, parameters VirtualApplianceSite) (*http.Request, error) { 68 pathParameters := map[string]interface{}{ 69 "networkVirtualApplianceName": autorest.Encode("path", networkVirtualApplianceName), 70 "resourceGroupName": autorest.Encode("path", resourceGroupName), 71 "siteName": autorest.Encode("path", siteName), 72 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 73 } 74 75 const APIVersion = "2020-06-01" 76 queryParameters := map[string]interface{}{ 77 "api-version": APIVersion, 78 } 79 80 parameters.Etag = nil 81 parameters.Type = nil 82 preparer := autorest.CreatePreparer( 83 autorest.AsContentType("application/json; charset=utf-8"), 84 autorest.AsPut(), 85 autorest.WithBaseURL(client.BaseURI), 86 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkVirtualAppliances/{networkVirtualApplianceName}/virtualApplianceSites/{siteName}", pathParameters), 87 autorest.WithJSON(parameters), 88 autorest.WithQueryParameters(queryParameters)) 89 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 90} 91 92// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the 93// http.Response Body if it receives an error. 94func (client VirtualApplianceSitesClient) CreateOrUpdateSender(req *http.Request) (future VirtualApplianceSitesCreateOrUpdateFuture, err error) { 95 var resp *http.Response 96 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) 97 if err != nil { 98 return 99 } 100 var azf azure.Future 101 azf, err = azure.NewFutureFromResponse(resp) 102 future.FutureAPI = &azf 103 future.Result = future.result 104 return 105} 106 107// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always 108// closes the http.Response Body. 109func (client VirtualApplianceSitesClient) CreateOrUpdateResponder(resp *http.Response) (result VirtualApplianceSite, err error) { 110 err = autorest.Respond( 111 resp, 112 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated), 113 autorest.ByUnmarshallingJSON(&result), 114 autorest.ByClosing()) 115 result.Response = autorest.Response{Response: resp} 116 return 117} 118 119// Delete deletes the specified site from a Virtual Appliance. 120// Parameters: 121// resourceGroupName - the name of the resource group. 122// networkVirtualApplianceName - the name of the Network Virtual Appliance. 123// siteName - the name of the site. 124func (client VirtualApplianceSitesClient) Delete(ctx context.Context, resourceGroupName string, networkVirtualApplianceName string, siteName string) (result VirtualApplianceSitesDeleteFuture, err error) { 125 if tracing.IsEnabled() { 126 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualApplianceSitesClient.Delete") 127 defer func() { 128 sc := -1 129 if result.FutureAPI != nil && result.FutureAPI.Response() != nil { 130 sc = result.FutureAPI.Response().StatusCode 131 } 132 tracing.EndSpan(ctx, sc, err) 133 }() 134 } 135 req, err := client.DeletePreparer(ctx, resourceGroupName, networkVirtualApplianceName, siteName) 136 if err != nil { 137 err = autorest.NewErrorWithError(err, "network.VirtualApplianceSitesClient", "Delete", nil, "Failure preparing request") 138 return 139 } 140 141 result, err = client.DeleteSender(req) 142 if err != nil { 143 err = autorest.NewErrorWithError(err, "network.VirtualApplianceSitesClient", "Delete", nil, "Failure sending request") 144 return 145 } 146 147 return 148} 149 150// DeletePreparer prepares the Delete request. 151func (client VirtualApplianceSitesClient) DeletePreparer(ctx context.Context, resourceGroupName string, networkVirtualApplianceName string, siteName string) (*http.Request, error) { 152 pathParameters := map[string]interface{}{ 153 "networkVirtualApplianceName": autorest.Encode("path", networkVirtualApplianceName), 154 "resourceGroupName": autorest.Encode("path", resourceGroupName), 155 "siteName": autorest.Encode("path", siteName), 156 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 157 } 158 159 const APIVersion = "2020-06-01" 160 queryParameters := map[string]interface{}{ 161 "api-version": APIVersion, 162 } 163 164 preparer := autorest.CreatePreparer( 165 autorest.AsDelete(), 166 autorest.WithBaseURL(client.BaseURI), 167 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkVirtualAppliances/{networkVirtualApplianceName}/virtualApplianceSites/{siteName}", pathParameters), 168 autorest.WithQueryParameters(queryParameters)) 169 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 170} 171 172// DeleteSender sends the Delete request. The method will close the 173// http.Response Body if it receives an error. 174func (client VirtualApplianceSitesClient) DeleteSender(req *http.Request) (future VirtualApplianceSitesDeleteFuture, err error) { 175 var resp *http.Response 176 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) 177 if err != nil { 178 return 179 } 180 var azf azure.Future 181 azf, err = azure.NewFutureFromResponse(resp) 182 future.FutureAPI = &azf 183 future.Result = future.result 184 return 185} 186 187// DeleteResponder handles the response to the Delete request. The method always 188// closes the http.Response Body. 189func (client VirtualApplianceSitesClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { 190 err = autorest.Respond( 191 resp, 192 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent), 193 autorest.ByClosing()) 194 result.Response = resp 195 return 196} 197 198// Get gets the specified Virtual Appliance Site. 199// Parameters: 200// resourceGroupName - the name of the resource group. 201// networkVirtualApplianceName - the name of the Network Virtual Appliance. 202// siteName - the name of the site. 203func (client VirtualApplianceSitesClient) Get(ctx context.Context, resourceGroupName string, networkVirtualApplianceName string, siteName string) (result VirtualApplianceSite, err error) { 204 if tracing.IsEnabled() { 205 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualApplianceSitesClient.Get") 206 defer func() { 207 sc := -1 208 if result.Response.Response != nil { 209 sc = result.Response.Response.StatusCode 210 } 211 tracing.EndSpan(ctx, sc, err) 212 }() 213 } 214 req, err := client.GetPreparer(ctx, resourceGroupName, networkVirtualApplianceName, siteName) 215 if err != nil { 216 err = autorest.NewErrorWithError(err, "network.VirtualApplianceSitesClient", "Get", nil, "Failure preparing request") 217 return 218 } 219 220 resp, err := client.GetSender(req) 221 if err != nil { 222 result.Response = autorest.Response{Response: resp} 223 err = autorest.NewErrorWithError(err, "network.VirtualApplianceSitesClient", "Get", resp, "Failure sending request") 224 return 225 } 226 227 result, err = client.GetResponder(resp) 228 if err != nil { 229 err = autorest.NewErrorWithError(err, "network.VirtualApplianceSitesClient", "Get", resp, "Failure responding to request") 230 return 231 } 232 233 return 234} 235 236// GetPreparer prepares the Get request. 237func (client VirtualApplianceSitesClient) GetPreparer(ctx context.Context, resourceGroupName string, networkVirtualApplianceName string, siteName string) (*http.Request, error) { 238 pathParameters := map[string]interface{}{ 239 "networkVirtualApplianceName": autorest.Encode("path", networkVirtualApplianceName), 240 "resourceGroupName": autorest.Encode("path", resourceGroupName), 241 "siteName": autorest.Encode("path", siteName), 242 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 243 } 244 245 const APIVersion = "2020-06-01" 246 queryParameters := map[string]interface{}{ 247 "api-version": APIVersion, 248 } 249 250 preparer := autorest.CreatePreparer( 251 autorest.AsGet(), 252 autorest.WithBaseURL(client.BaseURI), 253 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkVirtualAppliances/{networkVirtualApplianceName}/virtualApplianceSites/{siteName}", pathParameters), 254 autorest.WithQueryParameters(queryParameters)) 255 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 256} 257 258// GetSender sends the Get request. The method will close the 259// http.Response Body if it receives an error. 260func (client VirtualApplianceSitesClient) GetSender(req *http.Request) (*http.Response, error) { 261 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 262} 263 264// GetResponder handles the response to the Get request. The method always 265// closes the http.Response Body. 266func (client VirtualApplianceSitesClient) GetResponder(resp *http.Response) (result VirtualApplianceSite, err error) { 267 err = autorest.Respond( 268 resp, 269 azure.WithErrorUnlessStatusCode(http.StatusOK), 270 autorest.ByUnmarshallingJSON(&result), 271 autorest.ByClosing()) 272 result.Response = autorest.Response{Response: resp} 273 return 274} 275 276// List lists all Network Virtual Appliance Sites in a Network Virtual Appliance resource. 277// Parameters: 278// resourceGroupName - the name of the resource group. 279// networkVirtualApplianceName - the name of the Network Virtual Appliance. 280func (client VirtualApplianceSitesClient) List(ctx context.Context, resourceGroupName string, networkVirtualApplianceName string) (result VirtualApplianceSiteListResultPage, err error) { 281 if tracing.IsEnabled() { 282 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualApplianceSitesClient.List") 283 defer func() { 284 sc := -1 285 if result.vaslr.Response.Response != nil { 286 sc = result.vaslr.Response.Response.StatusCode 287 } 288 tracing.EndSpan(ctx, sc, err) 289 }() 290 } 291 result.fn = client.listNextResults 292 req, err := client.ListPreparer(ctx, resourceGroupName, networkVirtualApplianceName) 293 if err != nil { 294 err = autorest.NewErrorWithError(err, "network.VirtualApplianceSitesClient", "List", nil, "Failure preparing request") 295 return 296 } 297 298 resp, err := client.ListSender(req) 299 if err != nil { 300 result.vaslr.Response = autorest.Response{Response: resp} 301 err = autorest.NewErrorWithError(err, "network.VirtualApplianceSitesClient", "List", resp, "Failure sending request") 302 return 303 } 304 305 result.vaslr, err = client.ListResponder(resp) 306 if err != nil { 307 err = autorest.NewErrorWithError(err, "network.VirtualApplianceSitesClient", "List", resp, "Failure responding to request") 308 return 309 } 310 if result.vaslr.hasNextLink() && result.vaslr.IsEmpty() { 311 err = result.NextWithContext(ctx) 312 return 313 } 314 315 return 316} 317 318// ListPreparer prepares the List request. 319func (client VirtualApplianceSitesClient) ListPreparer(ctx context.Context, resourceGroupName string, networkVirtualApplianceName string) (*http.Request, error) { 320 pathParameters := map[string]interface{}{ 321 "networkVirtualApplianceName": autorest.Encode("path", networkVirtualApplianceName), 322 "resourceGroupName": autorest.Encode("path", resourceGroupName), 323 "subscriptionId": autorest.Encode("path", client.SubscriptionID), 324 } 325 326 const APIVersion = "2020-06-01" 327 queryParameters := map[string]interface{}{ 328 "api-version": APIVersion, 329 } 330 331 preparer := autorest.CreatePreparer( 332 autorest.AsGet(), 333 autorest.WithBaseURL(client.BaseURI), 334 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkVirtualAppliances/{networkVirtualApplianceName}/virtualApplianceSites", pathParameters), 335 autorest.WithQueryParameters(queryParameters)) 336 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 337} 338 339// ListSender sends the List request. The method will close the 340// http.Response Body if it receives an error. 341func (client VirtualApplianceSitesClient) ListSender(req *http.Request) (*http.Response, error) { 342 return client.Send(req, azure.DoRetryWithRegistration(client.Client)) 343} 344 345// ListResponder handles the response to the List request. The method always 346// closes the http.Response Body. 347func (client VirtualApplianceSitesClient) ListResponder(resp *http.Response) (result VirtualApplianceSiteListResult, err error) { 348 err = autorest.Respond( 349 resp, 350 azure.WithErrorUnlessStatusCode(http.StatusOK), 351 autorest.ByUnmarshallingJSON(&result), 352 autorest.ByClosing()) 353 result.Response = autorest.Response{Response: resp} 354 return 355} 356 357// listNextResults retrieves the next set of results, if any. 358func (client VirtualApplianceSitesClient) listNextResults(ctx context.Context, lastResults VirtualApplianceSiteListResult) (result VirtualApplianceSiteListResult, err error) { 359 req, err := lastResults.virtualApplianceSiteListResultPreparer(ctx) 360 if err != nil { 361 return result, autorest.NewErrorWithError(err, "network.VirtualApplianceSitesClient", "listNextResults", nil, "Failure preparing next results request") 362 } 363 if req == nil { 364 return 365 } 366 resp, err := client.ListSender(req) 367 if err != nil { 368 result.Response = autorest.Response{Response: resp} 369 return result, autorest.NewErrorWithError(err, "network.VirtualApplianceSitesClient", "listNextResults", resp, "Failure sending next results request") 370 } 371 result, err = client.ListResponder(resp) 372 if err != nil { 373 err = autorest.NewErrorWithError(err, "network.VirtualApplianceSitesClient", "listNextResults", resp, "Failure responding to next results request") 374 } 375 return 376} 377 378// ListComplete enumerates all values, automatically crossing page boundaries as required. 379func (client VirtualApplianceSitesClient) ListComplete(ctx context.Context, resourceGroupName string, networkVirtualApplianceName string) (result VirtualApplianceSiteListResultIterator, err error) { 380 if tracing.IsEnabled() { 381 ctx = tracing.StartSpan(ctx, fqdn+"/VirtualApplianceSitesClient.List") 382 defer func() { 383 sc := -1 384 if result.Response().Response.Response != nil { 385 sc = result.page.Response().Response.Response.StatusCode 386 } 387 tracing.EndSpan(ctx, sc, err) 388 }() 389 } 390 result.page, err = client.List(ctx, resourceGroupName, networkVirtualApplianceName) 391 return 392} 393