github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v6@v6.2.0/firewallpolicyrulecollectiongroupdrafts_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 "strings" 21 ) 22 23 // FirewallPolicyRuleCollectionGroupDraftsClient contains the methods for the FirewallPolicyRuleCollectionGroupDrafts group. 24 // Don't use this type directly, use NewFirewallPolicyRuleCollectionGroupDraftsClient() instead. 25 type FirewallPolicyRuleCollectionGroupDraftsClient struct { 26 internal *arm.Client 27 subscriptionID string 28 } 29 30 // NewFirewallPolicyRuleCollectionGroupDraftsClient creates a new instance of FirewallPolicyRuleCollectionGroupDraftsClient with the specified values. 31 // - subscriptionID - The subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription 32 // ID forms part of the URI for every service call. 33 // - credential - used to authorize requests. Usually a credential from azidentity. 34 // - options - pass nil to accept the default values. 35 func NewFirewallPolicyRuleCollectionGroupDraftsClient(subscriptionID string, credential azcore.TokenCredential, options *arm.ClientOptions) (*FirewallPolicyRuleCollectionGroupDraftsClient, error) { 36 cl, err := arm.NewClient(moduleName, moduleVersion, credential, options) 37 if err != nil { 38 return nil, err 39 } 40 client := &FirewallPolicyRuleCollectionGroupDraftsClient{ 41 subscriptionID: subscriptionID, 42 internal: cl, 43 } 44 return client, nil 45 } 46 47 // CreateOrUpdate - Create or Update Rule Collection Group Draft. 48 // If the operation fails it returns an *azcore.ResponseError type. 49 // 50 // Generated from API version 2024-05-01 51 // - resourceGroupName - The name of the resource group. 52 // - firewallPolicyName - The name of the Firewall Policy. 53 // - ruleCollectionGroupName - The name of the FirewallPolicyRuleCollectionGroup. 54 // - parameters - Parameters supplied to the create or update FirewallPolicyRuleCollectionGroup operation. 55 // - options - FirewallPolicyRuleCollectionGroupDraftsClientCreateOrUpdateOptions contains the optional parameters for the FirewallPolicyRuleCollectionGroupDraftsClient.CreateOrUpdate 56 // method. 57 func (client *FirewallPolicyRuleCollectionGroupDraftsClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, firewallPolicyName string, ruleCollectionGroupName string, parameters FirewallPolicyRuleCollectionGroupDraft, options *FirewallPolicyRuleCollectionGroupDraftsClientCreateOrUpdateOptions) (FirewallPolicyRuleCollectionGroupDraftsClientCreateOrUpdateResponse, error) { 58 var err error 59 const operationName = "FirewallPolicyRuleCollectionGroupDraftsClient.CreateOrUpdate" 60 ctx = context.WithValue(ctx, runtime.CtxAPINameKey{}, operationName) 61 ctx, endSpan := runtime.StartSpan(ctx, operationName, client.internal.Tracer(), nil) 62 defer func() { endSpan(err) }() 63 req, err := client.createOrUpdateCreateRequest(ctx, resourceGroupName, firewallPolicyName, ruleCollectionGroupName, parameters, options) 64 if err != nil { 65 return FirewallPolicyRuleCollectionGroupDraftsClientCreateOrUpdateResponse{}, err 66 } 67 httpResp, err := client.internal.Pipeline().Do(req) 68 if err != nil { 69 return FirewallPolicyRuleCollectionGroupDraftsClientCreateOrUpdateResponse{}, err 70 } 71 if !runtime.HasStatusCode(httpResp, http.StatusOK, http.StatusCreated) { 72 err = runtime.NewResponseError(httpResp) 73 return FirewallPolicyRuleCollectionGroupDraftsClientCreateOrUpdateResponse{}, err 74 } 75 resp, err := client.createOrUpdateHandleResponse(httpResp) 76 return resp, err 77 } 78 79 // createOrUpdateCreateRequest creates the CreateOrUpdate request. 80 func (client *FirewallPolicyRuleCollectionGroupDraftsClient) createOrUpdateCreateRequest(ctx context.Context, resourceGroupName string, firewallPolicyName string, ruleCollectionGroupName string, parameters FirewallPolicyRuleCollectionGroupDraft, options *FirewallPolicyRuleCollectionGroupDraftsClientCreateOrUpdateOptions) (*policy.Request, error) { 81 urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/firewallPolicies/{firewallPolicyName}/ruleCollectionGroups/{ruleCollectionGroupName}/ruleCollectionGroupDrafts/default" 82 if resourceGroupName == "" { 83 return nil, errors.New("parameter resourceGroupName cannot be empty") 84 } 85 urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName)) 86 if firewallPolicyName == "" { 87 return nil, errors.New("parameter firewallPolicyName cannot be empty") 88 } 89 urlPath = strings.ReplaceAll(urlPath, "{firewallPolicyName}", url.PathEscape(firewallPolicyName)) 90 if ruleCollectionGroupName == "" { 91 return nil, errors.New("parameter ruleCollectionGroupName cannot be empty") 92 } 93 urlPath = strings.ReplaceAll(urlPath, "{ruleCollectionGroupName}", url.PathEscape(ruleCollectionGroupName)) 94 if client.subscriptionID == "" { 95 return nil, errors.New("parameter client.subscriptionID cannot be empty") 96 } 97 urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID)) 98 req, err := runtime.NewRequest(ctx, http.MethodPut, runtime.JoinPaths(client.internal.Endpoint(), urlPath)) 99 if err != nil { 100 return nil, err 101 } 102 reqQP := req.Raw().URL.Query() 103 reqQP.Set("api-version", "2024-05-01") 104 req.Raw().URL.RawQuery = reqQP.Encode() 105 req.Raw().Header["Accept"] = []string{"application/json"} 106 if err := runtime.MarshalAsJSON(req, parameters); err != nil { 107 return nil, err 108 } 109 return req, nil 110 } 111 112 // createOrUpdateHandleResponse handles the CreateOrUpdate response. 113 func (client *FirewallPolicyRuleCollectionGroupDraftsClient) createOrUpdateHandleResponse(resp *http.Response) (FirewallPolicyRuleCollectionGroupDraftsClientCreateOrUpdateResponse, error) { 114 result := FirewallPolicyRuleCollectionGroupDraftsClientCreateOrUpdateResponse{} 115 if err := runtime.UnmarshalAsJSON(resp, &result.FirewallPolicyRuleCollectionGroupDraft); err != nil { 116 return FirewallPolicyRuleCollectionGroupDraftsClientCreateOrUpdateResponse{}, err 117 } 118 return result, nil 119 } 120 121 // Delete - Delete Rule Collection Group Draft. 122 // If the operation fails it returns an *azcore.ResponseError type. 123 // 124 // Generated from API version 2024-05-01 125 // - resourceGroupName - The name of the resource group. 126 // - firewallPolicyName - The name of the Firewall Policy. 127 // - ruleCollectionGroupName - The name of the FirewallPolicyRuleCollectionGroup. 128 // - options - FirewallPolicyRuleCollectionGroupDraftsClientDeleteOptions contains the optional parameters for the FirewallPolicyRuleCollectionGroupDraftsClient.Delete 129 // method. 130 func (client *FirewallPolicyRuleCollectionGroupDraftsClient) Delete(ctx context.Context, resourceGroupName string, firewallPolicyName string, ruleCollectionGroupName string, options *FirewallPolicyRuleCollectionGroupDraftsClientDeleteOptions) (FirewallPolicyRuleCollectionGroupDraftsClientDeleteResponse, error) { 131 var err error 132 const operationName = "FirewallPolicyRuleCollectionGroupDraftsClient.Delete" 133 ctx = context.WithValue(ctx, runtime.CtxAPINameKey{}, operationName) 134 ctx, endSpan := runtime.StartSpan(ctx, operationName, client.internal.Tracer(), nil) 135 defer func() { endSpan(err) }() 136 req, err := client.deleteCreateRequest(ctx, resourceGroupName, firewallPolicyName, ruleCollectionGroupName, options) 137 if err != nil { 138 return FirewallPolicyRuleCollectionGroupDraftsClientDeleteResponse{}, err 139 } 140 httpResp, err := client.internal.Pipeline().Do(req) 141 if err != nil { 142 return FirewallPolicyRuleCollectionGroupDraftsClientDeleteResponse{}, err 143 } 144 if !runtime.HasStatusCode(httpResp, http.StatusOK, http.StatusNoContent) { 145 err = runtime.NewResponseError(httpResp) 146 return FirewallPolicyRuleCollectionGroupDraftsClientDeleteResponse{}, err 147 } 148 return FirewallPolicyRuleCollectionGroupDraftsClientDeleteResponse{}, nil 149 } 150 151 // deleteCreateRequest creates the Delete request. 152 func (client *FirewallPolicyRuleCollectionGroupDraftsClient) deleteCreateRequest(ctx context.Context, resourceGroupName string, firewallPolicyName string, ruleCollectionGroupName string, options *FirewallPolicyRuleCollectionGroupDraftsClientDeleteOptions) (*policy.Request, error) { 153 urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/firewallPolicies/{firewallPolicyName}/ruleCollectionGroups/{ruleCollectionGroupName}/ruleCollectionGroupDrafts/default" 154 if resourceGroupName == "" { 155 return nil, errors.New("parameter resourceGroupName cannot be empty") 156 } 157 urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName)) 158 if firewallPolicyName == "" { 159 return nil, errors.New("parameter firewallPolicyName cannot be empty") 160 } 161 urlPath = strings.ReplaceAll(urlPath, "{firewallPolicyName}", url.PathEscape(firewallPolicyName)) 162 if ruleCollectionGroupName == "" { 163 return nil, errors.New("parameter ruleCollectionGroupName cannot be empty") 164 } 165 urlPath = strings.ReplaceAll(urlPath, "{ruleCollectionGroupName}", url.PathEscape(ruleCollectionGroupName)) 166 if client.subscriptionID == "" { 167 return nil, errors.New("parameter client.subscriptionID cannot be empty") 168 } 169 urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID)) 170 req, err := runtime.NewRequest(ctx, http.MethodDelete, runtime.JoinPaths(client.internal.Endpoint(), urlPath)) 171 if err != nil { 172 return nil, err 173 } 174 reqQP := req.Raw().URL.Query() 175 reqQP.Set("api-version", "2024-05-01") 176 req.Raw().URL.RawQuery = reqQP.Encode() 177 req.Raw().Header["Accept"] = []string{"application/json"} 178 return req, nil 179 } 180 181 // Get - Get Rule Collection Group Draft. 182 // If the operation fails it returns an *azcore.ResponseError type. 183 // 184 // Generated from API version 2024-05-01 185 // - resourceGroupName - The name of the resource group. 186 // - firewallPolicyName - The name of the Firewall Policy. 187 // - ruleCollectionGroupName - The name of the FirewallPolicyRuleCollectionGroup. 188 // - options - FirewallPolicyRuleCollectionGroupDraftsClientGetOptions contains the optional parameters for the FirewallPolicyRuleCollectionGroupDraftsClient.Get 189 // method. 190 func (client *FirewallPolicyRuleCollectionGroupDraftsClient) Get(ctx context.Context, resourceGroupName string, firewallPolicyName string, ruleCollectionGroupName string, options *FirewallPolicyRuleCollectionGroupDraftsClientGetOptions) (FirewallPolicyRuleCollectionGroupDraftsClientGetResponse, error) { 191 var err error 192 const operationName = "FirewallPolicyRuleCollectionGroupDraftsClient.Get" 193 ctx = context.WithValue(ctx, runtime.CtxAPINameKey{}, operationName) 194 ctx, endSpan := runtime.StartSpan(ctx, operationName, client.internal.Tracer(), nil) 195 defer func() { endSpan(err) }() 196 req, err := client.getCreateRequest(ctx, resourceGroupName, firewallPolicyName, ruleCollectionGroupName, options) 197 if err != nil { 198 return FirewallPolicyRuleCollectionGroupDraftsClientGetResponse{}, err 199 } 200 httpResp, err := client.internal.Pipeline().Do(req) 201 if err != nil { 202 return FirewallPolicyRuleCollectionGroupDraftsClientGetResponse{}, err 203 } 204 if !runtime.HasStatusCode(httpResp, http.StatusOK) { 205 err = runtime.NewResponseError(httpResp) 206 return FirewallPolicyRuleCollectionGroupDraftsClientGetResponse{}, err 207 } 208 resp, err := client.getHandleResponse(httpResp) 209 return resp, err 210 } 211 212 // getCreateRequest creates the Get request. 213 func (client *FirewallPolicyRuleCollectionGroupDraftsClient) getCreateRequest(ctx context.Context, resourceGroupName string, firewallPolicyName string, ruleCollectionGroupName string, options *FirewallPolicyRuleCollectionGroupDraftsClientGetOptions) (*policy.Request, error) { 214 urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/firewallPolicies/{firewallPolicyName}/ruleCollectionGroups/{ruleCollectionGroupName}/ruleCollectionGroupDrafts/default" 215 if resourceGroupName == "" { 216 return nil, errors.New("parameter resourceGroupName cannot be empty") 217 } 218 urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName)) 219 if firewallPolicyName == "" { 220 return nil, errors.New("parameter firewallPolicyName cannot be empty") 221 } 222 urlPath = strings.ReplaceAll(urlPath, "{firewallPolicyName}", url.PathEscape(firewallPolicyName)) 223 if ruleCollectionGroupName == "" { 224 return nil, errors.New("parameter ruleCollectionGroupName cannot be empty") 225 } 226 urlPath = strings.ReplaceAll(urlPath, "{ruleCollectionGroupName}", url.PathEscape(ruleCollectionGroupName)) 227 if client.subscriptionID == "" { 228 return nil, errors.New("parameter client.subscriptionID cannot be empty") 229 } 230 urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID)) 231 req, err := runtime.NewRequest(ctx, http.MethodGet, runtime.JoinPaths(client.internal.Endpoint(), urlPath)) 232 if err != nil { 233 return nil, err 234 } 235 reqQP := req.Raw().URL.Query() 236 reqQP.Set("api-version", "2024-05-01") 237 req.Raw().URL.RawQuery = reqQP.Encode() 238 req.Raw().Header["Accept"] = []string{"application/json"} 239 return req, nil 240 } 241 242 // getHandleResponse handles the Get response. 243 func (client *FirewallPolicyRuleCollectionGroupDraftsClient) getHandleResponse(resp *http.Response) (FirewallPolicyRuleCollectionGroupDraftsClientGetResponse, error) { 244 result := FirewallPolicyRuleCollectionGroupDraftsClientGetResponse{} 245 if err := runtime.UnmarshalAsJSON(resp, &result.FirewallPolicyRuleCollectionGroupDraft); err != nil { 246 return FirewallPolicyRuleCollectionGroupDraftsClientGetResponse{}, err 247 } 248 return result, nil 249 }