1package datamigration
2
3// Copyright (c) Microsoft and contributors.  All rights reserved.
4//
5// Licensed under the Apache License, Version 2.0 (the "License");
6// you may not use this file except in compliance with the License.
7// You may obtain a copy of the License at
8// http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13//
14// See the License for the specific language governing permissions and
15// limitations under the License.
16//
17// Code generated by Microsoft (R) AutoRest Code Generator.
18// Changes may cause incorrect behavior and will be lost if the code is regenerated.
19
20import (
21	"context"
22	"github.com/Azure/go-autorest/autorest"
23	"github.com/Azure/go-autorest/autorest/azure"
24	"net/http"
25)
26
27// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/datamigration/mgmt/2017-11-15-preview/datamigration instead.
28// ProjectsClient is the data Migration Client
29type ProjectsClient struct {
30	BaseClient
31}
32
33// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/datamigration/mgmt/2017-11-15-preview/datamigration instead.
34// NewProjectsClient creates an instance of the ProjectsClient client.
35func NewProjectsClient(subscriptionID string) ProjectsClient {
36	return NewProjectsClientWithBaseURI(DefaultBaseURI, subscriptionID)
37}
38
39// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/datamigration/mgmt/2017-11-15-preview/datamigration instead.
40// NewProjectsClientWithBaseURI creates an instance of the ProjectsClient client.
41func NewProjectsClientWithBaseURI(baseURI string, subscriptionID string) ProjectsClient {
42	return ProjectsClient{NewWithBaseURI(baseURI, subscriptionID)}
43}
44
45// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/datamigration/mgmt/2017-11-15-preview/datamigration instead.
46// CreateOrUpdate the project resource is a nested resource representing a stored migration project. The PUT method
47// creates a new project or updates an existing one.
48//
49// parameters is information about the project groupName is name of the resource group serviceName is name of the
50// service projectName is name of the project
51func (client ProjectsClient) CreateOrUpdate(ctx context.Context, parameters Project, groupName string, serviceName string, projectName string) (result Project, err error) {
52	req, err := client.CreateOrUpdatePreparer(ctx, parameters, groupName, serviceName, projectName)
53	if err != nil {
54		err = autorest.NewErrorWithError(err, "datamigration.ProjectsClient", "CreateOrUpdate", nil, "Failure preparing request")
55		return
56	}
57
58	resp, err := client.CreateOrUpdateSender(req)
59	if err != nil {
60		result.Response = autorest.Response{Response: resp}
61		err = autorest.NewErrorWithError(err, "datamigration.ProjectsClient", "CreateOrUpdate", resp, "Failure sending request")
62		return
63	}
64
65	result, err = client.CreateOrUpdateResponder(resp)
66	if err != nil {
67		err = autorest.NewErrorWithError(err, "datamigration.ProjectsClient", "CreateOrUpdate", resp, "Failure responding to request")
68	}
69
70	return
71}
72
73// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/datamigration/mgmt/2017-11-15-preview/datamigration instead.
74// CreateOrUpdatePreparer prepares the CreateOrUpdate request.
75func (client ProjectsClient) CreateOrUpdatePreparer(ctx context.Context, parameters Project, groupName string, serviceName string, projectName string) (*http.Request, error) {
76	pathParameters := map[string]interface{}{
77		"groupName":      autorest.Encode("path", groupName),
78		"projectName":    autorest.Encode("path", projectName),
79		"serviceName":    autorest.Encode("path", serviceName),
80		"subscriptionId": autorest.Encode("path", client.SubscriptionID),
81	}
82
83	const APIVersion = "2017-11-15-preview"
84	queryParameters := map[string]interface{}{
85		"api-version": APIVersion,
86	}
87
88	preparer := autorest.CreatePreparer(
89		autorest.AsContentType("application/json; charset=utf-8"),
90		autorest.AsPut(),
91		autorest.WithBaseURL(client.BaseURI),
92		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.DataMigration/services/{serviceName}/projects/{projectName}", pathParameters),
93		autorest.WithJSON(parameters),
94		autorest.WithQueryParameters(queryParameters))
95	return preparer.Prepare((&http.Request{}).WithContext(ctx))
96}
97
98// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/datamigration/mgmt/2017-11-15-preview/datamigration instead.
99// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the
100// http.Response Body if it receives an error.
101func (client ProjectsClient) CreateOrUpdateSender(req *http.Request) (*http.Response, error) {
102	return autorest.SendWithSender(client, req,
103		azure.DoRetryWithRegistration(client.Client))
104}
105
106// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/datamigration/mgmt/2017-11-15-preview/datamigration instead.
107// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always
108// closes the http.Response Body.
109func (client ProjectsClient) CreateOrUpdateResponder(resp *http.Response) (result Project, err error) {
110	err = autorest.Respond(
111		resp,
112		client.ByInspecting(),
113		azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated),
114		autorest.ByUnmarshallingJSON(&result),
115		autorest.ByClosing())
116	result.Response = autorest.Response{Response: resp}
117	return
118}
119
120// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/datamigration/mgmt/2017-11-15-preview/datamigration instead.
121// Delete the project resource is a nested resource representing a stored migration project. The DELETE method deletes
122// a project.
123//
124// groupName is name of the resource group serviceName is name of the service projectName is name of the project
125// deleteRunningTasks is delete the resource even if it contains running tasks
126func (client ProjectsClient) Delete(ctx context.Context, groupName string, serviceName string, projectName string, deleteRunningTasks *bool) (result autorest.Response, err error) {
127	req, err := client.DeletePreparer(ctx, groupName, serviceName, projectName, deleteRunningTasks)
128	if err != nil {
129		err = autorest.NewErrorWithError(err, "datamigration.ProjectsClient", "Delete", nil, "Failure preparing request")
130		return
131	}
132
133	resp, err := client.DeleteSender(req)
134	if err != nil {
135		result.Response = resp
136		err = autorest.NewErrorWithError(err, "datamigration.ProjectsClient", "Delete", resp, "Failure sending request")
137		return
138	}
139
140	result, err = client.DeleteResponder(resp)
141	if err != nil {
142		err = autorest.NewErrorWithError(err, "datamigration.ProjectsClient", "Delete", resp, "Failure responding to request")
143	}
144
145	return
146}
147
148// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/datamigration/mgmt/2017-11-15-preview/datamigration instead.
149// DeletePreparer prepares the Delete request.
150func (client ProjectsClient) DeletePreparer(ctx context.Context, groupName string, serviceName string, projectName string, deleteRunningTasks *bool) (*http.Request, error) {
151	pathParameters := map[string]interface{}{
152		"groupName":      autorest.Encode("path", groupName),
153		"projectName":    autorest.Encode("path", projectName),
154		"serviceName":    autorest.Encode("path", serviceName),
155		"subscriptionId": autorest.Encode("path", client.SubscriptionID),
156	}
157
158	const APIVersion = "2017-11-15-preview"
159	queryParameters := map[string]interface{}{
160		"api-version": APIVersion,
161	}
162	if deleteRunningTasks != nil {
163		queryParameters["deleteRunningTasks"] = autorest.Encode("query", *deleteRunningTasks)
164	}
165
166	preparer := autorest.CreatePreparer(
167		autorest.AsDelete(),
168		autorest.WithBaseURL(client.BaseURI),
169		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.DataMigration/services/{serviceName}/projects/{projectName}", pathParameters),
170		autorest.WithQueryParameters(queryParameters))
171	return preparer.Prepare((&http.Request{}).WithContext(ctx))
172}
173
174// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/datamigration/mgmt/2017-11-15-preview/datamigration instead.
175// DeleteSender sends the Delete request. The method will close the
176// http.Response Body if it receives an error.
177func (client ProjectsClient) DeleteSender(req *http.Request) (*http.Response, error) {
178	return autorest.SendWithSender(client, req,
179		azure.DoRetryWithRegistration(client.Client))
180}
181
182// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/datamigration/mgmt/2017-11-15-preview/datamigration instead.
183// DeleteResponder handles the response to the Delete request. The method always
184// closes the http.Response Body.
185func (client ProjectsClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) {
186	err = autorest.Respond(
187		resp,
188		client.ByInspecting(),
189		azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent),
190		autorest.ByClosing())
191	result.Response = resp
192	return
193}
194
195// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/datamigration/mgmt/2017-11-15-preview/datamigration instead.
196// Get the project resource is a nested resource representing a stored migration project. The GET method retrieves
197// information about a project.
198//
199// groupName is name of the resource group serviceName is name of the service projectName is name of the project
200func (client ProjectsClient) Get(ctx context.Context, groupName string, serviceName string, projectName string) (result Project, err error) {
201	req, err := client.GetPreparer(ctx, groupName, serviceName, projectName)
202	if err != nil {
203		err = autorest.NewErrorWithError(err, "datamigration.ProjectsClient", "Get", nil, "Failure preparing request")
204		return
205	}
206
207	resp, err := client.GetSender(req)
208	if err != nil {
209		result.Response = autorest.Response{Response: resp}
210		err = autorest.NewErrorWithError(err, "datamigration.ProjectsClient", "Get", resp, "Failure sending request")
211		return
212	}
213
214	result, err = client.GetResponder(resp)
215	if err != nil {
216		err = autorest.NewErrorWithError(err, "datamigration.ProjectsClient", "Get", resp, "Failure responding to request")
217	}
218
219	return
220}
221
222// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/datamigration/mgmt/2017-11-15-preview/datamigration instead.
223// GetPreparer prepares the Get request.
224func (client ProjectsClient) GetPreparer(ctx context.Context, groupName string, serviceName string, projectName string) (*http.Request, error) {
225	pathParameters := map[string]interface{}{
226		"groupName":      autorest.Encode("path", groupName),
227		"projectName":    autorest.Encode("path", projectName),
228		"serviceName":    autorest.Encode("path", serviceName),
229		"subscriptionId": autorest.Encode("path", client.SubscriptionID),
230	}
231
232	const APIVersion = "2017-11-15-preview"
233	queryParameters := map[string]interface{}{
234		"api-version": APIVersion,
235	}
236
237	preparer := autorest.CreatePreparer(
238		autorest.AsGet(),
239		autorest.WithBaseURL(client.BaseURI),
240		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.DataMigration/services/{serviceName}/projects/{projectName}", pathParameters),
241		autorest.WithQueryParameters(queryParameters))
242	return preparer.Prepare((&http.Request{}).WithContext(ctx))
243}
244
245// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/datamigration/mgmt/2017-11-15-preview/datamigration instead.
246// GetSender sends the Get request. The method will close the
247// http.Response Body if it receives an error.
248func (client ProjectsClient) GetSender(req *http.Request) (*http.Response, error) {
249	return autorest.SendWithSender(client, req,
250		azure.DoRetryWithRegistration(client.Client))
251}
252
253// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/datamigration/mgmt/2017-11-15-preview/datamigration instead.
254// GetResponder handles the response to the Get request. The method always
255// closes the http.Response Body.
256func (client ProjectsClient) GetResponder(resp *http.Response) (result Project, err error) {
257	err = autorest.Respond(
258		resp,
259		client.ByInspecting(),
260		azure.WithErrorUnlessStatusCode(http.StatusOK),
261		autorest.ByUnmarshallingJSON(&result),
262		autorest.ByClosing())
263	result.Response = autorest.Response{Response: resp}
264	return
265}
266
267// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/datamigration/mgmt/2017-11-15-preview/datamigration instead.
268// List the project resource is a nested resource representing a stored migration project. This method returns a list
269// of projects owned by a service resource.
270//
271// groupName is name of the resource group serviceName is name of the service
272func (client ProjectsClient) List(ctx context.Context, groupName string, serviceName string) (result ProjectListPage, err error) {
273	result.fn = client.listNextResults
274	req, err := client.ListPreparer(ctx, groupName, serviceName)
275	if err != nil {
276		err = autorest.NewErrorWithError(err, "datamigration.ProjectsClient", "List", nil, "Failure preparing request")
277		return
278	}
279
280	resp, err := client.ListSender(req)
281	if err != nil {
282		result.pl.Response = autorest.Response{Response: resp}
283		err = autorest.NewErrorWithError(err, "datamigration.ProjectsClient", "List", resp, "Failure sending request")
284		return
285	}
286
287	result.pl, err = client.ListResponder(resp)
288	if err != nil {
289		err = autorest.NewErrorWithError(err, "datamigration.ProjectsClient", "List", resp, "Failure responding to request")
290	}
291
292	return
293}
294
295// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/datamigration/mgmt/2017-11-15-preview/datamigration instead.
296// ListPreparer prepares the List request.
297func (client ProjectsClient) ListPreparer(ctx context.Context, groupName string, serviceName string) (*http.Request, error) {
298	pathParameters := map[string]interface{}{
299		"groupName":      autorest.Encode("path", groupName),
300		"serviceName":    autorest.Encode("path", serviceName),
301		"subscriptionId": autorest.Encode("path", client.SubscriptionID),
302	}
303
304	const APIVersion = "2017-11-15-preview"
305	queryParameters := map[string]interface{}{
306		"api-version": APIVersion,
307	}
308
309	preparer := autorest.CreatePreparer(
310		autorest.AsGet(),
311		autorest.WithBaseURL(client.BaseURI),
312		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.DataMigration/services/{serviceName}/projects", pathParameters),
313		autorest.WithQueryParameters(queryParameters))
314	return preparer.Prepare((&http.Request{}).WithContext(ctx))
315}
316
317// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/datamigration/mgmt/2017-11-15-preview/datamigration instead.
318// ListSender sends the List request. The method will close the
319// http.Response Body if it receives an error.
320func (client ProjectsClient) ListSender(req *http.Request) (*http.Response, error) {
321	return autorest.SendWithSender(client, req,
322		azure.DoRetryWithRegistration(client.Client))
323}
324
325// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/datamigration/mgmt/2017-11-15-preview/datamigration instead.
326// ListResponder handles the response to the List request. The method always
327// closes the http.Response Body.
328func (client ProjectsClient) ListResponder(resp *http.Response) (result ProjectList, err error) {
329	err = autorest.Respond(
330		resp,
331		client.ByInspecting(),
332		azure.WithErrorUnlessStatusCode(http.StatusOK),
333		autorest.ByUnmarshallingJSON(&result),
334		autorest.ByClosing())
335	result.Response = autorest.Response{Response: resp}
336	return
337}
338
339// listNextResults retrieves the next set of results, if any.
340func (client ProjectsClient) listNextResults(lastResults ProjectList) (result ProjectList, err error) {
341	req, err := lastResults.projectListPreparer()
342	if err != nil {
343		return result, autorest.NewErrorWithError(err, "datamigration.ProjectsClient", "listNextResults", nil, "Failure preparing next results request")
344	}
345	if req == nil {
346		return
347	}
348	resp, err := client.ListSender(req)
349	if err != nil {
350		result.Response = autorest.Response{Response: resp}
351		return result, autorest.NewErrorWithError(err, "datamigration.ProjectsClient", "listNextResults", resp, "Failure sending next results request")
352	}
353	result, err = client.ListResponder(resp)
354	if err != nil {
355		err = autorest.NewErrorWithError(err, "datamigration.ProjectsClient", "listNextResults", resp, "Failure responding to next results request")
356	}
357	return
358}
359
360// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/datamigration/mgmt/2017-11-15-preview/datamigration instead.
361// ListComplete enumerates all values, automatically crossing page boundaries as required.
362func (client ProjectsClient) ListComplete(ctx context.Context, groupName string, serviceName string) (result ProjectListIterator, err error) {
363	result.page, err = client.List(ctx, groupName, serviceName)
364	return
365}
366
367// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/datamigration/mgmt/2017-11-15-preview/datamigration instead.
368// Update the project resource is a nested resource representing a stored migration project. The PATCH method updates
369// an existing project.
370//
371// parameters is information about the project groupName is name of the resource group serviceName is name of the
372// service projectName is name of the project
373func (client ProjectsClient) Update(ctx context.Context, parameters Project, groupName string, serviceName string, projectName string) (result Project, err error) {
374	req, err := client.UpdatePreparer(ctx, parameters, groupName, serviceName, projectName)
375	if err != nil {
376		err = autorest.NewErrorWithError(err, "datamigration.ProjectsClient", "Update", nil, "Failure preparing request")
377		return
378	}
379
380	resp, err := client.UpdateSender(req)
381	if err != nil {
382		result.Response = autorest.Response{Response: resp}
383		err = autorest.NewErrorWithError(err, "datamigration.ProjectsClient", "Update", resp, "Failure sending request")
384		return
385	}
386
387	result, err = client.UpdateResponder(resp)
388	if err != nil {
389		err = autorest.NewErrorWithError(err, "datamigration.ProjectsClient", "Update", resp, "Failure responding to request")
390	}
391
392	return
393}
394
395// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/datamigration/mgmt/2017-11-15-preview/datamigration instead.
396// UpdatePreparer prepares the Update request.
397func (client ProjectsClient) UpdatePreparer(ctx context.Context, parameters Project, groupName string, serviceName string, projectName string) (*http.Request, error) {
398	pathParameters := map[string]interface{}{
399		"groupName":      autorest.Encode("path", groupName),
400		"projectName":    autorest.Encode("path", projectName),
401		"serviceName":    autorest.Encode("path", serviceName),
402		"subscriptionId": autorest.Encode("path", client.SubscriptionID),
403	}
404
405	const APIVersion = "2017-11-15-preview"
406	queryParameters := map[string]interface{}{
407		"api-version": APIVersion,
408	}
409
410	preparer := autorest.CreatePreparer(
411		autorest.AsContentType("application/json; charset=utf-8"),
412		autorest.AsPatch(),
413		autorest.WithBaseURL(client.BaseURI),
414		autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.DataMigration/services/{serviceName}/projects/{projectName}", pathParameters),
415		autorest.WithJSON(parameters),
416		autorest.WithQueryParameters(queryParameters))
417	return preparer.Prepare((&http.Request{}).WithContext(ctx))
418}
419
420// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/datamigration/mgmt/2017-11-15-preview/datamigration instead.
421// UpdateSender sends the Update request. The method will close the
422// http.Response Body if it receives an error.
423func (client ProjectsClient) UpdateSender(req *http.Request) (*http.Response, error) {
424	return autorest.SendWithSender(client, req,
425		azure.DoRetryWithRegistration(client.Client))
426}
427
428// Deprecated: Please use package github.com/Azure/azure-sdk-for-go/services/preview/datamigration/mgmt/2017-11-15-preview/datamigration instead.
429// UpdateResponder handles the response to the Update request. The method always
430// closes the http.Response Body.
431func (client ProjectsClient) UpdateResponder(resp *http.Response) (result Project, err error) {
432	err = autorest.Respond(
433		resp,
434		client.ByInspecting(),
435		azure.WithErrorUnlessStatusCode(http.StatusOK),
436		autorest.ByUnmarshallingJSON(&result),
437		autorest.ByClosing())
438	result.Response = autorest.Response{Response: resp}
439	return
440}
441