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 {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}},
60 {TargetValue: parameters,
61 Constraints: []validation.Constraint{{Target: "parameters.FirewallRuleProperties", Name: validation.Null, Rule: true,
62 Chain: []validation.Constraint{{Target: "parameters.FirewallRuleProperties.StartIPAddress", Name: validation.Null, Rule: true,
63 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}}},
64 {Target: "parameters.FirewallRuleProperties.EndIPAddress", Name: validation.Null, Rule: true,
65 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}}},
66 }}}}}); err != nil {
67 return result, validation.NewError("postgresqlflexibleservers.FirewallRulesClient", "CreateOrUpdate", err.Error())
68 }
69
70 req, err := client.CreateOrUpdatePreparer(ctx, resourceGroupName, serverName, firewallRuleName, parameters)
71 if err != nil {
72 err = autorest.NewErrorWithError(err, "postgresqlflexibleservers.FirewallRulesClient", "CreateOrUpdate", nil, "Failure preparing request")
73 return
74 }
75
76 result, err = client.CreateOrUpdateSender(req)
77 if err != nil {
78 err = autorest.NewErrorWithError(err, "postgresqlflexibleservers.FirewallRulesClient", "CreateOrUpdate", result.Response(), "Failure sending request")
79 return
80 }
81
82 return
83 }
84
85
86 func (client FirewallRulesClient) CreateOrUpdatePreparer(ctx context.Context, resourceGroupName string, serverName string, firewallRuleName string, parameters FirewallRule) (*http.Request, error) {
87 pathParameters := map[string]interface{}{
88 "firewallRuleName": autorest.Encode("path", firewallRuleName),
89 "resourceGroupName": autorest.Encode("path", resourceGroupName),
90 "serverName": autorest.Encode("path", serverName),
91 "subscriptionId": autorest.Encode("path", client.SubscriptionID),
92 }
93
94 const APIVersion = "2020-02-14-preview"
95 queryParameters := map[string]interface{}{
96 "api-version": APIVersion,
97 }
98
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},
159 {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil {
160 return result, validation.NewError("postgresqlflexibleservers.FirewallRulesClient", "Delete", err.Error())
161 }
162
163 req, err := client.DeletePreparer(ctx, resourceGroupName, serverName, firewallRuleName)
164 if err != nil {
165 err = autorest.NewErrorWithError(err, "postgresqlflexibleservers.FirewallRulesClient", "Delete", nil, "Failure preparing request")
166 return
167 }
168
169 result, err = client.DeleteSender(req)
170 if err != nil {
171 err = autorest.NewErrorWithError(err, "postgresqlflexibleservers.FirewallRulesClient", "Delete", result.Response(), "Failure sending request")
172 return
173 }
174
175 return
176 }
177
178
179 func (client FirewallRulesClient) DeletePreparer(ctx context.Context, resourceGroupName string, serverName string, firewallRuleName string) (*http.Request, error) {
180 pathParameters := map[string]interface{}{
181 "firewallRuleName": autorest.Encode("path", firewallRuleName),
182 "resourceGroupName": autorest.Encode("path", resourceGroupName),
183 "serverName": autorest.Encode("path", serverName),
184 "subscriptionId": autorest.Encode("path", client.SubscriptionID),
185 }
186
187 const APIVersion = "2020-02-14-preview"
188 queryParameters := map[string]interface{}{
189 "api-version": APIVersion,
190 }
191
192 preparer := autorest.CreatePreparer(
193 autorest.AsDelete(),
194 autorest.WithBaseURL(client.BaseURI),
195 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSql/flexibleServers/{serverName}/firewallRules/{firewallRuleName}", pathParameters),
196 autorest.WithQueryParameters(queryParameters))
197 return preparer.Prepare((&http.Request{}).WithContext(ctx))
198 }
199
200
201
202 func (client FirewallRulesClient) DeleteSender(req *http.Request) (future FirewallRulesDeleteFuture, err error) {
203 var resp *http.Response
204 future.FutureAPI = &azure.Future{}
205 resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client))
206 if err != nil {
207 return
208 }
209 var azf azure.Future
210 azf, err = azure.NewFutureFromResponse(resp)
211 future.FutureAPI = &azf
212 future.Result = future.result
213 return
214 }
215
216
217
218 func (client FirewallRulesClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) {
219 err = autorest.Respond(
220 resp,
221 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent),
222 autorest.ByClosing())
223 result.Response = resp
224 return
225 }
226
227
228
229
230
231
232 func (client FirewallRulesClient) Get(ctx context.Context, resourceGroupName string, serverName string, firewallRuleName string) (result FirewallRule, err error) {
233 if tracing.IsEnabled() {
234 ctx = tracing.StartSpan(ctx, fqdn+"/FirewallRulesClient.Get")
235 defer func() {
236 sc := -1
237 if result.Response.Response != nil {
238 sc = result.Response.Response.StatusCode
239 }
240 tracing.EndSpan(ctx, sc, err)
241 }()
242 }
243 if err := validation.Validate([]validation.Validation{
244 {TargetValue: client.SubscriptionID,
245 Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}},
246 {TargetValue: resourceGroupName,
247 Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
248 {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
249 {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil {
250 return result, validation.NewError("postgresqlflexibleservers.FirewallRulesClient", "Get", err.Error())
251 }
252
253 req, err := client.GetPreparer(ctx, resourceGroupName, serverName, firewallRuleName)
254 if err != nil {
255 err = autorest.NewErrorWithError(err, "postgresqlflexibleservers.FirewallRulesClient", "Get", nil, "Failure preparing request")
256 return
257 }
258
259 resp, err := client.GetSender(req)
260 if err != nil {
261 result.Response = autorest.Response{Response: resp}
262 err = autorest.NewErrorWithError(err, "postgresqlflexibleservers.FirewallRulesClient", "Get", resp, "Failure sending request")
263 return
264 }
265
266 result, err = client.GetResponder(resp)
267 if err != nil {
268 err = autorest.NewErrorWithError(err, "postgresqlflexibleservers.FirewallRulesClient", "Get", resp, "Failure responding to request")
269 return
270 }
271
272 return
273 }
274
275
276 func (client FirewallRulesClient) GetPreparer(ctx context.Context, resourceGroupName string, serverName string, firewallRuleName string) (*http.Request, error) {
277 pathParameters := map[string]interface{}{
278 "firewallRuleName": autorest.Encode("path", firewallRuleName),
279 "resourceGroupName": autorest.Encode("path", resourceGroupName),
280 "serverName": autorest.Encode("path", serverName),
281 "subscriptionId": autorest.Encode("path", client.SubscriptionID),
282 }
283
284 const APIVersion = "2020-02-14-preview"
285 queryParameters := map[string]interface{}{
286 "api-version": APIVersion,
287 }
288
289 preparer := autorest.CreatePreparer(
290 autorest.AsGet(),
291 autorest.WithBaseURL(client.BaseURI),
292 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSql/flexibleServers/{serverName}/firewallRules/{firewallRuleName}", pathParameters),
293 autorest.WithQueryParameters(queryParameters))
294 return preparer.Prepare((&http.Request{}).WithContext(ctx))
295 }
296
297
298
299 func (client FirewallRulesClient) GetSender(req *http.Request) (*http.Response, error) {
300 return client.Send(req, azure.DoRetryWithRegistration(client.Client))
301 }
302
303
304
305 func (client FirewallRulesClient) GetResponder(resp *http.Response) (result FirewallRule, err error) {
306 err = autorest.Respond(
307 resp,
308 azure.WithErrorUnlessStatusCode(http.StatusOK),
309 autorest.ByUnmarshallingJSON(&result),
310 autorest.ByClosing())
311 result.Response = autorest.Response{Response: resp}
312 return
313 }
314
315
316
317
318
319 func (client FirewallRulesClient) ListByServer(ctx context.Context, resourceGroupName string, serverName string) (result FirewallRuleListResultPage, err error) {
320 if tracing.IsEnabled() {
321 ctx = tracing.StartSpan(ctx, fqdn+"/FirewallRulesClient.ListByServer")
322 defer func() {
323 sc := -1
324 if result.frlr.Response.Response != nil {
325 sc = result.frlr.Response.Response.StatusCode
326 }
327 tracing.EndSpan(ctx, sc, err)
328 }()
329 }
330 if err := validation.Validate([]validation.Validation{
331 {TargetValue: client.SubscriptionID,
332 Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}},
333 {TargetValue: resourceGroupName,
334 Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
335 {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil},
336 {Target: "resourceGroupName", Name: validation.Pattern, Rule: `^[-\w\._\(\)]+$`, Chain: nil}}}}); err != nil {
337 return result, validation.NewError("postgresqlflexibleservers.FirewallRulesClient", "ListByServer", err.Error())
338 }
339
340 result.fn = client.listByServerNextResults
341 req, err := client.ListByServerPreparer(ctx, resourceGroupName, serverName)
342 if err != nil {
343 err = autorest.NewErrorWithError(err, "postgresqlflexibleservers.FirewallRulesClient", "ListByServer", nil, "Failure preparing request")
344 return
345 }
346
347 resp, err := client.ListByServerSender(req)
348 if err != nil {
349 result.frlr.Response = autorest.Response{Response: resp}
350 err = autorest.NewErrorWithError(err, "postgresqlflexibleservers.FirewallRulesClient", "ListByServer", resp, "Failure sending request")
351 return
352 }
353
354 result.frlr, err = client.ListByServerResponder(resp)
355 if err != nil {
356 err = autorest.NewErrorWithError(err, "postgresqlflexibleservers.FirewallRulesClient", "ListByServer", resp, "Failure responding to request")
357 return
358 }
359 if result.frlr.hasNextLink() && result.frlr.IsEmpty() {
360 err = result.NextWithContext(ctx)
361 return
362 }
363
364 return
365 }
366
367
368 func (client FirewallRulesClient) ListByServerPreparer(ctx context.Context, resourceGroupName string, serverName string) (*http.Request, error) {
369 pathParameters := map[string]interface{}{
370 "resourceGroupName": autorest.Encode("path", resourceGroupName),
371 "serverName": autorest.Encode("path", serverName),
372 "subscriptionId": autorest.Encode("path", client.SubscriptionID),
373 }
374
375 const APIVersion = "2020-02-14-preview"
376 queryParameters := map[string]interface{}{
377 "api-version": APIVersion,
378 }
379
380 preparer := autorest.CreatePreparer(
381 autorest.AsGet(),
382 autorest.WithBaseURL(client.BaseURI),
383 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSql/flexibleServers/{serverName}/firewallRules", pathParameters),
384 autorest.WithQueryParameters(queryParameters))
385 return preparer.Prepare((&http.Request{}).WithContext(ctx))
386 }
387
388
389
390 func (client FirewallRulesClient) ListByServerSender(req *http.Request) (*http.Response, error) {
391 return client.Send(req, azure.DoRetryWithRegistration(client.Client))
392 }
393
394
395
396 func (client FirewallRulesClient) ListByServerResponder(resp *http.Response) (result FirewallRuleListResult, err error) {
397 err = autorest.Respond(
398 resp,
399 azure.WithErrorUnlessStatusCode(http.StatusOK),
400 autorest.ByUnmarshallingJSON(&result),
401 autorest.ByClosing())
402 result.Response = autorest.Response{Response: resp}
403 return
404 }
405
406
407 func (client FirewallRulesClient) listByServerNextResults(ctx context.Context, lastResults FirewallRuleListResult) (result FirewallRuleListResult, err error) {
408 req, err := lastResults.firewallRuleListResultPreparer(ctx)
409 if err != nil {
410 return result, autorest.NewErrorWithError(err, "postgresqlflexibleservers.FirewallRulesClient", "listByServerNextResults", nil, "Failure preparing next results request")
411 }
412 if req == nil {
413 return
414 }
415 resp, err := client.ListByServerSender(req)
416 if err != nil {
417 result.Response = autorest.Response{Response: resp}
418 return result, autorest.NewErrorWithError(err, "postgresqlflexibleservers.FirewallRulesClient", "listByServerNextResults", resp, "Failure sending next results request")
419 }
420 result, err = client.ListByServerResponder(resp)
421 if err != nil {
422 err = autorest.NewErrorWithError(err, "postgresqlflexibleservers.FirewallRulesClient", "listByServerNextResults", resp, "Failure responding to next results request")
423 }
424 return
425 }
426
427
428 func (client FirewallRulesClient) ListByServerComplete(ctx context.Context, resourceGroupName string, serverName string) (result FirewallRuleListResultIterator, err error) {
429 if tracing.IsEnabled() {
430 ctx = tracing.StartSpan(ctx, fqdn+"/FirewallRulesClient.ListByServer")
431 defer func() {
432 sc := -1
433 if result.Response().Response.Response != nil {
434 sc = result.page.Response().Response.Response.StatusCode
435 }
436 tracing.EndSpan(ctx, sc, err)
437 }()
438 }
439 result.page, err = client.ListByServer(ctx, resourceGroupName, serverName)
440 return
441 }
442
View as plain text