github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v6@v6.2.0/managementgroupnetworkmanagerconnections_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 // ManagementGroupNetworkManagerConnectionsClient contains the methods for the ManagementGroupNetworkManagerConnections group. 25 // Don't use this type directly, use NewManagementGroupNetworkManagerConnectionsClient() instead. 26 type ManagementGroupNetworkManagerConnectionsClient struct { 27 internal *arm.Client 28 } 29 30 // NewManagementGroupNetworkManagerConnectionsClient creates a new instance of ManagementGroupNetworkManagerConnectionsClient with the specified values. 31 // - credential - used to authorize requests. Usually a credential from azidentity. 32 // - options - pass nil to accept the default values. 33 func NewManagementGroupNetworkManagerConnectionsClient(credential azcore.TokenCredential, options *arm.ClientOptions) (*ManagementGroupNetworkManagerConnectionsClient, error) { 34 cl, err := arm.NewClient(moduleName, moduleVersion, credential, options) 35 if err != nil { 36 return nil, err 37 } 38 client := &ManagementGroupNetworkManagerConnectionsClient{ 39 internal: cl, 40 } 41 return client, nil 42 } 43 44 // CreateOrUpdate - Create a network manager connection on this management group. 45 // If the operation fails it returns an *azcore.ResponseError type. 46 // 47 // Generated from API version 2024-05-01 48 // - managementGroupID - The management group Id which uniquely identify the Microsoft Azure management group. 49 // - networkManagerConnectionName - Name for the network manager connection. 50 // - parameters - Network manager connection to be created/updated. 51 // - options - ManagementGroupNetworkManagerConnectionsClientCreateOrUpdateOptions contains the optional parameters for the 52 // ManagementGroupNetworkManagerConnectionsClient.CreateOrUpdate method. 53 func (client *ManagementGroupNetworkManagerConnectionsClient) CreateOrUpdate(ctx context.Context, managementGroupID string, networkManagerConnectionName string, parameters ManagerConnection, options *ManagementGroupNetworkManagerConnectionsClientCreateOrUpdateOptions) (ManagementGroupNetworkManagerConnectionsClientCreateOrUpdateResponse, error) { 54 var err error 55 const operationName = "ManagementGroupNetworkManagerConnectionsClient.CreateOrUpdate" 56 ctx = context.WithValue(ctx, runtime.CtxAPINameKey{}, operationName) 57 ctx, endSpan := runtime.StartSpan(ctx, operationName, client.internal.Tracer(), nil) 58 defer func() { endSpan(err) }() 59 req, err := client.createOrUpdateCreateRequest(ctx, managementGroupID, networkManagerConnectionName, parameters, options) 60 if err != nil { 61 return ManagementGroupNetworkManagerConnectionsClientCreateOrUpdateResponse{}, err 62 } 63 httpResp, err := client.internal.Pipeline().Do(req) 64 if err != nil { 65 return ManagementGroupNetworkManagerConnectionsClientCreateOrUpdateResponse{}, err 66 } 67 if !runtime.HasStatusCode(httpResp, http.StatusOK, http.StatusCreated) { 68 err = runtime.NewResponseError(httpResp) 69 return ManagementGroupNetworkManagerConnectionsClientCreateOrUpdateResponse{}, err 70 } 71 resp, err := client.createOrUpdateHandleResponse(httpResp) 72 return resp, err 73 } 74 75 // createOrUpdateCreateRequest creates the CreateOrUpdate request. 76 func (client *ManagementGroupNetworkManagerConnectionsClient) createOrUpdateCreateRequest(ctx context.Context, managementGroupID string, networkManagerConnectionName string, parameters ManagerConnection, options *ManagementGroupNetworkManagerConnectionsClientCreateOrUpdateOptions) (*policy.Request, error) { 77 urlPath := "/providers/Microsoft.Management/managementGroups/{managementGroupId}/providers/Microsoft.Network/networkManagerConnections/{networkManagerConnectionName}" 78 if managementGroupID == "" { 79 return nil, errors.New("parameter managementGroupID cannot be empty") 80 } 81 urlPath = strings.ReplaceAll(urlPath, "{managementGroupId}", url.PathEscape(managementGroupID)) 82 if networkManagerConnectionName == "" { 83 return nil, errors.New("parameter networkManagerConnectionName cannot be empty") 84 } 85 urlPath = strings.ReplaceAll(urlPath, "{networkManagerConnectionName}", url.PathEscape(networkManagerConnectionName)) 86 req, err := runtime.NewRequest(ctx, http.MethodPut, runtime.JoinPaths(client.internal.Endpoint(), urlPath)) 87 if err != nil { 88 return nil, err 89 } 90 reqQP := req.Raw().URL.Query() 91 reqQP.Set("api-version", "2024-05-01") 92 req.Raw().URL.RawQuery = reqQP.Encode() 93 req.Raw().Header["Accept"] = []string{"application/json"} 94 if err := runtime.MarshalAsJSON(req, parameters); err != nil { 95 return nil, err 96 } 97 return req, nil 98 } 99 100 // createOrUpdateHandleResponse handles the CreateOrUpdate response. 101 func (client *ManagementGroupNetworkManagerConnectionsClient) createOrUpdateHandleResponse(resp *http.Response) (ManagementGroupNetworkManagerConnectionsClientCreateOrUpdateResponse, error) { 102 result := ManagementGroupNetworkManagerConnectionsClientCreateOrUpdateResponse{} 103 if err := runtime.UnmarshalAsJSON(resp, &result.ManagerConnection); err != nil { 104 return ManagementGroupNetworkManagerConnectionsClientCreateOrUpdateResponse{}, err 105 } 106 return result, nil 107 } 108 109 // Delete - Delete specified pending connection created by this management group. 110 // If the operation fails it returns an *azcore.ResponseError type. 111 // 112 // Generated from API version 2024-05-01 113 // - managementGroupID - The management group Id which uniquely identify the Microsoft Azure management group. 114 // - networkManagerConnectionName - Name for the network manager connection. 115 // - options - ManagementGroupNetworkManagerConnectionsClientDeleteOptions contains the optional parameters for the ManagementGroupNetworkManagerConnectionsClient.Delete 116 // method. 117 func (client *ManagementGroupNetworkManagerConnectionsClient) Delete(ctx context.Context, managementGroupID string, networkManagerConnectionName string, options *ManagementGroupNetworkManagerConnectionsClientDeleteOptions) (ManagementGroupNetworkManagerConnectionsClientDeleteResponse, error) { 118 var err error 119 const operationName = "ManagementGroupNetworkManagerConnectionsClient.Delete" 120 ctx = context.WithValue(ctx, runtime.CtxAPINameKey{}, operationName) 121 ctx, endSpan := runtime.StartSpan(ctx, operationName, client.internal.Tracer(), nil) 122 defer func() { endSpan(err) }() 123 req, err := client.deleteCreateRequest(ctx, managementGroupID, networkManagerConnectionName, options) 124 if err != nil { 125 return ManagementGroupNetworkManagerConnectionsClientDeleteResponse{}, err 126 } 127 httpResp, err := client.internal.Pipeline().Do(req) 128 if err != nil { 129 return ManagementGroupNetworkManagerConnectionsClientDeleteResponse{}, err 130 } 131 if !runtime.HasStatusCode(httpResp, http.StatusOK, http.StatusNoContent) { 132 err = runtime.NewResponseError(httpResp) 133 return ManagementGroupNetworkManagerConnectionsClientDeleteResponse{}, err 134 } 135 return ManagementGroupNetworkManagerConnectionsClientDeleteResponse{}, nil 136 } 137 138 // deleteCreateRequest creates the Delete request. 139 func (client *ManagementGroupNetworkManagerConnectionsClient) deleteCreateRequest(ctx context.Context, managementGroupID string, networkManagerConnectionName string, options *ManagementGroupNetworkManagerConnectionsClientDeleteOptions) (*policy.Request, error) { 140 urlPath := "/providers/Microsoft.Management/managementGroups/{managementGroupId}/providers/Microsoft.Network/networkManagerConnections/{networkManagerConnectionName}" 141 if managementGroupID == "" { 142 return nil, errors.New("parameter managementGroupID cannot be empty") 143 } 144 urlPath = strings.ReplaceAll(urlPath, "{managementGroupId}", url.PathEscape(managementGroupID)) 145 if networkManagerConnectionName == "" { 146 return nil, errors.New("parameter networkManagerConnectionName cannot be empty") 147 } 148 urlPath = strings.ReplaceAll(urlPath, "{networkManagerConnectionName}", url.PathEscape(networkManagerConnectionName)) 149 req, err := runtime.NewRequest(ctx, http.MethodDelete, runtime.JoinPaths(client.internal.Endpoint(), urlPath)) 150 if err != nil { 151 return nil, err 152 } 153 reqQP := req.Raw().URL.Query() 154 reqQP.Set("api-version", "2024-05-01") 155 req.Raw().URL.RawQuery = reqQP.Encode() 156 req.Raw().Header["Accept"] = []string{"application/json"} 157 return req, nil 158 } 159 160 // Get - Get a specified connection created by this management group. 161 // If the operation fails it returns an *azcore.ResponseError type. 162 // 163 // Generated from API version 2024-05-01 164 // - managementGroupID - The management group Id which uniquely identify the Microsoft Azure management group. 165 // - networkManagerConnectionName - Name for the network manager connection. 166 // - options - ManagementGroupNetworkManagerConnectionsClientGetOptions contains the optional parameters for the ManagementGroupNetworkManagerConnectionsClient.Get 167 // method. 168 func (client *ManagementGroupNetworkManagerConnectionsClient) Get(ctx context.Context, managementGroupID string, networkManagerConnectionName string, options *ManagementGroupNetworkManagerConnectionsClientGetOptions) (ManagementGroupNetworkManagerConnectionsClientGetResponse, error) { 169 var err error 170 const operationName = "ManagementGroupNetworkManagerConnectionsClient.Get" 171 ctx = context.WithValue(ctx, runtime.CtxAPINameKey{}, operationName) 172 ctx, endSpan := runtime.StartSpan(ctx, operationName, client.internal.Tracer(), nil) 173 defer func() { endSpan(err) }() 174 req, err := client.getCreateRequest(ctx, managementGroupID, networkManagerConnectionName, options) 175 if err != nil { 176 return ManagementGroupNetworkManagerConnectionsClientGetResponse{}, err 177 } 178 httpResp, err := client.internal.Pipeline().Do(req) 179 if err != nil { 180 return ManagementGroupNetworkManagerConnectionsClientGetResponse{}, err 181 } 182 if !runtime.HasStatusCode(httpResp, http.StatusOK) { 183 err = runtime.NewResponseError(httpResp) 184 return ManagementGroupNetworkManagerConnectionsClientGetResponse{}, err 185 } 186 resp, err := client.getHandleResponse(httpResp) 187 return resp, err 188 } 189 190 // getCreateRequest creates the Get request. 191 func (client *ManagementGroupNetworkManagerConnectionsClient) getCreateRequest(ctx context.Context, managementGroupID string, networkManagerConnectionName string, options *ManagementGroupNetworkManagerConnectionsClientGetOptions) (*policy.Request, error) { 192 urlPath := "/providers/Microsoft.Management/managementGroups/{managementGroupId}/providers/Microsoft.Network/networkManagerConnections/{networkManagerConnectionName}" 193 if managementGroupID == "" { 194 return nil, errors.New("parameter managementGroupID cannot be empty") 195 } 196 urlPath = strings.ReplaceAll(urlPath, "{managementGroupId}", url.PathEscape(managementGroupID)) 197 if networkManagerConnectionName == "" { 198 return nil, errors.New("parameter networkManagerConnectionName cannot be empty") 199 } 200 urlPath = strings.ReplaceAll(urlPath, "{networkManagerConnectionName}", url.PathEscape(networkManagerConnectionName)) 201 req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(client.internal.Endpoint(), urlPath)) 202 if err != nil { 203 return nil, err 204 } 205 reqQP := req.Raw().URL.Query() 206 reqQP.Set("api-version", "2024-05-01") 207 req.Raw().URL.RawQuery = reqQP.Encode() 208 req.Raw().Header["Accept"] = []string{"application/json"} 209 return req, nil 210 } 211 212 // getHandleResponse handles the Get response. 213 func (client *ManagementGroupNetworkManagerConnectionsClient) getHandleResponse(resp *http.Response) (ManagementGroupNetworkManagerConnectionsClientGetResponse, error) { 214 result := ManagementGroupNetworkManagerConnectionsClientGetResponse{} 215 if err := runtime.UnmarshalAsJSON(resp, &result.ManagerConnection); err != nil { 216 return ManagementGroupNetworkManagerConnectionsClientGetResponse{}, err 217 } 218 return result, nil 219 } 220 221 // NewListPager - List all network manager connections created by this management group. 222 // 223 // Generated from API version 2024-05-01 224 // - managementGroupID - The management group Id which uniquely identify the Microsoft Azure management group. 225 // - options - ManagementGroupNetworkManagerConnectionsClientListOptions contains the optional parameters for the ManagementGroupNetworkManagerConnectionsClient.NewListPager 226 // method. 227 func (client *ManagementGroupNetworkManagerConnectionsClient) NewListPager(managementGroupID string, options *ManagementGroupNetworkManagerConnectionsClientListOptions) *runtime.Pager[ManagementGroupNetworkManagerConnectionsClientListResponse] { 228 return runtime.NewPager(runtime.PagingHandler[ManagementGroupNetworkManagerConnectionsClientListResponse]{ 229 More: func(page ManagementGroupNetworkManagerConnectionsClientListResponse) bool { 230 return page.NextLink != nil && len(*page.NextLink) > 0 231 }, 232 Fetcher: func(ctx context.Context, page *ManagementGroupNetworkManagerConnectionsClientListResponse) (ManagementGroupNetworkManagerConnectionsClientListResponse, error) { 233 ctx = context.WithValue(ctx, runtime.CtxAPINameKey{}, "ManagementGroupNetworkManagerConnectionsClient.NewListPager") 234 nextLink := "" 235 if page != nil { 236 nextLink = *page.NextLink 237 } 238 resp, err := runtime.FetcherForNextLink(ctx, client.internal.Pipeline(), nextLink, func(ctx context.Context) (*policy.Request, error) { 239 return client.listCreateRequest(ctx, managementGroupID, options) 240 }, nil) 241 if err != nil { 242 return ManagementGroupNetworkManagerConnectionsClientListResponse{}, err 243 } 244 return client.listHandleResponse(resp) 245 }, 246 Tracer: client.internal.Tracer(), 247 }) 248 } 249 250 // listCreateRequest creates the List request. 251 func (client *ManagementGroupNetworkManagerConnectionsClient) listCreateRequest(ctx context.Context, managementGroupID string, options *ManagementGroupNetworkManagerConnectionsClientListOptions) (*policy.Request, error) { 252 urlPath := "/providers/Microsoft.Management/managementGroups/{managementGroupId}/providers/Microsoft.Network/networkManagerConnections" 253 if managementGroupID == "" { 254 return nil, errors.New("parameter managementGroupID cannot be empty") 255 } 256 urlPath = strings.ReplaceAll(urlPath, "{managementGroupId}", url.PathEscape(managementGroupID)) 257 req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(client.internal.Endpoint(), urlPath)) 258 if err != nil { 259 return nil, err 260 } 261 reqQP := req.Raw().URL.Query() 262 if options != nil && options.SkipToken != nil { 263 reqQP.Set("$skipToken", *options.SkipToken) 264 } 265 if options != nil && options.Top != nil { 266 reqQP.Set("$top", strconv.FormatInt(int64(*options.Top), 10)) 267 } 268 reqQP.Set("api-version", "2024-05-01") 269 req.Raw().URL.RawQuery = reqQP.Encode() 270 req.Raw().Header["Accept"] = []string{"application/json"} 271 return req, nil 272 } 273 274 // listHandleResponse handles the List response. 275 func (client *ManagementGroupNetworkManagerConnectionsClient) listHandleResponse(resp *http.Response) (ManagementGroupNetworkManagerConnectionsClientListResponse, error) { 276 result := ManagementGroupNetworkManagerConnectionsClientListResponse{} 277 if err := runtime.UnmarshalAsJSON(resp, &result.ManagerConnectionListResult); err != nil { 278 return ManagementGroupNetworkManagerConnectionsClientListResponse{}, err 279 } 280 return result, nil 281 }