"""Generated client library for bigquerydatatransfer version v1."""
# NOTE: This file is autogenerated and should not be edited by hand.

from __future__ import absolute_import

from apitools.base.py import base_api
from googlecloudsdk.third_party.apis.bigquerydatatransfer.v1 import bigquerydatatransfer_v1_messages as messages


class BigquerydatatransferV1(base_api.BaseApiClient):
  """Generated client library for service bigquerydatatransfer version v1."""

  MESSAGES_MODULE = messages
  BASE_URL = 'https://bigquerydatatransfer.googleapis.com/'
  MTLS_BASE_URL = 'https://bigquerydatatransfer.mtls.googleapis.com/'

  _PACKAGE = 'bigquerydatatransfer'
  _SCOPES = ['https://www.googleapis.com/auth/bigquery', 'https://www.googleapis.com/auth/cloud-platform', 'https://www.googleapis.com/auth/cloud-platform.read-only']
  _VERSION = 'v1'
  _CLIENT_ID = '1042881264118.apps.googleusercontent.com'
  _CLIENT_SECRET = 'x_Tw5K8nnjoRAqULM9PFAC2b'
  _USER_AGENT = 'google-cloud-sdk'
  _CLIENT_CLASS_NAME = 'BigquerydatatransferV1'
  _URL_VERSION = 'v1'
  _API_KEY = None

  def __init__(self, url='', credentials=None,
               get_credentials=True, http=None, model=None,
               log_request=False, log_response=False,
               credentials_args=None, default_global_params=None,
               additional_http_headers=None, response_encoding=None):
    """Create a new bigquerydatatransfer handle."""
    url = url or self.BASE_URL
    super(BigquerydatatransferV1, self).__init__(
        url, credentials=credentials,
        get_credentials=get_credentials, http=http, model=model,
        log_request=log_request, log_response=log_response,
        credentials_args=credentials_args,
        default_global_params=default_global_params,
        additional_http_headers=additional_http_headers,
        response_encoding=response_encoding)
    self.projects_dataSources = self.ProjectsDataSourcesService(self)
    self.projects_locations_dataSources = self.ProjectsLocationsDataSourcesService(self)
    self.projects_locations_transferConfigs_runs_transferLogs = self.ProjectsLocationsTransferConfigsRunsTransferLogsService(self)
    self.projects_locations_transferConfigs_runs = self.ProjectsLocationsTransferConfigsRunsService(self)
    self.projects_locations_transferConfigs = self.ProjectsLocationsTransferConfigsService(self)
    self.projects_locations = self.ProjectsLocationsService(self)
    self.projects_transferConfigs_runs_transferLogs = self.ProjectsTransferConfigsRunsTransferLogsService(self)
    self.projects_transferConfigs_runs = self.ProjectsTransferConfigsRunsService(self)
    self.projects_transferConfigs = self.ProjectsTransferConfigsService(self)
    self.projects = self.ProjectsService(self)

  class ProjectsDataSourcesService(base_api.BaseApiService):
    """Service class for the projects_dataSources resource."""

    _NAME = 'projects_dataSources'

    def __init__(self, client):
      super(BigquerydatatransferV1.ProjectsDataSourcesService, self).__init__(client)
      self._upload_configs = {
          }

    def CheckValidCreds(self, request, global_params=None):
      r"""Returns true if valid credentials exist for the given data source and requesting user. Some data sources doesn't support service account, so we need to talk to them on behalf of the end user. This API just checks whether we have OAuth token for the particular user, which is a pre-requisite before user can create a transfer config.

      Args:
        request: (BigquerydatatransferProjectsDataSourcesCheckValidCredsRequest) input message
        global_params: (StandardQueryParameters, default: None) global arguments
      Returns:
        (CheckValidCredsResponse) The response message.
      """
      config = self.GetMethodConfig('CheckValidCreds')
      return self._RunMethod(
          config, request, global_params=global_params)

    CheckValidCreds.method_config = lambda: base_api.ApiMethodInfo(
        flat_path='v1/projects/{projectsId}/dataSources/{dataSourcesId}:checkValidCreds',
        http_method='POST',
        method_id='bigquerydatatransfer.projects.dataSources.checkValidCreds',
        ordered_params=['name'],
        path_params=['name'],
        query_params=[],
        relative_path='v1/{+name}:checkValidCreds',
        request_field='checkValidCredsRequest',
        request_type_name='BigquerydatatransferProjectsDataSourcesCheckValidCredsRequest',
        response_type_name='CheckValidCredsResponse',
        supports_download=False,
    )

    def Get(self, request, global_params=None):
      r"""Retrieves a supported data source and returns its settings, which can be used for UI rendering.

      Args:
        request: (BigquerydatatransferProjectsDataSourcesGetRequest) input message
        global_params: (StandardQueryParameters, default: None) global arguments
      Returns:
        (DataSource) The response message.
      """
      config = self.GetMethodConfig('Get')
      return self._RunMethod(
          config, request, global_params=global_params)

    Get.method_config = lambda: base_api.ApiMethodInfo(
        flat_path='v1/projects/{projectsId}/dataSources/{dataSourcesId}',
        http_method='GET',
        method_id='bigquerydatatransfer.projects.dataSources.get',
        ordered_params=['name'],
        path_params=['name'],
        query_params=[],
        relative_path='v1/{+name}',
        request_field='',
        request_type_name='BigquerydatatransferProjectsDataSourcesGetRequest',
        response_type_name='DataSource',
        supports_download=False,
    )

    def List(self, request, global_params=None):
      r"""Lists supported data sources and returns their settings, which can be used for UI rendering.

      Args:
        request: (BigquerydatatransferProjectsDataSourcesListRequest) input message
        global_params: (StandardQueryParameters, default: None) global arguments
      Returns:
        (ListDataSourcesResponse) The response message.
      """
      config = self.GetMethodConfig('List')
      return self._RunMethod(
          config, request, global_params=global_params)

    List.method_config = lambda: base_api.ApiMethodInfo(
        flat_path='v1/projects/{projectsId}/dataSources',
        http_method='GET',
        method_id='bigquerydatatransfer.projects.dataSources.list',
        ordered_params=['parent'],
        path_params=['parent'],
        query_params=['pageSize', 'pageToken'],
        relative_path='v1/{+parent}/dataSources',
        request_field='',
        request_type_name='BigquerydatatransferProjectsDataSourcesListRequest',
        response_type_name='ListDataSourcesResponse',
        supports_download=False,
    )

  class ProjectsLocationsDataSourcesService(base_api.BaseApiService):
    """Service class for the projects_locations_dataSources resource."""

    _NAME = 'projects_locations_dataSources'

    def __init__(self, client):
      super(BigquerydatatransferV1.ProjectsLocationsDataSourcesService, self).__init__(client)
      self._upload_configs = {
          }

    def CheckValidCreds(self, request, global_params=None):
      r"""Returns true if valid credentials exist for the given data source and requesting user. Some data sources doesn't support service account, so we need to talk to them on behalf of the end user. This API just checks whether we have OAuth token for the particular user, which is a pre-requisite before user can create a transfer config.

      Args:
        request: (BigquerydatatransferProjectsLocationsDataSourcesCheckValidCredsRequest) input message
        global_params: (StandardQueryParameters, default: None) global arguments
      Returns:
        (CheckValidCredsResponse) The response message.
      """
      config = self.GetMethodConfig('CheckValidCreds')
      return self._RunMethod(
          config, request, global_params=global_params)

    CheckValidCreds.method_config = lambda: base_api.ApiMethodInfo(
        flat_path='v1/projects/{projectsId}/locations/{locationsId}/dataSources/{dataSourcesId}:checkValidCreds',
        http_method='POST',
        method_id='bigquerydatatransfer.projects.locations.dataSources.checkValidCreds',
        ordered_params=['name'],
        path_params=['name'],
        query_params=[],
        relative_path='v1/{+name}:checkValidCreds',
        request_field='checkValidCredsRequest',
        request_type_name='BigquerydatatransferProjectsLocationsDataSourcesCheckValidCredsRequest',
        response_type_name='CheckValidCredsResponse',
        supports_download=False,
    )

    def Get(self, request, global_params=None):
      r"""Retrieves a supported data source and returns its settings, which can be used for UI rendering.

      Args:
        request: (BigquerydatatransferProjectsLocationsDataSourcesGetRequest) input message
        global_params: (StandardQueryParameters, default: None) global arguments
      Returns:
        (DataSource) The response message.
      """
      config = self.GetMethodConfig('Get')
      return self._RunMethod(
          config, request, global_params=global_params)

    Get.method_config = lambda: base_api.ApiMethodInfo(
        flat_path='v1/projects/{projectsId}/locations/{locationsId}/dataSources/{dataSourcesId}',
        http_method='GET',
        method_id='bigquerydatatransfer.projects.locations.dataSources.get',
        ordered_params=['name'],
        path_params=['name'],
        query_params=[],
        relative_path='v1/{+name}',
        request_field='',
        request_type_name='BigquerydatatransferProjectsLocationsDataSourcesGetRequest',
        response_type_name='DataSource',
        supports_download=False,
    )

    def List(self, request, global_params=None):
      r"""Lists supported data sources and returns their settings, which can be used for UI rendering.

      Args:
        request: (BigquerydatatransferProjectsLocationsDataSourcesListRequest) input message
        global_params: (StandardQueryParameters, default: None) global arguments
      Returns:
        (ListDataSourcesResponse) The response message.
      """
      config = self.GetMethodConfig('List')
      return self._RunMethod(
          config, request, global_params=global_params)

    List.method_config = lambda: base_api.ApiMethodInfo(
        flat_path='v1/projects/{projectsId}/locations/{locationsId}/dataSources',
        http_method='GET',
        method_id='bigquerydatatransfer.projects.locations.dataSources.list',
        ordered_params=['parent'],
        path_params=['parent'],
        query_params=['pageSize', 'pageToken'],
        relative_path='v1/{+parent}/dataSources',
        request_field='',
        request_type_name='BigquerydatatransferProjectsLocationsDataSourcesListRequest',
        response_type_name='ListDataSourcesResponse',
        supports_download=False,
    )

  class ProjectsLocationsTransferConfigsRunsTransferLogsService(base_api.BaseApiService):
    """Service class for the projects_locations_transferConfigs_runs_transferLogs resource."""

    _NAME = 'projects_locations_transferConfigs_runs_transferLogs'

    def __init__(self, client):
      super(BigquerydatatransferV1.ProjectsLocationsTransferConfigsRunsTransferLogsService, self).__init__(client)
      self._upload_configs = {
          }

    def List(self, request, global_params=None):
      r"""Returns user facing log messages for the data transfer run.

      Args:
        request: (BigquerydatatransferProjectsLocationsTransferConfigsRunsTransferLogsListRequest) input message
        global_params: (StandardQueryParameters, default: None) global arguments
      Returns:
        (ListTransferLogsResponse) The response message.
      """
      config = self.GetMethodConfig('List')
      return self._RunMethod(
          config, request, global_params=global_params)

    List.method_config = lambda: base_api.ApiMethodInfo(
        flat_path='v1/projects/{projectsId}/locations/{locationsId}/transferConfigs/{transferConfigsId}/runs/{runsId}/transferLogs',
        http_method='GET',
        method_id='bigquerydatatransfer.projects.locations.transferConfigs.runs.transferLogs.list',
        ordered_params=['parent'],
        path_params=['parent'],
        query_params=['messageTypes', 'pageSize', 'pageToken'],
        relative_path='v1/{+parent}/transferLogs',
        request_field='',
        request_type_name='BigquerydatatransferProjectsLocationsTransferConfigsRunsTransferLogsListRequest',
        response_type_name='ListTransferLogsResponse',
        supports_download=False,
    )

  class ProjectsLocationsTransferConfigsRunsService(base_api.BaseApiService):
    """Service class for the projects_locations_transferConfigs_runs resource."""

    _NAME = 'projects_locations_transferConfigs_runs'

    def __init__(self, client):
      super(BigquerydatatransferV1.ProjectsLocationsTransferConfigsRunsService, self).__init__(client)
      self._upload_configs = {
          }

    def Delete(self, request, global_params=None):
      r"""Deletes the specified transfer run.

      Args:
        request: (BigquerydatatransferProjectsLocationsTransferConfigsRunsDeleteRequest) input message
        global_params: (StandardQueryParameters, default: None) global arguments
      Returns:
        (Empty) The response message.
      """
      config = self.GetMethodConfig('Delete')
      return self._RunMethod(
          config, request, global_params=global_params)

    Delete.method_config = lambda: base_api.ApiMethodInfo(
        flat_path='v1/projects/{projectsId}/locations/{locationsId}/transferConfigs/{transferConfigsId}/runs/{runsId}',
        http_method='DELETE',
        method_id='bigquerydatatransfer.projects.locations.transferConfigs.runs.delete',
        ordered_params=['name'],
        path_params=['name'],
        query_params=[],
        relative_path='v1/{+name}',
        request_field='',
        request_type_name='BigquerydatatransferProjectsLocationsTransferConfigsRunsDeleteRequest',
        response_type_name='Empty',
        supports_download=False,
    )

    def Get(self, request, global_params=None):
      r"""Returns information about the particular transfer run.

      Args:
        request: (BigquerydatatransferProjectsLocationsTransferConfigsRunsGetRequest) input message
        global_params: (StandardQueryParameters, default: None) global arguments
      Returns:
        (TransferRun) The response message.
      """
      config = self.GetMethodConfig('Get')
      return self._RunMethod(
          config, request, global_params=global_params)

    Get.method_config = lambda: base_api.ApiMethodInfo(
        flat_path='v1/projects/{projectsId}/locations/{locationsId}/transferConfigs/{transferConfigsId}/runs/{runsId}',
        http_method='GET',
        method_id='bigquerydatatransfer.projects.locations.transferConfigs.runs.get',
        ordered_params=['name'],
        path_params=['name'],
        query_params=[],
        relative_path='v1/{+name}',
        request_field='',
        request_type_name='BigquerydatatransferProjectsLocationsTransferConfigsRunsGetRequest',
        response_type_name='TransferRun',
        supports_download=False,
    )

    def List(self, request, global_params=None):
      r"""Returns information about running and completed jobs.

      Args:
        request: (BigquerydatatransferProjectsLocationsTransferConfigsRunsListRequest) input message
        global_params: (StandardQueryParameters, default: None) global arguments
      Returns:
        (ListTransferRunsResponse) The response message.
      """
      config = self.GetMethodConfig('List')
      return self._RunMethod(
          config, request, global_params=global_params)

    List.method_config = lambda: base_api.ApiMethodInfo(
        flat_path='v1/projects/{projectsId}/locations/{locationsId}/transferConfigs/{transferConfigsId}/runs',
        http_method='GET',
        method_id='bigquerydatatransfer.projects.locations.transferConfigs.runs.list',
        ordered_params=['parent'],
        path_params=['parent'],
        query_params=['pageSize', 'pageToken', 'runAttempt', 'states'],
        relative_path='v1/{+parent}/runs',
        request_field='',
        request_type_name='BigquerydatatransferProjectsLocationsTransferConfigsRunsListRequest',
        response_type_name='ListTransferRunsResponse',
        supports_download=False,
    )

  class ProjectsLocationsTransferConfigsService(base_api.BaseApiService):
    """Service class for the projects_locations_transferConfigs resource."""

    _NAME = 'projects_locations_transferConfigs'

    def __init__(self, client):
      super(BigquerydatatransferV1.ProjectsLocationsTransferConfigsService, self).__init__(client)
      self._upload_configs = {
          }

    def Create(self, request, global_params=None):
      r"""Creates a new data transfer configuration.

      Args:
        request: (BigquerydatatransferProjectsLocationsTransferConfigsCreateRequest) input message
        global_params: (StandardQueryParameters, default: None) global arguments
      Returns:
        (TransferConfig) The response message.
      """
      config = self.GetMethodConfig('Create')
      return self._RunMethod(
          config, request, global_params=global_params)

    Create.method_config = lambda: base_api.ApiMethodInfo(
        flat_path='v1/projects/{projectsId}/locations/{locationsId}/transferConfigs',
        http_method='POST',
        method_id='bigquerydatatransfer.projects.locations.transferConfigs.create',
        ordered_params=['parent'],
        path_params=['parent'],
        query_params=['authorizationCode', 'serviceAccountName', 'versionInfo'],
        relative_path='v1/{+parent}/transferConfigs',
        request_field='transferConfig',
        request_type_name='BigquerydatatransferProjectsLocationsTransferConfigsCreateRequest',
        response_type_name='TransferConfig',
        supports_download=False,
    )

    def Delete(self, request, global_params=None):
      r"""Deletes a data transfer configuration, including any associated transfer runs and logs.

      Args:
        request: (BigquerydatatransferProjectsLocationsTransferConfigsDeleteRequest) input message
        global_params: (StandardQueryParameters, default: None) global arguments
      Returns:
        (Empty) The response message.
      """
      config = self.GetMethodConfig('Delete')
      return self._RunMethod(
          config, request, global_params=global_params)

    Delete.method_config = lambda: base_api.ApiMethodInfo(
        flat_path='v1/projects/{projectsId}/locations/{locationsId}/transferConfigs/{transferConfigsId}',
        http_method='DELETE',
        method_id='bigquerydatatransfer.projects.locations.transferConfigs.delete',
        ordered_params=['name'],
        path_params=['name'],
        query_params=[],
        relative_path='v1/{+name}',
        request_field='',
        request_type_name='BigquerydatatransferProjectsLocationsTransferConfigsDeleteRequest',
        response_type_name='Empty',
        supports_download=False,
    )

    def Get(self, request, global_params=None):
      r"""Returns information about a data transfer config.

      Args:
        request: (BigquerydatatransferProjectsLocationsTransferConfigsGetRequest) input message
        global_params: (StandardQueryParameters, default: None) global arguments
      Returns:
        (TransferConfig) The response message.
      """
      config = self.GetMethodConfig('Get')
      return self._RunMethod(
          config, request, global_params=global_params)

    Get.method_config = lambda: base_api.ApiMethodInfo(
        flat_path='v1/projects/{projectsId}/locations/{locationsId}/transferConfigs/{transferConfigsId}',
        http_method='GET',
        method_id='bigquerydatatransfer.projects.locations.transferConfigs.get',
        ordered_params=['name'],
        path_params=['name'],
        query_params=[],
        relative_path='v1/{+name}',
        request_field='',
        request_type_name='BigquerydatatransferProjectsLocationsTransferConfigsGetRequest',
        response_type_name='TransferConfig',
        supports_download=False,
    )

    def List(self, request, global_params=None):
      r"""Returns information about all transfer configs owned by a project in the specified location.

      Args:
        request: (BigquerydatatransferProjectsLocationsTransferConfigsListRequest) input message
        global_params: (StandardQueryParameters, default: None) global arguments
      Returns:
        (ListTransferConfigsResponse) The response message.
      """
      config = self.GetMethodConfig('List')
      return self._RunMethod(
          config, request, global_params=global_params)

    List.method_config = lambda: base_api.ApiMethodInfo(
        flat_path='v1/projects/{projectsId}/locations/{locationsId}/transferConfigs',
        http_method='GET',
        method_id='bigquerydatatransfer.projects.locations.transferConfigs.list',
        ordered_params=['parent'],
        path_params=['parent'],
        query_params=['dataSourceIds', 'pageSize', 'pageToken'],
        relative_path='v1/{+parent}/transferConfigs',
        request_field='',
        request_type_name='BigquerydatatransferProjectsLocationsTransferConfigsListRequest',
        response_type_name='ListTransferConfigsResponse',
        supports_download=False,
    )

    def Patch(self, request, global_params=None):
      r"""Updates a data transfer configuration. All fields must be set, even if they are not updated.

      Args:
        request: (BigquerydatatransferProjectsLocationsTransferConfigsPatchRequest) input message
        global_params: (StandardQueryParameters, default: None) global arguments
      Returns:
        (TransferConfig) The response message.
      """
      config = self.GetMethodConfig('Patch')
      return self._RunMethod(
          config, request, global_params=global_params)

    Patch.method_config = lambda: base_api.ApiMethodInfo(
        flat_path='v1/projects/{projectsId}/locations/{locationsId}/transferConfigs/{transferConfigsId}',
        http_method='PATCH',
        method_id='bigquerydatatransfer.projects.locations.transferConfigs.patch',
        ordered_params=['name'],
        path_params=['name'],
        query_params=['authorizationCode', 'serviceAccountName', 'updateMask', 'versionInfo'],
        relative_path='v1/{+name}',
        request_field='transferConfig',
        request_type_name='BigquerydatatransferProjectsLocationsTransferConfigsPatchRequest',
        response_type_name='TransferConfig',
        supports_download=False,
    )

    def ScheduleRuns(self, request, global_params=None):
      r"""Creates transfer runs for a time range [start_time, end_time]. For each date - or whatever granularity the data source supports - in the range, one transfer run is created. Note that runs are created per UTC time in the time range. DEPRECATED: use StartManualTransferRuns instead.

      Args:
        request: (BigquerydatatransferProjectsLocationsTransferConfigsScheduleRunsRequest) input message
        global_params: (StandardQueryParameters, default: None) global arguments
      Returns:
        (ScheduleTransferRunsResponse) The response message.
      """
      config = self.GetMethodConfig('ScheduleRuns')
      return self._RunMethod(
          config, request, global_params=global_params)

    ScheduleRuns.method_config = lambda: base_api.ApiMethodInfo(
        flat_path='v1/projects/{projectsId}/locations/{locationsId}/transferConfigs/{transferConfigsId}:scheduleRuns',
        http_method='POST',
        method_id='bigquerydatatransfer.projects.locations.transferConfigs.scheduleRuns',
        ordered_params=['parent'],
        path_params=['parent'],
        query_params=[],
        relative_path='v1/{+parent}:scheduleRuns',
        request_field='scheduleTransferRunsRequest',
        request_type_name='BigquerydatatransferProjectsLocationsTransferConfigsScheduleRunsRequest',
        response_type_name='ScheduleTransferRunsResponse',
        supports_download=False,
    )

    def StartManualRuns(self, request, global_params=None):
      r"""Start manual transfer runs to be executed now with schedule_time equal to current time. The transfer runs can be created for a time range where the run_time is between start_time (inclusive) and end_time (exclusive), or for a specific run_time.

      Args:
        request: (BigquerydatatransferProjectsLocationsTransferConfigsStartManualRunsRequest) input message
        global_params: (StandardQueryParameters, default: None) global arguments
      Returns:
        (StartManualTransferRunsResponse) The response message.
      """
      config = self.GetMethodConfig('StartManualRuns')
      return self._RunMethod(
          config, request, global_params=global_params)

    StartManualRuns.method_config = lambda: base_api.ApiMethodInfo(
        flat_path='v1/projects/{projectsId}/locations/{locationsId}/transferConfigs/{transferConfigsId}:startManualRuns',
        http_method='POST',
        method_id='bigquerydatatransfer.projects.locations.transferConfigs.startManualRuns',
        ordered_params=['parent'],
        path_params=['parent'],
        query_params=[],
        relative_path='v1/{+parent}:startManualRuns',
        request_field='startManualTransferRunsRequest',
        request_type_name='BigquerydatatransferProjectsLocationsTransferConfigsStartManualRunsRequest',
        response_type_name='StartManualTransferRunsResponse',
        supports_download=False,
    )

  class ProjectsLocationsService(base_api.BaseApiService):
    """Service class for the projects_locations resource."""

    _NAME = 'projects_locations'

    def __init__(self, client):
      super(BigquerydatatransferV1.ProjectsLocationsService, self).__init__(client)
      self._upload_configs = {
          }

    def EnrollDataSources(self, request, global_params=None):
      r"""Enroll data sources in a user project. This allows users to create transfer configurations for these data sources. They will also appear in the ListDataSources RPC and as such, will appear in the BigQuery UI 'https://bigquery.cloud.google.com' (and the documents can be found at https://cloud.google.com/bigquery/bigquery-web-ui and https://cloud.google.com/bigquery/docs/working-with-transfers).

      Args:
        request: (BigquerydatatransferProjectsLocationsEnrollDataSourcesRequest) input message
        global_params: (StandardQueryParameters, default: None) global arguments
      Returns:
        (Empty) The response message.
      """
      config = self.GetMethodConfig('EnrollDataSources')
      return self._RunMethod(
          config, request, global_params=global_params)

    EnrollDataSources.method_config = lambda: base_api.ApiMethodInfo(
        flat_path='v1/projects/{projectsId}/locations/{locationsId}:enrollDataSources',
        http_method='POST',
        method_id='bigquerydatatransfer.projects.locations.enrollDataSources',
        ordered_params=['name'],
        path_params=['name'],
        query_params=[],
        relative_path='v1/{+name}:enrollDataSources',
        request_field='enrollDataSourcesRequest',
        request_type_name='BigquerydatatransferProjectsLocationsEnrollDataSourcesRequest',
        response_type_name='Empty',
        supports_download=False,
    )

    def Get(self, request, global_params=None):
      r"""Gets information about a location.

      Args:
        request: (BigquerydatatransferProjectsLocationsGetRequest) input message
        global_params: (StandardQueryParameters, default: None) global arguments
      Returns:
        (Location) The response message.
      """
      config = self.GetMethodConfig('Get')
      return self._RunMethod(
          config, request, global_params=global_params)

    Get.method_config = lambda: base_api.ApiMethodInfo(
        flat_path='v1/projects/{projectsId}/locations/{locationsId}',
        http_method='GET',
        method_id='bigquerydatatransfer.projects.locations.get',
        ordered_params=['name'],
        path_params=['name'],
        query_params=[],
        relative_path='v1/{+name}',
        request_field='',
        request_type_name='BigquerydatatransferProjectsLocationsGetRequest',
        response_type_name='Location',
        supports_download=False,
    )

    def List(self, request, global_params=None):
      r"""Lists information about the supported locations for this service.

      Args:
        request: (BigquerydatatransferProjectsLocationsListRequest) input message
        global_params: (StandardQueryParameters, default: None) global arguments
      Returns:
        (ListLocationsResponse) The response message.
      """
      config = self.GetMethodConfig('List')
      return self._RunMethod(
          config, request, global_params=global_params)

    List.method_config = lambda: base_api.ApiMethodInfo(
        flat_path='v1/projects/{projectsId}/locations',
        http_method='GET',
        method_id='bigquerydatatransfer.projects.locations.list',
        ordered_params=['name'],
        path_params=['name'],
        query_params=['filter', 'pageSize', 'pageToken'],
        relative_path='v1/{+name}/locations',
        request_field='',
        request_type_name='BigquerydatatransferProjectsLocationsListRequest',
        response_type_name='ListLocationsResponse',
        supports_download=False,
    )

  class ProjectsTransferConfigsRunsTransferLogsService(base_api.BaseApiService):
    """Service class for the projects_transferConfigs_runs_transferLogs resource."""

    _NAME = 'projects_transferConfigs_runs_transferLogs'

    def __init__(self, client):
      super(BigquerydatatransferV1.ProjectsTransferConfigsRunsTransferLogsService, self).__init__(client)
      self._upload_configs = {
          }

    def List(self, request, global_params=None):
      r"""Returns user facing log messages for the data transfer run.

      Args:
        request: (BigquerydatatransferProjectsTransferConfigsRunsTransferLogsListRequest) input message
        global_params: (StandardQueryParameters, default: None) global arguments
      Returns:
        (ListTransferLogsResponse) The response message.
      """
      config = self.GetMethodConfig('List')
      return self._RunMethod(
          config, request, global_params=global_params)

    List.method_config = lambda: base_api.ApiMethodInfo(
        flat_path='v1/projects/{projectsId}/transferConfigs/{transferConfigsId}/runs/{runsId}/transferLogs',
        http_method='GET',
        method_id='bigquerydatatransfer.projects.transferConfigs.runs.transferLogs.list',
        ordered_params=['parent'],
        path_params=['parent'],
        query_params=['messageTypes', 'pageSize', 'pageToken'],
        relative_path='v1/{+parent}/transferLogs',
        request_field='',
        request_type_name='BigquerydatatransferProjectsTransferConfigsRunsTransferLogsListRequest',
        response_type_name='ListTransferLogsResponse',
        supports_download=False,
    )

  class ProjectsTransferConfigsRunsService(base_api.BaseApiService):
    """Service class for the projects_transferConfigs_runs resource."""

    _NAME = 'projects_transferConfigs_runs'

    def __init__(self, client):
      super(BigquerydatatransferV1.ProjectsTransferConfigsRunsService, self).__init__(client)
      self._upload_configs = {
          }

    def Delete(self, request, global_params=None):
      r"""Deletes the specified transfer run.

      Args:
        request: (BigquerydatatransferProjectsTransferConfigsRunsDeleteRequest) input message
        global_params: (StandardQueryParameters, default: None) global arguments
      Returns:
        (Empty) The response message.
      """
      config = self.GetMethodConfig('Delete')
      return self._RunMethod(
          config, request, global_params=global_params)

    Delete.method_config = lambda: base_api.ApiMethodInfo(
        flat_path='v1/projects/{projectsId}/transferConfigs/{transferConfigsId}/runs/{runsId}',
        http_method='DELETE',
        method_id='bigquerydatatransfer.projects.transferConfigs.runs.delete',
        ordered_params=['name'],
        path_params=['name'],
        query_params=[],
        relative_path='v1/{+name}',
        request_field='',
        request_type_name='BigquerydatatransferProjectsTransferConfigsRunsDeleteRequest',
        response_type_name='Empty',
        supports_download=False,
    )

    def Get(self, request, global_params=None):
      r"""Returns information about the particular transfer run.

      Args:
        request: (BigquerydatatransferProjectsTransferConfigsRunsGetRequest) input message
        global_params: (StandardQueryParameters, default: None) global arguments
      Returns:
        (TransferRun) The response message.
      """
      config = self.GetMethodConfig('Get')
      return self._RunMethod(
          config, request, global_params=global_params)

    Get.method_config = lambda: base_api.ApiMethodInfo(
        flat_path='v1/projects/{projectsId}/transferConfigs/{transferConfigsId}/runs/{runsId}',
        http_method='GET',
        method_id='bigquerydatatransfer.projects.transferConfigs.runs.get',
        ordered_params=['name'],
        path_params=['name'],
        query_params=[],
        relative_path='v1/{+name}',
        request_field='',
        request_type_name='BigquerydatatransferProjectsTransferConfigsRunsGetRequest',
        response_type_name='TransferRun',
        supports_download=False,
    )

    def List(self, request, global_params=None):
      r"""Returns information about running and completed jobs.

      Args:
        request: (BigquerydatatransferProjectsTransferConfigsRunsListRequest) input message
        global_params: (StandardQueryParameters, default: None) global arguments
      Returns:
        (ListTransferRunsResponse) The response message.
      """
      config = self.GetMethodConfig('List')
      return self._RunMethod(
          config, request, global_params=global_params)

    List.method_config = lambda: base_api.ApiMethodInfo(
        flat_path='v1/projects/{projectsId}/transferConfigs/{transferConfigsId}/runs',
        http_method='GET',
        method_id='bigquerydatatransfer.projects.transferConfigs.runs.list',
        ordered_params=['parent'],
        path_params=['parent'],
        query_params=['pageSize', 'pageToken', 'runAttempt', 'states'],
        relative_path='v1/{+parent}/runs',
        request_field='',
        request_type_name='BigquerydatatransferProjectsTransferConfigsRunsListRequest',
        response_type_name='ListTransferRunsResponse',
        supports_download=False,
    )

  class ProjectsTransferConfigsService(base_api.BaseApiService):
    """Service class for the projects_transferConfigs resource."""

    _NAME = 'projects_transferConfigs'

    def __init__(self, client):
      super(BigquerydatatransferV1.ProjectsTransferConfigsService, self).__init__(client)
      self._upload_configs = {
          }

    def Create(self, request, global_params=None):
      r"""Creates a new data transfer configuration.

      Args:
        request: (BigquerydatatransferProjectsTransferConfigsCreateRequest) input message
        global_params: (StandardQueryParameters, default: None) global arguments
      Returns:
        (TransferConfig) The response message.
      """
      config = self.GetMethodConfig('Create')
      return self._RunMethod(
          config, request, global_params=global_params)

    Create.method_config = lambda: base_api.ApiMethodInfo(
        flat_path='v1/projects/{projectsId}/transferConfigs',
        http_method='POST',
        method_id='bigquerydatatransfer.projects.transferConfigs.create',
        ordered_params=['parent'],
        path_params=['parent'],
        query_params=['authorizationCode', 'serviceAccountName', 'versionInfo'],
        relative_path='v1/{+parent}/transferConfigs',
        request_field='transferConfig',
        request_type_name='BigquerydatatransferProjectsTransferConfigsCreateRequest',
        response_type_name='TransferConfig',
        supports_download=False,
    )

    def Delete(self, request, global_params=None):
      r"""Deletes a data transfer configuration, including any associated transfer runs and logs.

      Args:
        request: (BigquerydatatransferProjectsTransferConfigsDeleteRequest) input message
        global_params: (StandardQueryParameters, default: None) global arguments
      Returns:
        (Empty) The response message.
      """
      config = self.GetMethodConfig('Delete')
      return self._RunMethod(
          config, request, global_params=global_params)

    Delete.method_config = lambda: base_api.ApiMethodInfo(
        flat_path='v1/projects/{projectsId}/transferConfigs/{transferConfigsId}',
        http_method='DELETE',
        method_id='bigquerydatatransfer.projects.transferConfigs.delete',
        ordered_params=['name'],
        path_params=['name'],
        query_params=[],
        relative_path='v1/{+name}',
        request_field='',
        request_type_name='BigquerydatatransferProjectsTransferConfigsDeleteRequest',
        response_type_name='Empty',
        supports_download=False,
    )

    def Get(self, request, global_params=None):
      r"""Returns information about a data transfer config.

      Args:
        request: (BigquerydatatransferProjectsTransferConfigsGetRequest) input message
        global_params: (StandardQueryParameters, default: None) global arguments
      Returns:
        (TransferConfig) The response message.
      """
      config = self.GetMethodConfig('Get')
      return self._RunMethod(
          config, request, global_params=global_params)

    Get.method_config = lambda: base_api.ApiMethodInfo(
        flat_path='v1/projects/{projectsId}/transferConfigs/{transferConfigsId}',
        http_method='GET',
        method_id='bigquerydatatransfer.projects.transferConfigs.get',
        ordered_params=['name'],
        path_params=['name'],
        query_params=[],
        relative_path='v1/{+name}',
        request_field='',
        request_type_name='BigquerydatatransferProjectsTransferConfigsGetRequest',
        response_type_name='TransferConfig',
        supports_download=False,
    )

    def List(self, request, global_params=None):
      r"""Returns information about all transfer configs owned by a project in the specified location.

      Args:
        request: (BigquerydatatransferProjectsTransferConfigsListRequest) input message
        global_params: (StandardQueryParameters, default: None) global arguments
      Returns:
        (ListTransferConfigsResponse) The response message.
      """
      config = self.GetMethodConfig('List')
      return self._RunMethod(
          config, request, global_params=global_params)

    List.method_config = lambda: base_api.ApiMethodInfo(
        flat_path='v1/projects/{projectsId}/transferConfigs',
        http_method='GET',
        method_id='bigquerydatatransfer.projects.transferConfigs.list',
        ordered_params=['parent'],
        path_params=['parent'],
        query_params=['dataSourceIds', 'pageSize', 'pageToken'],
        relative_path='v1/{+parent}/transferConfigs',
        request_field='',
        request_type_name='BigquerydatatransferProjectsTransferConfigsListRequest',
        response_type_name='ListTransferConfigsResponse',
        supports_download=False,
    )

    def Patch(self, request, global_params=None):
      r"""Updates a data transfer configuration. All fields must be set, even if they are not updated.

      Args:
        request: (BigquerydatatransferProjectsTransferConfigsPatchRequest) input message
        global_params: (StandardQueryParameters, default: None) global arguments
      Returns:
        (TransferConfig) The response message.
      """
      config = self.GetMethodConfig('Patch')
      return self._RunMethod(
          config, request, global_params=global_params)

    Patch.method_config = lambda: base_api.ApiMethodInfo(
        flat_path='v1/projects/{projectsId}/transferConfigs/{transferConfigsId}',
        http_method='PATCH',
        method_id='bigquerydatatransfer.projects.transferConfigs.patch',
        ordered_params=['name'],
        path_params=['name'],
        query_params=['authorizationCode', 'serviceAccountName', 'updateMask', 'versionInfo'],
        relative_path='v1/{+name}',
        request_field='transferConfig',
        request_type_name='BigquerydatatransferProjectsTransferConfigsPatchRequest',
        response_type_name='TransferConfig',
        supports_download=False,
    )

    def ScheduleRuns(self, request, global_params=None):
      r"""Creates transfer runs for a time range [start_time, end_time]. For each date - or whatever granularity the data source supports - in the range, one transfer run is created. Note that runs are created per UTC time in the time range. DEPRECATED: use StartManualTransferRuns instead.

      Args:
        request: (BigquerydatatransferProjectsTransferConfigsScheduleRunsRequest) input message
        global_params: (StandardQueryParameters, default: None) global arguments
      Returns:
        (ScheduleTransferRunsResponse) The response message.
      """
      config = self.GetMethodConfig('ScheduleRuns')
      return self._RunMethod(
          config, request, global_params=global_params)

    ScheduleRuns.method_config = lambda: base_api.ApiMethodInfo(
        flat_path='v1/projects/{projectsId}/transferConfigs/{transferConfigsId}:scheduleRuns',
        http_method='POST',
        method_id='bigquerydatatransfer.projects.transferConfigs.scheduleRuns',
        ordered_params=['parent'],
        path_params=['parent'],
        query_params=[],
        relative_path='v1/{+parent}:scheduleRuns',
        request_field='scheduleTransferRunsRequest',
        request_type_name='BigquerydatatransferProjectsTransferConfigsScheduleRunsRequest',
        response_type_name='ScheduleTransferRunsResponse',
        supports_download=False,
    )

    def StartManualRuns(self, request, global_params=None):
      r"""Start manual transfer runs to be executed now with schedule_time equal to current time. The transfer runs can be created for a time range where the run_time is between start_time (inclusive) and end_time (exclusive), or for a specific run_time.

      Args:
        request: (BigquerydatatransferProjectsTransferConfigsStartManualRunsRequest) input message
        global_params: (StandardQueryParameters, default: None) global arguments
      Returns:
        (StartManualTransferRunsResponse) The response message.
      """
      config = self.GetMethodConfig('StartManualRuns')
      return self._RunMethod(
          config, request, global_params=global_params)

    StartManualRuns.method_config = lambda: base_api.ApiMethodInfo(
        flat_path='v1/projects/{projectsId}/transferConfigs/{transferConfigsId}:startManualRuns',
        http_method='POST',
        method_id='bigquerydatatransfer.projects.transferConfigs.startManualRuns',
        ordered_params=['parent'],
        path_params=['parent'],
        query_params=[],
        relative_path='v1/{+parent}:startManualRuns',
        request_field='startManualTransferRunsRequest',
        request_type_name='BigquerydatatransferProjectsTransferConfigsStartManualRunsRequest',
        response_type_name='StartManualTransferRunsResponse',
        supports_download=False,
    )

  class ProjectsService(base_api.BaseApiService):
    """Service class for the projects resource."""

    _NAME = 'projects'

    def __init__(self, client):
      super(BigquerydatatransferV1.ProjectsService, self).__init__(client)
      self._upload_configs = {
          }

    def EnrollDataSources(self, request, global_params=None):
      r"""Enroll data sources in a user project. This allows users to create transfer configurations for these data sources. They will also appear in the ListDataSources RPC and as such, will appear in the BigQuery UI 'https://bigquery.cloud.google.com' (and the documents can be found at https://cloud.google.com/bigquery/bigquery-web-ui and https://cloud.google.com/bigquery/docs/working-with-transfers).

      Args:
        request: (BigquerydatatransferProjectsEnrollDataSourcesRequest) input message
        global_params: (StandardQueryParameters, default: None) global arguments
      Returns:
        (Empty) The response message.
      """
      config = self.GetMethodConfig('EnrollDataSources')
      return self._RunMethod(
          config, request, global_params=global_params)

    EnrollDataSources.method_config = lambda: base_api.ApiMethodInfo(
        flat_path='v1/projects/{projectsId}:enrollDataSources',
        http_method='POST',
        method_id='bigquerydatatransfer.projects.enrollDataSources',
        ordered_params=['name'],
        path_params=['name'],
        query_params=[],
        relative_path='v1/{+name}:enrollDataSources',
        request_field='enrollDataSourcesRequest',
        request_type_name='BigquerydatatransferProjectsEnrollDataSourcesRequest',
        response_type_name='Empty',
        supports_download=False,
    )
