github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v6@v6.2.0/connectivityconfigurations_client.go (about) 1 //go:build go1.18 2 // +build go1.18 3 4 // Copyright (c) Microsoft Corporation. All rights reserved. 5 // Licensed under the MIT License. See License.txt in the project root for license information. 6 // Code generated by Microsoft (R) AutoRest Code Generator. DO NOT EDIT. 7 // Changes may cause incorrect behavior and will be lost if the code is regenerated. 8 9 package armnetwork 10 11 import ( 12 "context" 13 "errors" 14 "github.com/Azure/azure-sdk-for-go/sdk/azcore" 15 "github.com/Azure/azure-sdk-for-go/sdk/azcore/arm" 16 "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" 17 "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" 18 "net/http" 19 "net/url" 20 "strconv" 21 "strings" 22 ) 23 24 // ConnectivityConfigurationsClient contains the methods for the ConnectivityConfigurations group. 25 // Don't use this type directly, use NewConnectivityConfigurationsClient() instead. 26 type ConnectivityConfigurationsClient struct { 27 internal *arm.Client 28 subscriptionID string 29 } 30 31 // NewConnectivityConfigurationsClient creates a new instance of ConnectivityConfigurationsClient with the specified values. 32 // - subscriptionID - The subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription 33 // ID forms part of the URI for every service call. 34 // - credential - used to authorize requests. Usually a credential from azidentity. 35 // - options - pass nil to accept the default values. 36 func NewConnectivityConfigurationsClient(subscriptionID string, credential azcore.TokenCredential, options *arm.ClientOptions) (*ConnectivityConfigurationsClient, error) { 37 cl, err := arm.NewClient(moduleName, moduleVersion, credential, options) 38 if err != nil { 39 return nil, err 40 } 41 client := &ConnectivityConfigurationsClient{ 42 subscriptionID: subscriptionID, 43 internal: cl, 44 } 45 return client, nil 46 } 47 48 // CreateOrUpdate - Creates/Updates a new network manager connectivity configuration 49 // If the operation fails it returns an *azcore.ResponseError type. 50 // 51 // Generated from API version 2024-05-01 52 // - resourceGroupName - The name of the resource group. 53 // - networkManagerName - The name of the network manager. 54 // - configurationName - The name of the network manager connectivity configuration. 55 // - connectivityConfiguration - Parameters supplied to create/update a network manager connectivity configuration 56 // - options - ConnectivityConfigurationsClientCreateOrUpdateOptions contains the optional parameters for the ConnectivityConfigurationsClient.CreateOrUpdate 57 // method. 58 func (client *ConnectivityConfigurationsClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, networkManagerName string, configurationName string, connectivityConfiguration ConnectivityConfiguration, options *ConnectivityConfigurationsClientCreateOrUpdateOptions) (ConnectivityConfigurationsClientCreateOrUpdateResponse, error) { 59 var err error 60 const operationName = "ConnectivityConfigurationsClient.CreateOrUpdate" 61 ctx = context.WithValue(ctx, runtime.CtxAPINameKey{}, operationName) 62 ctx, endSpan := runtime.StartSpan(ctx, operationName, client.internal.Tracer(), nil) 63 defer func() { endSpan(err) }() 64 req, err := client.createOrUpdateCreateRequest(ctx, resourceGroupName, networkManagerName, configurationName, connectivityConfiguration, options) 65 if err != nil { 66 return ConnectivityConfigurationsClientCreateOrUpdateResponse{}, err 67 } 68 httpResp, err := client.internal.Pipeline().Do(req) 69 if err != nil { 70 return ConnectivityConfigurationsClientCreateOrUpdateResponse{}, err 71 } 72 if !runtime.HasStatusCode(httpResp, http.StatusOK, http.StatusCreated) { 73 err = runtime.NewResponseError(httpResp) 74 return ConnectivityConfigurationsClientCreateOrUpdateResponse{}, err 75 } 76 resp, err := client.createOrUpdateHandleResponse(httpResp) 77 return resp, err 78 } 79 80 // createOrUpdateCreateRequest creates the CreateOrUpdate request. 81 func (client *ConnectivityConfigurationsClient) createOrUpdateCreateRequest(ctx context.Context, resourceGroupName string, networkManagerName string, configurationName string, connectivityConfiguration ConnectivityConfiguration, options *ConnectivityConfigurationsClientCreateOrUpdateOptions) (*policy.Request, error) { 82 urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/connectivityConfigurations/{configurationName}" 83 if client.subscriptionID == "" { 84 return nil, errors.New("parameter client.subscriptionID cannot be empty") 85 } 86 urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID)) 87 if resourceGroupName == "" { 88 return nil, errors.New("parameter resourceGroupName cannot be empty") 89 } 90 urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName)) 91 if networkManagerName == "" { 92 return nil, errors.New("parameter networkManagerName cannot be empty") 93 } 94 urlPath = strings.ReplaceAll(urlPath, "{networkManagerName}", url.PathEscape(networkManagerName)) 95 if configurationName == "" { 96 return nil, errors.New("parameter configurationName cannot be empty") 97 } 98 urlPath = strings.ReplaceAll(urlPath, "{configurationName}", url.PathEscape(configurationName)) 99 req, err := runtime.NewRequest(ctx, http.MethodPut, runtime.JoinPaths(client.internal.Endpoint(), urlPath)) 100 if err != nil { 101 return nil, err 102 } 103 reqQP := req.Raw().URL.Query() 104 reqQP.Set("api-version", "2024-05-01") 105 req.Raw().URL.RawQuery = reqQP.Encode() 106 req.Raw().Header["Accept"] = []string{"application/json"} 107 if err := runtime.MarshalAsJSON(req, connectivityConfiguration); err != nil { 108 return nil, err 109 } 110 return req, nil 111 } 112 113 // createOrUpdateHandleResponse handles the CreateOrUpdate response. 114 func (client *ConnectivityConfigurationsClient) createOrUpdateHandleResponse(resp *http.Response) (ConnectivityConfigurationsClientCreateOrUpdateResponse, error) { 115 result := ConnectivityConfigurationsClientCreateOrUpdateResponse{} 116 if err := runtime.UnmarshalAsJSON(resp, &result.ConnectivityConfiguration); err != nil { 117 return ConnectivityConfigurationsClientCreateOrUpdateResponse{}, err 118 } 119 return result, nil 120 } 121 122 // BeginDelete - Deletes a network manager connectivity configuration, specified by the resource group, network manager name, 123 // and connectivity configuration name 124 // If the operation fails it returns an *azcore.ResponseError type. 125 // 126 // Generated from API version 2024-05-01 127 // - resourceGroupName - The name of the resource group. 128 // - networkManagerName - The name of the network manager. 129 // - configurationName - The name of the network manager connectivity configuration. 130 // - options - ConnectivityConfigurationsClientBeginDeleteOptions contains the optional parameters for the ConnectivityConfigurationsClient.BeginDelete 131 // method. 132 func (client *ConnectivityConfigurationsClient) BeginDelete(ctx context.Context, resourceGroupName string, networkManagerName string, configurationName string, options *ConnectivityConfigurationsClientBeginDeleteOptions) (*runtime.Poller[ConnectivityConfigurationsClientDeleteResponse], error) { 133 if options == nil || options.ResumeToken == "" { 134 resp, err := client.deleteOperation(ctx, resourceGroupName, networkManagerName, configurationName, options) 135 if err != nil { 136 return nil, err 137 } 138 poller, err := runtime.NewPoller(resp, client.internal.Pipeline(), &runtime.NewPollerOptions[ConnectivityConfigurationsClientDeleteResponse]{ 139 FinalStateVia: runtime.FinalStateViaLocation, 140 Tracer: client.internal.Tracer(), 141 }) 142 return poller, err 143 } else { 144 return runtime.NewPollerFromResumeToken(options.ResumeToken, client.internal.Pipeline(), &runtime.NewPollerFromResumeTokenOptions[ConnectivityConfigurationsClientDeleteResponse]{ 145 Tracer: client.internal.Tracer(), 146 }) 147 } 148 } 149 150 // Delete - Deletes a network manager connectivity configuration, specified by the resource group, network manager name, and 151 // connectivity configuration name 152 // If the operation fails it returns an *azcore.ResponseError type. 153 // 154 // Generated from API version 2024-05-01 155 func (client *ConnectivityConfigurationsClient) deleteOperation(ctx context.Context, resourceGroupName string, networkManagerName string, configurationName string, options *ConnectivityConfigurationsClientBeginDeleteOptions) (*http.Response, error) { 156 var err error 157 const operationName = "ConnectivityConfigurationsClient.BeginDelete" 158 ctx = context.WithValue(ctx, runtime.CtxAPINameKey{}, operationName) 159 ctx, endSpan := runtime.StartSpan(ctx, operationName, client.internal.Tracer(), nil) 160 defer func() { endSpan(err) }() 161 req, err := client.deleteCreateRequest(ctx, resourceGroupName, networkManagerName, configurationName, options) 162 if err != nil { 163 return nil, err 164 } 165 httpResp, err := client.internal.Pipeline().Do(req) 166 if err != nil { 167 return nil, err 168 } 169 if !runtime.HasStatusCode(httpResp, http.StatusOK, http.StatusAccepted, http.StatusNoContent) { 170 err = runtime.NewResponseError(httpResp) 171 return nil, err 172 } 173 return httpResp, nil 174 } 175 176 // deleteCreateRequest creates the Delete request. 177 func (client *ConnectivityConfigurationsClient) deleteCreateRequest(ctx context.Context, resourceGroupName string, networkManagerName string, configurationName string, options *ConnectivityConfigurationsClientBeginDeleteOptions) (*policy.Request, error) { 178 urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/connectivityConfigurations/{configurationName}" 179 if client.subscriptionID == "" { 180 return nil, errors.New("parameter client.subscriptionID cannot be empty") 181 } 182 urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID)) 183 if resourceGroupName == "" { 184 return nil, errors.New("parameter resourceGroupName cannot be empty") 185 } 186 urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName)) 187 if networkManagerName == "" { 188 return nil, errors.New("parameter networkManagerName cannot be empty") 189 } 190 urlPath = strings.ReplaceAll(urlPath, "{networkManagerName}", url.PathEscape(networkManagerName)) 191 if configurationName == "" { 192 return nil, errors.New("parameter configurationName cannot be empty") 193 } 194 urlPath = strings.ReplaceAll(urlPath, "{configurationName}", url.PathEscape(configurationName)) 195 req, err := runtime.NewRequest(ctx, http.MethodDelete, runtime.JoinPaths(client.internal.Endpoint(), urlPath)) 196 if err != nil { 197 return nil, err 198 } 199 reqQP := req.Raw().URL.Query() 200 reqQP.Set("api-version", "2024-05-01") 201 if options != nil && options.Force != nil { 202 reqQP.Set("force", strconv.FormatBool(*options.Force)) 203 } 204 req.Raw().URL.RawQuery = reqQP.Encode() 205 req.Raw().Header["Accept"] = []string{"application/json"} 206 return req, nil 207 } 208 209 // Get - Gets a Network Connectivity Configuration, specified by the resource group, network manager name, and connectivity 210 // Configuration name 211 // If the operation fails it returns an *azcore.ResponseError type. 212 // 213 // Generated from API version 2024-05-01 214 // - resourceGroupName - The name of the resource group. 215 // - networkManagerName - The name of the network manager. 216 // - configurationName - The name of the network manager connectivity configuration. 217 // - options - ConnectivityConfigurationsClientGetOptions contains the optional parameters for the ConnectivityConfigurationsClient.Get 218 // method. 219 func (client *ConnectivityConfigurationsClient) Get(ctx context.Context, resourceGroupName string, networkManagerName string, configurationName string, options *ConnectivityConfigurationsClientGetOptions) (ConnectivityConfigurationsClientGetResponse, error) { 220 var err error 221 const operationName = "ConnectivityConfigurationsClient.Get" 222 ctx = context.WithValue(ctx, runtime.CtxAPINameKey{}, operationName) 223 ctx, endSpan := runtime.StartSpan(ctx, operationName, client.internal.Tracer(), nil) 224 defer func() { endSpan(err) }() 225 req, err := client.getCreateRequest(ctx, resourceGroupName, networkManagerName, configurationName, options) 226 if err != nil { 227 return ConnectivityConfigurationsClientGetResponse{}, err 228 } 229 httpResp, err := client.internal.Pipeline().Do(req) 230 if err != nil { 231 return ConnectivityConfigurationsClientGetResponse{}, err 232 } 233 if !runtime.HasStatusCode(httpResp, http.StatusOK) { 234 err = runtime.NewResponseError(httpResp) 235 return ConnectivityConfigurationsClientGetResponse{}, err 236 } 237 resp, err := client.getHandleResponse(httpResp) 238 return resp, err 239 } 240 241 // getCreateRequest creates the Get request. 242 func (client *ConnectivityConfigurationsClient) getCreateRequest(ctx context.Context, resourceGroupName string, networkManagerName string, configurationName string, options *ConnectivityConfigurationsClientGetOptions) (*policy.Request, error) { 243 urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/connectivityConfigurations/{configurationName}" 244 if client.subscriptionID == "" { 245 return nil, errors.New("parameter client.subscriptionID cannot be empty") 246 } 247 urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID)) 248 if resourceGroupName == "" { 249 return nil, errors.New("parameter resourceGroupName cannot be empty") 250 } 251 urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName)) 252 if networkManagerName == "" { 253 return nil, errors.New("parameter networkManagerName cannot be empty") 254 } 255 urlPath = strings.ReplaceAll(urlPath, "{networkManagerName}", url.PathEscape(networkManagerName)) 256 if configurationName == "" { 257 return nil, errors.New("parameter configurationName cannot be empty") 258 } 259 urlPath = strings.ReplaceAll(urlPath, "{configurationName}", url.PathEscape(configurationName)) 260 req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(client.internal.Endpoint(), urlPath)) 261 if err != nil { 262 return nil, err 263 } 264 reqQP := req.Raw().URL.Query() 265 reqQP.Set("api-version", "2024-05-01") 266 req.Raw().URL.RawQuery = reqQP.Encode() 267 req.Raw().Header["Accept"] = []string{"application/json"} 268 return req, nil 269 } 270 271 // getHandleResponse handles the Get response. 272 func (client *ConnectivityConfigurationsClient) getHandleResponse(resp *http.Response) (ConnectivityConfigurationsClientGetResponse, error) { 273 result := ConnectivityConfigurationsClientGetResponse{} 274 if err := runtime.UnmarshalAsJSON(resp, &result.ConnectivityConfiguration); err != nil { 275 return ConnectivityConfigurationsClientGetResponse{}, err 276 } 277 return result, nil 278 } 279 280 // NewListPager - Lists all the network manager connectivity configuration in a specified network manager. 281 // 282 // Generated from API version 2024-05-01 283 // - resourceGroupName - The name of the resource group. 284 // - networkManagerName - The name of the network manager. 285 // - options - ConnectivityConfigurationsClientListOptions contains the optional parameters for the ConnectivityConfigurationsClient.NewListPager 286 // method. 287 func (client *ConnectivityConfigurationsClient) NewListPager(resourceGroupName string, networkManagerName string, options *ConnectivityConfigurationsClientListOptions) *runtime.Pager[ConnectivityConfigurationsClientListResponse] { 288 return runtime.NewPager(runtime.PagingHandler[ConnectivityConfigurationsClientListResponse]{ 289 More: func(page ConnectivityConfigurationsClientListResponse) bool { 290 return page.NextLink != nil && len(*page.NextLink) > 0 291 }, 292 Fetcher: func(ctx context.Context, page *ConnectivityConfigurationsClientListResponse) (ConnectivityConfigurationsClientListResponse, error) { 293 ctx = context.WithValue(ctx, runtime.CtxAPINameKey{}, "ConnectivityConfigurationsClient.NewListPager") 294 nextLink := "" 295 if page != nil { 296 nextLink = *page.NextLink 297 } 298 resp, err := runtime.FetcherForNextLink(ctx, client.internal.Pipeline(), nextLink, func(ctx context.Context) (*policy.Request, error) { 299 return client.listCreateRequest(ctx, resourceGroupName, networkManagerName, options) 300 }, nil) 301 if err != nil { 302 return ConnectivityConfigurationsClientListResponse{}, err 303 } 304 return client.listHandleResponse(resp) 305 }, 306 Tracer: client.internal.Tracer(), 307 }) 308 } 309 310 // listCreateRequest creates the List request. 311 func (client *ConnectivityConfigurationsClient) listCreateRequest(ctx context.Context, resourceGroupName string, networkManagerName string, options *ConnectivityConfigurationsClientListOptions) (*policy.Request, error) { 312 urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkManagers/{networkManagerName}/connectivityConfigurations" 313 if client.subscriptionID == "" { 314 return nil, errors.New("parameter client.subscriptionID cannot be empty") 315 } 316 urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID)) 317 if resourceGroupName == "" { 318 return nil, errors.New("parameter resourceGroupName cannot be empty") 319 } 320 urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName)) 321 if networkManagerName == "" { 322 return nil, errors.New("parameter networkManagerName cannot be empty") 323 } 324 urlPath = strings.ReplaceAll(urlPath, "{networkManagerName}", url.PathEscape(networkManagerName)) 325 req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(client.internal.Endpoint(), urlPath)) 326 if err != nil { 327 return nil, err 328 } 329 reqQP := req.Raw().URL.Query() 330 if options != nil && options.SkipToken != nil { 331 reqQP.Set("$skipToken", *options.SkipToken) 332 } 333 if options != nil && options.Top != nil { 334 reqQP.Set("$top", strconv.FormatInt(int64(*options.Top), 10)) 335 } 336 reqQP.Set("api-version", "2024-05-01") 337 req.Raw().URL.RawQuery = reqQP.Encode() 338 req.Raw().Header["Accept"] = []string{"application/json"} 339 return req, nil 340 } 341 342 // listHandleResponse handles the List response. 343 func (client *ConnectivityConfigurationsClient) listHandleResponse(resp *http.Response) (ConnectivityConfigurationsClientListResponse, error) { 344 result := ConnectivityConfigurationsClientListResponse{} 345 if err := runtime.UnmarshalAsJSON(resp, &result.ConnectivityConfigurationListResult); err != nil { 346 return ConnectivityConfigurationsClientListResponse{}, err 347 } 348 return result, nil 349 }