1"""Generated client library for datamigration version v1."""
2# NOTE: This file is autogenerated and should not be edited by hand.
3
4from __future__ import absolute_import
5
6from apitools.base.py import base_api
7from googlecloudsdk.third_party.apis.datamigration.v1 import datamigration_v1_messages as messages
8
9
10class DatamigrationV1(base_api.BaseApiClient):
11  """Generated client library for service datamigration version v1."""
12
13  MESSAGES_MODULE = messages
14  BASE_URL = 'https://datamigration.googleapis.com/'
15  MTLS_BASE_URL = 'https://datamigration.mtls.googleapis.com/'
16
17  _PACKAGE = 'datamigration'
18  _SCOPES = ['https://www.googleapis.com/auth/cloud-platform']
19  _VERSION = 'v1'
20  _CLIENT_ID = '1042881264118.apps.googleusercontent.com'
21  _CLIENT_SECRET = 'x_Tw5K8nnjoRAqULM9PFAC2b'
22  _USER_AGENT = 'google-cloud-sdk'
23  _CLIENT_CLASS_NAME = 'DatamigrationV1'
24  _URL_VERSION = 'v1'
25  _API_KEY = None
26
27  def __init__(self, url='', credentials=None,
28               get_credentials=True, http=None, model=None,
29               log_request=False, log_response=False,
30               credentials_args=None, default_global_params=None,
31               additional_http_headers=None, response_encoding=None):
32    """Create a new datamigration handle."""
33    url = url or self.BASE_URL
34    super(DatamigrationV1, self).__init__(
35        url, credentials=credentials,
36        get_credentials=get_credentials, http=http, model=model,
37        log_request=log_request, log_response=log_response,
38        credentials_args=credentials_args,
39        default_global_params=default_global_params,
40        additional_http_headers=additional_http_headers,
41        response_encoding=response_encoding)
42    self.projects_locations_connectionProfiles = self.ProjectsLocationsConnectionProfilesService(self)
43    self.projects_locations_migrationJobs = self.ProjectsLocationsMigrationJobsService(self)
44    self.projects_locations_operations = self.ProjectsLocationsOperationsService(self)
45    self.projects_locations = self.ProjectsLocationsService(self)
46    self.projects = self.ProjectsService(self)
47
48  class ProjectsLocationsConnectionProfilesService(base_api.BaseApiService):
49    """Service class for the projects_locations_connectionProfiles resource."""
50
51    _NAME = 'projects_locations_connectionProfiles'
52
53    def __init__(self, client):
54      super(DatamigrationV1.ProjectsLocationsConnectionProfilesService, self).__init__(client)
55      self._upload_configs = {
56          }
57
58    def Create(self, request, global_params=None):
59      r"""Creates a new connection profile in a given project and location.
60
61      Args:
62        request: (DatamigrationProjectsLocationsConnectionProfilesCreateRequest) input message
63        global_params: (StandardQueryParameters, default: None) global arguments
64      Returns:
65        (Operation) The response message.
66      """
67      config = self.GetMethodConfig('Create')
68      return self._RunMethod(
69          config, request, global_params=global_params)
70
71    Create.method_config = lambda: base_api.ApiMethodInfo(
72        flat_path='v1/projects/{projectsId}/locations/{locationsId}/connectionProfiles',
73        http_method='POST',
74        method_id='datamigration.projects.locations.connectionProfiles.create',
75        ordered_params=['parent'],
76        path_params=['parent'],
77        query_params=['connectionProfileId', 'requestId'],
78        relative_path='v1/{+parent}/connectionProfiles',
79        request_field='connectionProfile',
80        request_type_name='DatamigrationProjectsLocationsConnectionProfilesCreateRequest',
81        response_type_name='Operation',
82        supports_download=False,
83    )
84
85    def Delete(self, request, global_params=None):
86      r"""Deletes a single Database Migration Service connection profile. A connection profile can only be deleted if it is not in use by any active migration jobs.
87
88      Args:
89        request: (DatamigrationProjectsLocationsConnectionProfilesDeleteRequest) input message
90        global_params: (StandardQueryParameters, default: None) global arguments
91      Returns:
92        (Operation) The response message.
93      """
94      config = self.GetMethodConfig('Delete')
95      return self._RunMethod(
96          config, request, global_params=global_params)
97
98    Delete.method_config = lambda: base_api.ApiMethodInfo(
99        flat_path='v1/projects/{projectsId}/locations/{locationsId}/connectionProfiles/{connectionProfilesId}',
100        http_method='DELETE',
101        method_id='datamigration.projects.locations.connectionProfiles.delete',
102        ordered_params=['name'],
103        path_params=['name'],
104        query_params=['force', 'requestId'],
105        relative_path='v1/{+name}',
106        request_field='',
107        request_type_name='DatamigrationProjectsLocationsConnectionProfilesDeleteRequest',
108        response_type_name='Operation',
109        supports_download=False,
110    )
111
112    def Get(self, request, global_params=None):
113      r"""Gets details of a single connection profile.
114
115      Args:
116        request: (DatamigrationProjectsLocationsConnectionProfilesGetRequest) input message
117        global_params: (StandardQueryParameters, default: None) global arguments
118      Returns:
119        (ConnectionProfile) The response message.
120      """
121      config = self.GetMethodConfig('Get')
122      return self._RunMethod(
123          config, request, global_params=global_params)
124
125    Get.method_config = lambda: base_api.ApiMethodInfo(
126        flat_path='v1/projects/{projectsId}/locations/{locationsId}/connectionProfiles/{connectionProfilesId}',
127        http_method='GET',
128        method_id='datamigration.projects.locations.connectionProfiles.get',
129        ordered_params=['name'],
130        path_params=['name'],
131        query_params=[],
132        relative_path='v1/{+name}',
133        request_field='',
134        request_type_name='DatamigrationProjectsLocationsConnectionProfilesGetRequest',
135        response_type_name='ConnectionProfile',
136        supports_download=False,
137    )
138
139    def GetIamPolicy(self, request, global_params=None):
140      r"""Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.
141
142      Args:
143        request: (DatamigrationProjectsLocationsConnectionProfilesGetIamPolicyRequest) input message
144        global_params: (StandardQueryParameters, default: None) global arguments
145      Returns:
146        (Policy) The response message.
147      """
148      config = self.GetMethodConfig('GetIamPolicy')
149      return self._RunMethod(
150          config, request, global_params=global_params)
151
152    GetIamPolicy.method_config = lambda: base_api.ApiMethodInfo(
153        flat_path='v1/projects/{projectsId}/locations/{locationsId}/connectionProfiles/{connectionProfilesId}:getIamPolicy',
154        http_method='GET',
155        method_id='datamigration.projects.locations.connectionProfiles.getIamPolicy',
156        ordered_params=['resource'],
157        path_params=['resource'],
158        query_params=['options_requestedPolicyVersion'],
159        relative_path='v1/{+resource}:getIamPolicy',
160        request_field='',
161        request_type_name='DatamigrationProjectsLocationsConnectionProfilesGetIamPolicyRequest',
162        response_type_name='Policy',
163        supports_download=False,
164    )
165
166    def List(self, request, global_params=None):
167      r"""Retrieve a list of all connection profiles in a given project and location.
168
169      Args:
170        request: (DatamigrationProjectsLocationsConnectionProfilesListRequest) input message
171        global_params: (StandardQueryParameters, default: None) global arguments
172      Returns:
173        (ListConnectionProfilesResponse) The response message.
174      """
175      config = self.GetMethodConfig('List')
176      return self._RunMethod(
177          config, request, global_params=global_params)
178
179    List.method_config = lambda: base_api.ApiMethodInfo(
180        flat_path='v1/projects/{projectsId}/locations/{locationsId}/connectionProfiles',
181        http_method='GET',
182        method_id='datamigration.projects.locations.connectionProfiles.list',
183        ordered_params=['parent'],
184        path_params=['parent'],
185        query_params=['filter', 'orderBy', 'pageSize', 'pageToken'],
186        relative_path='v1/{+parent}/connectionProfiles',
187        request_field='',
188        request_type_name='DatamigrationProjectsLocationsConnectionProfilesListRequest',
189        response_type_name='ListConnectionProfilesResponse',
190        supports_download=False,
191    )
192
193    def Patch(self, request, global_params=None):
194      r"""Update the configuration of a single connection profile.
195
196      Args:
197        request: (DatamigrationProjectsLocationsConnectionProfilesPatchRequest) input message
198        global_params: (StandardQueryParameters, default: None) global arguments
199      Returns:
200        (Operation) The response message.
201      """
202      config = self.GetMethodConfig('Patch')
203      return self._RunMethod(
204          config, request, global_params=global_params)
205
206    Patch.method_config = lambda: base_api.ApiMethodInfo(
207        flat_path='v1/projects/{projectsId}/locations/{locationsId}/connectionProfiles/{connectionProfilesId}',
208        http_method='PATCH',
209        method_id='datamigration.projects.locations.connectionProfiles.patch',
210        ordered_params=['name'],
211        path_params=['name'],
212        query_params=['requestId', 'updateMask'],
213        relative_path='v1/{+name}',
214        request_field='connectionProfile',
215        request_type_name='DatamigrationProjectsLocationsConnectionProfilesPatchRequest',
216        response_type_name='Operation',
217        supports_download=False,
218    )
219
220    def SetIamPolicy(self, request, global_params=None):
221      r"""Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.
222
223      Args:
224        request: (DatamigrationProjectsLocationsConnectionProfilesSetIamPolicyRequest) input message
225        global_params: (StandardQueryParameters, default: None) global arguments
226      Returns:
227        (Policy) The response message.
228      """
229      config = self.GetMethodConfig('SetIamPolicy')
230      return self._RunMethod(
231          config, request, global_params=global_params)
232
233    SetIamPolicy.method_config = lambda: base_api.ApiMethodInfo(
234        flat_path='v1/projects/{projectsId}/locations/{locationsId}/connectionProfiles/{connectionProfilesId}:setIamPolicy',
235        http_method='POST',
236        method_id='datamigration.projects.locations.connectionProfiles.setIamPolicy',
237        ordered_params=['resource'],
238        path_params=['resource'],
239        query_params=[],
240        relative_path='v1/{+resource}:setIamPolicy',
241        request_field='setIamPolicyRequest',
242        request_type_name='DatamigrationProjectsLocationsConnectionProfilesSetIamPolicyRequest',
243        response_type_name='Policy',
244        supports_download=False,
245    )
246
247    def TestIamPermissions(self, request, global_params=None):
248      r"""Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may "fail open" without warning.
249
250      Args:
251        request: (DatamigrationProjectsLocationsConnectionProfilesTestIamPermissionsRequest) input message
252        global_params: (StandardQueryParameters, default: None) global arguments
253      Returns:
254        (TestIamPermissionsResponse) The response message.
255      """
256      config = self.GetMethodConfig('TestIamPermissions')
257      return self._RunMethod(
258          config, request, global_params=global_params)
259
260    TestIamPermissions.method_config = lambda: base_api.ApiMethodInfo(
261        flat_path='v1/projects/{projectsId}/locations/{locationsId}/connectionProfiles/{connectionProfilesId}:testIamPermissions',
262        http_method='POST',
263        method_id='datamigration.projects.locations.connectionProfiles.testIamPermissions',
264        ordered_params=['resource'],
265        path_params=['resource'],
266        query_params=[],
267        relative_path='v1/{+resource}:testIamPermissions',
268        request_field='testIamPermissionsRequest',
269        request_type_name='DatamigrationProjectsLocationsConnectionProfilesTestIamPermissionsRequest',
270        response_type_name='TestIamPermissionsResponse',
271        supports_download=False,
272    )
273
274  class ProjectsLocationsMigrationJobsService(base_api.BaseApiService):
275    """Service class for the projects_locations_migrationJobs resource."""
276
277    _NAME = 'projects_locations_migrationJobs'
278
279    def __init__(self, client):
280      super(DatamigrationV1.ProjectsLocationsMigrationJobsService, self).__init__(client)
281      self._upload_configs = {
282          }
283
284    def Create(self, request, global_params=None):
285      r"""Creates a new migration job in a given project and location.
286
287      Args:
288        request: (DatamigrationProjectsLocationsMigrationJobsCreateRequest) input message
289        global_params: (StandardQueryParameters, default: None) global arguments
290      Returns:
291        (Operation) The response message.
292      """
293      config = self.GetMethodConfig('Create')
294      return self._RunMethod(
295          config, request, global_params=global_params)
296
297    Create.method_config = lambda: base_api.ApiMethodInfo(
298        flat_path='v1/projects/{projectsId}/locations/{locationsId}/migrationJobs',
299        http_method='POST',
300        method_id='datamigration.projects.locations.migrationJobs.create',
301        ordered_params=['parent'],
302        path_params=['parent'],
303        query_params=['migrationJobId', 'requestId'],
304        relative_path='v1/{+parent}/migrationJobs',
305        request_field='migrationJob',
306        request_type_name='DatamigrationProjectsLocationsMigrationJobsCreateRequest',
307        response_type_name='Operation',
308        supports_download=False,
309    )
310
311    def Delete(self, request, global_params=None):
312      r"""Deletes a single migration job.
313
314      Args:
315        request: (DatamigrationProjectsLocationsMigrationJobsDeleteRequest) input message
316        global_params: (StandardQueryParameters, default: None) global arguments
317      Returns:
318        (Operation) The response message.
319      """
320      config = self.GetMethodConfig('Delete')
321      return self._RunMethod(
322          config, request, global_params=global_params)
323
324    Delete.method_config = lambda: base_api.ApiMethodInfo(
325        flat_path='v1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}',
326        http_method='DELETE',
327        method_id='datamigration.projects.locations.migrationJobs.delete',
328        ordered_params=['name'],
329        path_params=['name'],
330        query_params=['force', 'requestId'],
331        relative_path='v1/{+name}',
332        request_field='',
333        request_type_name='DatamigrationProjectsLocationsMigrationJobsDeleteRequest',
334        response_type_name='Operation',
335        supports_download=False,
336    )
337
338    def GenerateSshScript(self, request, global_params=None):
339      r"""Generate a SSH configuration script to configure the reverse SSH connectivity.
340
341      Args:
342        request: (DatamigrationProjectsLocationsMigrationJobsGenerateSshScriptRequest) input message
343        global_params: (StandardQueryParameters, default: None) global arguments
344      Returns:
345        (SshScript) The response message.
346      """
347      config = self.GetMethodConfig('GenerateSshScript')
348      return self._RunMethod(
349          config, request, global_params=global_params)
350
351    GenerateSshScript.method_config = lambda: base_api.ApiMethodInfo(
352        flat_path='v1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}:generateSshScript',
353        http_method='POST',
354        method_id='datamigration.projects.locations.migrationJobs.generateSshScript',
355        ordered_params=['migrationJob'],
356        path_params=['migrationJob'],
357        query_params=[],
358        relative_path='v1/{+migrationJob}:generateSshScript',
359        request_field='generateSshScriptRequest',
360        request_type_name='DatamigrationProjectsLocationsMigrationJobsGenerateSshScriptRequest',
361        response_type_name='SshScript',
362        supports_download=False,
363    )
364
365    def Get(self, request, global_params=None):
366      r"""Gets details of a single migration job.
367
368      Args:
369        request: (DatamigrationProjectsLocationsMigrationJobsGetRequest) input message
370        global_params: (StandardQueryParameters, default: None) global arguments
371      Returns:
372        (MigrationJob) The response message.
373      """
374      config = self.GetMethodConfig('Get')
375      return self._RunMethod(
376          config, request, global_params=global_params)
377
378    Get.method_config = lambda: base_api.ApiMethodInfo(
379        flat_path='v1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}',
380        http_method='GET',
381        method_id='datamigration.projects.locations.migrationJobs.get',
382        ordered_params=['name'],
383        path_params=['name'],
384        query_params=[],
385        relative_path='v1/{+name}',
386        request_field='',
387        request_type_name='DatamigrationProjectsLocationsMigrationJobsGetRequest',
388        response_type_name='MigrationJob',
389        supports_download=False,
390    )
391
392    def GetIamPolicy(self, request, global_params=None):
393      r"""Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.
394
395      Args:
396        request: (DatamigrationProjectsLocationsMigrationJobsGetIamPolicyRequest) input message
397        global_params: (StandardQueryParameters, default: None) global arguments
398      Returns:
399        (Policy) The response message.
400      """
401      config = self.GetMethodConfig('GetIamPolicy')
402      return self._RunMethod(
403          config, request, global_params=global_params)
404
405    GetIamPolicy.method_config = lambda: base_api.ApiMethodInfo(
406        flat_path='v1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}:getIamPolicy',
407        http_method='GET',
408        method_id='datamigration.projects.locations.migrationJobs.getIamPolicy',
409        ordered_params=['resource'],
410        path_params=['resource'],
411        query_params=['options_requestedPolicyVersion'],
412        relative_path='v1/{+resource}:getIamPolicy',
413        request_field='',
414        request_type_name='DatamigrationProjectsLocationsMigrationJobsGetIamPolicyRequest',
415        response_type_name='Policy',
416        supports_download=False,
417    )
418
419    def List(self, request, global_params=None):
420      r"""Lists migration jobs in a given project and location.
421
422      Args:
423        request: (DatamigrationProjectsLocationsMigrationJobsListRequest) input message
424        global_params: (StandardQueryParameters, default: None) global arguments
425      Returns:
426        (ListMigrationJobsResponse) The response message.
427      """
428      config = self.GetMethodConfig('List')
429      return self._RunMethod(
430          config, request, global_params=global_params)
431
432    List.method_config = lambda: base_api.ApiMethodInfo(
433        flat_path='v1/projects/{projectsId}/locations/{locationsId}/migrationJobs',
434        http_method='GET',
435        method_id='datamigration.projects.locations.migrationJobs.list',
436        ordered_params=['parent'],
437        path_params=['parent'],
438        query_params=['filter', 'orderBy', 'pageSize', 'pageToken'],
439        relative_path='v1/{+parent}/migrationJobs',
440        request_field='',
441        request_type_name='DatamigrationProjectsLocationsMigrationJobsListRequest',
442        response_type_name='ListMigrationJobsResponse',
443        supports_download=False,
444    )
445
446    def Patch(self, request, global_params=None):
447      r"""Updates the parameters of a single migration job.
448
449      Args:
450        request: (DatamigrationProjectsLocationsMigrationJobsPatchRequest) input message
451        global_params: (StandardQueryParameters, default: None) global arguments
452      Returns:
453        (Operation) The response message.
454      """
455      config = self.GetMethodConfig('Patch')
456      return self._RunMethod(
457          config, request, global_params=global_params)
458
459    Patch.method_config = lambda: base_api.ApiMethodInfo(
460        flat_path='v1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}',
461        http_method='PATCH',
462        method_id='datamigration.projects.locations.migrationJobs.patch',
463        ordered_params=['name'],
464        path_params=['name'],
465        query_params=['requestId', 'updateMask'],
466        relative_path='v1/{+name}',
467        request_field='migrationJob',
468        request_type_name='DatamigrationProjectsLocationsMigrationJobsPatchRequest',
469        response_type_name='Operation',
470        supports_download=False,
471    )
472
473    def Promote(self, request, global_params=None):
474      r"""Promote a migration job, stopping replication to the destination and promoting the destination to be a standalone database.
475
476      Args:
477        request: (DatamigrationProjectsLocationsMigrationJobsPromoteRequest) input message
478        global_params: (StandardQueryParameters, default: None) global arguments
479      Returns:
480        (Operation) The response message.
481      """
482      config = self.GetMethodConfig('Promote')
483      return self._RunMethod(
484          config, request, global_params=global_params)
485
486    Promote.method_config = lambda: base_api.ApiMethodInfo(
487        flat_path='v1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}:promote',
488        http_method='POST',
489        method_id='datamigration.projects.locations.migrationJobs.promote',
490        ordered_params=['name'],
491        path_params=['name'],
492        query_params=[],
493        relative_path='v1/{+name}:promote',
494        request_field='promoteMigrationJobRequest',
495        request_type_name='DatamigrationProjectsLocationsMigrationJobsPromoteRequest',
496        response_type_name='Operation',
497        supports_download=False,
498    )
499
500    def Restart(self, request, global_params=None):
501      r"""Restart a stopped or failed migration job, resetting the destination instance to its original state and starting the migration process from scratch.
502
503      Args:
504        request: (DatamigrationProjectsLocationsMigrationJobsRestartRequest) input message
505        global_params: (StandardQueryParameters, default: None) global arguments
506      Returns:
507        (Operation) The response message.
508      """
509      config = self.GetMethodConfig('Restart')
510      return self._RunMethod(
511          config, request, global_params=global_params)
512
513    Restart.method_config = lambda: base_api.ApiMethodInfo(
514        flat_path='v1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}:restart',
515        http_method='POST',
516        method_id='datamigration.projects.locations.migrationJobs.restart',
517        ordered_params=['name'],
518        path_params=['name'],
519        query_params=[],
520        relative_path='v1/{+name}:restart',
521        request_field='restartMigrationJobRequest',
522        request_type_name='DatamigrationProjectsLocationsMigrationJobsRestartRequest',
523        response_type_name='Operation',
524        supports_download=False,
525    )
526
527    def Resume(self, request, global_params=None):
528      r"""Resume a migration job that is currently stopped and is resumable (was stopped during CDC phase).
529
530      Args:
531        request: (DatamigrationProjectsLocationsMigrationJobsResumeRequest) input message
532        global_params: (StandardQueryParameters, default: None) global arguments
533      Returns:
534        (Operation) The response message.
535      """
536      config = self.GetMethodConfig('Resume')
537      return self._RunMethod(
538          config, request, global_params=global_params)
539
540    Resume.method_config = lambda: base_api.ApiMethodInfo(
541        flat_path='v1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}:resume',
542        http_method='POST',
543        method_id='datamigration.projects.locations.migrationJobs.resume',
544        ordered_params=['name'],
545        path_params=['name'],
546        query_params=[],
547        relative_path='v1/{+name}:resume',
548        request_field='resumeMigrationJobRequest',
549        request_type_name='DatamigrationProjectsLocationsMigrationJobsResumeRequest',
550        response_type_name='Operation',
551        supports_download=False,
552    )
553
554    def SetIamPolicy(self, request, global_params=None):
555      r"""Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.
556
557      Args:
558        request: (DatamigrationProjectsLocationsMigrationJobsSetIamPolicyRequest) input message
559        global_params: (StandardQueryParameters, default: None) global arguments
560      Returns:
561        (Policy) The response message.
562      """
563      config = self.GetMethodConfig('SetIamPolicy')
564      return self._RunMethod(
565          config, request, global_params=global_params)
566
567    SetIamPolicy.method_config = lambda: base_api.ApiMethodInfo(
568        flat_path='v1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}:setIamPolicy',
569        http_method='POST',
570        method_id='datamigration.projects.locations.migrationJobs.setIamPolicy',
571        ordered_params=['resource'],
572        path_params=['resource'],
573        query_params=[],
574        relative_path='v1/{+resource}:setIamPolicy',
575        request_field='setIamPolicyRequest',
576        request_type_name='DatamigrationProjectsLocationsMigrationJobsSetIamPolicyRequest',
577        response_type_name='Policy',
578        supports_download=False,
579    )
580
581    def Start(self, request, global_params=None):
582      r"""Start an already created migration job.
583
584      Args:
585        request: (DatamigrationProjectsLocationsMigrationJobsStartRequest) input message
586        global_params: (StandardQueryParameters, default: None) global arguments
587      Returns:
588        (Operation) The response message.
589      """
590      config = self.GetMethodConfig('Start')
591      return self._RunMethod(
592          config, request, global_params=global_params)
593
594    Start.method_config = lambda: base_api.ApiMethodInfo(
595        flat_path='v1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}:start',
596        http_method='POST',
597        method_id='datamigration.projects.locations.migrationJobs.start',
598        ordered_params=['name'],
599        path_params=['name'],
600        query_params=[],
601        relative_path='v1/{+name}:start',
602        request_field='startMigrationJobRequest',
603        request_type_name='DatamigrationProjectsLocationsMigrationJobsStartRequest',
604        response_type_name='Operation',
605        supports_download=False,
606    )
607
608    def Stop(self, request, global_params=None):
609      r"""Stops a running migration job.
610
611      Args:
612        request: (DatamigrationProjectsLocationsMigrationJobsStopRequest) input message
613        global_params: (StandardQueryParameters, default: None) global arguments
614      Returns:
615        (Operation) The response message.
616      """
617      config = self.GetMethodConfig('Stop')
618      return self._RunMethod(
619          config, request, global_params=global_params)
620
621    Stop.method_config = lambda: base_api.ApiMethodInfo(
622        flat_path='v1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}:stop',
623        http_method='POST',
624        method_id='datamigration.projects.locations.migrationJobs.stop',
625        ordered_params=['name'],
626        path_params=['name'],
627        query_params=[],
628        relative_path='v1/{+name}:stop',
629        request_field='stopMigrationJobRequest',
630        request_type_name='DatamigrationProjectsLocationsMigrationJobsStopRequest',
631        response_type_name='Operation',
632        supports_download=False,
633    )
634
635    def TestIamPermissions(self, request, global_params=None):
636      r"""Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may "fail open" without warning.
637
638      Args:
639        request: (DatamigrationProjectsLocationsMigrationJobsTestIamPermissionsRequest) input message
640        global_params: (StandardQueryParameters, default: None) global arguments
641      Returns:
642        (TestIamPermissionsResponse) The response message.
643      """
644      config = self.GetMethodConfig('TestIamPermissions')
645      return self._RunMethod(
646          config, request, global_params=global_params)
647
648    TestIamPermissions.method_config = lambda: base_api.ApiMethodInfo(
649        flat_path='v1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}:testIamPermissions',
650        http_method='POST',
651        method_id='datamigration.projects.locations.migrationJobs.testIamPermissions',
652        ordered_params=['resource'],
653        path_params=['resource'],
654        query_params=[],
655        relative_path='v1/{+resource}:testIamPermissions',
656        request_field='testIamPermissionsRequest',
657        request_type_name='DatamigrationProjectsLocationsMigrationJobsTestIamPermissionsRequest',
658        response_type_name='TestIamPermissionsResponse',
659        supports_download=False,
660    )
661
662    def Verify(self, request, global_params=None):
663      r"""Verify a migration job, making sure the destination can reach the source and that all configuration and prerequisites are met.
664
665      Args:
666        request: (DatamigrationProjectsLocationsMigrationJobsVerifyRequest) input message
667        global_params: (StandardQueryParameters, default: None) global arguments
668      Returns:
669        (Operation) The response message.
670      """
671      config = self.GetMethodConfig('Verify')
672      return self._RunMethod(
673          config, request, global_params=global_params)
674
675    Verify.method_config = lambda: base_api.ApiMethodInfo(
676        flat_path='v1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}:verify',
677        http_method='POST',
678        method_id='datamigration.projects.locations.migrationJobs.verify',
679        ordered_params=['name'],
680        path_params=['name'],
681        query_params=[],
682        relative_path='v1/{+name}:verify',
683        request_field='verifyMigrationJobRequest',
684        request_type_name='DatamigrationProjectsLocationsMigrationJobsVerifyRequest',
685        response_type_name='Operation',
686        supports_download=False,
687    )
688
689  class ProjectsLocationsOperationsService(base_api.BaseApiService):
690    """Service class for the projects_locations_operations resource."""
691
692    _NAME = 'projects_locations_operations'
693
694    def __init__(self, client):
695      super(DatamigrationV1.ProjectsLocationsOperationsService, self).__init__(client)
696      self._upload_configs = {
697          }
698
699    def Cancel(self, request, global_params=None):
700      r"""Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.
701
702      Args:
703        request: (DatamigrationProjectsLocationsOperationsCancelRequest) input message
704        global_params: (StandardQueryParameters, default: None) global arguments
705      Returns:
706        (Empty) The response message.
707      """
708      config = self.GetMethodConfig('Cancel')
709      return self._RunMethod(
710          config, request, global_params=global_params)
711
712    Cancel.method_config = lambda: base_api.ApiMethodInfo(
713        flat_path='v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel',
714        http_method='POST',
715        method_id='datamigration.projects.locations.operations.cancel',
716        ordered_params=['name'],
717        path_params=['name'],
718        query_params=[],
719        relative_path='v1/{+name}:cancel',
720        request_field='cancelOperationRequest',
721        request_type_name='DatamigrationProjectsLocationsOperationsCancelRequest',
722        response_type_name='Empty',
723        supports_download=False,
724    )
725
726    def Delete(self, request, global_params=None):
727      r"""Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.
728
729      Args:
730        request: (DatamigrationProjectsLocationsOperationsDeleteRequest) input message
731        global_params: (StandardQueryParameters, default: None) global arguments
732      Returns:
733        (Empty) The response message.
734      """
735      config = self.GetMethodConfig('Delete')
736      return self._RunMethod(
737          config, request, global_params=global_params)
738
739    Delete.method_config = lambda: base_api.ApiMethodInfo(
740        flat_path='v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}',
741        http_method='DELETE',
742        method_id='datamigration.projects.locations.operations.delete',
743        ordered_params=['name'],
744        path_params=['name'],
745        query_params=[],
746        relative_path='v1/{+name}',
747        request_field='',
748        request_type_name='DatamigrationProjectsLocationsOperationsDeleteRequest',
749        response_type_name='Empty',
750        supports_download=False,
751    )
752
753    def Get(self, request, global_params=None):
754      r"""Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.
755
756      Args:
757        request: (DatamigrationProjectsLocationsOperationsGetRequest) input message
758        global_params: (StandardQueryParameters, default: None) global arguments
759      Returns:
760        (Operation) The response message.
761      """
762      config = self.GetMethodConfig('Get')
763      return self._RunMethod(
764          config, request, global_params=global_params)
765
766    Get.method_config = lambda: base_api.ApiMethodInfo(
767        flat_path='v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}',
768        http_method='GET',
769        method_id='datamigration.projects.locations.operations.get',
770        ordered_params=['name'],
771        path_params=['name'],
772        query_params=[],
773        relative_path='v1/{+name}',
774        request_field='',
775        request_type_name='DatamigrationProjectsLocationsOperationsGetRequest',
776        response_type_name='Operation',
777        supports_download=False,
778    )
779
780    def List(self, request, global_params=None):
781      r"""Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `"/v1/{name=users/*}/operations"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.
782
783      Args:
784        request: (DatamigrationProjectsLocationsOperationsListRequest) input message
785        global_params: (StandardQueryParameters, default: None) global arguments
786      Returns:
787        (ListOperationsResponse) The response message.
788      """
789      config = self.GetMethodConfig('List')
790      return self._RunMethod(
791          config, request, global_params=global_params)
792
793    List.method_config = lambda: base_api.ApiMethodInfo(
794        flat_path='v1/projects/{projectsId}/locations/{locationsId}/operations',
795        http_method='GET',
796        method_id='datamigration.projects.locations.operations.list',
797        ordered_params=['name'],
798        path_params=['name'],
799        query_params=['filter', 'pageSize', 'pageToken'],
800        relative_path='v1/{+name}/operations',
801        request_field='',
802        request_type_name='DatamigrationProjectsLocationsOperationsListRequest',
803        response_type_name='ListOperationsResponse',
804        supports_download=False,
805    )
806
807  class ProjectsLocationsService(base_api.BaseApiService):
808    """Service class for the projects_locations resource."""
809
810    _NAME = 'projects_locations'
811
812    def __init__(self, client):
813      super(DatamigrationV1.ProjectsLocationsService, self).__init__(client)
814      self._upload_configs = {
815          }
816
817    def Get(self, request, global_params=None):
818      r"""Gets information about a location.
819
820      Args:
821        request: (DatamigrationProjectsLocationsGetRequest) input message
822        global_params: (StandardQueryParameters, default: None) global arguments
823      Returns:
824        (Location) The response message.
825      """
826      config = self.GetMethodConfig('Get')
827      return self._RunMethod(
828          config, request, global_params=global_params)
829
830    Get.method_config = lambda: base_api.ApiMethodInfo(
831        flat_path='v1/projects/{projectsId}/locations/{locationsId}',
832        http_method='GET',
833        method_id='datamigration.projects.locations.get',
834        ordered_params=['name'],
835        path_params=['name'],
836        query_params=[],
837        relative_path='v1/{+name}',
838        request_field='',
839        request_type_name='DatamigrationProjectsLocationsGetRequest',
840        response_type_name='Location',
841        supports_download=False,
842    )
843
844    def List(self, request, global_params=None):
845      r"""Lists information about the supported locations for this service.
846
847      Args:
848        request: (DatamigrationProjectsLocationsListRequest) input message
849        global_params: (StandardQueryParameters, default: None) global arguments
850      Returns:
851        (ListLocationsResponse) The response message.
852      """
853      config = self.GetMethodConfig('List')
854      return self._RunMethod(
855          config, request, global_params=global_params)
856
857    List.method_config = lambda: base_api.ApiMethodInfo(
858        flat_path='v1/projects/{projectsId}/locations',
859        http_method='GET',
860        method_id='datamigration.projects.locations.list',
861        ordered_params=['name'],
862        path_params=['name'],
863        query_params=['filter', 'pageSize', 'pageToken'],
864        relative_path='v1/{+name}/locations',
865        request_field='',
866        request_type_name='DatamigrationProjectsLocationsListRequest',
867        response_type_name='ListLocationsResponse',
868        supports_download=False,
869    )
870
871  class ProjectsService(base_api.BaseApiService):
872    """Service class for the projects resource."""
873
874    _NAME = 'projects'
875
876    def __init__(self, client):
877      super(DatamigrationV1.ProjectsService, self).__init__(client)
878      self._upload_configs = {
879          }
880