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