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