1package servicefabric 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// MeshNetworkClient is the service Fabric REST Client APIs allows management of Service Fabric clusters, applications 19// and services. 20type MeshNetworkClient struct { 21 BaseClient 22} 23 24// NewMeshNetworkClient creates an instance of the MeshNetworkClient client. 25func NewMeshNetworkClient() MeshNetworkClient { 26 return NewMeshNetworkClientWithBaseURI(DefaultBaseURI) 27} 28 29// NewMeshNetworkClientWithBaseURI creates an instance of the MeshNetworkClient client using a custom endpoint. Use 30// this when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, Azure stack). 31func NewMeshNetworkClientWithBaseURI(baseURI string) MeshNetworkClient { 32 return MeshNetworkClient{NewWithBaseURI(baseURI)} 33} 34 35// CreateOrUpdate creates a Network resource with the specified name, description and properties. If Network resource 36// with the same name exists, then it is updated with the specified description and properties. Network resource 37// provides connectivity between application services. 38// Parameters: 39// networkResourceName - the identity of the network. 40// networkResourceDescription - description for creating a Network resource. 41func (client MeshNetworkClient) CreateOrUpdate(ctx context.Context, networkResourceName string, networkResourceDescription NetworkResourceDescription) (result NetworkResourceDescription, err error) { 42 if tracing.IsEnabled() { 43 ctx = tracing.StartSpan(ctx, fqdn+"/MeshNetworkClient.CreateOrUpdate") 44 defer func() { 45 sc := -1 46 if result.Response.Response != nil { 47 sc = result.Response.Response.StatusCode 48 } 49 tracing.EndSpan(ctx, sc, err) 50 }() 51 } 52 if err := validation.Validate([]validation.Validation{ 53 {TargetValue: networkResourceDescription, 54 Constraints: []validation.Constraint{{Target: "networkResourceDescription.Name", Name: validation.Null, Rule: true, Chain: nil}, 55 {Target: "networkResourceDescription.Properties", Name: validation.Null, Rule: true, Chain: nil}}}}); err != nil { 56 return result, validation.NewError("servicefabric.MeshNetworkClient", "CreateOrUpdate", err.Error()) 57 } 58 59 req, err := client.CreateOrUpdatePreparer(ctx, networkResourceName, networkResourceDescription) 60 if err != nil { 61 err = autorest.NewErrorWithError(err, "servicefabric.MeshNetworkClient", "CreateOrUpdate", nil, "Failure preparing request") 62 return 63 } 64 65 resp, err := client.CreateOrUpdateSender(req) 66 if err != nil { 67 result.Response = autorest.Response{Response: resp} 68 err = autorest.NewErrorWithError(err, "servicefabric.MeshNetworkClient", "CreateOrUpdate", resp, "Failure sending request") 69 return 70 } 71 72 result, err = client.CreateOrUpdateResponder(resp) 73 if err != nil { 74 err = autorest.NewErrorWithError(err, "servicefabric.MeshNetworkClient", "CreateOrUpdate", resp, "Failure responding to request") 75 return 76 } 77 78 return 79} 80 81// CreateOrUpdatePreparer prepares the CreateOrUpdate request. 82func (client MeshNetworkClient) CreateOrUpdatePreparer(ctx context.Context, networkResourceName string, networkResourceDescription NetworkResourceDescription) (*http.Request, error) { 83 pathParameters := map[string]interface{}{ 84 "networkResourceName": networkResourceName, 85 } 86 87 const APIVersion = "6.4-preview" 88 queryParameters := map[string]interface{}{ 89 "api-version": APIVersion, 90 } 91 92 preparer := autorest.CreatePreparer( 93 autorest.AsContentType("application/json; charset=utf-8"), 94 autorest.AsPut(), 95 autorest.WithBaseURL(client.BaseURI), 96 autorest.WithPathParameters("/Resources/Networks/{networkResourceName}", pathParameters), 97 autorest.WithJSON(networkResourceDescription), 98 autorest.WithQueryParameters(queryParameters)) 99 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 100} 101 102// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the 103// http.Response Body if it receives an error. 104func (client MeshNetworkClient) CreateOrUpdateSender(req *http.Request) (*http.Response, error) { 105 return client.Send(req, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 106} 107 108// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always 109// closes the http.Response Body. 110func (client MeshNetworkClient) CreateOrUpdateResponder(resp *http.Response) (result NetworkResourceDescription, err error) { 111 err = autorest.Respond( 112 resp, 113 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated, http.StatusAccepted), 114 autorest.ByUnmarshallingJSON(&result), 115 autorest.ByClosing()) 116 result.Response = autorest.Response{Response: resp} 117 return 118} 119 120// Delete deletes the Network resource identified by the name. 121// Parameters: 122// networkResourceName - the identity of the network. 123func (client MeshNetworkClient) Delete(ctx context.Context, networkResourceName string) (result autorest.Response, err error) { 124 if tracing.IsEnabled() { 125 ctx = tracing.StartSpan(ctx, fqdn+"/MeshNetworkClient.Delete") 126 defer func() { 127 sc := -1 128 if result.Response != nil { 129 sc = result.Response.StatusCode 130 } 131 tracing.EndSpan(ctx, sc, err) 132 }() 133 } 134 req, err := client.DeletePreparer(ctx, networkResourceName) 135 if err != nil { 136 err = autorest.NewErrorWithError(err, "servicefabric.MeshNetworkClient", "Delete", nil, "Failure preparing request") 137 return 138 } 139 140 resp, err := client.DeleteSender(req) 141 if err != nil { 142 result.Response = resp 143 err = autorest.NewErrorWithError(err, "servicefabric.MeshNetworkClient", "Delete", resp, "Failure sending request") 144 return 145 } 146 147 result, err = client.DeleteResponder(resp) 148 if err != nil { 149 err = autorest.NewErrorWithError(err, "servicefabric.MeshNetworkClient", "Delete", resp, "Failure responding to request") 150 return 151 } 152 153 return 154} 155 156// DeletePreparer prepares the Delete request. 157func (client MeshNetworkClient) DeletePreparer(ctx context.Context, networkResourceName string) (*http.Request, error) { 158 pathParameters := map[string]interface{}{ 159 "networkResourceName": networkResourceName, 160 } 161 162 const APIVersion = "6.4-preview" 163 queryParameters := map[string]interface{}{ 164 "api-version": APIVersion, 165 } 166 167 preparer := autorest.CreatePreparer( 168 autorest.AsDelete(), 169 autorest.WithBaseURL(client.BaseURI), 170 autorest.WithPathParameters("/Resources/Networks/{networkResourceName}", pathParameters), 171 autorest.WithQueryParameters(queryParameters)) 172 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 173} 174 175// DeleteSender sends the Delete request. The method will close the 176// http.Response Body if it receives an error. 177func (client MeshNetworkClient) DeleteSender(req *http.Request) (*http.Response, error) { 178 return client.Send(req, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 179} 180 181// DeleteResponder handles the response to the Delete request. The method always 182// closes the http.Response Body. 183func (client MeshNetworkClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { 184 err = autorest.Respond( 185 resp, 186 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent), 187 autorest.ByClosing()) 188 result.Response = resp 189 return 190} 191 192// Get gets the information about the Network resource with the given name. The information include the description and 193// other properties of the Network. 194// Parameters: 195// networkResourceName - the identity of the network. 196func (client MeshNetworkClient) Get(ctx context.Context, networkResourceName string) (result NetworkResourceDescription, err error) { 197 if tracing.IsEnabled() { 198 ctx = tracing.StartSpan(ctx, fqdn+"/MeshNetworkClient.Get") 199 defer func() { 200 sc := -1 201 if result.Response.Response != nil { 202 sc = result.Response.Response.StatusCode 203 } 204 tracing.EndSpan(ctx, sc, err) 205 }() 206 } 207 req, err := client.GetPreparer(ctx, networkResourceName) 208 if err != nil { 209 err = autorest.NewErrorWithError(err, "servicefabric.MeshNetworkClient", "Get", nil, "Failure preparing request") 210 return 211 } 212 213 resp, err := client.GetSender(req) 214 if err != nil { 215 result.Response = autorest.Response{Response: resp} 216 err = autorest.NewErrorWithError(err, "servicefabric.MeshNetworkClient", "Get", resp, "Failure sending request") 217 return 218 } 219 220 result, err = client.GetResponder(resp) 221 if err != nil { 222 err = autorest.NewErrorWithError(err, "servicefabric.MeshNetworkClient", "Get", resp, "Failure responding to request") 223 return 224 } 225 226 return 227} 228 229// GetPreparer prepares the Get request. 230func (client MeshNetworkClient) GetPreparer(ctx context.Context, networkResourceName string) (*http.Request, error) { 231 pathParameters := map[string]interface{}{ 232 "networkResourceName": networkResourceName, 233 } 234 235 const APIVersion = "6.4-preview" 236 queryParameters := map[string]interface{}{ 237 "api-version": APIVersion, 238 } 239 240 preparer := autorest.CreatePreparer( 241 autorest.AsGet(), 242 autorest.WithBaseURL(client.BaseURI), 243 autorest.WithPathParameters("/Resources/Networks/{networkResourceName}", pathParameters), 244 autorest.WithQueryParameters(queryParameters)) 245 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 246} 247 248// GetSender sends the Get request. The method will close the 249// http.Response Body if it receives an error. 250func (client MeshNetworkClient) GetSender(req *http.Request) (*http.Response, error) { 251 return client.Send(req, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 252} 253 254// GetResponder handles the response to the Get request. The method always 255// closes the http.Response Body. 256func (client MeshNetworkClient) GetResponder(resp *http.Response) (result NetworkResourceDescription, err error) { 257 err = autorest.Respond( 258 resp, 259 azure.WithErrorUnlessStatusCode(http.StatusOK), 260 autorest.ByUnmarshallingJSON(&result), 261 autorest.ByClosing()) 262 result.Response = autorest.Response{Response: resp} 263 return 264} 265 266// List gets the information about all network resources in a given resource group. The information include the 267// description and other properties of the Network. 268func (client MeshNetworkClient) List(ctx context.Context) (result PagedNetworkResourceDescriptionList, err error) { 269 if tracing.IsEnabled() { 270 ctx = tracing.StartSpan(ctx, fqdn+"/MeshNetworkClient.List") 271 defer func() { 272 sc := -1 273 if result.Response.Response != nil { 274 sc = result.Response.Response.StatusCode 275 } 276 tracing.EndSpan(ctx, sc, err) 277 }() 278 } 279 req, err := client.ListPreparer(ctx) 280 if err != nil { 281 err = autorest.NewErrorWithError(err, "servicefabric.MeshNetworkClient", "List", nil, "Failure preparing request") 282 return 283 } 284 285 resp, err := client.ListSender(req) 286 if err != nil { 287 result.Response = autorest.Response{Response: resp} 288 err = autorest.NewErrorWithError(err, "servicefabric.MeshNetworkClient", "List", resp, "Failure sending request") 289 return 290 } 291 292 result, err = client.ListResponder(resp) 293 if err != nil { 294 err = autorest.NewErrorWithError(err, "servicefabric.MeshNetworkClient", "List", resp, "Failure responding to request") 295 return 296 } 297 298 return 299} 300 301// ListPreparer prepares the List request. 302func (client MeshNetworkClient) ListPreparer(ctx context.Context) (*http.Request, error) { 303 const APIVersion = "6.4-preview" 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("/Resources/Networks"), 312 autorest.WithQueryParameters(queryParameters)) 313 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 314} 315 316// ListSender sends the List request. The method will close the 317// http.Response Body if it receives an error. 318func (client MeshNetworkClient) ListSender(req *http.Request) (*http.Response, error) { 319 return client.Send(req, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 320} 321 322// ListResponder handles the response to the List request. The method always 323// closes the http.Response Body. 324func (client MeshNetworkClient) ListResponder(resp *http.Response) (result PagedNetworkResourceDescriptionList, 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