1 package documentdb
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 type DataTransferJobsClient struct {
20 BaseClient
21 }
22
23
24 func NewDataTransferJobsClient(subscriptionID string) DataTransferJobsClient {
25 return NewDataTransferJobsClientWithBaseURI(DefaultBaseURI, subscriptionID)
26 }
27
28
29
30
31 func NewDataTransferJobsClientWithBaseURI(baseURI string, subscriptionID string) DataTransferJobsClient {
32 return DataTransferJobsClient{NewWithBaseURI(baseURI, subscriptionID)}
33 }
34
35
36
37
38
39
40 func (client DataTransferJobsClient) Create(ctx context.Context, resourceGroupName string, accountName string, jobName string, jobCreateParameters CreateJobRequest) (result DataTransferJobGetResults, err error) {
41 if tracing.IsEnabled() {
42 ctx = tracing.StartSpan(ctx, fqdn+"/DataTransferJobsClient.Create")
43 defer func() {
44 sc := -1
45 if result.Response.Response != nil {
46 sc = result.Response.Response.StatusCode
47 }
48 tracing.EndSpan(ctx, sc, err)
49 }()
50 }
51 if err := validation.Validate([]validation.Validation{
52 {TargetValue: client.SubscriptionID,
53 Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}},
54 {TargetValue: resourceGroupName,
55 Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
56 {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}},
57 {TargetValue: accountName,
58 Constraints: []validation.Constraint{{Target: "accountName", Name: validation.MaxLength, Rule: 50, Chain: nil},
59 {Target: "accountName", Name: validation.MinLength, Rule: 3, Chain: nil},
60 {Target: "accountName", Name: validation.Pattern, Rule: `^[a-z0-9]+(-[a-z0-9]+)*`, Chain: nil}}},
61 {TargetValue: jobCreateParameters,
62 Constraints: []validation.Constraint{{Target: "jobCreateParameters.Properties", Name: validation.Null, Rule: true,
63 Chain: []validation.Constraint{{Target: "jobCreateParameters.Properties.WorkerCount", Name: validation.Null, Rule: false,
64 Chain: []validation.Constraint{{Target: "jobCreateParameters.Properties.WorkerCount", Name: validation.InclusiveMinimum, Rule: int64(0), Chain: nil}}},
65 }}}}}); err != nil {
66 return result, validation.NewError("documentdb.DataTransferJobsClient", "Create", err.Error())
67 }
68
69 req, err := client.CreatePreparer(ctx, resourceGroupName, accountName, jobName, jobCreateParameters)
70 if err != nil {
71 err = autorest.NewErrorWithError(err, "documentdb.DataTransferJobsClient", "Create", nil, "Failure preparing request")
72 return
73 }
74
75 resp, err := client.CreateSender(req)
76 if err != nil {
77 result.Response = autorest.Response{Response: resp}
78 err = autorest.NewErrorWithError(err, "documentdb.DataTransferJobsClient", "Create", resp, "Failure sending request")
79 return
80 }
81
82 result, err = client.CreateResponder(resp)
83 if err != nil {
84 err = autorest.NewErrorWithError(err, "documentdb.DataTransferJobsClient", "Create", resp, "Failure responding to request")
85 return
86 }
87
88 return
89 }
90
91
92 func (client DataTransferJobsClient) CreatePreparer(ctx context.Context, resourceGroupName string, accountName string, jobName string, jobCreateParameters CreateJobRequest) (*http.Request, error) {
93 pathParameters := map[string]interface{}{
94 "accountName": autorest.Encode("path", accountName),
95 "jobName": autorest.Encode("path", jobName),
96 "resourceGroupName": autorest.Encode("path", resourceGroupName),
97 "subscriptionId": autorest.Encode("path", client.SubscriptionID),
98 }
99
100 const APIVersion = "2021-11-15-preview"
101 queryParameters := map[string]interface{}{
102 "api-version": APIVersion,
103 }
104
105 preparer := autorest.CreatePreparer(
106 autorest.AsContentType("application/json; charset=utf-8"),
107 autorest.AsPut(),
108 autorest.WithBaseURL(client.BaseURI),
109 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/dataTransferJobs/{jobName}", pathParameters),
110 autorest.WithJSON(jobCreateParameters),
111 autorest.WithQueryParameters(queryParameters))
112 return preparer.Prepare((&http.Request{}).WithContext(ctx))
113 }
114
115
116
117 func (client DataTransferJobsClient) CreateSender(req *http.Request) (*http.Response, error) {
118 return client.Send(req, azure.DoRetryWithRegistration(client.Client))
119 }
120
121
122
123 func (client DataTransferJobsClient) CreateResponder(resp *http.Response) (result DataTransferJobGetResults, err error) {
124 err = autorest.Respond(
125 resp,
126 azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated),
127 autorest.ByUnmarshallingJSON(&result),
128 autorest.ByClosing())
129 result.Response = autorest.Response{Response: resp}
130 return
131 }
132
133
134
135
136
137
138 func (client DataTransferJobsClient) Get(ctx context.Context, resourceGroupName string, accountName string, jobName string) (result DataTransferJobGetResults, err error) {
139 if tracing.IsEnabled() {
140 ctx = tracing.StartSpan(ctx, fqdn+"/DataTransferJobsClient.Get")
141 defer func() {
142 sc := -1
143 if result.Response.Response != nil {
144 sc = result.Response.Response.StatusCode
145 }
146 tracing.EndSpan(ctx, sc, err)
147 }()
148 }
149 if err := validation.Validate([]validation.Validation{
150 {TargetValue: client.SubscriptionID,
151 Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}},
152 {TargetValue: resourceGroupName,
153 Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
154 {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}},
155 {TargetValue: accountName,
156 Constraints: []validation.Constraint{{Target: "accountName", Name: validation.MaxLength, Rule: 50, Chain: nil},
157 {Target: "accountName", Name: validation.MinLength, Rule: 3, Chain: nil},
158 {Target: "accountName", Name: validation.Pattern, Rule: `^[a-z0-9]+(-[a-z0-9]+)*`, Chain: nil}}}}); err != nil {
159 return result, validation.NewError("documentdb.DataTransferJobsClient", "Get", err.Error())
160 }
161
162 req, err := client.GetPreparer(ctx, resourceGroupName, accountName, jobName)
163 if err != nil {
164 err = autorest.NewErrorWithError(err, "documentdb.DataTransferJobsClient", "Get", nil, "Failure preparing request")
165 return
166 }
167
168 resp, err := client.GetSender(req)
169 if err != nil {
170 result.Response = autorest.Response{Response: resp}
171 err = autorest.NewErrorWithError(err, "documentdb.DataTransferJobsClient", "Get", resp, "Failure sending request")
172 return
173 }
174
175 result, err = client.GetResponder(resp)
176 if err != nil {
177 err = autorest.NewErrorWithError(err, "documentdb.DataTransferJobsClient", "Get", resp, "Failure responding to request")
178 return
179 }
180
181 return
182 }
183
184
185 func (client DataTransferJobsClient) GetPreparer(ctx context.Context, resourceGroupName string, accountName string, jobName string) (*http.Request, error) {
186 pathParameters := map[string]interface{}{
187 "accountName": autorest.Encode("path", accountName),
188 "jobName": autorest.Encode("path", jobName),
189 "resourceGroupName": autorest.Encode("path", resourceGroupName),
190 "subscriptionId": autorest.Encode("path", client.SubscriptionID),
191 }
192
193 const APIVersion = "2021-11-15-preview"
194 queryParameters := map[string]interface{}{
195 "api-version": APIVersion,
196 }
197
198 preparer := autorest.CreatePreparer(
199 autorest.AsGet(),
200 autorest.WithBaseURL(client.BaseURI),
201 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/dataTransferJobs/{jobName}", pathParameters),
202 autorest.WithQueryParameters(queryParameters))
203 return preparer.Prepare((&http.Request{}).WithContext(ctx))
204 }
205
206
207
208 func (client DataTransferJobsClient) GetSender(req *http.Request) (*http.Response, error) {
209 return client.Send(req, azure.DoRetryWithRegistration(client.Client))
210 }
211
212
213
214 func (client DataTransferJobsClient) GetResponder(resp *http.Response) (result DataTransferJobGetResults, err error) {
215 err = autorest.Respond(
216 resp,
217 azure.WithErrorUnlessStatusCode(http.StatusOK),
218 autorest.ByUnmarshallingJSON(&result),
219 autorest.ByClosing())
220 result.Response = autorest.Response{Response: resp}
221 return
222 }
223
224
225
226
227
228 func (client DataTransferJobsClient) ListByDatabaseAccount(ctx context.Context, resourceGroupName string, accountName string) (result DataTransferJobFeedResultsPage, err error) {
229 if tracing.IsEnabled() {
230 ctx = tracing.StartSpan(ctx, fqdn+"/DataTransferJobsClient.ListByDatabaseAccount")
231 defer func() {
232 sc := -1
233 if result.dtjfr.Response.Response != nil {
234 sc = result.dtjfr.Response.Response.StatusCode
235 }
236 tracing.EndSpan(ctx, sc, err)
237 }()
238 }
239 if err := validation.Validate([]validation.Validation{
240 {TargetValue: client.SubscriptionID,
241 Constraints: []validation.Constraint{{Target: "client.SubscriptionID", Name: validation.MinLength, Rule: 1, Chain: nil}}},
242 {TargetValue: resourceGroupName,
243 Constraints: []validation.Constraint{{Target: "resourceGroupName", Name: validation.MaxLength, Rule: 90, Chain: nil},
244 {Target: "resourceGroupName", Name: validation.MinLength, Rule: 1, Chain: nil}}},
245 {TargetValue: accountName,
246 Constraints: []validation.Constraint{{Target: "accountName", Name: validation.MaxLength, Rule: 50, Chain: nil},
247 {Target: "accountName", Name: validation.MinLength, Rule: 3, Chain: nil},
248 {Target: "accountName", Name: validation.Pattern, Rule: `^[a-z0-9]+(-[a-z0-9]+)*`, Chain: nil}}}}); err != nil {
249 return result, validation.NewError("documentdb.DataTransferJobsClient", "ListByDatabaseAccount", err.Error())
250 }
251
252 result.fn = client.listByDatabaseAccountNextResults
253 req, err := client.ListByDatabaseAccountPreparer(ctx, resourceGroupName, accountName)
254 if err != nil {
255 err = autorest.NewErrorWithError(err, "documentdb.DataTransferJobsClient", "ListByDatabaseAccount", nil, "Failure preparing request")
256 return
257 }
258
259 resp, err := client.ListByDatabaseAccountSender(req)
260 if err != nil {
261 result.dtjfr.Response = autorest.Response{Response: resp}
262 err = autorest.NewErrorWithError(err, "documentdb.DataTransferJobsClient", "ListByDatabaseAccount", resp, "Failure sending request")
263 return
264 }
265
266 result.dtjfr, err = client.ListByDatabaseAccountResponder(resp)
267 if err != nil {
268 err = autorest.NewErrorWithError(err, "documentdb.DataTransferJobsClient", "ListByDatabaseAccount", resp, "Failure responding to request")
269 return
270 }
271 if result.dtjfr.hasNextLink() && result.dtjfr.IsEmpty() {
272 err = result.NextWithContext(ctx)
273 return
274 }
275
276 return
277 }
278
279
280 func (client DataTransferJobsClient) ListByDatabaseAccountPreparer(ctx context.Context, resourceGroupName string, accountName string) (*http.Request, error) {
281 pathParameters := map[string]interface{}{
282 "accountName": autorest.Encode("path", accountName),
283 "resourceGroupName": autorest.Encode("path", resourceGroupName),
284 "subscriptionId": autorest.Encode("path", client.SubscriptionID),
285 }
286
287 const APIVersion = "2021-11-15-preview"
288 queryParameters := map[string]interface{}{
289 "api-version": APIVersion,
290 }
291
292 preparer := autorest.CreatePreparer(
293 autorest.AsGet(),
294 autorest.WithBaseURL(client.BaseURI),
295 autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/dataTransferJobs", pathParameters),
296 autorest.WithQueryParameters(queryParameters))
297 return preparer.Prepare((&http.Request{}).WithContext(ctx))
298 }
299
300
301
302 func (client DataTransferJobsClient) ListByDatabaseAccountSender(req *http.Request) (*http.Response, error) {
303 return client.Send(req, azure.DoRetryWithRegistration(client.Client))
304 }
305
306
307
308 func (client DataTransferJobsClient) ListByDatabaseAccountResponder(resp *http.Response) (result DataTransferJobFeedResults, err error) {
309 err = autorest.Respond(
310 resp,
311 azure.WithErrorUnlessStatusCode(http.StatusOK),
312 autorest.ByUnmarshallingJSON(&result),
313 autorest.ByClosing())
314 result.Response = autorest.Response{Response: resp}
315 return
316 }
317
318
319 func (client DataTransferJobsClient) listByDatabaseAccountNextResults(ctx context.Context, lastResults DataTransferJobFeedResults) (result DataTransferJobFeedResults, err error) {
320 req, err := lastResults.dataTransferJobFeedResultsPreparer(ctx)
321 if err != nil {
322 return result, autorest.NewErrorWithError(err, "documentdb.DataTransferJobsClient", "listByDatabaseAccountNextResults", nil, "Failure preparing next results request")
323 }
324 if req == nil {
325 return
326 }
327 resp, err := client.ListByDatabaseAccountSender(req)
328 if err != nil {
329 result.Response = autorest.Response{Response: resp}
330 return result, autorest.NewErrorWithError(err, "documentdb.DataTransferJobsClient", "listByDatabaseAccountNextResults", resp, "Failure sending next results request")
331 }
332 result, err = client.ListByDatabaseAccountResponder(resp)
333 if err != nil {
334 err = autorest.NewErrorWithError(err, "documentdb.DataTransferJobsClient", "listByDatabaseAccountNextResults", resp, "Failure responding to next results request")
335 }
336 return
337 }
338
339
340 func (client DataTransferJobsClient) ListByDatabaseAccountComplete(ctx context.Context, resourceGroupName string, accountName string) (result DataTransferJobFeedResultsIterator, err error) {
341 if tracing.IsEnabled() {
342 ctx = tracing.StartSpan(ctx, fqdn+"/DataTransferJobsClient.ListByDatabaseAccount")
343 defer func() {
344 sc := -1
345 if result.Response().Response.Response != nil {
346 sc = result.page.Response().Response.Response.StatusCode
347 }
348 tracing.EndSpan(ctx, sc, err)
349 }()
350 }
351 result.page, err = client.ListByDatabaseAccount(ctx, resourceGroupName, accountName)
352 return
353 }
354
View as plain text