{
  "discoveryVersion": "v1",
  "revision": "20261024",
  "resources": {
    "projects": {
      "methods": {
        "enrollDataSources": {
          "flatPath": "v1/projects/{projectsId}:enrollDataSources",
          "id": "bigquerydatatransfer.projects.enrollDataSources",
          "request": {
            "$ref": "EnrollDataSourcesRequest"
          },
          "response": {
            "$ref": "Empty"
          },
          "parameterOrder": [
            "name"
          ],
          "scopes": [
            "https://www.googleapis.com/auth/bigquery",
            "https://www.googleapis.com/auth/cloud-platform"
          ],
          "description": "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://console.cloud.google.com/bigquery), and the documents can be found in the public guide for [BigQuery Web UI](https://cloud.google.com/bigquery/bigquery-web-ui) and [Data Transfer Service](https://cloud.google.com/bigquery/docs/working-with-transfers).",
          "httpMethod": "POST",
          "path": "v1/{+name}:enrollDataSources",
          "parameters": {
            "name": {
              "required": true,
              "type": "string",
              "pattern": "^projects/[^/]+$",
              "description": "Required. The name of the project resource in the form: `projects/{project_id}`",
              "location": "path"
            }
          }
        }
      },
      "resources": {
        "transferConfigs": {
          "resources": {
            "runs": {
              "resources": {
                "transferLogs": {
                  "methods": {
                    "list": {
                      "description": "Returns log messages for the transfer run.",
                      "parameterOrder": [
                        "parent"
                      ],
                      "path": "v1/{+parent}/transferLogs",
                      "httpMethod": "GET",
                      "id": "bigquerydatatransfer.projects.transferConfigs.runs.transferLogs.list",
                      "parameters": {
                        "parent": {
                          "type": "string",
                          "pattern": "^projects/[^/]+/transferConfigs/[^/]+/runs/[^/]+$",
                          "required": true,
                          "description": "Required. Transfer run name. If you are using the regionless method, the location must be `US` and the name should be in the following form: * `projects/{project_id}/transferConfigs/{config_id}/runs/{run_id}` If you are using the regionalized method, the name should be in the following form: * `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}/runs/{run_id}`",
                          "location": "path"
                        },
                        "pageSize": {
                          "format": "int32",
                          "description": "Page size. The default page size is the maximum value of 1000 results.",
                          "type": "integer",
                          "location": "query"
                        },
                        "pageToken": {
                          "type": "string",
                          "location": "query",
                          "description": "Pagination token, which can be used to request a specific page of `ListTransferLogsRequest` list results. For multiple-page results, `ListTransferLogsResponse` outputs a `next_page` token, which can be used as the `page_token` value to request the next page of list results."
                        },
                        "messageTypes": {
                          "type": "string",
                          "repeated": true,
                          "location": "query",
                          "description": "Message types to return. If not populated - INFO, WARNING and ERROR messages are returned.",
                          "enum": [
                            "MESSAGE_SEVERITY_UNSPECIFIED",
                            "INFO",
                            "WARNING",
                            "ERROR"
                          ],
                          "enumDescriptions": [
                            "No severity specified.",
                            "Informational message.",
                            "Warning message.",
                            "Error message."
                          ]
                        }
                      },
                      "flatPath": "v1/projects/{projectsId}/transferConfigs/{transferConfigsId}/runs/{runsId}/transferLogs",
                      "scopes": [
                        "https://www.googleapis.com/auth/bigquery",
                        "https://www.googleapis.com/auth/cloud-platform",
                        "https://www.googleapis.com/auth/cloud-platform.read-only"
                      ],
                      "response": {
                        "$ref": "ListTransferLogsResponse"
                      }
                    }
                  }
                }
              },
              "methods": {
                "list": {
                  "response": {
                    "$ref": "ListTransferRunsResponse"
                  },
                  "id": "bigquerydatatransfer.projects.transferConfigs.runs.list",
                  "flatPath": "v1/projects/{projectsId}/transferConfigs/{transferConfigsId}/runs",
                  "path": "v1/{+parent}/runs",
                  "parameters": {
                    "pageToken": {
                      "type": "string",
                      "location": "query",
                      "description": "Pagination token, which can be used to request a specific page of `ListTransferRunsRequest` list results. For multiple-page results, `ListTransferRunsResponse` outputs a `next_page` token, which can be used as the `page_token` value to request the next page of list results."
                    },
                    "parent": {
                      "pattern": "^projects/[^/]+/transferConfigs/[^/]+$",
                      "location": "path",
                      "type": "string",
                      "description": "Required. Name of transfer configuration for which transfer runs should be retrieved. If you are using the regionless method, the location must be `US` and the name should be in the following form: * `projects/{project_id}/transferConfigs/{config_id}` If you are using the regionalized method, the name should be in the following form: * `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}`",
                      "required": true
                    },
                    "states": {
                      "type": "string",
                      "location": "query",
                      "enumDescriptions": [
                        "State placeholder (0).",
                        "Data transfer is scheduled and is waiting to be picked up by data transfer backend (2).",
                        "Data transfer is in progress (3).",
                        "Data transfer completed successfully (4).",
                        "Data transfer failed (5).",
                        "Data transfer is cancelled (6)."
                      ],
                      "description": "When specified, only transfer runs with requested states are returned.",
                      "enum": [
                        "TRANSFER_STATE_UNSPECIFIED",
                        "PENDING",
                        "RUNNING",
                        "SUCCEEDED",
                        "FAILED",
                        "CANCELLED"
                      ],
                      "repeated": true
                    },
                    "runAttempt": {
                      "type": "string",
                      "location": "query",
                      "enumDescriptions": [
                        "All runs should be returned.",
                        "Only latest run per day should be returned."
                      ],
                      "enum": [
                        "RUN_ATTEMPT_UNSPECIFIED",
                        "LATEST"
                      ],
                      "description": "Indicates how run attempts are to be pulled."
                    },
                    "pageSize": {
                      "description": "Page size. The default page size is the maximum value of 1000 results.",
                      "location": "query",
                      "format": "int32",
                      "type": "integer"
                    }
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "httpMethod": "GET",
                  "scopes": [
                    "https://www.googleapis.com/auth/bigquery",
                    "https://www.googleapis.com/auth/cloud-platform",
                    "https://www.googleapis.com/auth/cloud-platform.read-only"
                  ],
                  "description": "Returns information about running and completed transfer runs."
                },
                "get": {
                  "response": {
                    "$ref": "TransferRun"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/bigquery",
                    "https://www.googleapis.com/auth/cloud-platform",
                    "https://www.googleapis.com/auth/cloud-platform.read-only"
                  ],
                  "httpMethod": "GET",
                  "parameters": {
                    "name": {
                      "type": "string",
                      "pattern": "^projects/[^/]+/transferConfigs/[^/]+/runs/[^/]+$",
                      "location": "path",
                      "required": true,
                      "description": "Required. The name of the resource requested. If you are using the regionless method, the location must be `US` and the name should be in the following form: * `projects/{project_id}/transferConfigs/{config_id}/runs/{run_id}` If you are using the regionalized method, the name should be in the following form: * `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}/runs/{run_id}`"
                    }
                  },
                  "description": "Returns information about the particular transfer run.",
                  "flatPath": "v1/projects/{projectsId}/transferConfigs/{transferConfigsId}/runs/{runsId}",
                  "id": "bigquerydatatransfer.projects.transferConfigs.runs.get",
                  "parameterOrder": [
                    "name"
                  ],
                  "path": "v1/{+name}"
                },
                "delete": {
                  "response": {
                    "$ref": "Empty"
                  },
                  "flatPath": "v1/projects/{projectsId}/transferConfigs/{transferConfigsId}/runs/{runsId}",
                  "id": "bigquerydatatransfer.projects.transferConfigs.runs.delete",
                  "httpMethod": "DELETE",
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "description": "Required. The name of the resource requested. If you are using the regionless method, the location must be `US` and the name should be in the following form: * `projects/{project_id}/transferConfigs/{config_id}/runs/{run_id}` If you are using the regionalized method, the name should be in the following form: * `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}/runs/{run_id}`",
                      "location": "path",
                      "pattern": "^projects/[^/]+/transferConfigs/[^/]+/runs/[^/]+$",
                      "type": "string",
                      "required": true
                    }
                  },
                  "description": "Deletes the specified transfer run.",
                  "scopes": [
                    "https://www.googleapis.com/auth/bigquery",
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "path": "v1/{+name}"
                }
              }
            },
            "transferResources": {
              "methods": {
                "list": {
                  "httpMethod": "GET",
                  "description": "Returns information about transfer resources.",
                  "id": "bigquerydatatransfer.projects.transferConfigs.transferResources.list",
                  "flatPath": "v1/projects/{projectsId}/transferConfigs/{transferConfigsId}/transferResources",
                  "parameters": {
                    "pageSize": {
                      "type": "integer",
                      "description": "Optional. The maximum number of transfer resources to return. The maximum value is 1000; values above 1000 will be coerced to 1000. The default page size is the maximum value of 1000 results.",
                      "location": "query",
                      "format": "int32"
                    },
                    "pageToken": {
                      "type": "string",
                      "location": "query",
                      "description": "Optional. A page token, received from a previous `ListTransferResources` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListTransferResources` must match the call that provided the page token."
                    },
                    "parent": {
                      "pattern": "^projects/[^/]+/transferConfigs/[^/]+$",
                      "required": true,
                      "description": "Required. Name of transfer configuration for which transfer resources should be retrieved. The name should be in one of the following forms: * `projects/{project}/transferConfigs/{transfer_config}` * `projects/{project}/locations/{location_id}/transferConfigs/{transfer_config}`",
                      "location": "path",
                      "type": "string"
                    },
                    "filter": {
                      "type": "string",
                      "description": "Optional. Filter for the transfer resources. Currently supported filters include: * Resource name: `name` - Wildcard supported * Resource type: `type` * Resource destination: `destination` * Latest resource state: `latest_status_detail.state` * Last update time: `update_time` - RFC-3339 format * Parent table name: `hierarchy_detail.partition_detail.table` Multiple filters can be applied using the `AND/OR` operator. Examples: * `name=\"*123\" AND (type=\"TABLE\" OR latest_status_detail.state=\"SUCCEEDED\")` * `update_time \u003e= \"2012-04-21T11:30:00-04:00\"` * `hierarchy_detail.partition_detail.table = \"table1\"`",
                      "location": "query"
                    }
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "scopes": [
                    "https://www.googleapis.com/auth/bigquery",
                    "https://www.googleapis.com/auth/cloud-platform",
                    "https://www.googleapis.com/auth/cloud-platform.read-only"
                  ],
                  "response": {
                    "$ref": "ListTransferResourcesResponse"
                  },
                  "path": "v1/{+parent}/transferResources"
                },
                "get": {
                  "id": "bigquerydatatransfer.projects.transferConfigs.transferResources.get",
                  "scopes": [
                    "https://www.googleapis.com/auth/bigquery",
                    "https://www.googleapis.com/auth/cloud-platform",
                    "https://www.googleapis.com/auth/cloud-platform.read-only"
                  ],
                  "parameterOrder": [
                    "name"
                  ],
                  "response": {
                    "$ref": "TransferResource"
                  },
                  "path": "v1/{+name}",
                  "flatPath": "v1/projects/{projectsId}/transferConfigs/{transferConfigsId}/transferResources/{transferResourcesId}",
                  "parameters": {
                    "name": {
                      "type": "string",
                      "location": "path",
                      "description": "Required. The name of the transfer resource in the form of: * `projects/{project}/transferConfigs/{transfer_config}/transferResources/{transfer_resource}` * `projects/{project}/locations/{location}/transferConfigs/{transfer_config}/transferResources/{transfer_resource}`",
                      "required": true,
                      "pattern": "^projects/[^/]+/transferConfigs/[^/]+/transferResources/[^/]+$"
                    }
                  },
                  "description": "Returns a transfer resource.",
                  "httpMethod": "GET"
                }
              }
            }
          },
          "methods": {
            "scheduleRuns": {
              "response": {
                "$ref": "ScheduleTransferRunsResponse"
              },
              "parameterOrder": [
                "parent"
              ],
              "scopes": [
                "https://www.googleapis.com/auth/bigquery",
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "flatPath": "v1/projects/{projectsId}/transferConfigs/{transferConfigsId}:scheduleRuns",
              "id": "bigquerydatatransfer.projects.transferConfigs.scheduleRuns",
              "httpMethod": "POST",
              "parameters": {
                "parent": {
                  "location": "path",
                  "type": "string",
                  "pattern": "^projects/[^/]+/transferConfigs/[^/]+$",
                  "description": "Required. Transfer configuration name. If you are using the regionless method, the location must be `US` and the name should be in the following form: * `projects/{project_id}/transferConfigs/{config_id}` If you are using the regionalized method, the name should be in the following form: * `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}`",
                  "required": true
                }
              },
              "deprecated": true,
              "request": {
                "$ref": "ScheduleTransferRunsRequest"
              },
              "description": "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.",
              "path": "v1/{+parent}:scheduleRuns"
            },
            "patch": {
              "response": {
                "$ref": "TransferConfig"
              },
              "id": "bigquerydatatransfer.projects.transferConfigs.patch",
              "flatPath": "v1/projects/{projectsId}/transferConfigs/{transferConfigsId}",
              "parameterOrder": [
                "name"
              ],
              "description": "Updates a data transfer configuration. All fields must be set, even if they are not updated.",
              "path": "v1/{+name}",
              "parameters": {
                "name": {
                  "type": "string",
                  "pattern": "^projects/[^/]+/transferConfigs/[^/]+$",
                  "required": true,
                  "description": "Identifier. The resource name of the transfer config. Transfer config names have the form either `projects/{project_id}/locations/{region}/transferConfigs/{config_id}` or `projects/{project_id}/transferConfigs/{config_id}`, where `config_id` is usually a UUID, even though it is not guaranteed or required. The name is ignored when creating a transfer config.",
                  "location": "path"
                },
                "updateMask": {
                  "type": "string",
                  "format": "google-fieldmask",
                  "description": "Required. Required list of fields to be updated in this request.",
                  "location": "query"
                },
                "serviceAccountName": {
                  "type": "string",
                  "description": "Optional service account email. If this field is set, the transfer config will be created with this service account's credentials. It requires that the requesting user calling this API has permissions to act as this service account. Note that not all data sources support service account credentials when creating a transfer config. For the latest list of data sources, read about [using service accounts](https://cloud.google.com/bigquery-transfer/docs/use-service-accounts).",
                  "location": "query"
                },
                "authorizationCode": {
                  "location": "query",
                  "deprecated": true,
                  "description": "Deprecated: Authorization code was required when `transferConfig.dataSourceId` is 'youtube_channel' but it is no longer used in any data sources. Use `version_info` instead. Optional OAuth2 authorization code to use with this transfer configuration. This is required only if `transferConfig.dataSourceId` is 'youtube_channel' and new credentials are needed, as indicated by `CheckValidCreds`. In order to obtain authorization_code, make a request to the following URL: https://bigquery.cloud.google.com/datatransfer/oauthz/auth?redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=authorization_code&client_id=client_id&scope=data_source_scopes * The client_id is the OAuth client_id of the data source as returned by ListDataSources method. * data_source_scopes are the scopes returned by ListDataSources method. Note that this should not be set when `service_account_name` is used to update the transfer config.",
                  "type": "string"
                },
                "versionInfo": {
                  "location": "query",
                  "type": "string",
                  "description": "Optional version info. This parameter replaces `authorization_code` which is no longer used in any data sources. This is required only if `transferConfig.dataSourceId` is 'youtube_channel' *or* new credentials are needed, as indicated by `CheckValidCreds`. In order to obtain version info, make a request to the following URL: https://bigquery.cloud.google.com/datatransfer/oauthz/auth?redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=version_info&client_id=client_id&scope=data_source_scopes * The client_id is the OAuth client_id of the data source as returned by ListDataSources method. * data_source_scopes are the scopes returned by ListDataSources method. Note that this should not be set when `service_account_name` is used to update the transfer config."
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/bigquery",
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "request": {
                "$ref": "TransferConfig"
              },
              "httpMethod": "PATCH"
            },
            "delete": {
              "id": "bigquerydatatransfer.projects.transferConfigs.delete",
              "description": "Deletes a data transfer configuration, including any associated transfer runs and logs.",
              "parameters": {
                "name": {
                  "location": "path",
                  "type": "string",
                  "description": "Required. The name of the resource to delete. If you are using the regionless method, the location must be `US` and the name should be in the following form: * `projects/{project_id}/transferConfigs/{config_id}` If you are using the regionalized method, the name should be in the following form: * `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}`",
                  "pattern": "^projects/[^/]+/transferConfigs/[^/]+$",
                  "required": true
                }
              },
              "httpMethod": "DELETE",
              "path": "v1/{+name}",
              "parameterOrder": [
                "name"
              ],
              "response": {
                "$ref": "Empty"
              },
              "scopes": [
                "https://www.googleapis.com/auth/bigquery",
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "flatPath": "v1/projects/{projectsId}/transferConfigs/{transferConfigsId}"
            },
            "get": {
              "scopes": [
                "https://www.googleapis.com/auth/bigquery",
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/cloud-platform.read-only"
              ],
              "description": "Returns information about a data transfer config.",
              "httpMethod": "GET",
              "parameters": {
                "name": {
                  "description": "Required. The name of the resource requested. If you are using the regionless method, the location must be `US` and the name should be in the following form: * `projects/{project_id}/transferConfigs/{config_id}` If you are using the regionalized method, the name should be in the following form: * `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}`",
                  "required": true,
                  "type": "string",
                  "pattern": "^projects/[^/]+/transferConfigs/[^/]+$",
                  "location": "path"
                }
              },
              "parameterOrder": [
                "name"
              ],
              "flatPath": "v1/projects/{projectsId}/transferConfigs/{transferConfigsId}",
              "path": "v1/{+name}",
              "id": "bigquerydatatransfer.projects.transferConfigs.get",
              "response": {
                "$ref": "TransferConfig"
              }
            },
            "create": {
              "id": "bigquerydatatransfer.projects.transferConfigs.create",
              "scopes": [
                "https://www.googleapis.com/auth/bigquery",
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "parameterOrder": [
                "parent"
              ],
              "description": "Creates a new data transfer configuration.",
              "httpMethod": "POST",
              "path": "v1/{+parent}/transferConfigs",
              "response": {
                "$ref": "TransferConfig"
              },
              "parameters": {
                "authorizationCode": {
                  "description": "Deprecated: Authorization code was required when `transferConfig.dataSourceId` is 'youtube_channel' but it is no longer used in any data sources. Use `version_info` instead. Optional OAuth2 authorization code to use with this transfer configuration. This is required only if `transferConfig.dataSourceId` is 'youtube_channel' and new credentials are needed, as indicated by `CheckValidCreds`. In order to obtain authorization_code, make a request to the following URL: https://bigquery.cloud.google.com/datatransfer/oauthz/auth?redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=authorization_code&client_id=client_id&scope=data_source_scopes * The client_id is the OAuth client_id of the data source as returned by ListDataSources method. * data_source_scopes are the scopes returned by ListDataSources method. Note that this should not be set when `service_account_name` is used to create the transfer config.",
                  "deprecated": true,
                  "location": "query",
                  "type": "string"
                },
                "parent": {
                  "location": "path",
                  "description": "Required. The BigQuery project id where the transfer configuration should be created. Must be in the format projects/{project_id}/locations/{location_id} or projects/{project_id}. If specified location and location of the destination bigquery dataset do not match - the request will fail.",
                  "type": "string",
                  "pattern": "^projects/[^/]+$",
                  "required": true
                },
                "serviceAccountName": {
                  "description": "Optional service account email. If this field is set, the transfer config will be created with this service account's credentials. It requires that the requesting user calling this API has permissions to act as this service account. Note that not all data sources support service account credentials when creating a transfer config. For the latest list of data sources, read about [using service accounts](https://cloud.google.com/bigquery-transfer/docs/use-service-accounts).",
                  "location": "query",
                  "type": "string"
                },
                "versionInfo": {
                  "type": "string",
                  "description": "Optional version info. This parameter replaces `authorization_code` which is no longer used in any data sources. This is required only if `transferConfig.dataSourceId` is 'youtube_channel' *or* new credentials are needed, as indicated by `CheckValidCreds`. In order to obtain version info, make a request to the following URL: https://bigquery.cloud.google.com/datatransfer/oauthz/auth?redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=version_info&client_id=client_id&scope=data_source_scopes * The client_id is the OAuth client_id of the data source as returned by ListDataSources method. * data_source_scopes are the scopes returned by ListDataSources method. Note that this should not be set when `service_account_name` is used to create the transfer config.",
                  "location": "query"
                }
              },
              "request": {
                "$ref": "TransferConfig"
              },
              "flatPath": "v1/projects/{projectsId}/transferConfigs"
            },
            "startManualRuns": {
              "description": "Manually initiates transfer runs. You can schedule these runs in two ways: 1. For a specific point in time using the 'requested_run_time' parameter. 2. For a period between 'start_time' (inclusive) and 'end_time' (exclusive). If scheduling a single run, it is set to execute immediately (schedule_time equals the current time). When scheduling multiple runs within a time range, the first run starts now, and subsequent runs are delayed by 15 seconds each.",
              "scopes": [
                "https://www.googleapis.com/auth/bigquery",
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "httpMethod": "POST",
              "parameters": {
                "parent": {
                  "description": "Required. Transfer configuration name. If you are using the regionless method, the location must be `US` and the name should be in the following form: * `projects/{project_id}/transferConfigs/{config_id}` If you are using the regionalized method, the name should be in the following form: * `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}`",
                  "location": "path",
                  "type": "string",
                  "required": true,
                  "pattern": "^projects/[^/]+/transferConfigs/[^/]+$"
                }
              },
              "parameterOrder": [
                "parent"
              ],
              "flatPath": "v1/projects/{projectsId}/transferConfigs/{transferConfigsId}:startManualRuns",
              "path": "v1/{+parent}:startManualRuns",
              "request": {
                "$ref": "StartManualTransferRunsRequest"
              },
              "id": "bigquerydatatransfer.projects.transferConfigs.startManualRuns",
              "response": {
                "$ref": "StartManualTransferRunsResponse"
              }
            },
            "list": {
              "parameters": {
                "pageSize": {
                  "type": "integer",
                  "description": "Page size. The default page size is the maximum value of 1000 results.",
                  "format": "int32",
                  "location": "query"
                },
                "parent": {
                  "location": "path",
                  "pattern": "^projects/[^/]+$",
                  "type": "string",
                  "required": true,
                  "description": "Required. The BigQuery project id for which transfer configs should be returned. If you are using the regionless method, the location must be `US` and `parent` should be in the following form: * `projects/{project_id} If you are using the regionalized method, `parent` should be in the following form: * `projects/{project_id}/locations/{location_id}`"
                },
                "dataSourceIds": {
                  "location": "query",
                  "description": "When specified, only configurations of requested data sources are returned.",
                  "repeated": true,
                  "type": "string"
                },
                "pageToken": {
                  "description": "Pagination token, which can be used to request a specific page of `ListTransfersRequest` list results. For multiple-page results, `ListTransfersResponse` outputs a `next_page` token, which can be used as the `page_token` value to request the next page of list results.",
                  "type": "string",
                  "location": "query"
                }
              },
              "scopes": [
                "https://www.googleapis.com/auth/bigquery",
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/cloud-platform.read-only"
              ],
              "httpMethod": "GET",
              "description": "Returns information about all transfer configs owned by a project in the specified location.",
              "response": {
                "$ref": "ListTransferConfigsResponse"
              },
              "flatPath": "v1/projects/{projectsId}/transferConfigs",
              "parameterOrder": [
                "parent"
              ],
              "id": "bigquerydatatransfer.projects.transferConfigs.list",
              "path": "v1/{+parent}/transferConfigs"
            }
          }
        },
        "locations": {
          "methods": {
            "enrollDataSources": {
              "request": {
                "$ref": "EnrollDataSourcesRequest"
              },
              "httpMethod": "POST",
              "description": "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://console.cloud.google.com/bigquery), and the documents can be found in the public guide for [BigQuery Web UI](https://cloud.google.com/bigquery/bigquery-web-ui) and [Data Transfer Service](https://cloud.google.com/bigquery/docs/working-with-transfers).",
              "flatPath": "v1/projects/{projectsId}/locations/{locationsId}:enrollDataSources",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "name": {
                  "location": "path",
                  "pattern": "^projects/[^/]+/locations/[^/]+$",
                  "type": "string",
                  "description": "Required. The name of the project resource in the form: `projects/{project_id}`",
                  "required": true
                }
              },
              "path": "v1/{+name}:enrollDataSources",
              "id": "bigquerydatatransfer.projects.locations.enrollDataSources",
              "scopes": [
                "https://www.googleapis.com/auth/bigquery",
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "response": {
                "$ref": "Empty"
              }
            },
            "get": {
              "parameterOrder": [
                "name"
              ],
              "description": "Gets information about a location.",
              "id": "bigquerydatatransfer.projects.locations.get",
              "path": "v1/{+name}",
              "scopes": [
                "https://www.googleapis.com/auth/bigquery",
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/cloud-platform.read-only"
              ],
              "flatPath": "v1/projects/{projectsId}/locations/{locationsId}",
              "httpMethod": "GET",
              "response": {
                "$ref": "Location"
              },
              "parameters": {
                "name": {
                  "pattern": "^projects/[^/]+/locations/[^/]+$",
                  "type": "string",
                  "location": "path",
                  "description": "Resource name for the location.",
                  "required": true
                }
              }
            },
            "list": {
              "id": "bigquerydatatransfer.projects.locations.list",
              "path": "v1/{+name}/locations",
              "flatPath": "v1/projects/{projectsId}/locations",
              "scopes": [
                "https://www.googleapis.com/auth/bigquery",
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/cloud-platform.read-only"
              ],
              "response": {
                "$ref": "ListLocationsResponse"
              },
              "description": "Lists information about the supported locations for this service. This method lists locations based on the resource scope provided in the ListLocationsRequest.name field: * **Global locations**: If `name` is empty, the method lists the public locations available to all projects. * **Project-specific locations**: If `name` follows the format `projects/{project}`, the method lists locations visible to that specific project. This includes public, private, or other project-specific locations enabled for the project. For gRPC and client library implementations, the resource name is passed as the `name` field. For direct service calls, the resource name is incorporated into the request path based on the specific service implementation and version.",
              "httpMethod": "GET",
              "parameterOrder": [
                "name"
              ],
              "parameters": {
                "extraLocationTypes": {
                  "type": "string",
                  "location": "query",
                  "description": "Optional. Do not use this field unless explicitly documented otherwise. This is primarily for internal usage.",
                  "repeated": true
                },
                "pageToken": {
                  "description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.",
                  "type": "string",
                  "location": "query"
                },
                "pageSize": {
                  "location": "query",
                  "description": "The maximum number of results to return. If not set, the service selects a default.",
                  "format": "int32",
                  "type": "integer"
                },
                "filter": {
                  "description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).",
                  "location": "query",
                  "type": "string"
                },
                "name": {
                  "pattern": "^projects/[^/]+$",
                  "type": "string",
                  "required": true,
                  "description": "The resource that owns the locations collection, if applicable.",
                  "location": "path"
                }
              }
            },
            "unenrollDataSources": {
              "id": "bigquerydatatransfer.projects.locations.unenrollDataSources",
              "response": {
                "$ref": "Empty"
              },
              "scopes": [
                "https://www.googleapis.com/auth/bigquery",
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "flatPath": "v1/projects/{projectsId}/locations/{locationsId}:unenrollDataSources",
              "request": {
                "$ref": "UnenrollDataSourcesRequest"
              },
              "description": "Unenroll data sources in a user project. This allows users to remove transfer configurations for these data sources. They will no longer appear in the ListDataSources RPC and will also no longer appear in the [BigQuery UI](https://console.cloud.google.com/bigquery). Data transfers configurations of unenrolled data sources will not be scheduled.",
              "path": "v1/{+name}:unenrollDataSources",
              "parameters": {
                "name": {
                  "description": "Required. The name of the project resource in the form: `projects/{project_id}`",
                  "required": true,
                  "type": "string",
                  "pattern": "^projects/[^/]+/locations/[^/]+$",
                  "location": "path"
                }
              },
              "parameterOrder": [
                "name"
              ],
              "httpMethod": "POST"
            }
          },
          "resources": {
            "dataSources": {
              "methods": {
                "get": {
                  "scopes": [
                    "https://www.googleapis.com/auth/bigquery",
                    "https://www.googleapis.com/auth/cloud-platform",
                    "https://www.googleapis.com/auth/cloud-platform.read-only"
                  ],
                  "id": "bigquerydatatransfer.projects.locations.dataSources.get",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataSources/{dataSourcesId}",
                  "httpMethod": "GET",
                  "path": "v1/{+name}",
                  "response": {
                    "$ref": "DataSource"
                  },
                  "parameters": {
                    "name": {
                      "required": true,
                      "pattern": "^projects/[^/]+/locations/[^/]+/dataSources/[^/]+$",
                      "description": "Required. The name of the resource requested. If you are using the regionless method, the location must be `US` and the name should be in the following form: * `projects/{project_id}/dataSources/{data_source_id}` If you are using the regionalized method, the name should be in the following form: * `projects/{project_id}/locations/{location_id}/dataSources/{data_source_id}`",
                      "type": "string",
                      "location": "path"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "description": "Retrieves a supported data source and returns its settings."
                },
                "list": {
                  "id": "bigquerydatatransfer.projects.locations.dataSources.list",
                  "parameterOrder": [
                    "parent"
                  ],
                  "httpMethod": "GET",
                  "description": "Lists supported data sources and returns their settings.",
                  "parameters": {
                    "pageToken": {
                      "description": "Pagination token, which can be used to request a specific page of `ListDataSourcesRequest` list results. For multiple-page results, `ListDataSourcesResponse` outputs a `next_page` token, which can be used as the `page_token` value to request the next page of list results.",
                      "location": "query",
                      "type": "string"
                    },
                    "pageSize": {
                      "location": "query",
                      "description": "Page size. The default page size is the maximum value of 1000 results.",
                      "type": "integer",
                      "format": "int32"
                    },
                    "parent": {
                      "required": true,
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "description": "Required. The BigQuery project id for which data sources should be returned. Must be in the form: `projects/{project_id}` or `projects/{project_id}/locations/{location_id}`",
                      "location": "path",
                      "type": "string"
                    }
                  },
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataSources",
                  "path": "v1/{+parent}/dataSources",
                  "scopes": [
                    "https://www.googleapis.com/auth/bigquery",
                    "https://www.googleapis.com/auth/cloud-platform",
                    "https://www.googleapis.com/auth/cloud-platform.read-only"
                  ],
                  "response": {
                    "$ref": "ListDataSourcesResponse"
                  }
                },
                "checkValidCreds": {
                  "response": {
                    "$ref": "CheckValidCredsResponse"
                  },
                  "path": "v1/{+name}:checkValidCreds",
                  "parameterOrder": [
                    "name"
                  ],
                  "httpMethod": "POST",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataSources/{dataSourcesId}:checkValidCreds",
                  "parameters": {
                    "name": {
                      "type": "string",
                      "required": true,
                      "pattern": "^projects/[^/]+/locations/[^/]+/dataSources/[^/]+$",
                      "description": "Required. The name of the data source. If you are using the regionless method, the location must be `US` and the name should be in the following form: * `projects/{project_id}/dataSources/{data_source_id}` If you are using the regionalized method, the name should be in the following form: * `projects/{project_id}/locations/{location_id}/dataSources/{data_source_id}`",
                      "location": "path"
                    }
                  },
                  "description": "Returns true if valid credentials exist for the given data source and requesting user.",
                  "id": "bigquerydatatransfer.projects.locations.dataSources.checkValidCreds",
                  "scopes": [
                    "https://www.googleapis.com/auth/bigquery",
                    "https://www.googleapis.com/auth/cloud-platform",
                    "https://www.googleapis.com/auth/cloud-platform.read-only"
                  ],
                  "request": {
                    "$ref": "CheckValidCredsRequest"
                  }
                }
              }
            },
            "transferConfigs": {
              "resources": {
                "runs": {
                  "resources": {
                    "transferLogs": {
                      "methods": {
                        "list": {
                          "path": "v1/{+parent}/transferLogs",
                          "id": "bigquerydatatransfer.projects.locations.transferConfigs.runs.transferLogs.list",
                          "parameterOrder": [
                            "parent"
                          ],
                          "scopes": [
                            "https://www.googleapis.com/auth/bigquery",
                            "https://www.googleapis.com/auth/cloud-platform",
                            "https://www.googleapis.com/auth/cloud-platform.read-only"
                          ],
                          "response": {
                            "$ref": "ListTransferLogsResponse"
                          },
                          "httpMethod": "GET",
                          "parameters": {
                            "pageSize": {
                              "location": "query",
                              "type": "integer",
                              "format": "int32",
                              "description": "Page size. The default page size is the maximum value of 1000 results."
                            },
                            "pageToken": {
                              "location": "query",
                              "type": "string",
                              "description": "Pagination token, which can be used to request a specific page of `ListTransferLogsRequest` list results. For multiple-page results, `ListTransferLogsResponse` outputs a `next_page` token, which can be used as the `page_token` value to request the next page of list results."
                            },
                            "messageTypes": {
                              "description": "Message types to return. If not populated - INFO, WARNING and ERROR messages are returned.",
                              "repeated": true,
                              "type": "string",
                              "location": "query",
                              "enumDescriptions": [
                                "No severity specified.",
                                "Informational message.",
                                "Warning message.",
                                "Error message."
                              ],
                              "enum": [
                                "MESSAGE_SEVERITY_UNSPECIFIED",
                                "INFO",
                                "WARNING",
                                "ERROR"
                              ]
                            },
                            "parent": {
                              "type": "string",
                              "location": "path",
                              "pattern": "^projects/[^/]+/locations/[^/]+/transferConfigs/[^/]+/runs/[^/]+$",
                              "required": true,
                              "description": "Required. Transfer run name. If you are using the regionless method, the location must be `US` and the name should be in the following form: * `projects/{project_id}/transferConfigs/{config_id}/runs/{run_id}` If you are using the regionalized method, the name should be in the following form: * `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}/runs/{run_id}`"
                            }
                          },
                          "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/transferConfigs/{transferConfigsId}/runs/{runsId}/transferLogs",
                          "description": "Returns log messages for the transfer run."
                        }
                      }
                    }
                  },
                  "methods": {
                    "delete": {
                      "path": "v1/{+name}",
                      "scopes": [
                        "https://www.googleapis.com/auth/bigquery",
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "httpMethod": "DELETE",
                      "response": {
                        "$ref": "Empty"
                      },
                      "parameters": {
                        "name": {
                          "required": true,
                          "description": "Required. The name of the resource requested. If you are using the regionless method, the location must be `US` and the name should be in the following form: * `projects/{project_id}/transferConfigs/{config_id}/runs/{run_id}` If you are using the regionalized method, the name should be in the following form: * `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}/runs/{run_id}`",
                          "type": "string",
                          "location": "path",
                          "pattern": "^projects/[^/]+/locations/[^/]+/transferConfigs/[^/]+/runs/[^/]+$"
                        }
                      },
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/transferConfigs/{transferConfigsId}/runs/{runsId}",
                      "description": "Deletes the specified transfer run.",
                      "parameterOrder": [
                        "name"
                      ],
                      "id": "bigquerydatatransfer.projects.locations.transferConfigs.runs.delete"
                    },
                    "get": {
                      "parameterOrder": [
                        "name"
                      ],
                      "description": "Returns information about the particular transfer run.",
                      "id": "bigquerydatatransfer.projects.locations.transferConfigs.runs.get",
                      "httpMethod": "GET",
                      "scopes": [
                        "https://www.googleapis.com/auth/bigquery",
                        "https://www.googleapis.com/auth/cloud-platform",
                        "https://www.googleapis.com/auth/cloud-platform.read-only"
                      ],
                      "parameters": {
                        "name": {
                          "location": "path",
                          "required": true,
                          "type": "string",
                          "pattern": "^projects/[^/]+/locations/[^/]+/transferConfigs/[^/]+/runs/[^/]+$",
                          "description": "Required. The name of the resource requested. If you are using the regionless method, the location must be `US` and the name should be in the following form: * `projects/{project_id}/transferConfigs/{config_id}/runs/{run_id}` If you are using the regionalized method, the name should be in the following form: * `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}/runs/{run_id}`"
                        }
                      },
                      "path": "v1/{+name}",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/transferConfigs/{transferConfigsId}/runs/{runsId}",
                      "response": {
                        "$ref": "TransferRun"
                      }
                    },
                    "list": {
                      "id": "bigquerydatatransfer.projects.locations.transferConfigs.runs.list",
                      "description": "Returns information about running and completed transfer runs.",
                      "response": {
                        "$ref": "ListTransferRunsResponse"
                      },
                      "path": "v1/{+parent}/runs",
                      "scopes": [
                        "https://www.googleapis.com/auth/bigquery",
                        "https://www.googleapis.com/auth/cloud-platform",
                        "https://www.googleapis.com/auth/cloud-platform.read-only"
                      ],
                      "parameterOrder": [
                        "parent"
                      ],
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/transferConfigs/{transferConfigsId}/runs",
                      "httpMethod": "GET",
                      "parameters": {
                        "pageSize": {
                          "location": "query",
                          "description": "Page size. The default page size is the maximum value of 1000 results.",
                          "format": "int32",
                          "type": "integer"
                        },
                        "runAttempt": {
                          "enumDescriptions": [
                            "All runs should be returned.",
                            "Only latest run per day should be returned."
                          ],
                          "description": "Indicates how run attempts are to be pulled.",
                          "enum": [
                            "RUN_ATTEMPT_UNSPECIFIED",
                            "LATEST"
                          ],
                          "location": "query",
                          "type": "string"
                        },
                        "pageToken": {
                          "description": "Pagination token, which can be used to request a specific page of `ListTransferRunsRequest` list results. For multiple-page results, `ListTransferRunsResponse` outputs a `next_page` token, which can be used as the `page_token` value to request the next page of list results.",
                          "type": "string",
                          "location": "query"
                        },
                        "states": {
                          "description": "When specified, only transfer runs with requested states are returned.",
                          "enumDescriptions": [
                            "State placeholder (0).",
                            "Data transfer is scheduled and is waiting to be picked up by data transfer backend (2).",
                            "Data transfer is in progress (3).",
                            "Data transfer completed successfully (4).",
                            "Data transfer failed (5).",
                            "Data transfer is cancelled (6)."
                          ],
                          "enum": [
                            "TRANSFER_STATE_UNSPECIFIED",
                            "PENDING",
                            "RUNNING",
                            "SUCCEEDED",
                            "FAILED",
                            "CANCELLED"
                          ],
                          "repeated": true,
                          "location": "query",
                          "type": "string"
                        },
                        "parent": {
                          "required": true,
                          "description": "Required. Name of transfer configuration for which transfer runs should be retrieved. If you are using the regionless method, the location must be `US` and the name should be in the following form: * `projects/{project_id}/transferConfigs/{config_id}` If you are using the regionalized method, the name should be in the following form: * `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}`",
                          "type": "string",
                          "location": "path",
                          "pattern": "^projects/[^/]+/locations/[^/]+/transferConfigs/[^/]+$"
                        }
                      }
                    }
                  }
                },
                "transferResources": {
                  "methods": {
                    "get": {
                      "description": "Returns a transfer resource.",
                      "httpMethod": "GET",
                      "id": "bigquerydatatransfer.projects.locations.transferConfigs.transferResources.get",
                      "parameters": {
                        "name": {
                          "description": "Required. The name of the transfer resource in the form of: * `projects/{project}/transferConfigs/{transfer_config}/transferResources/{transfer_resource}` * `projects/{project}/locations/{location}/transferConfigs/{transfer_config}/transferResources/{transfer_resource}`",
                          "required": true,
                          "pattern": "^projects/[^/]+/locations/[^/]+/transferConfigs/[^/]+/transferResources/[^/]+$",
                          "type": "string",
                          "location": "path"
                        }
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "path": "v1/{+name}",
                      "response": {
                        "$ref": "TransferResource"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/bigquery",
                        "https://www.googleapis.com/auth/cloud-platform",
                        "https://www.googleapis.com/auth/cloud-platform.read-only"
                      ],
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/transferConfigs/{transferConfigsId}/transferResources/{transferResourcesId}"
                    },
                    "list": {
                      "path": "v1/{+parent}/transferResources",
                      "description": "Returns information about transfer resources.",
                      "response": {
                        "$ref": "ListTransferResourcesResponse"
                      },
                      "httpMethod": "GET",
                      "parameters": {
                        "pageSize": {
                          "description": "Optional. The maximum number of transfer resources to return. The maximum value is 1000; values above 1000 will be coerced to 1000. The default page size is the maximum value of 1000 results.",
                          "location": "query",
                          "type": "integer",
                          "format": "int32"
                        },
                        "filter": {
                          "type": "string",
                          "location": "query",
                          "description": "Optional. Filter for the transfer resources. Currently supported filters include: * Resource name: `name` - Wildcard supported * Resource type: `type` * Resource destination: `destination` * Latest resource state: `latest_status_detail.state` * Last update time: `update_time` - RFC-3339 format * Parent table name: `hierarchy_detail.partition_detail.table` Multiple filters can be applied using the `AND/OR` operator. Examples: * `name=\"*123\" AND (type=\"TABLE\" OR latest_status_detail.state=\"SUCCEEDED\")` * `update_time \u003e= \"2012-04-21T11:30:00-04:00\"` * `hierarchy_detail.partition_detail.table = \"table1\"`"
                        },
                        "parent": {
                          "location": "path",
                          "description": "Required. Name of transfer configuration for which transfer resources should be retrieved. The name should be in one of the following forms: * `projects/{project}/transferConfigs/{transfer_config}` * `projects/{project}/locations/{location_id}/transferConfigs/{transfer_config}`",
                          "pattern": "^projects/[^/]+/locations/[^/]+/transferConfigs/[^/]+$",
                          "required": true,
                          "type": "string"
                        },
                        "pageToken": {
                          "location": "query",
                          "type": "string",
                          "description": "Optional. A page token, received from a previous `ListTransferResources` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListTransferResources` must match the call that provided the page token."
                        }
                      },
                      "id": "bigquerydatatransfer.projects.locations.transferConfigs.transferResources.list",
                      "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/transferConfigs/{transferConfigsId}/transferResources",
                      "scopes": [
                        "https://www.googleapis.com/auth/bigquery",
                        "https://www.googleapis.com/auth/cloud-platform",
                        "https://www.googleapis.com/auth/cloud-platform.read-only"
                      ],
                      "parameterOrder": [
                        "parent"
                      ]
                    }
                  }
                }
              },
              "methods": {
                "scheduleRuns": {
                  "request": {
                    "$ref": "ScheduleTransferRunsRequest"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/bigquery",
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "deprecated": true,
                  "description": "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.",
                  "parameters": {
                    "parent": {
                      "type": "string",
                      "required": true,
                      "pattern": "^projects/[^/]+/locations/[^/]+/transferConfigs/[^/]+$",
                      "location": "path",
                      "description": "Required. Transfer configuration name. If you are using the regionless method, the location must be `US` and the name should be in the following form: * `projects/{project_id}/transferConfigs/{config_id}` If you are using the regionalized method, the name should be in the following form: * `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}`"
                    }
                  },
                  "path": "v1/{+parent}:scheduleRuns",
                  "httpMethod": "POST",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/transferConfigs/{transferConfigsId}:scheduleRuns",
                  "parameterOrder": [
                    "parent"
                  ],
                  "id": "bigquerydatatransfer.projects.locations.transferConfigs.scheduleRuns",
                  "response": {
                    "$ref": "ScheduleTransferRunsResponse"
                  }
                },
                "create": {
                  "parameterOrder": [
                    "parent"
                  ],
                  "request": {
                    "$ref": "TransferConfig"
                  },
                  "path": "v1/{+parent}/transferConfigs",
                  "description": "Creates a new data transfer configuration.",
                  "parameters": {
                    "authorizationCode": {
                      "deprecated": true,
                      "type": "string",
                      "description": "Deprecated: Authorization code was required when `transferConfig.dataSourceId` is 'youtube_channel' but it is no longer used in any data sources. Use `version_info` instead. Optional OAuth2 authorization code to use with this transfer configuration. This is required only if `transferConfig.dataSourceId` is 'youtube_channel' and new credentials are needed, as indicated by `CheckValidCreds`. In order to obtain authorization_code, make a request to the following URL: https://bigquery.cloud.google.com/datatransfer/oauthz/auth?redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=authorization_code&client_id=client_id&scope=data_source_scopes * The client_id is the OAuth client_id of the data source as returned by ListDataSources method. * data_source_scopes are the scopes returned by ListDataSources method. Note that this should not be set when `service_account_name` is used to create the transfer config.",
                      "location": "query"
                    },
                    "serviceAccountName": {
                      "type": "string",
                      "description": "Optional service account email. If this field is set, the transfer config will be created with this service account's credentials. It requires that the requesting user calling this API has permissions to act as this service account. Note that not all data sources support service account credentials when creating a transfer config. For the latest list of data sources, read about [using service accounts](https://cloud.google.com/bigquery-transfer/docs/use-service-accounts).",
                      "location": "query"
                    },
                    "parent": {
                      "required": true,
                      "description": "Required. The BigQuery project id where the transfer configuration should be created. Must be in the format projects/{project_id}/locations/{location_id} or projects/{project_id}. If specified location and location of the destination bigquery dataset do not match - the request will fail.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "type": "string",
                      "location": "path"
                    },
                    "versionInfo": {
                      "type": "string",
                      "description": "Optional version info. This parameter replaces `authorization_code` which is no longer used in any data sources. This is required only if `transferConfig.dataSourceId` is 'youtube_channel' *or* new credentials are needed, as indicated by `CheckValidCreds`. In order to obtain version info, make a request to the following URL: https://bigquery.cloud.google.com/datatransfer/oauthz/auth?redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=version_info&client_id=client_id&scope=data_source_scopes * The client_id is the OAuth client_id of the data source as returned by ListDataSources method. * data_source_scopes are the scopes returned by ListDataSources method. Note that this should not be set when `service_account_name` is used to create the transfer config.",
                      "location": "query"
                    }
                  },
                  "response": {
                    "$ref": "TransferConfig"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/bigquery",
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "httpMethod": "POST",
                  "id": "bigquerydatatransfer.projects.locations.transferConfigs.create",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/transferConfigs"
                },
                "startManualRuns": {
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/transferConfigs/{transferConfigsId}:startManualRuns",
                  "path": "v1/{+parent}:startManualRuns",
                  "scopes": [
                    "https://www.googleapis.com/auth/bigquery",
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "response": {
                    "$ref": "StartManualTransferRunsResponse"
                  },
                  "id": "bigquerydatatransfer.projects.locations.transferConfigs.startManualRuns",
                  "request": {
                    "$ref": "StartManualTransferRunsRequest"
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "parameters": {
                    "parent": {
                      "pattern": "^projects/[^/]+/locations/[^/]+/transferConfigs/[^/]+$",
                      "type": "string",
                      "description": "Required. Transfer configuration name. If you are using the regionless method, the location must be `US` and the name should be in the following form: * `projects/{project_id}/transferConfigs/{config_id}` If you are using the regionalized method, the name should be in the following form: * `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}`",
                      "location": "path",
                      "required": true
                    }
                  },
                  "description": "Manually initiates transfer runs. You can schedule these runs in two ways: 1. For a specific point in time using the 'requested_run_time' parameter. 2. For a period between 'start_time' (inclusive) and 'end_time' (exclusive). If scheduling a single run, it is set to execute immediately (schedule_time equals the current time). When scheduling multiple runs within a time range, the first run starts now, and subsequent runs are delayed by 15 seconds each.",
                  "httpMethod": "POST"
                },
                "list": {
                  "response": {
                    "$ref": "ListTransferConfigsResponse"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/bigquery",
                    "https://www.googleapis.com/auth/cloud-platform",
                    "https://www.googleapis.com/auth/cloud-platform.read-only"
                  ],
                  "parameterOrder": [
                    "parent"
                  ],
                  "description": "Returns information about all transfer configs owned by a project in the specified location.",
                  "path": "v1/{+parent}/transferConfigs",
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/transferConfigs",
                  "parameters": {
                    "pageSize": {
                      "type": "integer",
                      "location": "query",
                      "format": "int32",
                      "description": "Page size. The default page size is the maximum value of 1000 results."
                    },
                    "parent": {
                      "location": "path",
                      "description": "Required. The BigQuery project id for which transfer configs should be returned. If you are using the regionless method, the location must be `US` and `parent` should be in the following form: * `projects/{project_id} If you are using the regionalized method, `parent` should be in the following form: * `projects/{project_id}/locations/{location_id}`",
                      "type": "string",
                      "required": true,
                      "pattern": "^projects/[^/]+/locations/[^/]+$"
                    },
                    "dataSourceIds": {
                      "location": "query",
                      "type": "string",
                      "description": "When specified, only configurations of requested data sources are returned.",
                      "repeated": true
                    },
                    "pageToken": {
                      "location": "query",
                      "description": "Pagination token, which can be used to request a specific page of `ListTransfersRequest` list results. For multiple-page results, `ListTransfersResponse` outputs a `next_page` token, which can be used as the `page_token` value to request the next page of list results.",
                      "type": "string"
                    }
                  },
                  "httpMethod": "GET",
                  "id": "bigquerydatatransfer.projects.locations.transferConfigs.list"
                },
                "delete": {
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "type": "string",
                      "location": "path",
                      "pattern": "^projects/[^/]+/locations/[^/]+/transferConfigs/[^/]+$",
                      "description": "Required. The name of the resource to delete. If you are using the regionless method, the location must be `US` and the name should be in the following form: * `projects/{project_id}/transferConfigs/{config_id}` If you are using the regionalized method, the name should be in the following form: * `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}`",
                      "required": true
                    }
                  },
                  "httpMethod": "DELETE",
                  "description": "Deletes a data transfer configuration, including any associated transfer runs and logs.",
                  "scopes": [
                    "https://www.googleapis.com/auth/bigquery",
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/transferConfigs/{transferConfigsId}",
                  "path": "v1/{+name}",
                  "id": "bigquerydatatransfer.projects.locations.transferConfigs.delete",
                  "response": {
                    "$ref": "Empty"
                  }
                },
                "patch": {
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/transferConfigs/{transferConfigsId}",
                  "scopes": [
                    "https://www.googleapis.com/auth/bigquery",
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "path": "v1/{+name}",
                  "parameterOrder": [
                    "name"
                  ],
                  "response": {
                    "$ref": "TransferConfig"
                  },
                  "id": "bigquerydatatransfer.projects.locations.transferConfigs.patch",
                  "request": {
                    "$ref": "TransferConfig"
                  },
                  "parameters": {
                    "authorizationCode": {
                      "deprecated": true,
                      "location": "query",
                      "description": "Deprecated: Authorization code was required when `transferConfig.dataSourceId` is 'youtube_channel' but it is no longer used in any data sources. Use `version_info` instead. Optional OAuth2 authorization code to use with this transfer configuration. This is required only if `transferConfig.dataSourceId` is 'youtube_channel' and new credentials are needed, as indicated by `CheckValidCreds`. In order to obtain authorization_code, make a request to the following URL: https://bigquery.cloud.google.com/datatransfer/oauthz/auth?redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=authorization_code&client_id=client_id&scope=data_source_scopes * The client_id is the OAuth client_id of the data source as returned by ListDataSources method. * data_source_scopes are the scopes returned by ListDataSources method. Note that this should not be set when `service_account_name` is used to update the transfer config.",
                      "type": "string"
                    },
                    "name": {
                      "required": true,
                      "pattern": "^projects/[^/]+/locations/[^/]+/transferConfigs/[^/]+$",
                      "location": "path",
                      "description": "Identifier. The resource name of the transfer config. Transfer config names have the form either `projects/{project_id}/locations/{region}/transferConfigs/{config_id}` or `projects/{project_id}/transferConfigs/{config_id}`, where `config_id` is usually a UUID, even though it is not guaranteed or required. The name is ignored when creating a transfer config.",
                      "type": "string"
                    },
                    "versionInfo": {
                      "description": "Optional version info. This parameter replaces `authorization_code` which is no longer used in any data sources. This is required only if `transferConfig.dataSourceId` is 'youtube_channel' *or* new credentials are needed, as indicated by `CheckValidCreds`. In order to obtain version info, make a request to the following URL: https://bigquery.cloud.google.com/datatransfer/oauthz/auth?redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=version_info&client_id=client_id&scope=data_source_scopes * The client_id is the OAuth client_id of the data source as returned by ListDataSources method. * data_source_scopes are the scopes returned by ListDataSources method. Note that this should not be set when `service_account_name` is used to update the transfer config.",
                      "location": "query",
                      "type": "string"
                    },
                    "serviceAccountName": {
                      "location": "query",
                      "description": "Optional service account email. If this field is set, the transfer config will be created with this service account's credentials. It requires that the requesting user calling this API has permissions to act as this service account. Note that not all data sources support service account credentials when creating a transfer config. For the latest list of data sources, read about [using service accounts](https://cloud.google.com/bigquery-transfer/docs/use-service-accounts).",
                      "type": "string"
                    },
                    "updateMask": {
                      "location": "query",
                      "type": "string",
                      "format": "google-fieldmask",
                      "description": "Required. Required list of fields to be updated in this request."
                    }
                  },
                  "httpMethod": "PATCH",
                  "description": "Updates a data transfer configuration. All fields must be set, even if they are not updated."
                },
                "get": {
                  "response": {
                    "$ref": "TransferConfig"
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "parameters": {
                    "name": {
                      "description": "Required. The name of the resource requested. If you are using the regionless method, the location must be `US` and the name should be in the following form: * `projects/{project_id}/transferConfigs/{config_id}` If you are using the regionalized method, the name should be in the following form: * `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}`",
                      "type": "string",
                      "required": true,
                      "pattern": "^projects/[^/]+/locations/[^/]+/transferConfigs/[^/]+$",
                      "location": "path"
                    }
                  },
                  "path": "v1/{+name}",
                  "scopes": [
                    "https://www.googleapis.com/auth/bigquery",
                    "https://www.googleapis.com/auth/cloud-platform",
                    "https://www.googleapis.com/auth/cloud-platform.read-only"
                  ],
                  "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/transferConfigs/{transferConfigsId}",
                  "httpMethod": "GET",
                  "description": "Returns information about a data transfer config.",
                  "id": "bigquerydatatransfer.projects.locations.transferConfigs.get"
                }
              }
            }
          }
        },
        "dataSources": {
          "methods": {
            "checkValidCreds": {
              "parameterOrder": [
                "name"
              ],
              "flatPath": "v1/projects/{projectsId}/dataSources/{dataSourcesId}:checkValidCreds",
              "request": {
                "$ref": "CheckValidCredsRequest"
              },
              "response": {
                "$ref": "CheckValidCredsResponse"
              },
              "path": "v1/{+name}:checkValidCreds",
              "parameters": {
                "name": {
                  "location": "path",
                  "description": "Required. The name of the data source. If you are using the regionless method, the location must be `US` and the name should be in the following form: * `projects/{project_id}/dataSources/{data_source_id}` If you are using the regionalized method, the name should be in the following form: * `projects/{project_id}/locations/{location_id}/dataSources/{data_source_id}`",
                  "pattern": "^projects/[^/]+/dataSources/[^/]+$",
                  "type": "string",
                  "required": true
                }
              },
              "httpMethod": "POST",
              "scopes": [
                "https://www.googleapis.com/auth/bigquery",
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/cloud-platform.read-only"
              ],
              "id": "bigquerydatatransfer.projects.dataSources.checkValidCreds",
              "description": "Returns true if valid credentials exist for the given data source and requesting user."
            },
            "get": {
              "id": "bigquerydatatransfer.projects.dataSources.get",
              "httpMethod": "GET",
              "response": {
                "$ref": "DataSource"
              },
              "scopes": [
                "https://www.googleapis.com/auth/bigquery",
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/cloud-platform.read-only"
              ],
              "description": "Retrieves a supported data source and returns its settings.",
              "path": "v1/{+name}",
              "parameters": {
                "name": {
                  "description": "Required. The name of the resource requested. If you are using the regionless method, the location must be `US` and the name should be in the following form: * `projects/{project_id}/dataSources/{data_source_id}` If you are using the regionalized method, the name should be in the following form: * `projects/{project_id}/locations/{location_id}/dataSources/{data_source_id}`",
                  "location": "path",
                  "pattern": "^projects/[^/]+/dataSources/[^/]+$",
                  "type": "string",
                  "required": true
                }
              },
              "flatPath": "v1/projects/{projectsId}/dataSources/{dataSourcesId}",
              "parameterOrder": [
                "name"
              ]
            },
            "list": {
              "id": "bigquerydatatransfer.projects.dataSources.list",
              "parameterOrder": [
                "parent"
              ],
              "response": {
                "$ref": "ListDataSourcesResponse"
              },
              "parameters": {
                "pageToken": {
                  "location": "query",
                  "type": "string",
                  "description": "Pagination token, which can be used to request a specific page of `ListDataSourcesRequest` list results. For multiple-page results, `ListDataSourcesResponse` outputs a `next_page` token, which can be used as the `page_token` value to request the next page of list results."
                },
                "pageSize": {
                  "format": "int32",
                  "description": "Page size. The default page size is the maximum value of 1000 results.",
                  "type": "integer",
                  "location": "query"
                },
                "parent": {
                  "type": "string",
                  "location": "path",
                  "pattern": "^projects/[^/]+$",
                  "description": "Required. The BigQuery project id for which data sources should be returned. Must be in the form: `projects/{project_id}` or `projects/{project_id}/locations/{location_id}`",
                  "required": true
                }
              },
              "path": "v1/{+parent}/dataSources",
              "flatPath": "v1/projects/{projectsId}/dataSources",
              "scopes": [
                "https://www.googleapis.com/auth/bigquery",
                "https://www.googleapis.com/auth/cloud-platform",
                "https://www.googleapis.com/auth/cloud-platform.read-only"
              ],
              "httpMethod": "GET",
              "description": "Lists supported data sources and returns their settings."
            }
          }
        }
      }
    }
  },
  "version_module": true,
  "documentationLink": "https://cloud.google.com/bigquery-transfer/",
  "protocol": "rest",
  "ownerName": "Google",
  "kind": "discovery#restDescription",
  "version": "v1",
  "fullyEncodeReservedExpansion": true,
  "auth": {
    "oauth2": {
      "scopes": {
        "https://www.googleapis.com/auth/cloud-platform.read-only": {
          "description": "View your data across Google Cloud services and see the email address of your Google Account"
        },
        "https://www.googleapis.com/auth/bigquery": {
          "description": "View and manage your data in Google BigQuery and see the email address for your Google Account"
        },
        "https://www.googleapis.com/auth/cloud-platform": {
          "description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account."
        }
      }
    }
  },
  "description": "Schedule queries or transfer external data from SaaS applications to Google BigQuery on a regular basis.",
  "icons": {
    "x32": "http://www.google.com/images/icons/product/search-32.gif",
    "x16": "http://www.google.com/images/icons/product/search-16.gif"
  },
  "basePath": "",
  "title": "BigQuery Data Transfer API",
  "canonicalName": "BigQuery Data Transfer",
  "rootUrl": "https://bigquerydatatransfer.googleapis.com/",
  "ownerDomain": "google.com",
  "batchPath": "batch",
  "schemas": {
    "TransferStatusSummary": {
      "properties": {
        "metrics": {
          "description": "Optional. List of transfer status metrics.",
          "type": "array",
          "items": {
            "$ref": "TransferStatusMetric"
          }
        },
        "progressUnit": {
          "enumDescriptions": [
            "Default value.",
            "Bytes.",
            "Objects."
          ],
          "enum": [
            "TRANSFER_STATUS_UNIT_UNSPECIFIED",
            "TRANSFER_STATUS_UNIT_BYTES",
            "TRANSFER_STATUS_UNIT_OBJECTS"
          ],
          "type": "string",
          "description": "Input only. Unit based on which transfer status progress should be calculated."
        }
      },
      "id": "TransferStatusSummary",
      "type": "object",
      "description": "Status summary of the resource being transferred."
    },
    "EnrollDataSourcesRequest": {
      "id": "EnrollDataSourcesRequest",
      "description": "A request to enroll a set of data sources so they are visible in the BigQuery UI's `Transfer` tab.",
      "properties": {
        "dataSourceIds": {
          "type": "array",
          "description": "Data sources that are enrolled. It is required to provide at least one data source id.",
          "items": {
            "type": "string"
          }
        }
      },
      "type": "object"
    },
    "ListTransferResourcesResponse": {
      "type": "object",
      "description": "Response for the `ListTransferResources` RPC.",
      "properties": {
        "transferResources": {
          "readOnly": true,
          "type": "array",
          "description": "Output only. The transfer resources.",
          "items": {
            "$ref": "TransferResource"
          }
        },
        "nextPageToken": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages."
        }
      },
      "id": "ListTransferResourcesResponse"
    },
    "CheckValidCredsResponse": {
      "description": "A response indicating whether the credentials exist and are valid.",
      "type": "object",
      "properties": {
        "hasValidCreds": {
          "type": "boolean",
          "description": "If set to `true`, the credentials exist and are valid."
        }
      },
      "id": "CheckValidCredsResponse"
    },
    "Location": {
      "type": "object",
      "properties": {
        "metadata": {
          "description": "Service-specific metadata. For example the available capacity at the given location.",
          "additionalProperties": {
            "description": "Properties of the object. Contains field @type with type URL.",
            "type": "any"
          },
          "type": "object"
        },
        "name": {
          "description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`",
          "type": "string"
        },
        "labels": {
          "description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "displayName": {
          "description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".",
          "type": "string"
        },
        "locationId": {
          "type": "string",
          "description": "The canonical id for this location. For example: `\"us-east1\"`."
        }
      },
      "id": "Location",
      "description": "A resource that represents a Google Cloud location."
    },
    "ListLocationsResponse": {
      "id": "ListLocationsResponse",
      "properties": {
        "locations": {
          "type": "array",
          "items": {
            "$ref": "Location"
          },
          "description": "A list of locations that matches the specified filter in the request."
        },
        "nextPageToken": {
          "description": "The standard List next-page token.",
          "type": "string"
        }
      },
      "type": "object",
      "description": "The response message for Locations.ListLocations."
    },
    "TimeBasedSchedule": {
      "id": "TimeBasedSchedule",
      "type": "object",
      "description": "Options customizing the time based transfer schedule. Options are migrated from the original ScheduleOptions message.",
      "properties": {
        "endTime": {
          "format": "google-datetime",
          "description": "Defines time to stop scheduling transfer runs. A transfer run cannot be scheduled at or after the end time. The end time can be changed at any moment.",
          "type": "string"
        },
        "startTime": {
          "description": "Specifies time to start scheduling transfer runs. The first run will be scheduled at or after the start time according to a recurrence pattern defined in the schedule string. The start time can be changed at any moment.",
          "format": "google-datetime",
          "type": "string"
        },
        "schedule": {
          "description": "Data transfer schedule. If the data source does not support a custom schedule, this should be empty. If it is empty, the default value for the data source will be used. The specified times are in UTC. Examples of valid format: `1st,3rd monday of month 15:30`, `every wed,fri of jan,jun 13:15`, and `first sunday of quarter 00:00`. See more explanation about the format here: https://cloud.google.com/appengine/docs/flexible/python/scheduling-jobs-with-cron-yaml#the_schedule_format NOTE: The minimum interval time between recurring transfers depends on the data source; refer to the documentation for your data source.",
          "type": "string"
        }
      }
    },
    "TransferStatusMetric": {
      "properties": {
        "unit": {
          "description": "Optional. Unit for measuring progress (e.g., BYTES).",
          "type": "string",
          "enumDescriptions": [
            "Default value.",
            "Bytes.",
            "Objects."
          ],
          "enum": [
            "TRANSFER_STATUS_UNIT_UNSPECIFIED",
            "TRANSFER_STATUS_UNIT_BYTES",
            "TRANSFER_STATUS_UNIT_OBJECTS"
          ]
        },
        "total": {
          "type": "string",
          "description": "Optional. Total number of units for the transfer.",
          "format": "int64"
        },
        "failed": {
          "description": "Optional. Number of units that failed to transfer.",
          "type": "string",
          "format": "int64"
        },
        "pending": {
          "format": "int64",
          "type": "string",
          "description": "Optional. Number of units pending transfer."
        },
        "completed": {
          "description": "Optional. Number of units transferred successfully.",
          "type": "string",
          "format": "int64"
        }
      },
      "description": "Metrics for tracking the transfer status.",
      "type": "object",
      "id": "TransferStatusMetric"
    },
    "ListTransferLogsResponse": {
      "properties": {
        "nextPageToken": {
          "readOnly": true,
          "description": "Output only. The next-pagination token. For multiple-page list results, this token can be used as the `GetTransferRunLogRequest.page_token` to request the next page of list results.",
          "type": "string"
        },
        "transferMessages": {
          "description": "Output only. The stored pipeline transfer messages.",
          "items": {
            "$ref": "TransferMessage"
          },
          "readOnly": true,
          "type": "array"
        }
      },
      "type": "object",
      "id": "ListTransferLogsResponse",
      "description": "The returned list transfer run messages."
    },
    "TransferResourceStatusDetail": {
      "id": "TransferResourceStatusDetail",
      "description": "Status details of the resource being transferred.",
      "properties": {
        "summary": {
          "$ref": "TransferStatusSummary",
          "description": "Optional. Transfer status summary of the resource."
        },
        "state": {
          "enum": [
            "RESOURCE_TRANSFER_STATE_UNSPECIFIED",
            "RESOURCE_TRANSFER_PENDING",
            "RESOURCE_TRANSFER_RUNNING",
            "RESOURCE_TRANSFER_SUCCEEDED",
            "RESOURCE_TRANSFER_FAILED",
            "RESOURCE_TRANSFER_CANCELLED"
          ],
          "type": "string",
          "enumDescriptions": [
            "Default value.",
            "Resource is waiting to be transferred.",
            "Resource transfer is running.",
            "Resource transfer is a success.",
            "Resource transfer failed.",
            "Resource transfer was cancelled."
          ],
          "description": "Optional. Transfer state of the resource."
        },
        "error": {
          "$ref": "Status",
          "description": "Optional. Transfer error details for the resource."
        },
        "completedPercentage": {
          "format": "double",
          "type": "number",
          "readOnly": true,
          "description": "Output only. Percentage of the transfer completed. Valid values: 0-100."
        }
      },
      "type": "object"
    },
    "TimeRange": {
      "description": "A specification for a time range, this will request transfer runs with run_time between start_time (inclusive) and end_time (exclusive).",
      "type": "object",
      "id": "TimeRange",
      "properties": {
        "startTime": {
          "description": "Start time of the range of transfer runs. For example, `\"2017-05-25T00:00:00+00:00\"`. The start_time must be strictly less than the end_time. Creates transfer runs where run_time is in the range between start_time (inclusive) and end_time (exclusive).",
          "format": "google-datetime",
          "type": "string"
        },
        "endTime": {
          "type": "string",
          "description": "End time of the range of transfer runs. For example, `\"2017-05-30T00:00:00+00:00\"`. The end_time must not be in the future. Creates transfer runs where run_time is in the range between start_time (inclusive) and end_time (exclusive).",
          "format": "google-datetime"
        }
      }
    },
    "CheckValidCredsRequest": {
      "properties": {},
      "type": "object",
      "id": "CheckValidCredsRequest",
      "description": "A request to determine whether the user has valid credentials. This method is used to limit the number of OAuth popups in the user interface. The user id is inferred from the API call context. If the data source has the Google+ authorization type, this method returns false, as it cannot be determined whether the credentials are already valid merely based on the user id."
    },
    "TransferRunBrief": {
      "properties": {
        "startTime": {
          "type": "string",
          "description": "Optional. Start time of the transfer run.",
          "format": "google-datetime"
        },
        "run": {
          "description": "Optional. Run URI. The format must be: `projects/{project}/locations/{location}/transferConfigs/{transfer_config}/run/{run}`",
          "type": "string"
        }
      },
      "description": "Basic information about a transfer run.",
      "id": "TransferRunBrief",
      "type": "object"
    },
    "ScheduleTransferRunsResponse": {
      "description": "A response to schedule transfer runs for a time range.",
      "properties": {
        "runs": {
          "type": "array",
          "items": {
            "$ref": "TransferRun"
          },
          "description": "The transfer runs that were scheduled."
        }
      },
      "type": "object",
      "id": "ScheduleTransferRunsResponse"
    },
    "ManualSchedule": {
      "id": "ManualSchedule",
      "properties": {},
      "type": "object",
      "description": "Options customizing manual transfers schedule."
    },
    "Status": {
      "type": "object",
      "properties": {
        "message": {
          "description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.",
          "type": "string"
        },
        "details": {
          "items": {
            "additionalProperties": {
              "description": "Properties of the object. Contains field @type with type URL.",
              "type": "any"
            },
            "type": "object"
          },
          "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.",
          "type": "array"
        },
        "code": {
          "description": "The status code, which should be an enum value of google.rpc.Code.",
          "format": "int32",
          "type": "integer"
        }
      },
      "id": "Status",
      "description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors)."
    },
    "DataSource": {
      "id": "DataSource",
      "type": "object",
      "properties": {
        "dataRefreshType": {
          "description": "Specifies whether the data source supports automatic data refresh for the past few days, and how it's supported. For some data sources, data might not be complete until a few days later, so it's useful to refresh data automatically.",
          "enum": [
            "DATA_REFRESH_TYPE_UNSPECIFIED",
            "SLIDING_WINDOW",
            "CUSTOM_SLIDING_WINDOW"
          ],
          "enumDescriptions": [
            "The data source won't support data auto refresh, which is default value.",
            "The data source supports data auto refresh, and runs will be scheduled for the past few days. Does not allow custom values to be set for each transfer config.",
            "The data source supports data auto refresh, and runs will be scheduled for the past few days. Allows custom values to be set for each transfer config."
          ],
          "type": "string"
        },
        "dataSourceId": {
          "description": "Data source id.",
          "type": "string"
        },
        "defaultDataRefreshWindowDays": {
          "description": "Default data refresh window on days. Only meaningful when `data_refresh_type` = `SLIDING_WINDOW`.",
          "type": "integer",
          "format": "int32"
        },
        "scopes": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "description": "Api auth scopes for which refresh token needs to be obtained. These are scopes needed by a data source to prepare data and ingest them into BigQuery, e.g., https://www.googleapis.com/auth/bigquery"
        },
        "authorizationType": {
          "enumDescriptions": [
            "Type unspecified.",
            "Use OAuth 2 authorization codes that can be exchanged for a refresh token on the backend.",
            "Return an authorization code for a given Google+ page that can then be exchanged for a refresh token on the backend.",
            "Use First Party OAuth."
          ],
          "description": "Indicates the type of authorization.",
          "enum": [
            "AUTHORIZATION_TYPE_UNSPECIFIED",
            "AUTHORIZATION_CODE",
            "GOOGLE_PLUS_AUTHORIZATION_CODE",
            "FIRST_PARTY_OAUTH"
          ],
          "type": "string"
        },
        "supportsMultipleTransfers": {
          "description": "Deprecated. This field has no effect.",
          "deprecated": true,
          "type": "boolean"
        },
        "helpUrl": {
          "type": "string",
          "description": "Url for the help document for this data source."
        },
        "defaultSchedule": {
          "type": "string",
          "description": "Default data transfer schedule. Examples of valid schedules include: `1st,3rd monday of month 15:30`, `every wed,fri of jan,jun 13:15`, and `first sunday of quarter 00:00`."
        },
        "minimumScheduleInterval": {
          "type": "string",
          "description": "The minimum interval for scheduler to schedule runs.",
          "format": "google-duration"
        },
        "supportsCustomSchedule": {
          "description": "Specifies whether the data source supports a user defined schedule, or operates on the default schedule. When set to `true`, user can override default schedule.",
          "type": "boolean"
        },
        "description": {
          "type": "string",
          "description": "User friendly data source description string."
        },
        "name": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Data source resource name."
        },
        "parameters": {
          "items": {
            "$ref": "DataSourceParameter"
          },
          "type": "array",
          "description": "Data source parameters."
        },
        "displayName": {
          "description": "User friendly data source name.",
          "type": "string"
        },
        "updateDeadlineSeconds": {
          "type": "integer",
          "description": "The number of seconds to wait for an update from the data source before the Data Transfer Service marks the transfer as FAILED.",
          "format": "int32"
        },
        "manualRunsDisabled": {
          "type": "boolean",
          "description": "Disables backfilling and manual run scheduling for the data source."
        },
        "transferType": {
          "type": "string",
          "description": "Deprecated. This field has no effect.",
          "deprecated": true,
          "enumDescriptions": [
            "Invalid or Unknown transfer type placeholder.",
            "Batch data transfer.",
            "Streaming data transfer. Streaming data source currently doesn't support multiple transfer configs per project."
          ],
          "enum": [
            "TRANSFER_TYPE_UNSPECIFIED",
            "BATCH",
            "STREAMING"
          ]
        },
        "clientId": {
          "type": "string",
          "description": "Data source client id which should be used to receive refresh token."
        }
      },
      "description": "Defines the properties and custom parameters for a data source."
    },
    "ListTransferConfigsResponse": {
      "properties": {
        "transferConfigs": {
          "type": "array",
          "items": {
            "$ref": "TransferConfig"
          },
          "description": "Output only. The stored pipeline transfer configurations.",
          "readOnly": true
        },
        "nextPageToken": {
          "type": "string",
          "description": "Output only. The next-pagination token. For multiple-page list results, this token can be used as the `ListTransferConfigsRequest.page_token` to request the next page of list results.",
          "readOnly": true
        }
      },
      "type": "object",
      "description": "The returned list of pipelines in the project.",
      "id": "ListTransferConfigsResponse"
    },
    "TableDetail": {
      "properties": {
        "partitionCount": {
          "description": "Optional. Total number of partitions being tracked within the table.",
          "format": "int64",
          "type": "string"
        }
      },
      "description": "Table details related to hierarchy.",
      "id": "TableDetail",
      "type": "object"
    },
    "UserInfo": {
      "description": "Information about a user.",
      "properties": {
        "email": {
          "type": "string",
          "description": "E-mail address of the user."
        }
      },
      "id": "UserInfo",
      "type": "object"
    },
    "EmailPreferences": {
      "properties": {
        "enableFailureEmail": {
          "description": "If true, email notifications will be sent on transfer run failures.",
          "type": "boolean"
        }
      },
      "type": "object",
      "description": "Represents preferences for sending email notifications for transfer run events.",
      "id": "EmailPreferences"
    },
    "PartitionDetail": {
      "description": "Partition details related to hierarchy.",
      "id": "PartitionDetail",
      "properties": {
        "table": {
          "description": "Optional. Name of the table which has the partitions.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "StartManualTransferRunsRequest": {
      "description": "A request to start manual transfer runs.",
      "type": "object",
      "id": "StartManualTransferRunsRequest",
      "properties": {
        "requestedTimeRange": {
          "description": "A time_range start and end timestamp for historical data files or reports that are scheduled to be transferred by the scheduled transfer run. requested_time_range must be a past time and cannot include future time values.",
          "$ref": "TimeRange"
        },
        "requestedRunTime": {
          "description": "A run_time timestamp for historical data files or reports that are scheduled to be transferred by the scheduled transfer run. requested_run_time must be a past time and cannot include future time values.",
          "type": "string",
          "format": "google-datetime"
        }
      }
    },
    "DataSourceParameter": {
      "id": "DataSourceParameter",
      "description": "A parameter used to define custom fields in a data source definition.",
      "properties": {
        "required": {
          "type": "boolean",
          "description": "Is parameter required."
        },
        "paramId": {
          "type": "string",
          "description": "Parameter identifier."
        },
        "repeated": {
          "description": "Deprecated. This field has no effect.",
          "type": "boolean"
        },
        "maxListSize": {
          "type": "string",
          "format": "int64",
          "description": "For list parameters, the max size of the list."
        },
        "allowedValues": {
          "items": {
            "type": "string"
          },
          "description": "All possible values for the parameter.",
          "type": "array"
        },
        "immutable": {
          "description": "Cannot be changed after initial creation.",
          "type": "boolean"
        },
        "deprecated": {
          "description": "If true, it should not be used in new transfers, and it should not be visible to users.",
          "type": "boolean"
        },
        "description": {
          "type": "string",
          "description": "Parameter description."
        },
        "fields": {
          "items": {
            "$ref": "DataSourceParameter"
          },
          "description": "Deprecated. This field has no effect.",
          "type": "array"
        },
        "displayName": {
          "description": "Parameter display name in the user interface.",
          "type": "string"
        },
        "validationDescription": {
          "description": "Description of the requirements for this field, in case the user input does not fulfill the regex pattern or min/max values.",
          "type": "string"
        },
        "validationHelpUrl": {
          "type": "string",
          "description": "URL to a help document to further explain the naming requirements."
        },
        "type": {
          "description": "Parameter type.",
          "enumDescriptions": [
            "Type unspecified.",
            "String parameter.",
            "Integer parameter (64-bits). Will be serialized to json as string.",
            "Double precision floating point parameter.",
            "Boolean parameter.",
            "Deprecated. This field has no effect.",
            "Page ID for a Google+ Page.",
            "List of strings parameter."
          ],
          "enum": [
            "TYPE_UNSPECIFIED",
            "STRING",
            "INTEGER",
            "DOUBLE",
            "BOOLEAN",
            "RECORD",
            "PLUS_PAGE",
            "LIST"
          ],
          "type": "string"
        },
        "minValue": {
          "description": "For integer and double values specifies minimum allowed value.",
          "format": "double",
          "type": "number"
        },
        "secretManagerAllowed": {
          "readOnly": true,
          "description": "Output only. If true, the parameter value can be provided through Secret Manager.",
          "type": "boolean"
        },
        "maxValue": {
          "description": "For integer and double values specifies maximum allowed value.",
          "format": "double",
          "type": "number"
        },
        "recurse": {
          "type": "boolean",
          "description": "Deprecated. This field has no effect."
        },
        "validationRegex": {
          "type": "string",
          "description": "Regular expression which can be used for parameter validation."
        }
      },
      "type": "object"
    },
    "HierarchyDetail": {
      "type": "object",
      "id": "HierarchyDetail",
      "description": "Details about the hierarchy.",
      "properties": {
        "tableDetail": {
          "description": "Optional. Table details related to hierarchy.",
          "$ref": "TableDetail"
        },
        "partitionDetail": {
          "description": "Optional. Partition details related to hierarchy.",
          "$ref": "PartitionDetail"
        }
      }
    },
    "TransferMessage": {
      "type": "object",
      "id": "TransferMessage",
      "description": "Represents a user facing message for a particular data transfer run.",
      "properties": {
        "messageTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "Time when message was logged."
        },
        "severity": {
          "enumDescriptions": [
            "No severity specified.",
            "Informational message.",
            "Warning message.",
            "Error message."
          ],
          "type": "string",
          "description": "Message severity.",
          "enum": [
            "MESSAGE_SEVERITY_UNSPECIFIED",
            "INFO",
            "WARNING",
            "ERROR"
          ]
        },
        "messageText": {
          "description": "Message text.",
          "type": "string"
        }
      }
    },
    "ScheduleOptions": {
      "type": "object",
      "id": "ScheduleOptions",
      "properties": {
        "startTime": {
          "description": "Specifies time to start scheduling transfer runs. The first run will be scheduled at or after the start time according to a recurrence pattern defined in the schedule string. The start time can be changed at any moment. The time when a data transfer can be triggered manually is not limited by this option.",
          "type": "string",
          "format": "google-datetime"
        },
        "endTime": {
          "description": "Defines time to stop scheduling transfer runs. A transfer run cannot be scheduled at or after the end time. The end time can be changed at any moment. The time when a data transfer can be triggered manually is not limited by this option.",
          "format": "google-datetime",
          "type": "string"
        },
        "disableAutoScheduling": {
          "type": "boolean",
          "description": "If true, automatic scheduling of data transfer runs for this configuration will be disabled. The runs can be started on ad-hoc basis using StartManualTransferRuns API. When automatic scheduling is disabled, the TransferConfig.schedule field will be ignored."
        }
      },
      "description": "Options customizing the data transfer schedule."
    },
    "EventDrivenSchedule": {
      "description": "Options customizing EventDriven transfers schedule.",
      "type": "object",
      "properties": {
        "pubsubSubscription": {
          "description": "Pub/Sub subscription name used to receive events. Only Google Cloud Storage data source support this option. Format: projects/{project}/subscriptions/{subscription}",
          "type": "string"
        }
      },
      "id": "EventDrivenSchedule"
    },
    "ScheduleOptionsV2": {
      "properties": {
        "timeBasedSchedule": {
          "description": "Time based transfer schedule options. This is the default schedule option.",
          "$ref": "TimeBasedSchedule"
        },
        "eventDrivenSchedule": {
          "$ref": "EventDrivenSchedule",
          "description": "Event driven transfer schedule options. If set, the transfer will be scheduled upon events arrial."
        },
        "manualSchedule": {
          "description": "Manual transfer schedule. If set, the transfer run will not be auto-scheduled by the system, unless the client invokes StartManualTransferRuns. This is equivalent to disable_auto_scheduling = true.",
          "$ref": "ManualSchedule"
        }
      },
      "id": "ScheduleOptionsV2",
      "description": "V2 options customizing different types of data transfer schedule. This field supports existing time-based and manual transfer schedule. Also supports Event-Driven transfer schedule. ScheduleOptionsV2 cannot be used together with ScheduleOptions/Schedule.",
      "type": "object"
    },
    "ListTransferRunsResponse": {
      "properties": {
        "transferRuns": {
          "description": "Output only. The stored pipeline transfer runs.",
          "items": {
            "$ref": "TransferRun"
          },
          "type": "array",
          "readOnly": true
        },
        "nextPageToken": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. The next-pagination token. For multiple-page list results, this token can be used as the `ListTransferRunsRequest.page_token` to request the next page of list results."
        }
      },
      "id": "ListTransferRunsResponse",
      "type": "object",
      "description": "The returned list of pipelines in the project."
    },
    "StartManualTransferRunsResponse": {
      "properties": {
        "runs": {
          "type": "array",
          "description": "The transfer runs that were created.",
          "items": {
            "$ref": "TransferRun"
          }
        }
      },
      "type": "object",
      "description": "A response to start manual transfer runs.",
      "id": "StartManualTransferRunsResponse"
    },
    "Empty": {
      "type": "object",
      "properties": {},
      "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }",
      "id": "Empty"
    },
    "EncryptionConfiguration": {
      "id": "EncryptionConfiguration",
      "properties": {
        "kmsKeyName": {
          "description": "The name of the KMS key used for encrypting BigQuery data.",
          "type": "string"
        }
      },
      "type": "object",
      "description": "Represents the encryption configuration for a transfer."
    },
    "UnenrollDataSourcesRequest": {
      "description": "A request to unenroll a set of data sources so they are no longer visible in the BigQuery UI's `Transfer` tab.",
      "type": "object",
      "properties": {
        "dataSourceIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Data sources that are unenrolled. It is required to provide at least one data source id."
        }
      },
      "id": "UnenrollDataSourcesRequest"
    },
    "ScheduleTransferRunsRequest": {
      "id": "ScheduleTransferRunsRequest",
      "type": "object",
      "description": "A request to schedule transfer runs for a time range.",
      "properties": {
        "endTime": {
          "description": "Required. End time of the range of transfer runs. For example, `\"2017-05-30T00:00:00+00:00\"`.",
          "type": "string",
          "format": "google-datetime"
        },
        "startTime": {
          "format": "google-datetime",
          "type": "string",
          "description": "Required. Start time of the range of transfer runs. For example, `\"2017-05-25T00:00:00+00:00\"`."
        }
      }
    },
    "ListDataSourcesResponse": {
      "properties": {
        "dataSources": {
          "type": "array",
          "items": {
            "$ref": "DataSource"
          },
          "description": "List of supported data sources and their transfer settings."
        },
        "nextPageToken": {
          "readOnly": true,
          "description": "Output only. The next-pagination token. For multiple-page list results, this token can be used as the `ListDataSourcesRequest.page_token` to request the next page of list results.",
          "type": "string"
        }
      },
      "type": "object",
      "description": "Returns list of supported data sources and their metadata.",
      "id": "ListDataSourcesResponse"
    },
    "ParameterConfig": {
      "properties": {
        "secretManagerManagedParams": {
          "description": "Optional. The list of parameters that are stored in Secret Manager. The value of a parameter included in this list will be interpreted as a Secret Manager key version resource name instead of a raw value. The raw value will be retrieved from Secret Manager upon execution.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "description": "Configuration for data source parameters.",
      "id": "ParameterConfig",
      "type": "object"
    },
    "TransferResource": {
      "id": "TransferResource",
      "description": "Resource (table/partition) that is being transferred.",
      "properties": {
        "latestRun": {
          "description": "Optional. Run details for the latest run.",
          "$ref": "TransferRunBrief"
        },
        "updateTime": {
          "description": "Output only. Time when the resource was last updated.",
          "type": "string",
          "format": "google-datetime",
          "readOnly": true
        },
        "destination": {
          "enum": [
            "RESOURCE_DESTINATION_UNSPECIFIED",
            "RESOURCE_DESTINATION_BIGQUERY",
            "RESOURCE_DESTINATION_DATAPROC_METASTORE",
            "RESOURCE_DESTINATION_BIGLAKE_METASTORE",
            "RESOURCE_DESTINATION_BIGLAKE_REST_CATALOG",
            "RESOURCE_DESTINATION_BIGLAKE_HIVE_CATALOG"
          ],
          "type": "string",
          "description": "Optional. Resource destination.",
          "enumDescriptions": [
            "Default value.",
            "BigQuery.",
            "Dataproc Metastore.",
            "BigLake Metastore.",
            "BigLake REST Catalog.",
            "BigLake Hive Catalog."
          ]
        },
        "name": {
          "description": "Identifier. Resource name.",
          "type": "string"
        },
        "lastSuccessfulRun": {
          "description": "Output only. Run details for the last successful run.",
          "$ref": "TransferRunBrief",
          "readOnly": true
        },
        "type": {
          "type": "string",
          "description": "Optional. Resource type.",
          "enumDescriptions": [
            "Default value.",
            "Table resource type.",
            "Partition resource type."
          ],
          "enum": [
            "RESOURCE_TYPE_UNSPECIFIED",
            "RESOURCE_TYPE_TABLE",
            "RESOURCE_TYPE_PARTITION"
          ]
        },
        "latestStatusDetail": {
          "description": "Optional. Status details for the latest run.",
          "$ref": "TransferResourceStatusDetail"
        },
        "hierarchyDetail": {
          "description": "Optional. Details about the hierarchy.",
          "$ref": "HierarchyDetail"
        }
      },
      "type": "object"
    },
    "TransferRun": {
      "type": "object",
      "id": "TransferRun",
      "properties": {
        "params": {
          "readOnly": true,
          "description": "Output only. Parameters specific to each data source. For more information see the bq tab in the 'Setting up a data transfer' section for each data source. For example the parameters for Cloud Storage transfers are listed here: https://cloud.google.com/bigquery-transfer/docs/cloud-storage-transfer#bq",
          "additionalProperties": {
            "description": "Properties of the object.",
            "type": "any"
          },
          "type": "object"
        },
        "destinationDatasetId": {
          "description": "Output only. The BigQuery target dataset id.",
          "type": "string",
          "readOnly": true
        },
        "name": {
          "type": "string",
          "description": "Identifier. The resource name of the transfer run. Transfer run names have the form `projects/{project_id}/locations/{location}/transferConfigs/{config_id}/runs/{run_id}`. The name is ignored when creating a transfer run."
        },
        "endTime": {
          "format": "google-datetime",
          "type": "string",
          "readOnly": true,
          "description": "Output only. Time when transfer run ended. Parameter ignored by server for input requests."
        },
        "updateTime": {
          "format": "google-datetime",
          "readOnly": true,
          "type": "string",
          "description": "Output only. Last time the data transfer run state was updated."
        },
        "emailPreferences": {
          "description": "Output only. Email notifications will be sent according to these preferences to the email address of the user who owns the transfer config this run was derived from.",
          "readOnly": true,
          "$ref": "EmailPreferences"
        },
        "schedule": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Describes the schedule of this transfer run if it was created as part of a regular schedule. For batch transfer runs that are scheduled manually, this is empty. NOTE: the system might choose to delay the schedule depending on the current load, so `schedule_time` doesn't always match this."
        },
        "runTime": {
          "type": "string",
          "description": "For batch transfer runs, specifies the date and time of the data should be ingested.",
          "format": "google-datetime"
        },
        "errorStatus": {
          "description": "Status of the transfer run.",
          "$ref": "Status"
        },
        "dataSourceId": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. Data source id."
        },
        "scheduleTime": {
          "format": "google-datetime",
          "type": "string",
          "description": "Minimum time after which a transfer run can be started."
        },
        "state": {
          "enum": [
            "TRANSFER_STATE_UNSPECIFIED",
            "PENDING",
            "RUNNING",
            "SUCCEEDED",
            "FAILED",
            "CANCELLED"
          ],
          "enumDescriptions": [
            "State placeholder (0).",
            "Data transfer is scheduled and is waiting to be picked up by data transfer backend (2).",
            "Data transfer is in progress (3).",
            "Data transfer completed successfully (4).",
            "Data transfer failed (5).",
            "Data transfer is cancelled (6)."
          ],
          "type": "string",
          "description": "Data transfer run state. Ignored for input requests."
        },
        "userId": {
          "description": "Deprecated. Unique ID of the user on whose behalf transfer is done.",
          "type": "string",
          "format": "int64"
        },
        "notificationPubsubTopic": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Pub/Sub topic where a notification will be sent after this transfer run finishes. The format for specifying a pubsub topic is: `projects/{project_id}/topics/{topic_id}`"
        },
        "startTime": {
          "readOnly": true,
          "type": "string",
          "description": "Output only. Time when transfer run was started. Parameter ignored by server for input requests.",
          "format": "google-datetime"
        },
        "parameterConfig": {
          "description": "Output only. The parameter config of the transfer run.",
          "readOnly": true,
          "$ref": "ParameterConfig"
        }
      },
      "description": "Represents a data transfer run."
    },
    "TransferConfig": {
      "properties": {
        "params": {
          "description": "Parameters specific to each data source. For more information see the bq tab in the 'Setting up a data transfer' section for each data source. For example the parameters for Cloud Storage transfers are listed here: https://cloud.google.com/bigquery-transfer/docs/cloud-storage-transfer#bq",
          "type": "object",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object."
          }
        },
        "dataSourceId": {
          "type": "string",
          "description": "Data source ID. This cannot be changed once data transfer is created. The full list of available data source IDs can be returned through an API call: https://cloud.google.com/bigquery-transfer/docs/reference/datatransfer/rest/v1/projects.locations.dataSources/list"
        },
        "nextRunTime": {
          "format": "google-datetime",
          "readOnly": true,
          "type": "string",
          "description": "Output only. Next time when data transfer will run."
        },
        "state": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. State of the most recently updated transfer run.",
          "enum": [
            "TRANSFER_STATE_UNSPECIFIED",
            "PENDING",
            "RUNNING",
            "SUCCEEDED",
            "FAILED",
            "CANCELLED"
          ],
          "enumDescriptions": [
            "State placeholder (0).",
            "Data transfer is scheduled and is waiting to be picked up by data transfer backend (2).",
            "Data transfer is in progress (3).",
            "Data transfer completed successfully (4).",
            "Data transfer failed (5).",
            "Data transfer is cancelled (6)."
          ]
        },
        "error": {
          "readOnly": true,
          "description": "Output only. Error code with detailed information about reason of the latest config failure.",
          "$ref": "Status"
        },
        "dataRefreshWindowDays": {
          "format": "int32",
          "type": "integer",
          "description": "The number of days to look back to automatically refresh the data. For example, if `data_refresh_window_days = 10`, then every day BigQuery reingests data for [today-10, today-1], rather than ingesting data for just [today-1]. Only valid if the data source supports the feature. Set the value to 0 to use the default value."
        },
        "name": {
          "type": "string",
          "description": "Identifier. The resource name of the transfer config. Transfer config names have the form either `projects/{project_id}/locations/{region}/transferConfigs/{config_id}` or `projects/{project_id}/transferConfigs/{config_id}`, where `config_id` is usually a UUID, even though it is not guaranteed or required. The name is ignored when creating a transfer config."
        },
        "paramConfig": {
          "description": "Optional. The config for values in `params`.",
          "$ref": "ParameterConfig"
        },
        "updateTime": {
          "format": "google-datetime",
          "readOnly": true,
          "description": "Output only. Data transfer modification time. Ignored by server on input.",
          "type": "string"
        },
        "ownerInfo": {
          "description": "Output only. Information about the user whose credentials are used to transfer data. Populated only for `transferConfigs.get` requests. In case the user information is not available, this field will not be populated.",
          "$ref": "UserInfo",
          "readOnly": true
        },
        "emailPreferences": {
          "$ref": "EmailPreferences",
          "description": "Email notifications will be sent according to these preferences to the email address of the user who owns this transfer config."
        },
        "scheduleOptions": {
          "$ref": "ScheduleOptions",
          "description": "Options customizing the data transfer schedule."
        },
        "destinationDatasetId": {
          "description": "The BigQuery target dataset id.",
          "type": "string"
        },
        "notificationPubsubTopic": {
          "type": "string",
          "description": "Pub/Sub topic where notifications will be sent after transfer runs associated with this transfer config finish. The format for specifying a pubsub topic is: `projects/{project_id}/topics/{topic_id}`"
        },
        "displayName": {
          "description": "User specified display name for the data transfer.",
          "type": "string"
        },
        "scheduleOptionsV2": {
          "description": "Options customizing different types of data transfer schedule. This field replaces \"schedule\" and \"schedule_options\" fields. ScheduleOptionsV2 cannot be used together with ScheduleOptions/Schedule.",
          "$ref": "ScheduleOptionsV2"
        },
        "userId": {
          "format": "int64",
          "description": "Deprecated. Unique ID of the user on whose behalf transfer is done.",
          "type": "string"
        },
        "schedule": {
          "description": "Data transfer schedule. If the data source does not support a custom schedule, this should be empty. If it is empty, the default value for the data source will be used. The specified times are in UTC. Examples of valid format: `1st,3rd monday of month 15:30`, `every wed,fri of jan,jun 13:15`, and `first sunday of quarter 00:00`. See more explanation about the format here: https://cloud.google.com/appengine/docs/flexible/python/scheduling-jobs-with-cron-yaml#the_schedule_format NOTE: The minimum interval time between recurring transfers depends on the data source; refer to the documentation for your data source.",
          "type": "string"
        },
        "encryptionConfiguration": {
          "$ref": "EncryptionConfiguration",
          "description": "The encryption configuration part. Currently, it is only used for the optional KMS key name. The BigQuery service account of your project must be granted permissions to use the key. Read methods will return the key name applied in effect. Write methods will apply the key if it is present, or otherwise try to apply project default keys if it is absent."
        },
        "managedTableType": {
          "enumDescriptions": [
            "Type unspecified. This defaults to `NATIVE` table.",
            "The managed table is a native BigQuery table. This is the default value.",
            "The managed table is a BigQuery table for Apache Iceberg (formerly BigLake managed tables), with a BigLake configuration."
          ],
          "enum": [
            "MANAGED_TABLE_TYPE_UNSPECIFIED",
            "NATIVE",
            "BIGLAKE"
          ],
          "type": "string",
          "description": "The classification of the destination table."
        },
        "disabled": {
          "description": "Is this config disabled. When set to true, no runs will be scheduled for this transfer config.",
          "type": "boolean"
        },
        "metadataDestination": {
          "$ref": "MetadataDestination",
          "description": "The metadata destination of the transfer config."
        },
        "datasetRegion": {
          "type": "string",
          "description": "Output only. Region in which BigQuery dataset is located.",
          "readOnly": true
        }
      },
      "type": "object",
      "id": "TransferConfig",
      "description": "Represents a data transfer configuration. A transfer configuration contains all metadata needed to perform a data transfer. For example, `destination_dataset_id` specifies where data should be stored. When a new transfer configuration is created, the specified `destination_dataset_id` is created when needed and shared with the appropriate data source service account."
    },
    "DataplexConfiguration": {
      "description": "Configuration for Dataplex destination.",
      "type": "object",
      "id": "DataplexConfiguration",
      "properties": {
        "entryGroup": {
          "description": "Required. The Dataplex Universal Catalog entry group for importing the metadata. entry_group has the format of `projects/{project_id}/locations/{region}/entryGroups/{entry_group_id}`.",
          "type": "string"
        }
      }
    },
    "MetadataDestination": {
      "description": "The metadata destination of the transfer config.",
      "type": "object",
      "id": "MetadataDestination",
      "properties": {
        "dataplexConfiguration": {
          "description": "The Dataplex Universal Catalog configuration.",
          "$ref": "DataplexConfiguration"
        }
      }
    }
  },
  "endpoints": [
    {
      "endpointUrl": "https://bigquerydatatransfer.asia-south1.rep.googleapis.com/",
      "location": "asia-south1",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://bigquerydatatransfer.asia-south2.rep.googleapis.com/",
      "location": "asia-south2",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://bigquerydatatransfer.europe-west1.rep.googleapis.com/",
      "location": "europe-west1",
      "description": "Regional Endpoint"
    },
    {
      "location": "europe-west10",
      "endpointUrl": "https://bigquerydatatransfer.europe-west10.rep.googleapis.com/",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://bigquerydatatransfer.europe-west2.rep.googleapis.com/",
      "location": "europe-west2",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://bigquerydatatransfer.europe-west3.rep.googleapis.com/",
      "location": "europe-west3",
      "description": "Regional Endpoint"
    },
    {
      "location": "europe-west4",
      "description": "Regional Endpoint",
      "endpointUrl": "https://bigquerydatatransfer.europe-west4.rep.googleapis.com/"
    },
    {
      "description": "Regional Endpoint",
      "endpointUrl": "https://bigquerydatatransfer.europe-west6.rep.googleapis.com/",
      "location": "europe-west6"
    },
    {
      "description": "Regional Endpoint",
      "endpointUrl": "https://bigquerydatatransfer.europe-west8.rep.googleapis.com/",
      "location": "europe-west8"
    },
    {
      "description": "Regional Endpoint",
      "location": "europe-west9",
      "endpointUrl": "https://bigquerydatatransfer.europe-west9.rep.googleapis.com/"
    },
    {
      "location": "me-central2",
      "endpointUrl": "https://bigquerydatatransfer.me-central2.rep.googleapis.com/",
      "description": "Regional Endpoint"
    },
    {
      "description": "Regional Endpoint",
      "location": "northamerica-northeast1",
      "endpointUrl": "https://bigquerydatatransfer.northamerica-northeast1.rep.googleapis.com/"
    },
    {
      "endpointUrl": "https://bigquerydatatransfer.northamerica-northeast2.rep.googleapis.com/",
      "description": "Regional Endpoint",
      "location": "northamerica-northeast2"
    },
    {
      "description": "Regional Endpoint",
      "endpointUrl": "https://bigquerydatatransfer.us-central1.rep.googleapis.com/",
      "location": "us-central1"
    },
    {
      "location": "us-central2",
      "endpointUrl": "https://bigquerydatatransfer.us-central2.rep.googleapis.com/",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://bigquerydatatransfer.us-east1.rep.googleapis.com/",
      "location": "us-east1",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://bigquerydatatransfer.us-east4.rep.googleapis.com/",
      "location": "us-east4",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://bigquerydatatransfer.us-east5.rep.googleapis.com/",
      "location": "us-east5",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://bigquerydatatransfer.us-east7.rep.googleapis.com/",
      "description": "Regional Endpoint",
      "location": "us-east7"
    },
    {
      "endpointUrl": "https://bigquerydatatransfer.us-south1.rep.googleapis.com/",
      "location": "us-south1",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://bigquerydatatransfer.us-west1.rep.googleapis.com/",
      "location": "us-west1",
      "description": "Regional Endpoint"
    },
    {
      "location": "us-west2",
      "endpointUrl": "https://bigquerydatatransfer.us-west2.rep.googleapis.com/",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://bigquerydatatransfer.us-west3.rep.googleapis.com/",
      "location": "us-west3",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://bigquerydatatransfer.us-west4.rep.googleapis.com/",
      "location": "us-west4",
      "description": "Regional Endpoint"
    },
    {
      "endpointUrl": "https://bigquerydatatransfer.us-west8.rep.googleapis.com/",
      "location": "us-west8",
      "description": "Regional Endpoint"
    }
  ],
  "id": "bigquerydatatransfer:v1",
  "name": "bigquerydatatransfer",
  "parameters": {
    "callback": {
      "description": "JSONP",
      "location": "query",
      "type": "string"
    },
    "key": {
      "type": "string",
      "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
      "location": "query"
    },
    "alt": {
      "enum": [
        "json",
        "media",
        "proto"
      ],
      "default": "json",
      "location": "query",
      "description": "Data format for response.",
      "type": "string",
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ]
    },
    "access_token": {
      "location": "query",
      "type": "string",
      "description": "OAuth access token."
    },
    "upload_protocol": {
      "type": "string",
      "location": "query",
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\")."
    },
    "uploadType": {
      "type": "string",
      "location": "query",
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\")."
    },
    "fields": {
      "type": "string",
      "description": "Selector specifying which fields to include in a partial response.",
      "location": "query"
    },
    "quotaUser": {
      "location": "query",
      "type": "string",
      "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters."
    },
    "$.xgafv": {
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "enum": [
        "1",
        "2"
      ],
      "location": "query",
      "description": "V1 error format.",
      "type": "string"
    },
    "oauth_token": {
      "location": "query",
      "type": "string",
      "description": "OAuth 2.0 token for the current user."
    },
    "prettyPrint": {
      "description": "Returns response with indentations and line breaks.",
      "location": "query",
      "type": "boolean",
      "default": "true"
    }
  },
  "mtlsRootUrl": "https://bigquerydatatransfer.mtls.googleapis.com/",
  "servicePath": "",
  "baseUrl": "https://bigquerydatatransfer.googleapis.com/"
}
