Api-Roll 49: 2017-05-23
diff --git a/generated/googleapis/lib/bigquerydatatransfer/v1.dart b/generated/googleapis/lib/bigquerydatatransfer/v1.dart
new file mode 100644
index 0000000..b5779f4
--- /dev/null
+++ b/generated/googleapis/lib/bigquerydatatransfer/v1.dart
@@ -0,0 +1,1980 @@
+// This is a generated file (see the discoveryapis_generator project).
+
+library googleapis.bigquerydatatransfer.v1;
+
+import 'dart:core' as core;
+import 'dart:async' as async;
+import 'dart:convert' as convert;
+
+import 'package:_discoveryapis_commons/_discoveryapis_commons.dart' as commons;
+import 'package:http/http.dart' as http;
+
+export 'package:_discoveryapis_commons/_discoveryapis_commons.dart' show
+ ApiRequestError, DetailedApiRequestError;
+
+const core.String USER_AGENT = 'dart-api-client bigquerydatatransfer/v1';
+
+/**
+ * Transfers data from partner SaaS applications to Google BigQuery on a
+ * scheduled, managed basis.
+ */
+class BigquerydatatransferApi {
+ /** View and manage your data in Google BigQuery */
+ static const BigqueryScope = "https://www.googleapis.com/auth/bigquery";
+
+
+ final commons.ApiRequester _requester;
+
+ ProjectsResourceApi get projects => new ProjectsResourceApi(_requester);
+
+ BigquerydatatransferApi(http.Client client, {core.String rootUrl: "https://bigquerydatatransfer.googleapis.com/", core.String servicePath: ""}) :
+ _requester = new commons.ApiRequester(client, rootUrl, servicePath, USER_AGENT);
+}
+
+
+class ProjectsResourceApi {
+ final commons.ApiRequester _requester;
+
+ ProjectsDataSourcesResourceApi get dataSources => new ProjectsDataSourcesResourceApi(_requester);
+ ProjectsTransferConfigsResourceApi get transferConfigs => new ProjectsTransferConfigsResourceApi(_requester);
+
+ ProjectsResourceApi(commons.ApiRequester client) :
+ _requester = client;
+
+ /**
+ * Returns true if data transfer is enabled for a project.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [name] - The name of the project resource in the form:
+ * `projects/{project_id}`
+ * Value must have pattern "^projects/[^/]+$".
+ *
+ * Completes with a [IsEnabledResponse].
+ *
+ * Completes with a [commons.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<IsEnabledResponse> isEnabled(IsEnabledRequest request, core.String name) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = commons.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (name == null) {
+ throw new core.ArgumentError("Parameter name is required.");
+ }
+
+ _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name') + ':isEnabled';
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new IsEnabledResponse.fromJson(data));
+ }
+
+ /**
+ * Enables or disables data transfer for a project. This
+ * method requires the additional scope of
+ * 'https://www.googleapis.com/auth/cloudplatformprojects'
+ * to manage the cloud project permissions.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [name] - The name of the project resource in the form:
+ * `projects/{project_id}`
+ * Value must have pattern "^projects/[^/]+$".
+ *
+ * Completes with a [Empty].
+ *
+ * Completes with a [commons.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Empty> setEnabled(SetEnabledRequest request, core.String name) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = commons.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (name == null) {
+ throw new core.ArgumentError("Parameter name is required.");
+ }
+
+ _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name') + ':setEnabled';
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Empty.fromJson(data));
+ }
+
+}
+
+
+class ProjectsDataSourcesResourceApi {
+ final commons.ApiRequester _requester;
+
+ ProjectsDataSourcesResourceApi(commons.ApiRequester client) :
+ _requester = client;
+
+ /**
+ * Returns true if valid credentials exist for the given data source and
+ * requesting user.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [name] - The data source in the form:
+ * `projects/{project_id}/dataSources/{data_source_id}`
+ * Value must have pattern "^projects/[^/]+/dataSources/[^/]+$".
+ *
+ * Completes with a [CheckValidCredsResponse].
+ *
+ * Completes with a [commons.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<CheckValidCredsResponse> checkValidCreds(CheckValidCredsRequest request, core.String name) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = commons.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (name == null) {
+ throw new core.ArgumentError("Parameter name is required.");
+ }
+
+ _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name') + ':checkValidCreds';
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new CheckValidCredsResponse.fromJson(data));
+ }
+
+ /**
+ * Retrieves a supported data source and returns its settings,
+ * which can be used for UI rendering.
+ *
+ * Request parameters:
+ *
+ * [name] - The field will contain name of the resource requested, for
+ * example:
+ * `projects/{project_id}/dataSources/{data_source_id}`
+ * Value must have pattern "^projects/[^/]+/dataSources/[^/]+$".
+ *
+ * Completes with a [DataSource].
+ *
+ * Completes with a [commons.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<DataSource> get(core.String name) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = commons.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (name == null) {
+ throw new core.ArgumentError("Parameter name is required.");
+ }
+
+ _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name');
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new DataSource.fromJson(data));
+ }
+
+ /**
+ * Lists supported data sources and returns their settings,
+ * which can be used for UI rendering.
+ *
+ * Request parameters:
+ *
+ * [parent] - The BigQuery project id for which data sources should be
+ * returned.
+ * Must be in the form: `projects/{project_id}`
+ * Value must have pattern "^projects/[^/]+$".
+ *
+ * [pageToken] - 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] - Page size. The default page size is the maximum value of 1000
+ * results.
+ *
+ * Completes with a [ListDataSourcesResponse].
+ *
+ * Completes with a [commons.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<ListDataSourcesResponse> list(core.String parent, {core.String pageToken, core.int pageSize}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = commons.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (parent == null) {
+ throw new core.ArgumentError("Parameter parent is required.");
+ }
+ if (pageToken != null) {
+ _queryParams["pageToken"] = [pageToken];
+ }
+ if (pageSize != null) {
+ _queryParams["pageSize"] = ["${pageSize}"];
+ }
+
+ _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$parent') + '/dataSources';
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new ListDataSourcesResponse.fromJson(data));
+ }
+
+}
+
+
+class ProjectsTransferConfigsResourceApi {
+ final commons.ApiRequester _requester;
+
+ ProjectsTransferConfigsRunsResourceApi get runs => new ProjectsTransferConfigsRunsResourceApi(_requester);
+
+ ProjectsTransferConfigsResourceApi(commons.ApiRequester client) :
+ _requester = client;
+
+ /**
+ * Creates a new data transfer configuration.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [parent] - The BigQuery project id where the transfer configuration should
+ * be created.
+ * Value must have pattern "^projects/[^/]+$".
+ *
+ * [authorizationCode] - Optional OAuth2 authorization code to use with this
+ * transfer configuration.
+ * This is required if new credentials are needed, as indicated by
+ * `CheckValidCreds`.
+ * In order to obtain authorization_code, please make a
+ * request to
+ * https://www.gstatic.com/bigquerydatatransfer/oauthz/auth?client_id=<datatransferapiclientid>&scope=<data_source_scopes>&redirect_uri=<redirect_uri>
+ *
+ * * client_id should be OAuth client_id of BigQuery DTS API for the given
+ * data source returned by ListDataSources method.
+ * * data_source_scopes are the scopes returned by ListDataSources method.
+ * * redirect_uri is an optional parameter. If not specified, then
+ * authorization code is posted to the opener of authorization flow window.
+ * Otherwise it will be sent to the redirect uri. A special value of
+ * urn:ietf:wg:oauth:2.0:oob means that authorization code should be
+ * returned in the title bar of the browser, with the page text prompting
+ * the user to copy the code and paste it in the application.
+ *
+ * Completes with a [TransferConfig].
+ *
+ * Completes with a [commons.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<TransferConfig> create(TransferConfig request, core.String parent, {core.String authorizationCode}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = commons.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (parent == null) {
+ throw new core.ArgumentError("Parameter parent is required.");
+ }
+ if (authorizationCode != null) {
+ _queryParams["authorizationCode"] = [authorizationCode];
+ }
+
+ _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$parent') + '/transferConfigs';
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new TransferConfig.fromJson(data));
+ }
+
+ /**
+ * Deletes a data transfer configuration,
+ * including any associated transfer runs and logs.
+ *
+ * Request parameters:
+ *
+ * [name] - The field will contain name of the resource requested, for
+ * example:
+ * `projects/{project_id}/transferConfigs/{config_id}`
+ * Value must have pattern "^projects/[^/]+/transferConfigs/[^/]+$".
+ *
+ * Completes with a [Empty].
+ *
+ * Completes with a [commons.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Empty> delete(core.String name) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = commons.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (name == null) {
+ throw new core.ArgumentError("Parameter name is required.");
+ }
+
+ _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name');
+
+ var _response = _requester.request(_url,
+ "DELETE",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Empty.fromJson(data));
+ }
+
+ /**
+ * Returns information about a data transfer config.
+ *
+ * Request parameters:
+ *
+ * [name] - The field will contain name of the resource requested, for
+ * example:
+ * `projects/{project_id}/transferConfigs/{config_id}`
+ * Value must have pattern "^projects/[^/]+/transferConfigs/[^/]+$".
+ *
+ * Completes with a [TransferConfig].
+ *
+ * Completes with a [commons.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<TransferConfig> get(core.String name) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = commons.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (name == null) {
+ throw new core.ArgumentError("Parameter name is required.");
+ }
+
+ _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name');
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new TransferConfig.fromJson(data));
+ }
+
+ /**
+ * Returns information about all data transfers in the project.
+ *
+ * Request parameters:
+ *
+ * [parent] - The BigQuery project id for which data sources
+ * should be returned: `projects/{project_id}`.
+ * Value must have pattern "^projects/[^/]+$".
+ *
+ * [dataSourceIds] - When specified, only configurations of requested data
+ * sources are returned.
+ *
+ * [pageToken] - 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.
+ *
+ * [pageSize] - Page size. The default page size is the maximum value of 1000
+ * results.
+ *
+ * Completes with a [ListTransferConfigsResponse].
+ *
+ * Completes with a [commons.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<ListTransferConfigsResponse> list(core.String parent, {core.List<core.String> dataSourceIds, core.String pageToken, core.int pageSize}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = commons.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (parent == null) {
+ throw new core.ArgumentError("Parameter parent is required.");
+ }
+ if (dataSourceIds != null) {
+ _queryParams["dataSourceIds"] = dataSourceIds;
+ }
+ if (pageToken != null) {
+ _queryParams["pageToken"] = [pageToken];
+ }
+ if (pageSize != null) {
+ _queryParams["pageSize"] = ["${pageSize}"];
+ }
+
+ _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$parent') + '/transferConfigs';
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new ListTransferConfigsResponse.fromJson(data));
+ }
+
+ /**
+ * Updates a data transfer configuration.
+ * All fields must be set, even if they are not updated.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [name] - The resource name of the transfer run.
+ * Transfer run names have the form
+ * `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 run.
+ * Value must have pattern "^projects/[^/]+/transferConfigs/[^/]+$".
+ *
+ * [updateMask] - Required list of fields to be updated in this request.
+ *
+ * [authorizationCode] - Optional OAuth2 authorization code to use with this
+ * transfer configuration.
+ * If it is provided, the transfer configuration will be associated with the
+ * gaia id of the authorizing user.
+ * In order to obtain authorization_code, please make a
+ * request to
+ * https://www.gstatic.com/bigquerydatatransfer/oauthz/auth?client_id=<datatransferapiclientid>&scope=<data_source_scopes>&redirect_uri=<redirect_uri>
+ *
+ * * client_id should be OAuth client_id of BigQuery DTS API for the given
+ * data source returned by ListDataSources method.
+ * * data_source_scopes are the scopes returned by ListDataSources method.
+ * * redirect_uri is an optional parameter. If not specified, then
+ * authorization code is posted to the opener of authorization flow window.
+ * Otherwise it will be sent to the redirect uri. A special value of
+ * urn:ietf:wg:oauth:2.0:oob means that authorization code should be
+ * returned in the title bar of the browser, with the page text prompting
+ * the user to copy the code and paste it in the application.
+ *
+ * Completes with a [TransferConfig].
+ *
+ * Completes with a [commons.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<TransferConfig> patch(TransferConfig request, core.String name, {core.String updateMask, core.String authorizationCode}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = commons.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (name == null) {
+ throw new core.ArgumentError("Parameter name is required.");
+ }
+ if (updateMask != null) {
+ _queryParams["updateMask"] = [updateMask];
+ }
+ if (authorizationCode != null) {
+ _queryParams["authorizationCode"] = [authorizationCode];
+ }
+
+ _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name');
+
+ var _response = _requester.request(_url,
+ "PATCH",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new TransferConfig.fromJson(data));
+ }
+
+ /**
+ * Creates transfer runs for a time range [range_start_time, range_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.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [parent] - Transfer configuration name in the form:
+ * `projects/{project_id}/transferConfigs/{config_id}`.
+ * Value must have pattern "^projects/[^/]+/transferConfigs/[^/]+$".
+ *
+ * Completes with a [ScheduleTransferRunsResponse].
+ *
+ * Completes with a [commons.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<ScheduleTransferRunsResponse> scheduleRuns(ScheduleTransferRunsRequest request, core.String parent) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = commons.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (parent == null) {
+ throw new core.ArgumentError("Parameter parent is required.");
+ }
+
+ _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$parent') + ':scheduleRuns';
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new ScheduleTransferRunsResponse.fromJson(data));
+ }
+
+}
+
+
+class ProjectsTransferConfigsRunsResourceApi {
+ final commons.ApiRequester _requester;
+
+ ProjectsTransferConfigsRunsTransferLogsResourceApi get transferLogs => new ProjectsTransferConfigsRunsTransferLogsResourceApi(_requester);
+
+ ProjectsTransferConfigsRunsResourceApi(commons.ApiRequester client) :
+ _requester = client;
+
+ /**
+ * Deletes the specified transfer run.
+ *
+ * Request parameters:
+ *
+ * [name] - The field will contain name of the resource requested, for
+ * example:
+ * `projects/{project_id}/transferConfigs/{config_id}/runs/{run_id}`
+ * Value must have pattern
+ * "^projects/[^/]+/transferConfigs/[^/]+/runs/[^/]+$".
+ *
+ * Completes with a [Empty].
+ *
+ * Completes with a [commons.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Empty> delete(core.String name) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = commons.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (name == null) {
+ throw new core.ArgumentError("Parameter name is required.");
+ }
+
+ _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name');
+
+ var _response = _requester.request(_url,
+ "DELETE",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Empty.fromJson(data));
+ }
+
+ /**
+ * Returns information about the particular transfer run.
+ *
+ * Request parameters:
+ *
+ * [name] - The field will contain name of the resource requested, for
+ * example:
+ * `projects/{project_id}/transferConfigs/{config_id}/runs/{run_id}`
+ * Value must have pattern
+ * "^projects/[^/]+/transferConfigs/[^/]+/runs/[^/]+$".
+ *
+ * Completes with a [TransferRun].
+ *
+ * Completes with a [commons.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<TransferRun> get(core.String name) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = commons.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (name == null) {
+ throw new core.ArgumentError("Parameter name is required.");
+ }
+
+ _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name');
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new TransferRun.fromJson(data));
+ }
+
+ /**
+ * Returns information about running and completed jobs.
+ *
+ * Request parameters:
+ *
+ * [parent] - Name of transfer configuration for which transfer runs should be
+ * retrieved.
+ * Format of transfer configuration resource name is:
+ * `projects/{project_id}/transferConfigs/{config_id}`.
+ * Value must have pattern "^projects/[^/]+/transferConfigs/[^/]+$".
+ *
+ * [pageToken] - 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.
+ *
+ * [statuses] - When specified, only transfer runs with requested statuses are
+ * returned.
+ *
+ * [pageSize] - Page size. The default page size is the maximum value of 1000
+ * results.
+ *
+ * [runAttempt] - Indicates how run attempts are to be pulled.
+ * Possible string values are:
+ * - "RUN_ATTEMPT_UNSPECIFIED" : A RUN_ATTEMPT_UNSPECIFIED.
+ * - "LATEST" : A LATEST.
+ *
+ * Completes with a [ListTransferRunsResponse].
+ *
+ * Completes with a [commons.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<ListTransferRunsResponse> list(core.String parent, {core.String pageToken, core.List<core.String> statuses, core.int pageSize, core.String runAttempt}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = commons.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (parent == null) {
+ throw new core.ArgumentError("Parameter parent is required.");
+ }
+ if (pageToken != null) {
+ _queryParams["pageToken"] = [pageToken];
+ }
+ if (statuses != null) {
+ _queryParams["statuses"] = statuses;
+ }
+ if (pageSize != null) {
+ _queryParams["pageSize"] = ["${pageSize}"];
+ }
+ if (runAttempt != null) {
+ _queryParams["runAttempt"] = [runAttempt];
+ }
+
+ _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$parent') + '/runs';
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new ListTransferRunsResponse.fromJson(data));
+ }
+
+}
+
+
+class ProjectsTransferConfigsRunsTransferLogsResourceApi {
+ final commons.ApiRequester _requester;
+
+ ProjectsTransferConfigsRunsTransferLogsResourceApi(commons.ApiRequester client) :
+ _requester = client;
+
+ /**
+ * Returns user facing log messages for the data transfer run.
+ *
+ * Request parameters:
+ *
+ * [parent] - Transfer run name in the form:
+ * `projects/{project_id}/transferConfigs/{config_Id}/runs/{run_id}`.
+ * Value must have pattern
+ * "^projects/[^/]+/transferConfigs/[^/]+/runs/[^/]+$".
+ *
+ * [messageTypes] - Message types to return. If not populated - INFO, WARNING
+ * and ERROR
+ * messages are returned.
+ *
+ * [pageToken] - 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.
+ *
+ * [pageSize] - Page size. The default page size is the maximum value of 1000
+ * results.
+ *
+ * Completes with a [ListTransferLogsResponse].
+ *
+ * Completes with a [commons.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<ListTransferLogsResponse> list(core.String parent, {core.List<core.String> messageTypes, core.String pageToken, core.int pageSize}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = commons.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (parent == null) {
+ throw new core.ArgumentError("Parameter parent is required.");
+ }
+ if (messageTypes != null) {
+ _queryParams["messageTypes"] = messageTypes;
+ }
+ if (pageToken != null) {
+ _queryParams["pageToken"] = [pageToken];
+ }
+ if (pageSize != null) {
+ _queryParams["pageSize"] = ["${pageSize}"];
+ }
+
+ _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$parent') + '/transferLogs';
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new ListTransferLogsResponse.fromJson(data));
+ }
+
+}
+
+
+
+/**
+ * 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.
+ */
+class CheckValidCredsRequest {
+
+ CheckValidCredsRequest();
+
+ CheckValidCredsRequest.fromJson(core.Map _json) {
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ return _json;
+ }
+}
+
+/** A response indicating whether the credentials exist and are valid. */
+class CheckValidCredsResponse {
+ /** If set to `true`, the credentials exist and are valid. */
+ core.bool hasValidCreds;
+
+ CheckValidCredsResponse();
+
+ CheckValidCredsResponse.fromJson(core.Map _json) {
+ if (_json.containsKey("hasValidCreds")) {
+ hasValidCreds = _json["hasValidCreds"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (hasValidCreds != null) {
+ _json["hasValidCreds"] = hasValidCreds;
+ }
+ return _json;
+ }
+}
+
+/**
+ * Represents data source metadata. Metadata is sufficient to
+ * render UI and request proper OAuth tokens.
+ */
+class DataSource {
+ /**
+ * Indicates the type of authorization.
+ * Possible string values are:
+ * - "AUTHORIZATION_TYPE_UNSPECIFIED" : Type unspecified.
+ * - "AUTHORIZATION_CODE" : Use OAuth 2 authorization codes that can be
+ * exchanged
+ * for a refresh token on the backend.
+ * - "GOOGLE_PLUS_AUTHORIZATION_CODE" : Return an authorization code for a
+ * given Google+ page that can then be
+ * exchanged for a refresh token on the backend.
+ */
+ core.String authorizationType;
+ /**
+ * Data source client id which should be used to receive refresh token.
+ * When not supplied, no offline credentials are populated for data transfer.
+ */
+ core.String clientId;
+ /**
+ * 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.
+ * Possible string values are:
+ * - "NONE" : The data source won't support data auto refresh, which is
+ * default value.
+ * - "SLIDING_WINDOW" : 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.
+ * - "CUSTOM_SLIDING_WINDOW" : 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.
+ */
+ core.String dataRefreshType;
+ /** Data source id. */
+ core.String dataSourceId;
+ /**
+ * Default data refresh window on days.
+ * Only meaningful when `data_refresh_type` = `SLIDING_WINDOW`.
+ */
+ core.int defaultDataRefreshWindowDays;
+ /**
+ * 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`.
+ */
+ core.String defaultSchedule;
+ /** User friendly data source description string. */
+ core.String description;
+ /** User friendly data source name. */
+ core.String displayName;
+ /** Url for the help document for this data source. */
+ core.String helpUrl;
+ /**
+ * Disables backfilling and manual run scheduling
+ * for the data source.
+ */
+ core.bool manualRunsDisabled;
+ /** Data source resource name. */
+ core.String name;
+ /** Data source parameters. */
+ core.List<DataSourceParameter> parameters;
+ /**
+ * Api auth scopes for which refresh token needs to be obtained. Only valid
+ * when `client_id` is specified. Ignored otherwise. These are scopes needed
+ * by a data source to prepare data and ingest them into BigQuery,
+ * e.g., https://www.googleapis.com/auth/bigquery
+ */
+ core.List<core.String> scopes;
+ /**
+ * The number of seconds to wait for a status update from the data source
+ * before BigQuery marks the transfer as failed.
+ */
+ core.int statusUpdateDeadlineSeconds;
+ /**
+ * 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.
+ */
+ core.bool supportsCustomSchedule;
+ /**
+ * Indicates whether the data source supports multiple transfers
+ * to different BigQuery targets.
+ */
+ core.bool supportsMultipleTransfers;
+ /**
+ * Transfer type. Currently supports only batch transfers,
+ * which are transfers that use the BigQuery batch APIs (load or
+ * query) to ingest the data.
+ * Possible string values are:
+ * - "TRANSFER_TYPE_UNSPECIFIED" : Invalid or Unknown transfer type
+ * placeholder.
+ * - "BATCH" : Batch data transfer.
+ * - "STREAMING" : Streaming data transfer. Streaming data source currently
+ * doesn't
+ * support multiple transfer configs per project.
+ */
+ core.String transferType;
+
+ DataSource();
+
+ DataSource.fromJson(core.Map _json) {
+ if (_json.containsKey("authorizationType")) {
+ authorizationType = _json["authorizationType"];
+ }
+ if (_json.containsKey("clientId")) {
+ clientId = _json["clientId"];
+ }
+ if (_json.containsKey("dataRefreshType")) {
+ dataRefreshType = _json["dataRefreshType"];
+ }
+ if (_json.containsKey("dataSourceId")) {
+ dataSourceId = _json["dataSourceId"];
+ }
+ if (_json.containsKey("defaultDataRefreshWindowDays")) {
+ defaultDataRefreshWindowDays = _json["defaultDataRefreshWindowDays"];
+ }
+ if (_json.containsKey("defaultSchedule")) {
+ defaultSchedule = _json["defaultSchedule"];
+ }
+ if (_json.containsKey("description")) {
+ description = _json["description"];
+ }
+ if (_json.containsKey("displayName")) {
+ displayName = _json["displayName"];
+ }
+ if (_json.containsKey("helpUrl")) {
+ helpUrl = _json["helpUrl"];
+ }
+ if (_json.containsKey("manualRunsDisabled")) {
+ manualRunsDisabled = _json["manualRunsDisabled"];
+ }
+ if (_json.containsKey("name")) {
+ name = _json["name"];
+ }
+ if (_json.containsKey("parameters")) {
+ parameters = _json["parameters"].map((value) => new DataSourceParameter.fromJson(value)).toList();
+ }
+ if (_json.containsKey("scopes")) {
+ scopes = _json["scopes"];
+ }
+ if (_json.containsKey("statusUpdateDeadlineSeconds")) {
+ statusUpdateDeadlineSeconds = _json["statusUpdateDeadlineSeconds"];
+ }
+ if (_json.containsKey("supportsCustomSchedule")) {
+ supportsCustomSchedule = _json["supportsCustomSchedule"];
+ }
+ if (_json.containsKey("supportsMultipleTransfers")) {
+ supportsMultipleTransfers = _json["supportsMultipleTransfers"];
+ }
+ if (_json.containsKey("transferType")) {
+ transferType = _json["transferType"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (authorizationType != null) {
+ _json["authorizationType"] = authorizationType;
+ }
+ if (clientId != null) {
+ _json["clientId"] = clientId;
+ }
+ if (dataRefreshType != null) {
+ _json["dataRefreshType"] = dataRefreshType;
+ }
+ if (dataSourceId != null) {
+ _json["dataSourceId"] = dataSourceId;
+ }
+ if (defaultDataRefreshWindowDays != null) {
+ _json["defaultDataRefreshWindowDays"] = defaultDataRefreshWindowDays;
+ }
+ if (defaultSchedule != null) {
+ _json["defaultSchedule"] = defaultSchedule;
+ }
+ if (description != null) {
+ _json["description"] = description;
+ }
+ if (displayName != null) {
+ _json["displayName"] = displayName;
+ }
+ if (helpUrl != null) {
+ _json["helpUrl"] = helpUrl;
+ }
+ if (manualRunsDisabled != null) {
+ _json["manualRunsDisabled"] = manualRunsDisabled;
+ }
+ if (name != null) {
+ _json["name"] = name;
+ }
+ if (parameters != null) {
+ _json["parameters"] = parameters.map((value) => (value).toJson()).toList();
+ }
+ if (scopes != null) {
+ _json["scopes"] = scopes;
+ }
+ if (statusUpdateDeadlineSeconds != null) {
+ _json["statusUpdateDeadlineSeconds"] = statusUpdateDeadlineSeconds;
+ }
+ if (supportsCustomSchedule != null) {
+ _json["supportsCustomSchedule"] = supportsCustomSchedule;
+ }
+ if (supportsMultipleTransfers != null) {
+ _json["supportsMultipleTransfers"] = supportsMultipleTransfers;
+ }
+ if (transferType != null) {
+ _json["transferType"] = transferType;
+ }
+ return _json;
+ }
+}
+
+/**
+ * Represents a data source parameter with validation rules, so that
+ * parameters can be rendered in the UI. These parameters are given to us by
+ * supported data sources, and include all needed information for rendering
+ * and validation.
+ * Thus, whoever uses this api can decide to generate either generic ui,
+ * or custom data source specific forms.
+ */
+class DataSourceParameter {
+ /** All possible values for the parameter. */
+ core.List<core.String> allowedValues;
+ /** Parameter description. */
+ core.String description;
+ /** Parameter display name in the user interface. */
+ core.String displayName;
+ /** When parameter is a record, describes child fields. */
+ core.List<DataSourceParameter> fields;
+ /** Cannot be changed after initial creation. */
+ core.bool immutable;
+ /** For integer and double values specifies maxminum allowed value. */
+ core.double maxValue;
+ /** For integer and double values specifies minimum allowed value. */
+ core.double minValue;
+ /** Parameter identifier. */
+ core.String paramId;
+ /**
+ * If set to true, schema should be taken from the parent with the same
+ * parameter_id. Only applicable when parameter type is RECORD.
+ */
+ core.bool recurse;
+ /** Can parameter have multiple values. */
+ core.bool repeated;
+ /** Is parameter required. */
+ core.bool required;
+ /**
+ * Parameter type.
+ * Possible string values are:
+ * - "TYPE_UNSPECIFIED" : Type unspecified.
+ * - "STRING" : String parameter.
+ * - "INTEGER" : Integer parameter (64-bits).
+ * Will be serialized to json as string.
+ * - "DOUBLE" : Double precision floating point parameter.
+ * - "BOOLEAN" : Boolean parameter.
+ * - "RECORD" : Record parameter.
+ * - "PLUS_PAGE" : Page ID for a Google+ Page.
+ */
+ core.String type;
+ /**
+ * Description of the requirements for this field, in case the user input does
+ * not fulfill the regex pattern or min/max values.
+ */
+ core.String validationDescription;
+ /** URL to a help document to further explain the naming requirements. */
+ core.String validationHelpUrl;
+ /** Regular expression which can be used for parameter validation. */
+ core.String validationRegex;
+
+ DataSourceParameter();
+
+ DataSourceParameter.fromJson(core.Map _json) {
+ if (_json.containsKey("allowedValues")) {
+ allowedValues = _json["allowedValues"];
+ }
+ if (_json.containsKey("description")) {
+ description = _json["description"];
+ }
+ if (_json.containsKey("displayName")) {
+ displayName = _json["displayName"];
+ }
+ if (_json.containsKey("fields")) {
+ fields = _json["fields"].map((value) => new DataSourceParameter.fromJson(value)).toList();
+ }
+ if (_json.containsKey("immutable")) {
+ immutable = _json["immutable"];
+ }
+ if (_json.containsKey("maxValue")) {
+ maxValue = _json["maxValue"];
+ }
+ if (_json.containsKey("minValue")) {
+ minValue = _json["minValue"];
+ }
+ if (_json.containsKey("paramId")) {
+ paramId = _json["paramId"];
+ }
+ if (_json.containsKey("recurse")) {
+ recurse = _json["recurse"];
+ }
+ if (_json.containsKey("repeated")) {
+ repeated = _json["repeated"];
+ }
+ if (_json.containsKey("required")) {
+ required = _json["required"];
+ }
+ if (_json.containsKey("type")) {
+ type = _json["type"];
+ }
+ if (_json.containsKey("validationDescription")) {
+ validationDescription = _json["validationDescription"];
+ }
+ if (_json.containsKey("validationHelpUrl")) {
+ validationHelpUrl = _json["validationHelpUrl"];
+ }
+ if (_json.containsKey("validationRegex")) {
+ validationRegex = _json["validationRegex"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (allowedValues != null) {
+ _json["allowedValues"] = allowedValues;
+ }
+ if (description != null) {
+ _json["description"] = description;
+ }
+ if (displayName != null) {
+ _json["displayName"] = displayName;
+ }
+ if (fields != null) {
+ _json["fields"] = fields.map((value) => (value).toJson()).toList();
+ }
+ if (immutable != null) {
+ _json["immutable"] = immutable;
+ }
+ if (maxValue != null) {
+ _json["maxValue"] = maxValue;
+ }
+ if (minValue != null) {
+ _json["minValue"] = minValue;
+ }
+ if (paramId != null) {
+ _json["paramId"] = paramId;
+ }
+ if (recurse != null) {
+ _json["recurse"] = recurse;
+ }
+ if (repeated != null) {
+ _json["repeated"] = repeated;
+ }
+ if (required != null) {
+ _json["required"] = required;
+ }
+ if (type != null) {
+ _json["type"] = type;
+ }
+ if (validationDescription != null) {
+ _json["validationDescription"] = validationDescription;
+ }
+ if (validationHelpUrl != null) {
+ _json["validationHelpUrl"] = validationHelpUrl;
+ }
+ if (validationRegex != null) {
+ _json["validationRegex"] = validationRegex;
+ }
+ return _json;
+ }
+}
+
+/**
+ * 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);
+ * }
+ *
+ * The JSON representation for `Empty` is empty JSON object `{}`.
+ */
+class Empty {
+
+ Empty();
+
+ Empty.fromJson(core.Map _json) {
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ return _json;
+ }
+}
+
+/** A request to determine whether data transfer is enabled for the project. */
+class IsEnabledRequest {
+
+ IsEnabledRequest();
+
+ IsEnabledRequest.fromJson(core.Map _json) {
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ return _json;
+ }
+}
+
+/** A response to indicate whether data transfer is enabled for the project. */
+class IsEnabledResponse {
+ /** Indicates whether the project is enabled. */
+ core.bool enabled;
+
+ IsEnabledResponse();
+
+ IsEnabledResponse.fromJson(core.Map _json) {
+ if (_json.containsKey("enabled")) {
+ enabled = _json["enabled"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (enabled != null) {
+ _json["enabled"] = enabled;
+ }
+ return _json;
+ }
+}
+
+/** Returns list of supported data sources and their metadata. */
+class ListDataSourcesResponse {
+ /** List of supported data sources and their transfer settings. */
+ core.List<DataSource> dataSources;
+ /**
+ * 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.
+ * @OutputOnly
+ */
+ core.String nextPageToken;
+
+ ListDataSourcesResponse();
+
+ ListDataSourcesResponse.fromJson(core.Map _json) {
+ if (_json.containsKey("dataSources")) {
+ dataSources = _json["dataSources"].map((value) => new DataSource.fromJson(value)).toList();
+ }
+ if (_json.containsKey("nextPageToken")) {
+ nextPageToken = _json["nextPageToken"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (dataSources != null) {
+ _json["dataSources"] = dataSources.map((value) => (value).toJson()).toList();
+ }
+ if (nextPageToken != null) {
+ _json["nextPageToken"] = nextPageToken;
+ }
+ return _json;
+ }
+}
+
+/** The returned list of pipelines in the project. */
+class ListTransferConfigsResponse {
+ /**
+ * 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.
+ * @OutputOnly
+ */
+ core.String nextPageToken;
+ /**
+ * The stored pipeline transfer configurations.
+ * @OutputOnly
+ */
+ core.List<TransferConfig> transferConfigs;
+
+ ListTransferConfigsResponse();
+
+ ListTransferConfigsResponse.fromJson(core.Map _json) {
+ if (_json.containsKey("nextPageToken")) {
+ nextPageToken = _json["nextPageToken"];
+ }
+ if (_json.containsKey("transferConfigs")) {
+ transferConfigs = _json["transferConfigs"].map((value) => new TransferConfig.fromJson(value)).toList();
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (nextPageToken != null) {
+ _json["nextPageToken"] = nextPageToken;
+ }
+ if (transferConfigs != null) {
+ _json["transferConfigs"] = transferConfigs.map((value) => (value).toJson()).toList();
+ }
+ return _json;
+ }
+}
+
+/** The returned list transfer run messages. */
+class ListTransferLogsResponse {
+ /**
+ * 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.
+ * @OutputOnly
+ */
+ core.String nextPageToken;
+ /**
+ * The stored pipeline transfer messages.
+ * @OutputOnly
+ */
+ core.List<TransferMessage> transferMessages;
+
+ ListTransferLogsResponse();
+
+ ListTransferLogsResponse.fromJson(core.Map _json) {
+ if (_json.containsKey("nextPageToken")) {
+ nextPageToken = _json["nextPageToken"];
+ }
+ if (_json.containsKey("transferMessages")) {
+ transferMessages = _json["transferMessages"].map((value) => new TransferMessage.fromJson(value)).toList();
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (nextPageToken != null) {
+ _json["nextPageToken"] = nextPageToken;
+ }
+ if (transferMessages != null) {
+ _json["transferMessages"] = transferMessages.map((value) => (value).toJson()).toList();
+ }
+ return _json;
+ }
+}
+
+/** The returned list of pipelines in the project. */
+class ListTransferRunsResponse {
+ /**
+ * 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.
+ * @OutputOnly
+ */
+ core.String nextPageToken;
+ /**
+ * The stored pipeline transfer runs.
+ * @OutputOnly
+ */
+ core.List<TransferRun> transferRuns;
+
+ ListTransferRunsResponse();
+
+ ListTransferRunsResponse.fromJson(core.Map _json) {
+ if (_json.containsKey("nextPageToken")) {
+ nextPageToken = _json["nextPageToken"];
+ }
+ if (_json.containsKey("transferRuns")) {
+ transferRuns = _json["transferRuns"].map((value) => new TransferRun.fromJson(value)).toList();
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (nextPageToken != null) {
+ _json["nextPageToken"] = nextPageToken;
+ }
+ if (transferRuns != null) {
+ _json["transferRuns"] = transferRuns.map((value) => (value).toJson()).toList();
+ }
+ return _json;
+ }
+}
+
+/** A request to schedule transfer runs for a time range. */
+class ScheduleTransferRunsRequest {
+ /** End time of the range of transfer runs. */
+ core.String rangeEndTime;
+ /** Start time of the range of transfer runs. */
+ core.String rangeStartTime;
+
+ ScheduleTransferRunsRequest();
+
+ ScheduleTransferRunsRequest.fromJson(core.Map _json) {
+ if (_json.containsKey("rangeEndTime")) {
+ rangeEndTime = _json["rangeEndTime"];
+ }
+ if (_json.containsKey("rangeStartTime")) {
+ rangeStartTime = _json["rangeStartTime"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (rangeEndTime != null) {
+ _json["rangeEndTime"] = rangeEndTime;
+ }
+ if (rangeStartTime != null) {
+ _json["rangeStartTime"] = rangeStartTime;
+ }
+ return _json;
+ }
+}
+
+/** A response to schedule transfer runs for a time range. */
+class ScheduleTransferRunsResponse {
+ /** The transfer runs that were created. */
+ core.List<TransferRun> createdRuns;
+
+ ScheduleTransferRunsResponse();
+
+ ScheduleTransferRunsResponse.fromJson(core.Map _json) {
+ if (_json.containsKey("createdRuns")) {
+ createdRuns = _json["createdRuns"].map((value) => new TransferRun.fromJson(value)).toList();
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (createdRuns != null) {
+ _json["createdRuns"] = createdRuns.map((value) => (value).toJson()).toList();
+ }
+ return _json;
+ }
+}
+
+/**
+ * A request to set whether data transfer is enabled or disabled for a project.
+ */
+class SetEnabledRequest {
+ /** Whether data transfer should be enabled or disabled for the project. */
+ core.bool enabled;
+
+ SetEnabledRequest();
+
+ SetEnabledRequest.fromJson(core.Map _json) {
+ if (_json.containsKey("enabled")) {
+ enabled = _json["enabled"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (enabled != null) {
+ _json["enabled"] = enabled;
+ }
+ return _json;
+ }
+}
+
+/**
+ * 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.
+ */
+class TransferConfig {
+ /**
+ * 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.
+ */
+ core.int dataRefreshWindowDays;
+ /** Data source id. Cannot be changed once data transfer is created. */
+ core.String dataSourceId;
+ /** The BigQuery target dataset id. */
+ core.String destinationDatasetId;
+ /**
+ * Is this config disabled. When set to true, no runs are scheduled
+ * for a given transfer.
+ */
+ core.bool disabled;
+ /** User specified display name for the data transfer. */
+ core.String displayName;
+ /**
+ * The resource name of the transfer run.
+ * Transfer run names have the form
+ * `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 run.
+ */
+ core.String name;
+ /**
+ * Next time when data transfer will run. Output only. Applicable
+ * only for batch data transfers.
+ * @OutputOnly
+ */
+ core.String nextRunTime;
+ /**
+ * Data transfer specific parameters.
+ *
+ * The values for Object must be JSON objects. It can consist of `num`,
+ * `String`, `bool` and `null` as well as `Map` and `List` values.
+ */
+ core.Map<core.String, core.Object> params;
+ /**
+ * Data transfer schedule in GROC format.
+ * 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 GROC include:
+ * `1st,3rd monday of month 15:30`,
+ * `every wed,fri of jan,jun 13:15`, and
+ * `first sunday of quarter 00:00`.
+ */
+ core.String schedule;
+ /**
+ * Status of the most recently updated transfer run.
+ * @OutputOnly
+ * Possible string values are:
+ * - "TRANSFER_STATUS_UNSPECIFIED" : Status placeholder.
+ * - "INACTIVE" : Data transfer is inactive.
+ * - "PENDING" : Data transfer is scheduled and is waiting to be picked up by
+ * data transfer backend.
+ * - "RUNNING" : Data transfer is in progress.
+ * - "SUCCEEDED" : Data transfer completed successsfully.
+ * - "FAILED" : Data transfer failed.
+ * - "CANCELLED" : Data transfer is cancelled.
+ */
+ core.String status;
+ /**
+ * Data transfer modification time. Ignored by server on input.
+ * @OutputOnly
+ */
+ core.String updateTime;
+ /**
+ * GaiaID of the user on whose behalf transfer is done. Applicable only
+ * to data sources that do not support service accounts. When set to 0,
+ * the data source service account credentials are used.
+ * @OutputOnly
+ */
+ core.String userId;
+
+ TransferConfig();
+
+ TransferConfig.fromJson(core.Map _json) {
+ if (_json.containsKey("dataRefreshWindowDays")) {
+ dataRefreshWindowDays = _json["dataRefreshWindowDays"];
+ }
+ if (_json.containsKey("dataSourceId")) {
+ dataSourceId = _json["dataSourceId"];
+ }
+ if (_json.containsKey("destinationDatasetId")) {
+ destinationDatasetId = _json["destinationDatasetId"];
+ }
+ if (_json.containsKey("disabled")) {
+ disabled = _json["disabled"];
+ }
+ if (_json.containsKey("displayName")) {
+ displayName = _json["displayName"];
+ }
+ if (_json.containsKey("name")) {
+ name = _json["name"];
+ }
+ if (_json.containsKey("nextRunTime")) {
+ nextRunTime = _json["nextRunTime"];
+ }
+ if (_json.containsKey("params")) {
+ params = _json["params"];
+ }
+ if (_json.containsKey("schedule")) {
+ schedule = _json["schedule"];
+ }
+ if (_json.containsKey("status")) {
+ status = _json["status"];
+ }
+ if (_json.containsKey("updateTime")) {
+ updateTime = _json["updateTime"];
+ }
+ if (_json.containsKey("userId")) {
+ userId = _json["userId"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (dataRefreshWindowDays != null) {
+ _json["dataRefreshWindowDays"] = dataRefreshWindowDays;
+ }
+ if (dataSourceId != null) {
+ _json["dataSourceId"] = dataSourceId;
+ }
+ if (destinationDatasetId != null) {
+ _json["destinationDatasetId"] = destinationDatasetId;
+ }
+ if (disabled != null) {
+ _json["disabled"] = disabled;
+ }
+ if (displayName != null) {
+ _json["displayName"] = displayName;
+ }
+ if (name != null) {
+ _json["name"] = name;
+ }
+ if (nextRunTime != null) {
+ _json["nextRunTime"] = nextRunTime;
+ }
+ if (params != null) {
+ _json["params"] = params;
+ }
+ if (schedule != null) {
+ _json["schedule"] = schedule;
+ }
+ if (status != null) {
+ _json["status"] = status;
+ }
+ if (updateTime != null) {
+ _json["updateTime"] = updateTime;
+ }
+ if (userId != null) {
+ _json["userId"] = userId;
+ }
+ return _json;
+ }
+}
+
+/** Represents a user facing message for a particular data transfer run. */
+class TransferMessage {
+ /** Message text. */
+ core.String messageText;
+ /** Time when message was logged. */
+ core.String messageTime;
+ /**
+ * Message severity.
+ * Possible string values are:
+ * - "MESSAGE_SEVERITY_UNSPECIFIED" : No severity specified.
+ * - "INFO" : Informational message.
+ * - "WARNING" : Warning message.
+ * - "ERROR" : Error message.
+ */
+ core.String severity;
+
+ TransferMessage();
+
+ TransferMessage.fromJson(core.Map _json) {
+ if (_json.containsKey("messageText")) {
+ messageText = _json["messageText"];
+ }
+ if (_json.containsKey("messageTime")) {
+ messageTime = _json["messageTime"];
+ }
+ if (_json.containsKey("severity")) {
+ severity = _json["severity"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (messageText != null) {
+ _json["messageText"] = messageText;
+ }
+ if (messageTime != null) {
+ _json["messageTime"] = messageTime;
+ }
+ if (severity != null) {
+ _json["severity"] = severity;
+ }
+ return _json;
+ }
+}
+
+/** Represents a data transfer run. */
+class TransferRun {
+ /**
+ * Data source id.
+ * @OutputOnly
+ */
+ core.String dataSourceId;
+ /** The BigQuery target dataset id. */
+ core.String destinationDatasetId;
+ /**
+ * Time when transfer run ended. Parameter ignored by server for input
+ * requests.
+ * @OutputOnly
+ */
+ core.String endTime;
+ /**
+ * The resource name of the transfer run.
+ * Transfer run names have the form
+ * `projects/{project_id}/transferConfigs/{config_id}/runs/{run_id}`.
+ * The name is ignored when creating a transfer run.
+ */
+ core.String name;
+ /**
+ * Data transfer specific parameters.
+ *
+ * The values for Object must be JSON objects. It can consist of `num`,
+ * `String`, `bool` and `null` as well as `Map` and `List` values.
+ */
+ core.Map<core.String, core.Object> params;
+ /**
+ * For batch transfer runs, specifies the date and time that
+ * data should be ingested.
+ */
+ core.String runTime;
+ /**
+ * Describes the schedule of this transfer run if it was created as part of
+ * a regular schedule. For batch transfer runs that are directly created,
+ * this is empty.
+ * NOTE: the system might choose to delay the schedule depending on the
+ * current load, so `schedule_time` doesn't always matches this.
+ * @OutputOnly
+ */
+ core.String schedule;
+ /** Minimum time after which a transfer run can be started. */
+ core.String scheduleTime;
+ /**
+ * Time when transfer run was started. Parameter ignored by server for input
+ * requests.
+ * @OutputOnly
+ */
+ core.String startTime;
+ /**
+ * Data transfer run status. Ignored for input requests.
+ * @OutputOnly
+ * Possible string values are:
+ * - "TRANSFER_STATUS_UNSPECIFIED" : Status placeholder.
+ * - "INACTIVE" : Data transfer is inactive.
+ * - "PENDING" : Data transfer is scheduled and is waiting to be picked up by
+ * data transfer backend.
+ * - "RUNNING" : Data transfer is in progress.
+ * - "SUCCEEDED" : Data transfer completed successsfully.
+ * - "FAILED" : Data transfer failed.
+ * - "CANCELLED" : Data transfer is cancelled.
+ */
+ core.String status;
+ /**
+ * Last time the data transfer run status was updated.
+ * @OutputOnly
+ */
+ core.String updateTime;
+ /**
+ * The user id for this transfer run.
+ * @OutputOnly
+ */
+ core.String userId;
+
+ TransferRun();
+
+ TransferRun.fromJson(core.Map _json) {
+ if (_json.containsKey("dataSourceId")) {
+ dataSourceId = _json["dataSourceId"];
+ }
+ if (_json.containsKey("destinationDatasetId")) {
+ destinationDatasetId = _json["destinationDatasetId"];
+ }
+ if (_json.containsKey("endTime")) {
+ endTime = _json["endTime"];
+ }
+ if (_json.containsKey("name")) {
+ name = _json["name"];
+ }
+ if (_json.containsKey("params")) {
+ params = _json["params"];
+ }
+ if (_json.containsKey("runTime")) {
+ runTime = _json["runTime"];
+ }
+ if (_json.containsKey("schedule")) {
+ schedule = _json["schedule"];
+ }
+ if (_json.containsKey("scheduleTime")) {
+ scheduleTime = _json["scheduleTime"];
+ }
+ if (_json.containsKey("startTime")) {
+ startTime = _json["startTime"];
+ }
+ if (_json.containsKey("status")) {
+ status = _json["status"];
+ }
+ if (_json.containsKey("updateTime")) {
+ updateTime = _json["updateTime"];
+ }
+ if (_json.containsKey("userId")) {
+ userId = _json["userId"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (dataSourceId != null) {
+ _json["dataSourceId"] = dataSourceId;
+ }
+ if (destinationDatasetId != null) {
+ _json["destinationDatasetId"] = destinationDatasetId;
+ }
+ if (endTime != null) {
+ _json["endTime"] = endTime;
+ }
+ if (name != null) {
+ _json["name"] = name;
+ }
+ if (params != null) {
+ _json["params"] = params;
+ }
+ if (runTime != null) {
+ _json["runTime"] = runTime;
+ }
+ if (schedule != null) {
+ _json["schedule"] = schedule;
+ }
+ if (scheduleTime != null) {
+ _json["scheduleTime"] = scheduleTime;
+ }
+ if (startTime != null) {
+ _json["startTime"] = startTime;
+ }
+ if (status != null) {
+ _json["status"] = status;
+ }
+ if (updateTime != null) {
+ _json["updateTime"] = updateTime;
+ }
+ if (userId != null) {
+ _json["userId"] = userId;
+ }
+ return _json;
+ }
+}