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