1 package postgresqlflexibleservers
2
3
4
5
6
7
8
9 import (
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
19
20
21 type FirewallRulesClient struct {
22 BaseClient
23 }
24
25
26 func NewFirewallRulesClient(subscriptionID string) FirewallRulesClient {
27 return NewFirewallRulesClientWithBaseURI(DefaultBaseURI, subscriptionID)
28 }
29
30
31
32 func NewFirewallRulesClientWithBaseURI(baseURI string, subscriptionID string) FirewallRulesClient {
33 return FirewallRulesClient{NewWithBaseURI(baseURI, subscriptionID)}
34 }
35
36
37
38
39
40
41
42 func (client FirewallRulesClient) CreateOrUpdate(ctx context.Context, resourceGroupName string, serverName string, firewallRuleName string, parameters FirewallRule) (result FirewallRulesCreateOrUpdateFuture, err error) {
43 if tracing.IsEnabled() {
44 ctx = tracing.StartSpan(ctx, fqdn+"/FirewallRulesClient.CreateOrUpdate")
45 defer func() {
46 sc := -1
47 if result.FutureAPI != nil && result.FutureAPI.Response() != nil {
48 sc = result.FutureAPI.Response().StatusCode
49 }
50 tracing.EndSpan(ctx, sc, err)
51 }()
52 }
53 if err := validation.Validate([]validation.Validation{
54 {TargetValue: client.SubscriptionID,
55 Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}},
56 {TargetValue: resourceGroupName,
57 Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
58 {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}},
59 {TargetValue: parameters,
60 Constraints: []validation.Constraint{{Target: "parameters.FirewallRuleProperties", Name: validation.Null, Rule: true,
61 Chain: []validation.Constraint{{Target: "parameters.FirewallRuleProperties.StartIPAddress", Name: validation.Null, Rule: true,
62 Chain: []validation.Constraint{{Target: "parameters.FirewallRuleProperties.StartIPAddress", Name: validation.Pattern, Rule: `^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$`, Chain: nil}}},
63 {Target: "parameters.FirewallRuleProperties.EndIPAddress", Name: validation.Null, Rule: true,
64 Chain: []validation.Constraint{{Target: "parameters.FirewallRuleProperties.EndIPAddress", Name: validation.Pattern, Rule: `^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$`, Chain: nil}}},
65 }}}}}); err != nil {
66 return result, validation.NewError("postgresqlflexibleservers.FirewallRulesClient", "CreateOrUpdate", err.Error())
67 }
68
69 req, err := client.CreateOrUpdatePreparer(ctx, resourceGroupName, serverName, firewallRuleName, parameters)
70 if err != nil {
71 err = autorest.NewErrorWithError(err, "postgresqlflexibleservers.FirewallRulesClient", "CreateOrUpdate", nil, "Failure preparing request")
72 return
73 }
74
75 result, err = client.CreateOrUpdateSender(req)
76 if err != nil {
77 err = autorest.NewErrorWithError(err, "postgresqlflexibleservers.FirewallRulesClient", "CreateOrUpdate", result.Response(), "Failure sending request")
78 return
79 }
80
81 return
82 }
83
84
85 func (client FirewallRulesClient) CreateOrUpdatePreparer(ctx context.Context, resourceGroupName string, serverName string, firewallRuleName string, parameters FirewallRule) (*http.Request, error) {
86 pathParameters := map[string]interface{}{
87 "firewallRuleName": autorest.Encode("path", firewallRuleName),
88 "resourceGroupName": autorest.Encode("path", resourceGroupName),
89 "serverName": autorest.Encode("path", serverName),
90 "subscriptionId": autorest.Encode("path", client.SubscriptionID),
91 }
92
93 const APIVersion = "2021-06-01"
94 queryParameters := map[string]interface{}{
95 "api-version": APIVersion,
96 }
97
98 parameters.SystemData = nil
99 preparer := autorest.CreatePreparer(
100 autorest.AsContentType("application/json; charset=utf-8"),
101 autorest.AsPut(),
102 autorest.WithBaseURL(client.BaseURI),
103 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/flexibleServers/{serverName}/firewallRules/{firewallRuleName}", pathParameters),
104 autorest.WithJSON(parameters),
105 autorest.WithQueryParameters(queryParameters))
106 return preparer.Prepare((&http.Request{}).WithContext(ctx))
107 }
108
109
110
111 func (client FirewallRulesClient) CreateOrUpdateSender(req *http.Request) (future FirewallRulesCreateOrUpdateFuture, err error) {
112 var resp *http.Response
113 future.FutureAPI = &azure.Future{}
114 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client))
115 if err != nil {
116 return
117 }
118 var azf azure.Future
119 azf, err = azure.NewFutureFromResponse(resp)
120 future.FutureAPI = &azf
121 future.Result = future.result
122 return
123 }
124
125
126
127 func (client FirewallRulesClient) CreateOrUpdateResponder(resp *http.Response) (result FirewallRule, err error) {
128 err = autorest.Respond(
129 resp,
130 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated, http.StatusAccepted),
131 autorest.ByUnmarshallingJSON(&result),
132 autorest.ByClosing())
133 result.Response = autorest.Response{Response: resp}
134 return
135 }
136
137
138
139
140
141
142 func (client FirewallRulesClient) Delete(ctx context.Context, resourceGroupName string, serverName string, firewallRuleName string) (result FirewallRulesDeleteFuture, err error) {
143 if tracing.IsEnabled() {
144 ctx = tracing.StartSpan(ctx, fqdn+"/FirewallRulesClient.Delete")
145 defer func() {
146 sc := -1
147 if result.FutureAPI != nil && result.FutureAPI.Response() != nil {
148 sc = result.FutureAPI.Response().StatusCode
149 }
150 tracing.EndSpan(ctx, sc, err)
151 }()
152 }
153 if err := validation.Validate([]validation.Validation{
154 {TargetValue: client.SubscriptionID,
155 Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}},
156 {TargetValue: resourceGroupName,
157 Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
158 {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil {
159 return result, validation.NewError("postgresqlflexibleservers.FirewallRulesClient", "Delete", err.Error())
160 }
161
162 req, err := client.DeletePreparer(ctx, resourceGroupName, serverName, firewallRuleName)
163 if err != nil {
164 err = autorest.NewErrorWithError(err, "postgresqlflexibleservers.FirewallRulesClient", "Delete", nil, "Failure preparing request")
165 return
166 }
167
168 result, err = client.DeleteSender(req)
169 if err != nil {
170 err = autorest.NewErrorWithError(err, "postgresqlflexibleservers.FirewallRulesClient", "Delete", result.Response(), "Failure sending request")
171 return
172 }
173
174 return
175 }
176
177
178 func (client FirewallRulesClient) DeletePreparer(ctx context.Context, resourceGroupName string, serverName string, firewallRuleName string) (*http.Request, error) {
179 pathParameters := map[string]interface{}{
180 "firewallRuleName": autorest.Encode("path", firewallRuleName),
181 "resourceGroupName": autorest.Encode("path", resourceGroupName),
182 "serverName": autorest.Encode("path", serverName),
183 "subscriptionId": autorest.Encode("path", client.SubscriptionID),
184 }
185
186 const APIVersion = "2021-06-01"
187 queryParameters := map[string]interface{}{
188 "api-version": APIVersion,
189 }
190
191 preparer := autorest.CreatePreparer(
192 autorest.AsDelete(),
193 autorest.WithBaseURL(client.BaseURI),
194 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/flexibleServers/{serverName}/firewallRules/{firewallRuleName}", pathParameters),
195 autorest.WithQueryParameters(queryParameters))
196 return preparer.Prepare((&http.Request{}).WithContext(ctx))
197 }
198
199
200
201 func (client FirewallRulesClient) DeleteSender(req *http.Request) (future FirewallRulesDeleteFuture, err error) {
202 var resp *http.Response
203 future.FutureAPI = &azure.Future{}
204 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client))
205 if err != nil {
206 return
207 }
208 var azf azure.Future
209 azf, err = azure.NewFutureFromResponse(resp)
210 future.FutureAPI = &azf
211 future.Result = future.result
212 return
213 }
214
215
216
217 func (client FirewallRulesClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) {
218 err = autorest.Respond(
219 resp,
220 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent),
221 autorest.ByClosing())
222 result.Response = resp
223 return
224 }
225
226
227
228
229
230
231 func (client FirewallRulesClient) Get(ctx context.Context, resourceGroupName string, serverName string, firewallRuleName string) (result FirewallRule, err error) {
232 if tracing.IsEnabled() {
233 ctx = tracing.StartSpan(ctx, fqdn+"/FirewallRulesClient.Get")
234 defer func() {
235 sc := -1
236 if result.Response.Response != nil {
237 sc = result.Response.Response.StatusCode
238 }
239 tracing.EndSpan(ctx, sc, err)
240 }()
241 }
242 if err := validation.Validate([]validation.Validation{
243 {TargetValue: client.SubscriptionID,
244 Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}},
245 {TargetValue: resourceGroupName,
246 Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
247 {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil {
248 return result, validation.NewError("postgresqlflexibleservers.FirewallRulesClient", "Get", err.Error())
249 }
250
251 req, err := client.GetPreparer(ctx, resourceGroupName, serverName, firewallRuleName)
252 if err != nil {
253 err = autorest.NewErrorWithError(err, "postgresqlflexibleservers.FirewallRulesClient", "Get", nil, "Failure preparing request")
254 return
255 }
256
257 resp, err := client.GetSender(req)
258 if err != nil {
259 result.Response = autorest.Response{Response: resp}
260 err = autorest.NewErrorWithError(err, "postgresqlflexibleservers.FirewallRulesClient", "Get", resp, "Failure sending request")
261 return
262 }
263
264 result, err = client.GetResponder(resp)
265 if err != nil {
266 err = autorest.NewErrorWithError(err, "postgresqlflexibleservers.FirewallRulesClient", "Get", resp, "Failure responding to request")
267 return
268 }
269
270 return
271 }
272
273
274 func (client FirewallRulesClient) GetPreparer(ctx context.Context, resourceGroupName string, serverName string, firewallRuleName string) (*http.Request, error) {
275 pathParameters := map[string]interface{}{
276 "firewallRuleName": autorest.Encode("path", firewallRuleName),
277 "resourceGroupName": autorest.Encode("path", resourceGroupName),
278 "serverName": autorest.Encode("path", serverName),
279 "subscriptionId": autorest.Encode("path", client.SubscriptionID),
280 }
281
282 const APIVersion = "2021-06-01"
283 queryParameters := map[string]interface{}{
284 "api-version": APIVersion,
285 }
286
287 preparer := autorest.CreatePreparer(
288 autorest.AsGet(),
289 autorest.WithBaseURL(client.BaseURI),
290 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/flexibleServers/{serverName}/firewallRules/{firewallRuleName}", pathParameters),
291 autorest.WithQueryParameters(queryParameters))
292 return preparer.Prepare((&http.Request{}).WithContext(ctx))
293 }
294
295
296
297 func (client FirewallRulesClient) GetSender(req *http.Request) (*http.Response, error) {
298 return client.Send(req, azure.DoRetryWithRegistration(client.Client))
299 }
300
301
302
303 func (client FirewallRulesClient) GetResponder(resp *http.Response) (result FirewallRule, err error) {
304 err = autorest.Respond(
305 resp,
306 azure.WithErrorUnlessStatusCode(http.StatusOK),
307 autorest.ByUnmarshallingJSON(&result),
308 autorest.ByClosing())
309 result.Response = autorest.Response{Response: resp}
310 return
311 }
312
313
314
315
316
317 func (client FirewallRulesClient) ListByServer(ctx context.Context, resourceGroupName string, serverName string) (result FirewallRuleListResultPage, err error) {
318 if tracing.IsEnabled() {
319 ctx = tracing.StartSpan(ctx, fqdn+"/FirewallRulesClient.ListByServer")
320 defer func() {
321 sc := -1
322 if result.frlr.Response.Response != nil {
323 sc = result.frlr.Response.Response.StatusCode
324 }
325 tracing.EndSpan(ctx, sc, err)
326 }()
327 }
328 if err := validation.Validate([]validation.Validation{
329 {TargetValue: client.SubscriptionID,
330 Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}},
331 {TargetValue: resourceGroupName,
332 Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
333 {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}}}); err != nil {
334 return result, validation.NewError("postgresqlflexibleservers.FirewallRulesClient", "ListByServer", err.Error())
335 }
336
337 result.fn = client.listByServerNextResults
338 req, err := client.ListByServerPreparer(ctx, resourceGroupName, serverName)
339 if err != nil {
340 err = autorest.NewErrorWithError(err, "postgresqlflexibleservers.FirewallRulesClient", "ListByServer", nil, "Failure preparing request")
341 return
342 }
343
344 resp, err := client.ListByServerSender(req)
345 if err != nil {
346 result.frlr.Response = autorest.Response{Response: resp}
347 err = autorest.NewErrorWithError(err, "postgresqlflexibleservers.FirewallRulesClient", "ListByServer", resp, "Failure sending request")
348 return
349 }
350
351 result.frlr, err = client.ListByServerResponder(resp)
352 if err != nil {
353 err = autorest.NewErrorWithError(err, "postgresqlflexibleservers.FirewallRulesClient", "ListByServer", resp, "Failure responding to request")
354 return
355 }
356 if result.frlr.hasNextLink() && result.frlr.IsEmpty() {
357 err = result.NextWithContext(ctx)
358 return
359 }
360
361 return
362 }
363
364
365 func (client FirewallRulesClient) ListByServerPreparer(ctx context.Context, resourceGroupName string, serverName string) (*http.Request, error) {
366 pathParameters := map[string]interface{}{
367 "resourceGroupName": autorest.Encode("path", resourceGroupName),
368 "serverName": autorest.Encode("path", serverName),
369 "subscriptionId": autorest.Encode("path", client.SubscriptionID),
370 }
371
372 const APIVersion = "2021-06-01"
373 queryParameters := map[string]interface{}{
374 "api-version": APIVersion,
375 }
376
377 preparer := autorest.CreatePreparer(
378 autorest.AsGet(),
379 autorest.WithBaseURL(client.BaseURI),
380 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/flexibleServers/{serverName}/firewallRules", pathParameters),
381 autorest.WithQueryParameters(queryParameters))
382 return preparer.Prepare((&http.Request{}).WithContext(ctx))
383 }
384
385
386
387 func (client FirewallRulesClient) ListByServerSender(req *http.Request) (*http.Response, error) {
388 return client.Send(req, azure.DoRetryWithRegistration(client.Client))
389 }
390
391
392
393 func (client FirewallRulesClient) ListByServerResponder(resp *http.Response) (result FirewallRuleListResult, err error) {
394 err = autorest.Respond(
395 resp,
396 azure.WithErrorUnlessStatusCode(http.StatusOK),
397 autorest.ByUnmarshallingJSON(&result),
398 autorest.ByClosing())
399 result.Response = autorest.Response{Response: resp}
400 return
401 }
402
403
404 func (client FirewallRulesClient) listByServerNextResults(ctx context.Context, lastResults FirewallRuleListResult) (result FirewallRuleListResult, err error) {
405 req, err := lastResults.firewallRuleListResultPreparer(ctx)
406 if err != nil {
407 return result, autorest.NewErrorWithError(err, "postgresqlflexibleservers.FirewallRulesClient", "listByServerNextResults", nil, "Failure preparing next results request")
408 }
409 if req == nil {
410 return
411 }
412 resp, err := client.ListByServerSender(req)
413 if err != nil {
414 result.Response = autorest.Response{Response: resp}
415 return result, autorest.NewErrorWithError(err, "postgresqlflexibleservers.FirewallRulesClient", "listByServerNextResults", resp, "Failure sending next results request")
416 }
417 result, err = client.ListByServerResponder(resp)
418 if err != nil {
419 err = autorest.NewErrorWithError(err, "postgresqlflexibleservers.FirewallRulesClient", "listByServerNextResults", resp, "Failure responding to next results request")
420 }
421 return
422 }
423
424
425 func (client FirewallRulesClient) ListByServerComplete(ctx context.Context, resourceGroupName string, serverName string) (result FirewallRuleListResultIterator, err error) {
426 if tracing.IsEnabled() {
427 ctx = tracing.StartSpan(ctx, fqdn+"/FirewallRulesClient.ListByServer")
428 defer func() {
429 sc := -1
430 if result.Response().Response.Response != nil {
431 sc = result.page.Response().Response.Response.StatusCode
432 }
433 tracing.EndSpan(ctx, sc, err)
434 }()
435 }
436 result.page, err = client.ListByServer(ctx, resourceGroupName, serverName)
437 return
438 }
439
View as plain text