| // This is a generated file (see the discoveryapis_generator project). |
| |
| // ignore_for_file: camel_case_types |
| // ignore_for_file: comment_references |
| // ignore_for_file: directives_ordering |
| // ignore_for_file: file_names |
| // ignore_for_file: library_names |
| // ignore_for_file: lines_longer_than_80_chars |
| // ignore_for_file: non_constant_identifier_names |
| // ignore_for_file: prefer_expression_function_bodies |
| // ignore_for_file: prefer_final_locals |
| // ignore_for_file: prefer_interpolation_to_compose_strings |
| // ignore_for_file: unnecessary_brace_in_string_interps |
| // ignore_for_file: unnecessary_cast |
| // ignore_for_file: unnecessary_lambdas |
| // ignore_for_file: unnecessary_parenthesis |
| // ignore_for_file: unnecessary_string_interpolations |
| |
| library googleapis.spanner.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 userAgent = 'dart-api-client spanner/v1'; |
| |
| /// Cloud Spanner is a managed, mission-critical, globally consistent and |
| /// scalable relational database service. |
| class SpannerApi { |
| /// View and manage your data across Google Cloud Platform services |
| static const cloudPlatformScope = |
| 'https://www.googleapis.com/auth/cloud-platform'; |
| |
| /// Administer your Spanner databases |
| static const spannerAdminScope = |
| 'https://www.googleapis.com/auth/spanner.admin'; |
| |
| /// View and manage the contents of your Spanner databases |
| static const spannerDataScope = |
| 'https://www.googleapis.com/auth/spanner.data'; |
| |
| final commons.ApiRequester _requester; |
| |
| ProjectsResourceApi get projects => ProjectsResourceApi(_requester); |
| |
| SpannerApi(http.Client client, |
| {core.String rootUrl = 'https://spanner.googleapis.com/', |
| core.String servicePath = ''}) |
| : _requester = |
| commons.ApiRequester(client, rootUrl, servicePath, userAgent); |
| } |
| |
| class ProjectsResourceApi { |
| final commons.ApiRequester _requester; |
| |
| ProjectsInstanceConfigsResourceApi get instanceConfigs => |
| ProjectsInstanceConfigsResourceApi(_requester); |
| ProjectsInstancesResourceApi get instances => |
| ProjectsInstancesResourceApi(_requester); |
| |
| ProjectsResourceApi(commons.ApiRequester client) : _requester = client; |
| } |
| |
| class ProjectsInstanceConfigsResourceApi { |
| final commons.ApiRequester _requester; |
| |
| ProjectsInstanceConfigsResourceApi(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// Gets information about a particular instance configuration. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Required. The name of the requested instance configuration. |
| /// Values are of the form `projects//instanceConfigs/`. |
| /// Value must have pattern "^projects/[^/]+/instanceConfigs/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [InstanceConfig]. |
| /// |
| /// 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<InstanceConfig> get( |
| core.String name, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => InstanceConfig.fromJson(data)); |
| } |
| |
| /// Lists the supported instance configurations for a given project. |
| /// |
| /// Request parameters: |
| /// |
| /// [parent] - Required. The name of the project for which a list of supported |
| /// instance configurations is requested. Values are of the form `projects/`. |
| /// Value must have pattern "^projects/[^/]+$". |
| /// |
| /// [pageSize] - Number of instance configurations to be returned in the |
| /// response. If 0 or less, defaults to the server's maximum allowed page |
| /// size. |
| /// |
| /// [pageToken] - If non-empty, `page_token` should contain a next_page_token |
| /// from a previous ListInstanceConfigsResponse. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListInstanceConfigsResponse]. |
| /// |
| /// 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<ListInstanceConfigsResponse> list( |
| core.String parent, { |
| core.int pageSize, |
| core.String pageToken, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (parent == null) { |
| throw core.ArgumentError('Parameter parent is required.'); |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$parent') + |
| '/instanceConfigs'; |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => ListInstanceConfigsResponse.fromJson(data)); |
| } |
| } |
| |
| class ProjectsInstancesResourceApi { |
| final commons.ApiRequester _requester; |
| |
| ProjectsInstancesBackupOperationsResourceApi get backupOperations => |
| ProjectsInstancesBackupOperationsResourceApi(_requester); |
| ProjectsInstancesBackupsResourceApi get backups => |
| ProjectsInstancesBackupsResourceApi(_requester); |
| ProjectsInstancesDatabaseOperationsResourceApi get databaseOperations => |
| ProjectsInstancesDatabaseOperationsResourceApi(_requester); |
| ProjectsInstancesDatabasesResourceApi get databases => |
| ProjectsInstancesDatabasesResourceApi(_requester); |
| ProjectsInstancesOperationsResourceApi get operations => |
| ProjectsInstancesOperationsResourceApi(_requester); |
| |
| ProjectsInstancesResourceApi(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// Creates an instance and begins preparing it to begin serving. The returned |
| /// long-running operation can be used to track the progress of preparing the |
| /// new instance. The instance name is assigned by the caller. If the named |
| /// instance already exists, `CreateInstance` returns `ALREADY_EXISTS`. |
| /// Immediately upon completion of this request: * The instance is readable |
| /// via the API, with all requested attributes but no allocated resources. Its |
| /// state is `CREATING`. Until completion of the returned operation: * |
| /// Cancelling the operation renders the instance immediately unreadable via |
| /// the API. * The instance can be deleted. * All other attempts to modify the |
| /// instance are rejected. Upon completion of the returned operation: * |
| /// Billing for all successfully-allocated resources begins (some types may |
| /// have lower than the requested levels). * Databases can be created in the |
| /// instance. * The instance's allocated resource levels are readable via the |
| /// API. * The instance's state becomes `READY`. The returned long-running |
| /// operation will have a name of the format `/operations/` and can be used to |
| /// track creation of the instance. The metadata field type is |
| /// CreateInstanceMetadata. The response field type is Instance, if |
| /// successful. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [parent] - Required. The name of the project in which to create the |
| /// instance. Values are of the form `projects/`. |
| /// Value must have pattern "^projects/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// 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<Operation> create( |
| CreateInstanceRequest request, |
| core.String parent, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (parent == null) { |
| throw core.ArgumentError('Parameter parent is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = |
| 'v1/' + commons.Escaper.ecapeVariableReserved('$parent') + '/instances'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Operation.fromJson(data)); |
| } |
| |
| /// Deletes an instance. Immediately upon completion of the request: * Billing |
| /// ceases for all of the instance's reserved resources. Soon afterward: * The |
| /// instance and *all of its databases* immediately and irrevocably disappear |
| /// from the API. All data in the databases is permanently deleted. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Required. The name of the instance to be deleted. Values are of |
| /// the form `projects//instances/` |
| /// Value must have pattern "^projects/[^/]+/instances/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// 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, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = _requester.request( |
| _url, |
| 'DELETE', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Empty.fromJson(data)); |
| } |
| |
| /// Gets information about a particular instance. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Required. The name of the requested instance. Values are of the |
| /// form `projects//instances/`. |
| /// Value must have pattern "^projects/[^/]+/instances/[^/]+$". |
| /// |
| /// [fieldMask] - If field_mask is present, specifies the subset of Instance |
| /// fields that should be returned. If absent, all Instance fields are |
| /// returned. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Instance]. |
| /// |
| /// 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<Instance> get( |
| core.String name, { |
| core.String fieldMask, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if (fieldMask != null) { |
| _queryParams['fieldMask'] = [fieldMask]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Instance.fromJson(data)); |
| } |
| |
| /// Gets the access control policy for an instance resource. Returns an empty |
| /// policy if an instance exists but does not have a policy set. Authorization |
| /// requires `spanner.instances.getIamPolicy` on resource. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [resource] - REQUIRED: The Cloud Spanner resource for which the policy is |
| /// being retrieved. The format is `projects//instances/` for instance |
| /// resources and `projects//instances//databases/` for database resources. |
| /// Value must have pattern "^projects/[^/]+/instances/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Policy]. |
| /// |
| /// 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<Policy> getIamPolicy( |
| GetIamPolicyRequest request, |
| core.String resource, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (resource == null) { |
| throw core.ArgumentError('Parameter resource is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$resource') + |
| ':getIamPolicy'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Policy.fromJson(data)); |
| } |
| |
| /// Lists all instances in the given project. |
| /// |
| /// Request parameters: |
| /// |
| /// [parent] - Required. The name of the project for which a list of instances |
| /// is requested. Values are of the form `projects/`. |
| /// Value must have pattern "^projects/[^/]+$". |
| /// |
| /// [filter] - An expression for filtering the results of the request. Filter |
| /// rules are case insensitive. The fields eligible for filtering are: * |
| /// `name` * `display_name` * `labels.key` where key is the name of a label |
| /// Some examples of using filters are: * `name:*` --> The instance has a |
| /// name. * `name:Howl` --> The instance's name contains the string "howl". * |
| /// `name:HOWL` --> Equivalent to above. * `NAME:howl` --> Equivalent to |
| /// above. * `labels.env:*` --> The instance has the label "env". * |
| /// `labels.env:dev` --> The instance has the label "env" and the value of the |
| /// label contains the string "dev". * `name:howl labels.env:dev` --> The |
| /// instance's name contains "howl" and it has the label "env" with its value |
| /// containing "dev". |
| /// |
| /// [pageSize] - Number of instances to be returned in the response. If 0 or |
| /// less, defaults to the server's maximum allowed page size. |
| /// |
| /// [pageToken] - If non-empty, `page_token` should contain a next_page_token |
| /// from a previous ListInstancesResponse. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListInstancesResponse]. |
| /// |
| /// 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<ListInstancesResponse> list( |
| core.String parent, { |
| core.String filter, |
| core.int pageSize, |
| core.String pageToken, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (parent == null) { |
| throw core.ArgumentError('Parameter parent is required.'); |
| } |
| if (filter != null) { |
| _queryParams['filter'] = [filter]; |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = |
| 'v1/' + commons.Escaper.ecapeVariableReserved('$parent') + '/instances'; |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => ListInstancesResponse.fromJson(data)); |
| } |
| |
| /// Updates an instance, and begins allocating or releasing resources as |
| /// requested. The returned long-running operation can be used to track the |
| /// progress of updating the instance. If the named instance does not exist, |
| /// returns `NOT_FOUND`. Immediately upon completion of this request: * For |
| /// resource types for which a decrease in the instance's allocation has been |
| /// requested, billing is based on the newly-requested level. Until completion |
| /// of the returned operation: * Cancelling the operation sets its metadata's |
| /// cancel_time, and begins restoring resources to their pre-request values. |
| /// The operation is guaranteed to succeed at undoing all resource changes, |
| /// after which point it terminates with a `CANCELLED` status. * All other |
| /// attempts to modify the instance are rejected. * Reading the instance via |
| /// the API continues to give the pre-request resource levels. Upon completion |
| /// of the returned operation: * Billing begins for all successfully-allocated |
| /// resources (some types may have lower than the requested levels). * All |
| /// newly-reserved resources are available for serving the instance's tables. |
| /// * The instance's new resource levels are readable via the API. The |
| /// returned long-running operation will have a name of the format |
| /// `/operations/` and can be used to track the instance modification. The |
| /// metadata field type is UpdateInstanceMetadata. The response field type is |
| /// Instance, if successful. Authorization requires `spanner.instances.update` |
| /// permission on resource name. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Required. A unique identifier for the instance, which cannot be |
| /// changed after the instance is created. Values are of the form |
| /// `projects//instances/a-z*[a-z0-9]`. The final segment of the name must be |
| /// between 2 and 64 characters in length. |
| /// Value must have pattern "^projects/[^/]+/instances/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// 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<Operation> patch( |
| UpdateInstanceRequest request, |
| core.String name, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = _requester.request( |
| _url, |
| 'PATCH', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Operation.fromJson(data)); |
| } |
| |
| /// Sets the access control policy on an instance resource. Replaces any |
| /// existing policy. Authorization requires `spanner.instances.setIamPolicy` |
| /// on resource. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [resource] - REQUIRED: The Cloud Spanner resource for which the policy is |
| /// being set. The format is `projects//instances/` for instance resources and |
| /// `projects//instances//databases/` for databases resources. |
| /// Value must have pattern "^projects/[^/]+/instances/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Policy]. |
| /// |
| /// 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<Policy> setIamPolicy( |
| SetIamPolicyRequest request, |
| core.String resource, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (resource == null) { |
| throw core.ArgumentError('Parameter resource is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$resource') + |
| ':setIamPolicy'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Policy.fromJson(data)); |
| } |
| |
| /// Returns permissions that the caller has on the specified instance |
| /// resource. Attempting this RPC on a non-existent Cloud Spanner instance |
| /// resource will result in a NOT_FOUND error if the user has |
| /// `spanner.instances.list` permission on the containing Google Cloud |
| /// Project. Otherwise returns an empty set of permissions. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [resource] - REQUIRED: The Cloud Spanner resource for which permissions |
| /// are being tested. The format is `projects//instances/` for instance |
| /// resources and `projects//instances//databases/` for database resources. |
| /// Value must have pattern "^projects/[^/]+/instances/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [TestIamPermissionsResponse]. |
| /// |
| /// 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<TestIamPermissionsResponse> testIamPermissions( |
| TestIamPermissionsRequest request, |
| core.String resource, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (resource == null) { |
| throw core.ArgumentError('Parameter resource is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$resource') + |
| ':testIamPermissions'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => TestIamPermissionsResponse.fromJson(data)); |
| } |
| } |
| |
| class ProjectsInstancesBackupOperationsResourceApi { |
| final commons.ApiRequester _requester; |
| |
| ProjectsInstancesBackupOperationsResourceApi(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// Lists the backup long-running operations in the given instance. A backup |
| /// operation has a name of the form |
| /// `projects//instances//backups//operations/`. The long-running operation |
| /// metadata field type `metadata.type_url` describes the type of the |
| /// metadata. Operations returned include those that have |
| /// completed/failed/canceled within the last 7 days, and pending operations. |
| /// Operations returned are ordered by |
| /// `operation.metadata.value.progress.start_time` in descending order |
| /// starting from the most recently started operation. |
| /// |
| /// Request parameters: |
| /// |
| /// [parent] - Required. The instance of the backup operations. Values are of |
| /// the form `projects//instances/`. |
| /// Value must have pattern "^projects/[^/]+/instances/[^/]+$". |
| /// |
| /// [filter] - An expression that filters the list of returned backup |
| /// operations. A filter expression consists of a field name, a comparison |
| /// operator, and a value for filtering. The value must be a string, a number, |
| /// or a boolean. The comparison operator must be one of: `<`, `>`, `<=`, |
| /// `>=`, `!=`, `=`, or `:`. Colon `:` is the contains operator. Filter rules |
| /// are not case sensitive. The following fields in the operation are eligible |
| /// for filtering: * `name` - The name of the long-running operation * `done` |
| /// - False if the operation is in progress, else true. * `metadata.@type` - |
| /// the type of metadata. For example, the type string for |
| /// CreateBackupMetadata is |
| /// `type.googleapis.com/google.spanner.admin.database.v1.CreateBackupMetadata`. |
| /// * `metadata.` - any field in metadata.value. * `error` - Error associated |
| /// with the long-running operation. * `response.@type` - the type of |
| /// response. * `response.` - any field in response.value. You can combine |
| /// multiple expressions by enclosing each expression in parentheses. By |
| /// default, expressions are combined with AND logic, but you can specify AND, |
| /// OR, and NOT logic explicitly. Here are a few examples: * `done:true` - The |
| /// operation is complete. * `metadata.database:prod` - The database the |
| /// backup was taken from has a name containing the string "prod". * |
| /// `(metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.CreateBackupMetadata) |
| /// AND` \ `(metadata.name:howl) AND` \ `(metadata.progress.start_time < |
| /// \"2018-03-28T14:50:00Z\") AND` \ `(error:*)` - Returns operations where: * |
| /// The operation's metadata type is CreateBackupMetadata. * The backup name |
| /// contains the string "howl". * The operation started before |
| /// 2018-03-28T14:50:00Z. * The operation resulted in an error. |
| /// |
| /// [pageSize] - Number of operations to be returned in the response. If 0 or |
| /// less, defaults to the server's maximum allowed page size. |
| /// |
| /// [pageToken] - If non-empty, `page_token` should contain a next_page_token |
| /// from a previous ListBackupOperationsResponse to the same `parent` and with |
| /// the same `filter`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListBackupOperationsResponse]. |
| /// |
| /// 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<ListBackupOperationsResponse> list( |
| core.String parent, { |
| core.String filter, |
| core.int pageSize, |
| core.String pageToken, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (parent == null) { |
| throw core.ArgumentError('Parameter parent is required.'); |
| } |
| if (filter != null) { |
| _queryParams['filter'] = [filter]; |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$parent') + |
| '/backupOperations'; |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response |
| .then((data) => ListBackupOperationsResponse.fromJson(data)); |
| } |
| } |
| |
| class ProjectsInstancesBackupsResourceApi { |
| final commons.ApiRequester _requester; |
| |
| ProjectsInstancesBackupsOperationsResourceApi get operations => |
| ProjectsInstancesBackupsOperationsResourceApi(_requester); |
| |
| ProjectsInstancesBackupsResourceApi(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// Starts creating a new Cloud Spanner Backup. The returned backup |
| /// long-running operation will have a name of the format |
| /// `projects//instances//backups//operations/` and can be used to track |
| /// creation of the backup. The metadata field type is CreateBackupMetadata. |
| /// The response field type is Backup, if successful. Cancelling the returned |
| /// operation will stop the creation and delete the backup. There can be only |
| /// one pending backup creation per database. Backup creation of different |
| /// databases can run concurrently. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [parent] - Required. The name of the instance in which the backup will be |
| /// created. This must be the same instance that contains the database the |
| /// backup will be created from. The backup will be stored in the location(s) |
| /// specified in the instance configuration of this instance. Values are of |
| /// the form `projects//instances/`. |
| /// Value must have pattern "^projects/[^/]+/instances/[^/]+$". |
| /// |
| /// [backupId] - Required. The id of the backup to be created. The `backup_id` |
| /// appended to `parent` forms the full backup name of the form |
| /// `projects//instances//backups/`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// 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<Operation> create( |
| Backup request, |
| core.String parent, { |
| core.String backupId, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (parent == null) { |
| throw core.ArgumentError('Parameter parent is required.'); |
| } |
| if (backupId != null) { |
| _queryParams['backupId'] = [backupId]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = |
| 'v1/' + commons.Escaper.ecapeVariableReserved('$parent') + '/backups'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Operation.fromJson(data)); |
| } |
| |
| /// Deletes a pending or completed Backup. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Required. Name of the backup to delete. Values are of the form |
| /// `projects//instances//backups/`. |
| /// Value must have pattern "^projects/[^/]+/instances/[^/]+/backups/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// 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, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = _requester.request( |
| _url, |
| 'DELETE', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Empty.fromJson(data)); |
| } |
| |
| /// Gets metadata on a pending or completed Backup. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Required. Name of the backup. Values are of the form |
| /// `projects//instances//backups/`. |
| /// Value must have pattern "^projects/[^/]+/instances/[^/]+/backups/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Backup]. |
| /// |
| /// 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<Backup> get( |
| core.String name, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Backup.fromJson(data)); |
| } |
| |
| /// Gets the access control policy for a database or backup resource. Returns |
| /// an empty policy if a database or backup exists but does not have a policy |
| /// set. Authorization requires `spanner.databases.getIamPolicy` permission on |
| /// resource. For backups, authorization requires |
| /// `spanner.backups.getIamPolicy` permission on resource. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [resource] - REQUIRED: The Cloud Spanner resource for which the policy is |
| /// being retrieved. The format is `projects//instances/` for instance |
| /// resources and `projects//instances//databases/` for database resources. |
| /// Value must have pattern "^projects/[^/]+/instances/[^/]+/backups/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Policy]. |
| /// |
| /// 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<Policy> getIamPolicy( |
| GetIamPolicyRequest request, |
| core.String resource, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (resource == null) { |
| throw core.ArgumentError('Parameter resource is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$resource') + |
| ':getIamPolicy'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Policy.fromJson(data)); |
| } |
| |
| /// Lists completed and pending backups. Backups returned are ordered by |
| /// `create_time` in descending order, starting from the most recent |
| /// `create_time`. |
| /// |
| /// Request parameters: |
| /// |
| /// [parent] - Required. The instance to list backups from. Values are of the |
| /// form `projects//instances/`. |
| /// Value must have pattern "^projects/[^/]+/instances/[^/]+$". |
| /// |
| /// [filter] - An expression that filters the list of returned backups. A |
| /// filter expression consists of a field name, a comparison operator, and a |
| /// value for filtering. The value must be a string, a number, or a boolean. |
| /// The comparison operator must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, |
| /// or `:`. Colon `:` is the contains operator. Filter rules are not case |
| /// sensitive. The following fields in the Backup are eligible for filtering: |
| /// * `name` * `database` * `state` * `create_time` (and values are of the |
| /// format YYYY-MM-DDTHH:MM:SSZ) * `expire_time` (and values are of the format |
| /// YYYY-MM-DDTHH:MM:SSZ) * `size_bytes` You can combine multiple expressions |
| /// by enclosing each expression in parentheses. By default, expressions are |
| /// combined with AND logic, but you can specify AND, OR, and NOT logic |
| /// explicitly. Here are a few examples: * `name:Howl` - The backup's name |
| /// contains the string "howl". * `database:prod` - The database's name |
| /// contains the string "prod". * `state:CREATING` - The backup is pending |
| /// creation. * `state:READY` - The backup is fully created and ready for use. |
| /// * `(name:howl) AND (create_time < \"2018-03-28T14:50:00Z\")` - The backup |
| /// name contains the string "howl" and `create_time` of the backup is before |
| /// 2018-03-28T14:50:00Z. * `expire_time < \"2018-03-28T14:50:00Z\"` - The |
| /// backup `expire_time` is before 2018-03-28T14:50:00Z. * `size_bytes > |
| /// 10000000000` - The backup's size is greater than 10GB |
| /// |
| /// [pageSize] - Number of backups to be returned in the response. If 0 or |
| /// less, defaults to the server's maximum allowed page size. |
| /// |
| /// [pageToken] - If non-empty, `page_token` should contain a next_page_token |
| /// from a previous ListBackupsResponse to the same `parent` and with the same |
| /// `filter`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListBackupsResponse]. |
| /// |
| /// 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<ListBackupsResponse> list( |
| core.String parent, { |
| core.String filter, |
| core.int pageSize, |
| core.String pageToken, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (parent == null) { |
| throw core.ArgumentError('Parameter parent is required.'); |
| } |
| if (filter != null) { |
| _queryParams['filter'] = [filter]; |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = |
| 'v1/' + commons.Escaper.ecapeVariableReserved('$parent') + '/backups'; |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => ListBackupsResponse.fromJson(data)); |
| } |
| |
| /// Updates a pending or completed Backup. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Output only for the CreateBackup operation. Required for the |
| /// UpdateBackup operation. A globally unique identifier for the backup which |
| /// cannot be changed. Values are of the form |
| /// `projects//instances//backups/a-z*[a-z0-9]` The final segment of the name |
| /// must be between 2 and 60 characters in length. The backup is stored in the |
| /// location(s) specified in the instance configuration of the instance |
| /// containing the backup, identified by the prefix of the backup name of the |
| /// form `projects//instances/`. |
| /// Value must have pattern "^projects/[^/]+/instances/[^/]+/backups/[^/]+$". |
| /// |
| /// [updateMask] - Required. A mask specifying which fields (e.g. |
| /// `expire_time`) in the Backup resource should be updated. This mask is |
| /// relative to the Backup resource, not to the request message. The field |
| /// mask must always be specified; this prevents any future fields from being |
| /// erased accidentally by clients that do not know about them. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Backup]. |
| /// |
| /// 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<Backup> patch( |
| Backup request, |
| core.String name, { |
| core.String updateMask, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if (updateMask != null) { |
| _queryParams['updateMask'] = [updateMask]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = _requester.request( |
| _url, |
| 'PATCH', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Backup.fromJson(data)); |
| } |
| |
| /// Sets the access control policy on a database or backup resource. Replaces |
| /// any existing policy. Authorization requires |
| /// `spanner.databases.setIamPolicy` permission on resource. For backups, |
| /// authorization requires `spanner.backups.setIamPolicy` permission on |
| /// resource. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [resource] - REQUIRED: The Cloud Spanner resource for which the policy is |
| /// being set. The format is `projects//instances/` for instance resources and |
| /// `projects//instances//databases/` for databases resources. |
| /// Value must have pattern "^projects/[^/]+/instances/[^/]+/backups/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Policy]. |
| /// |
| /// 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<Policy> setIamPolicy( |
| SetIamPolicyRequest request, |
| core.String resource, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (resource == null) { |
| throw core.ArgumentError('Parameter resource is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$resource') + |
| ':setIamPolicy'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Policy.fromJson(data)); |
| } |
| |
| /// Returns permissions that the caller has on the specified database or |
| /// backup resource. Attempting this RPC on a non-existent Cloud Spanner |
| /// database will result in a NOT_FOUND error if the user has |
| /// `spanner.databases.list` permission on the containing Cloud Spanner |
| /// instance. Otherwise returns an empty set of permissions. Calling this |
| /// method on a backup that does not exist will result in a NOT_FOUND error if |
| /// the user has `spanner.backups.list` permission on the containing instance. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [resource] - REQUIRED: The Cloud Spanner resource for which permissions |
| /// are being tested. The format is `projects//instances/` for instance |
| /// resources and `projects//instances//databases/` for database resources. |
| /// Value must have pattern "^projects/[^/]+/instances/[^/]+/backups/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [TestIamPermissionsResponse]. |
| /// |
| /// 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<TestIamPermissionsResponse> testIamPermissions( |
| TestIamPermissionsRequest request, |
| core.String resource, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (resource == null) { |
| throw core.ArgumentError('Parameter resource is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$resource') + |
| ':testIamPermissions'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => TestIamPermissionsResponse.fromJson(data)); |
| } |
| } |
| |
| class ProjectsInstancesBackupsOperationsResourceApi { |
| final commons.ApiRequester _requester; |
| |
| ProjectsInstancesBackupsOperationsResourceApi(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// Starts asynchronous cancellation on a long-running operation. The server |
| /// makes a best effort to cancel the operation, but success is not |
| /// guaranteed. If the server doesn't support this method, it returns |
| /// `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation |
| /// or other methods to check whether the cancellation succeeded or whether |
| /// the operation completed despite cancellation. On successful cancellation, |
| /// the operation is not deleted; instead, it becomes an operation with an |
| /// Operation.error value with a google.rpc.Status.code of 1, corresponding to |
| /// `Code.CANCELLED`. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name of the operation resource to be cancelled. |
| /// Value must have pattern |
| /// "^projects/[^/]+/instances/[^/]+/backups/[^/]+/operations/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// 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> cancel( |
| core.String name, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name') + ':cancel'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Empty.fromJson(data)); |
| } |
| |
| /// Deletes a long-running operation. This method indicates that the client is |
| /// no longer interested in the operation result. It does not cancel the |
| /// operation. If the server doesn't support this method, it returns |
| /// `google.rpc.Code.UNIMPLEMENTED`. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name of the operation resource to be deleted. |
| /// Value must have pattern |
| /// "^projects/[^/]+/instances/[^/]+/backups/[^/]+/operations/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// 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, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = _requester.request( |
| _url, |
| 'DELETE', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Empty.fromJson(data)); |
| } |
| |
| /// Gets the latest state of a long-running operation. Clients can use this |
| /// method to poll the operation result at intervals as recommended by the API |
| /// service. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name of the operation resource. |
| /// Value must have pattern |
| /// "^projects/[^/]+/instances/[^/]+/backups/[^/]+/operations/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// 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<Operation> get( |
| core.String name, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Operation.fromJson(data)); |
| } |
| |
| /// Lists operations that match the specified filter in the request. If the |
| /// server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the |
| /// `name` binding allows API services to override the binding to use |
| /// different resource name schemes, such as `users / * /operations`. To |
| /// override the binding, API services can add a binding such as |
| /// `"/v1/{name=users / * }/operations"` to their service configuration. For |
| /// backwards compatibility, the default name includes the operations |
| /// collection id, however overriding users must ensure the name binding is |
| /// the parent resource, without the operations collection id. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name of the operation's parent resource. |
| /// Value must have pattern |
| /// "^projects/[^/]+/instances/[^/]+/backups/[^/]+/operations$". |
| /// |
| /// [filter] - The standard list filter. |
| /// |
| /// [pageSize] - The standard list page size. |
| /// |
| /// [pageToken] - The standard list page token. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListOperationsResponse]. |
| /// |
| /// 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<ListOperationsResponse> list( |
| core.String name, { |
| core.String filter, |
| core.int pageSize, |
| core.String pageToken, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if (filter != null) { |
| _queryParams['filter'] = [filter]; |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => ListOperationsResponse.fromJson(data)); |
| } |
| } |
| |
| class ProjectsInstancesDatabaseOperationsResourceApi { |
| final commons.ApiRequester _requester; |
| |
| ProjectsInstancesDatabaseOperationsResourceApi(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// Lists database longrunning-operations. A database operation has a name of |
| /// the form `projects//instances//databases//operations/`. The long-running |
| /// operation metadata field type `metadata.type_url` describes the type of |
| /// the metadata. Operations returned include those that have |
| /// completed/failed/canceled within the last 7 days, and pending operations. |
| /// |
| /// Request parameters: |
| /// |
| /// [parent] - Required. The instance of the database operations. Values are |
| /// of the form `projects//instances/`. |
| /// Value must have pattern "^projects/[^/]+/instances/[^/]+$". |
| /// |
| /// [filter] - An expression that filters the list of returned operations. A |
| /// filter expression consists of a field name, a comparison operator, and a |
| /// value for filtering. The value must be a string, a number, or a boolean. |
| /// The comparison operator must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, |
| /// or `:`. Colon `:` is the contains operator. Filter rules are not case |
| /// sensitive. The following fields in the Operation are eligible for |
| /// filtering: * `name` - The name of the long-running operation * `done` - |
| /// False if the operation is in progress, else true. * `metadata.@type` - the |
| /// type of metadata. For example, the type string for RestoreDatabaseMetadata |
| /// is |
| /// `type.googleapis.com/google.spanner.admin.database.v1.RestoreDatabaseMetadata`. |
| /// * `metadata.` - any field in metadata.value. * `error` - Error associated |
| /// with the long-running operation. * `response.@type` - the type of |
| /// response. * `response.` - any field in response.value. You can combine |
| /// multiple expressions by enclosing each expression in parentheses. By |
| /// default, expressions are combined with AND logic. However, you can specify |
| /// AND, OR, and NOT logic explicitly. Here are a few examples: * `done:true` |
| /// - The operation is complete. * |
| /// `(metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.RestoreDatabaseMetadata) |
| /// AND` \ `(metadata.source_type:BACKUP) AND` \ |
| /// `(metadata.backup_info.backup:backup_howl) AND` \ |
| /// `(metadata.name:restored_howl) AND` \ `(metadata.progress.start_time < |
| /// \"2018-03-28T14:50:00Z\") AND` \ `(error:*)` - Return operations where: * |
| /// The operation's metadata type is RestoreDatabaseMetadata. * The database |
| /// is restored from a backup. * The backup name contains "backup_howl". * The |
| /// restored database's name contains "restored_howl". * The operation started |
| /// before 2018-03-28T14:50:00Z. * The operation resulted in an error. |
| /// |
| /// [pageSize] - Number of operations to be returned in the response. If 0 or |
| /// less, defaults to the server's maximum allowed page size. |
| /// |
| /// [pageToken] - If non-empty, `page_token` should contain a next_page_token |
| /// from a previous ListDatabaseOperationsResponse to the same `parent` and |
| /// with the same `filter`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListDatabaseOperationsResponse]. |
| /// |
| /// 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<ListDatabaseOperationsResponse> list( |
| core.String parent, { |
| core.String filter, |
| core.int pageSize, |
| core.String pageToken, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (parent == null) { |
| throw core.ArgumentError('Parameter parent is required.'); |
| } |
| if (filter != null) { |
| _queryParams['filter'] = [filter]; |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$parent') + |
| '/databaseOperations'; |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response |
| .then((data) => ListDatabaseOperationsResponse.fromJson(data)); |
| } |
| } |
| |
| class ProjectsInstancesDatabasesResourceApi { |
| final commons.ApiRequester _requester; |
| |
| ProjectsInstancesDatabasesOperationsResourceApi get operations => |
| ProjectsInstancesDatabasesOperationsResourceApi(_requester); |
| ProjectsInstancesDatabasesSessionsResourceApi get sessions => |
| ProjectsInstancesDatabasesSessionsResourceApi(_requester); |
| |
| ProjectsInstancesDatabasesResourceApi(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// Creates a new Cloud Spanner database and starts to prepare it for serving. |
| /// The returned long-running operation will have a name of the format |
| /// `/operations/` and can be used to track preparation of the database. The |
| /// metadata field type is CreateDatabaseMetadata. The response field type is |
| /// Database, if successful. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [parent] - Required. The name of the instance that will serve the new |
| /// database. Values are of the form `projects//instances/`. |
| /// Value must have pattern "^projects/[^/]+/instances/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// 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<Operation> create( |
| CreateDatabaseRequest request, |
| core.String parent, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (parent == null) { |
| throw core.ArgumentError('Parameter parent is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = |
| 'v1/' + commons.Escaper.ecapeVariableReserved('$parent') + '/databases'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Operation.fromJson(data)); |
| } |
| |
| /// Drops (aka deletes) a Cloud Spanner database. Completed backups for the |
| /// database will be retained according to their `expire_time`. |
| /// |
| /// Request parameters: |
| /// |
| /// [database] - Required. The database to be dropped. |
| /// Value must have pattern |
| /// "^projects/[^/]+/instances/[^/]+/databases/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// 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> dropDatabase( |
| core.String database, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (database == null) { |
| throw core.ArgumentError('Parameter database is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$database'); |
| |
| final _response = _requester.request( |
| _url, |
| 'DELETE', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Empty.fromJson(data)); |
| } |
| |
| /// Gets the state of a Cloud Spanner database. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Required. The name of the requested database. Values are of the |
| /// form `projects//instances//databases/`. |
| /// Value must have pattern |
| /// "^projects/[^/]+/instances/[^/]+/databases/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Database]. |
| /// |
| /// 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<Database> get( |
| core.String name, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Database.fromJson(data)); |
| } |
| |
| /// Returns the schema of a Cloud Spanner database as a list of formatted DDL |
| /// statements. This method does not show pending schema updates, those may be |
| /// queried using the Operations API. |
| /// |
| /// Request parameters: |
| /// |
| /// [database] - Required. The database whose schema we wish to get. Values |
| /// are of the form `projects//instances//databases/` |
| /// Value must have pattern |
| /// "^projects/[^/]+/instances/[^/]+/databases/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [GetDatabaseDdlResponse]. |
| /// |
| /// 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<GetDatabaseDdlResponse> getDdl( |
| core.String database, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (database == null) { |
| throw core.ArgumentError('Parameter database is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$database') + '/ddl'; |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => GetDatabaseDdlResponse.fromJson(data)); |
| } |
| |
| /// Gets the access control policy for a database or backup resource. Returns |
| /// an empty policy if a database or backup exists but does not have a policy |
| /// set. Authorization requires `spanner.databases.getIamPolicy` permission on |
| /// resource. For backups, authorization requires |
| /// `spanner.backups.getIamPolicy` permission on resource. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [resource] - REQUIRED: The Cloud Spanner resource for which the policy is |
| /// being retrieved. The format is `projects//instances/` for instance |
| /// resources and `projects//instances//databases/` for database resources. |
| /// Value must have pattern |
| /// "^projects/[^/]+/instances/[^/]+/databases/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Policy]. |
| /// |
| /// 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<Policy> getIamPolicy( |
| GetIamPolicyRequest request, |
| core.String resource, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (resource == null) { |
| throw core.ArgumentError('Parameter resource is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$resource') + |
| ':getIamPolicy'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Policy.fromJson(data)); |
| } |
| |
| /// Lists Cloud Spanner databases. |
| /// |
| /// Request parameters: |
| /// |
| /// [parent] - Required. The instance whose databases should be listed. Values |
| /// are of the form `projects//instances/`. |
| /// Value must have pattern "^projects/[^/]+/instances/[^/]+$". |
| /// |
| /// [pageSize] - Number of databases to be returned in the response. If 0 or |
| /// less, defaults to the server's maximum allowed page size. |
| /// |
| /// [pageToken] - If non-empty, `page_token` should contain a next_page_token |
| /// from a previous ListDatabasesResponse. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListDatabasesResponse]. |
| /// |
| /// 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<ListDatabasesResponse> list( |
| core.String parent, { |
| core.int pageSize, |
| core.String pageToken, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (parent == null) { |
| throw core.ArgumentError('Parameter parent is required.'); |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = |
| 'v1/' + commons.Escaper.ecapeVariableReserved('$parent') + '/databases'; |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => ListDatabasesResponse.fromJson(data)); |
| } |
| |
| /// Create a new database by restoring from a completed backup. The new |
| /// database must be in the same project and in an instance with the same |
| /// instance configuration as the instance containing the backup. The returned |
| /// database long-running operation has a name of the format |
| /// `projects//instances//databases//operations/`, and can be used to track |
| /// the progress of the operation, and to cancel it. The metadata field type |
| /// is RestoreDatabaseMetadata. The response type is Database, if successful. |
| /// Cancelling the returned operation will stop the restore and delete the |
| /// database. There can be only one database being restored into an instance |
| /// at a time. Once the restore operation completes, a new restore operation |
| /// can be initiated, without waiting for the optimize operation associated |
| /// with the first restore to complete. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [parent] - Required. The name of the instance in which to create the |
| /// restored database. This instance must be in the same project and have the |
| /// same instance configuration as the instance containing the source backup. |
| /// Values are of the form `projects//instances/`. |
| /// Value must have pattern "^projects/[^/]+/instances/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// 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<Operation> restore( |
| RestoreDatabaseRequest request, |
| core.String parent, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (parent == null) { |
| throw core.ArgumentError('Parameter parent is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$parent') + |
| '/databases:restore'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Operation.fromJson(data)); |
| } |
| |
| /// Sets the access control policy on a database or backup resource. Replaces |
| /// any existing policy. Authorization requires |
| /// `spanner.databases.setIamPolicy` permission on resource. For backups, |
| /// authorization requires `spanner.backups.setIamPolicy` permission on |
| /// resource. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [resource] - REQUIRED: The Cloud Spanner resource for which the policy is |
| /// being set. The format is `projects//instances/` for instance resources and |
| /// `projects//instances//databases/` for databases resources. |
| /// Value must have pattern |
| /// "^projects/[^/]+/instances/[^/]+/databases/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Policy]. |
| /// |
| /// 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<Policy> setIamPolicy( |
| SetIamPolicyRequest request, |
| core.String resource, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (resource == null) { |
| throw core.ArgumentError('Parameter resource is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$resource') + |
| ':setIamPolicy'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Policy.fromJson(data)); |
| } |
| |
| /// Returns permissions that the caller has on the specified database or |
| /// backup resource. Attempting this RPC on a non-existent Cloud Spanner |
| /// database will result in a NOT_FOUND error if the user has |
| /// `spanner.databases.list` permission on the containing Cloud Spanner |
| /// instance. Otherwise returns an empty set of permissions. Calling this |
| /// method on a backup that does not exist will result in a NOT_FOUND error if |
| /// the user has `spanner.backups.list` permission on the containing instance. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [resource] - REQUIRED: The Cloud Spanner resource for which permissions |
| /// are being tested. The format is `projects//instances/` for instance |
| /// resources and `projects//instances//databases/` for database resources. |
| /// Value must have pattern |
| /// "^projects/[^/]+/instances/[^/]+/databases/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [TestIamPermissionsResponse]. |
| /// |
| /// 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<TestIamPermissionsResponse> testIamPermissions( |
| TestIamPermissionsRequest request, |
| core.String resource, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (resource == null) { |
| throw core.ArgumentError('Parameter resource is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$resource') + |
| ':testIamPermissions'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => TestIamPermissionsResponse.fromJson(data)); |
| } |
| |
| /// Updates the schema of a Cloud Spanner database by |
| /// creating/altering/dropping tables, columns, indexes, etc. The returned |
| /// long-running operation will have a name of the format `/operations/` and |
| /// can be used to track execution of the schema change(s). The metadata field |
| /// type is UpdateDatabaseDdlMetadata. The operation has no response. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [database] - Required. The database to update. |
| /// Value must have pattern |
| /// "^projects/[^/]+/instances/[^/]+/databases/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// 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<Operation> updateDdl( |
| UpdateDatabaseDdlRequest request, |
| core.String database, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (database == null) { |
| throw core.ArgumentError('Parameter database is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$database') + '/ddl'; |
| |
| final _response = _requester.request( |
| _url, |
| 'PATCH', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Operation.fromJson(data)); |
| } |
| } |
| |
| class ProjectsInstancesDatabasesOperationsResourceApi { |
| final commons.ApiRequester _requester; |
| |
| ProjectsInstancesDatabasesOperationsResourceApi(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// Starts asynchronous cancellation on a long-running operation. The server |
| /// makes a best effort to cancel the operation, but success is not |
| /// guaranteed. If the server doesn't support this method, it returns |
| /// `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation |
| /// or other methods to check whether the cancellation succeeded or whether |
| /// the operation completed despite cancellation. On successful cancellation, |
| /// the operation is not deleted; instead, it becomes an operation with an |
| /// Operation.error value with a google.rpc.Status.code of 1, corresponding to |
| /// `Code.CANCELLED`. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name of the operation resource to be cancelled. |
| /// Value must have pattern |
| /// "^projects/[^/]+/instances/[^/]+/databases/[^/]+/operations/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// 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> cancel( |
| core.String name, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name') + ':cancel'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Empty.fromJson(data)); |
| } |
| |
| /// Deletes a long-running operation. This method indicates that the client is |
| /// no longer interested in the operation result. It does not cancel the |
| /// operation. If the server doesn't support this method, it returns |
| /// `google.rpc.Code.UNIMPLEMENTED`. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name of the operation resource to be deleted. |
| /// Value must have pattern |
| /// "^projects/[^/]+/instances/[^/]+/databases/[^/]+/operations/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// 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, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = _requester.request( |
| _url, |
| 'DELETE', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Empty.fromJson(data)); |
| } |
| |
| /// Gets the latest state of a long-running operation. Clients can use this |
| /// method to poll the operation result at intervals as recommended by the API |
| /// service. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name of the operation resource. |
| /// Value must have pattern |
| /// "^projects/[^/]+/instances/[^/]+/databases/[^/]+/operations/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// 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<Operation> get( |
| core.String name, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Operation.fromJson(data)); |
| } |
| |
| /// Lists operations that match the specified filter in the request. If the |
| /// server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the |
| /// `name` binding allows API services to override the binding to use |
| /// different resource name schemes, such as `users / * /operations`. To |
| /// override the binding, API services can add a binding such as |
| /// `"/v1/{name=users / * }/operations"` to their service configuration. For |
| /// backwards compatibility, the default name includes the operations |
| /// collection id, however overriding users must ensure the name binding is |
| /// the parent resource, without the operations collection id. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name of the operation's parent resource. |
| /// Value must have pattern |
| /// "^projects/[^/]+/instances/[^/]+/databases/[^/]+/operations$". |
| /// |
| /// [filter] - The standard list filter. |
| /// |
| /// [pageSize] - The standard list page size. |
| /// |
| /// [pageToken] - The standard list page token. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListOperationsResponse]. |
| /// |
| /// 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<ListOperationsResponse> list( |
| core.String name, { |
| core.String filter, |
| core.int pageSize, |
| core.String pageToken, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if (filter != null) { |
| _queryParams['filter'] = [filter]; |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => ListOperationsResponse.fromJson(data)); |
| } |
| } |
| |
| class ProjectsInstancesDatabasesSessionsResourceApi { |
| final commons.ApiRequester _requester; |
| |
| ProjectsInstancesDatabasesSessionsResourceApi(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// Creates multiple new sessions. This API can be used to initialize a |
| /// session cache on the clients. See https://goo.gl/TgSFN2 for best practices |
| /// on session cache management. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [database] - Required. The database in which the new sessions are created. |
| /// Value must have pattern |
| /// "^projects/[^/]+/instances/[^/]+/databases/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [BatchCreateSessionsResponse]. |
| /// |
| /// 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<BatchCreateSessionsResponse> batchCreate( |
| BatchCreateSessionsRequest request, |
| core.String database, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (database == null) { |
| throw core.ArgumentError('Parameter database is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$database') + |
| '/sessions:batchCreate'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => BatchCreateSessionsResponse.fromJson(data)); |
| } |
| |
| /// Begins a new transaction. This step can often be skipped: Read, ExecuteSql |
| /// and Commit can begin a new transaction as a side-effect. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [session] - Required. The session in which the transaction runs. |
| /// Value must have pattern |
| /// "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Transaction]. |
| /// |
| /// 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<Transaction> beginTransaction( |
| BeginTransactionRequest request, |
| core.String session, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (session == null) { |
| throw core.ArgumentError('Parameter session is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$session') + |
| ':beginTransaction'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Transaction.fromJson(data)); |
| } |
| |
| /// Commits a transaction. The request includes the mutations to be applied to |
| /// rows in the database. `Commit` might return an `ABORTED` error. This can |
| /// occur at any time; commonly, the cause is conflicts with concurrent |
| /// transactions. However, it can also happen for a variety of other reasons. |
| /// If `Commit` returns `ABORTED`, the caller should re-attempt the |
| /// transaction from the beginning, re-using the same session. On very rare |
| /// occasions, `Commit` might return `UNKNOWN`. This can happen, for example, |
| /// if the client job experiences a 1+ hour networking failure. At that point, |
| /// Cloud Spanner has lost track of the transaction outcome and we recommend |
| /// that you perform another read from the database to see the state of things |
| /// as they are now. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [session] - Required. The session in which the transaction to be committed |
| /// is running. |
| /// Value must have pattern |
| /// "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [CommitResponse]. |
| /// |
| /// 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<CommitResponse> commit( |
| CommitRequest request, |
| core.String session, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (session == null) { |
| throw core.ArgumentError('Parameter session is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = |
| 'v1/' + commons.Escaper.ecapeVariableReserved('$session') + ':commit'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => CommitResponse.fromJson(data)); |
| } |
| |
| /// Creates a new session. A session can be used to perform transactions that |
| /// read and/or modify data in a Cloud Spanner database. Sessions are meant to |
| /// be reused for many consecutive transactions. Sessions can only execute one |
| /// transaction at a time. To execute multiple concurrent |
| /// read-write/write-only transactions, create multiple sessions. Note that |
| /// standalone reads and queries use a transaction internally, and count |
| /// toward the one transaction limit. Active sessions use additional server |
| /// resources, so it is a good idea to delete idle and unneeded sessions. |
| /// Aside from explicit deletes, Cloud Spanner may delete sessions for which |
| /// no operations are sent for more than an hour. If a session is deleted, |
| /// requests to it return `NOT_FOUND`. Idle sessions can be kept alive by |
| /// sending a trivial SQL query periodically, e.g., `"SELECT 1"`. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [database] - Required. The database in which the new session is created. |
| /// Value must have pattern |
| /// "^projects/[^/]+/instances/[^/]+/databases/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Session]. |
| /// |
| /// 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<Session> create( |
| CreateSessionRequest request, |
| core.String database, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (database == null) { |
| throw core.ArgumentError('Parameter database is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$database') + |
| '/sessions'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Session.fromJson(data)); |
| } |
| |
| /// Ends a session, releasing server resources associated with it. This will |
| /// asynchronously trigger cancellation of any operations that are running |
| /// with this session. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Required. The name of the session to delete. |
| /// Value must have pattern |
| /// "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// 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, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = _requester.request( |
| _url, |
| 'DELETE', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Empty.fromJson(data)); |
| } |
| |
| /// Executes a batch of SQL DML statements. This method allows many statements |
| /// to be run with lower latency than submitting them sequentially with |
| /// ExecuteSql. Statements are executed in sequential order. A request can |
| /// succeed even if a statement fails. The ExecuteBatchDmlResponse.status |
| /// field in the response provides information about the statement that |
| /// failed. Clients must inspect this field to determine whether an error |
| /// occurred. Execution stops after the first failed statement; the remaining |
| /// statements are not executed. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [session] - Required. The session in which the DML statements should be |
| /// performed. |
| /// Value must have pattern |
| /// "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ExecuteBatchDmlResponse]. |
| /// |
| /// 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<ExecuteBatchDmlResponse> executeBatchDml( |
| ExecuteBatchDmlRequest request, |
| core.String session, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (session == null) { |
| throw core.ArgumentError('Parameter session is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$session') + |
| ':executeBatchDml'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => ExecuteBatchDmlResponse.fromJson(data)); |
| } |
| |
| /// Executes an SQL statement, returning all results in a single reply. This |
| /// method cannot be used to return a result set larger than 10 MiB; if the |
| /// query yields more data than that, the query fails with a |
| /// `FAILED_PRECONDITION` error. Operations inside read-write transactions |
| /// might return `ABORTED`. If this occurs, the application should restart the |
| /// transaction from the beginning. See Transaction for more details. Larger |
| /// result sets can be fetched in streaming fashion by calling |
| /// ExecuteStreamingSql instead. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [session] - Required. The session in which the SQL query should be |
| /// performed. |
| /// Value must have pattern |
| /// "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ResultSet]. |
| /// |
| /// 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<ResultSet> executeSql( |
| ExecuteSqlRequest request, |
| core.String session, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (session == null) { |
| throw core.ArgumentError('Parameter session is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$session') + |
| ':executeSql'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => ResultSet.fromJson(data)); |
| } |
| |
| /// Like ExecuteSql, except returns the result set as a stream. Unlike |
| /// ExecuteSql, there is no limit on the size of the returned result set. |
| /// However, no individual row in the result set can exceed 100 MiB, and no |
| /// column value can exceed 10 MiB. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [session] - Required. The session in which the SQL query should be |
| /// performed. |
| /// Value must have pattern |
| /// "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [PartialResultSet]. |
| /// |
| /// 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<PartialResultSet> executeStreamingSql( |
| ExecuteSqlRequest request, |
| core.String session, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (session == null) { |
| throw core.ArgumentError('Parameter session is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$session') + |
| ':executeStreamingSql'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => PartialResultSet.fromJson(data)); |
| } |
| |
| /// Gets a session. Returns `NOT_FOUND` if the session does not exist. This is |
| /// mainly useful for determining whether a session is still alive. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Required. The name of the session to retrieve. |
| /// Value must have pattern |
| /// "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Session]. |
| /// |
| /// 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<Session> get( |
| core.String name, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Session.fromJson(data)); |
| } |
| |
| /// Lists all sessions in a given database. |
| /// |
| /// Request parameters: |
| /// |
| /// [database] - Required. The database in which to list sessions. |
| /// Value must have pattern |
| /// "^projects/[^/]+/instances/[^/]+/databases/[^/]+$". |
| /// |
| /// [filter] - An expression for filtering the results of the request. Filter |
| /// rules are case insensitive. The fields eligible for filtering are: * |
| /// `labels.key` where key is the name of a label Some examples of using |
| /// filters are: * `labels.env:*` --> The session has the label "env". * |
| /// `labels.env:dev` --> The session has the label "env" and the value of the |
| /// label contains the string "dev". |
| /// |
| /// [pageSize] - Number of sessions to be returned in the response. If 0 or |
| /// less, defaults to the server's maximum allowed page size. |
| /// |
| /// [pageToken] - If non-empty, `page_token` should contain a next_page_token |
| /// from a previous ListSessionsResponse. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListSessionsResponse]. |
| /// |
| /// 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<ListSessionsResponse> list( |
| core.String database, { |
| core.String filter, |
| core.int pageSize, |
| core.String pageToken, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (database == null) { |
| throw core.ArgumentError('Parameter database is required.'); |
| } |
| if (filter != null) { |
| _queryParams['filter'] = [filter]; |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$database') + |
| '/sessions'; |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => ListSessionsResponse.fromJson(data)); |
| } |
| |
| /// Creates a set of partition tokens that can be used to execute a query |
| /// operation in parallel. Each of the returned partition tokens can be used |
| /// by ExecuteStreamingSql to specify a subset of the query result to read. |
| /// The same session and read-only transaction must be used by the |
| /// PartitionQueryRequest used to create the partition tokens and the |
| /// ExecuteSqlRequests that use the partition tokens. Partition tokens become |
| /// invalid when the session used to create them is deleted, is idle for too |
| /// long, begins a new transaction, or becomes too old. When any of these |
| /// happen, it is not possible to resume the query, and the whole operation |
| /// must be restarted from the beginning. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [session] - Required. The session used to create the partitions. |
| /// Value must have pattern |
| /// "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [PartitionResponse]. |
| /// |
| /// 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<PartitionResponse> partitionQuery( |
| PartitionQueryRequest request, |
| core.String session, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (session == null) { |
| throw core.ArgumentError('Parameter session is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$session') + |
| ':partitionQuery'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => PartitionResponse.fromJson(data)); |
| } |
| |
| /// Creates a set of partition tokens that can be used to execute a read |
| /// operation in parallel. Each of the returned partition tokens can be used |
| /// by StreamingRead to specify a subset of the read result to read. The same |
| /// session and read-only transaction must be used by the PartitionReadRequest |
| /// used to create the partition tokens and the ReadRequests that use the |
| /// partition tokens. There are no ordering guarantees on rows returned among |
| /// the returned partition tokens, or even within each individual |
| /// StreamingRead call issued with a partition_token. Partition tokens become |
| /// invalid when the session used to create them is deleted, is idle for too |
| /// long, begins a new transaction, or becomes too old. When any of these |
| /// happen, it is not possible to resume the read, and the whole operation |
| /// must be restarted from the beginning. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [session] - Required. The session used to create the partitions. |
| /// Value must have pattern |
| /// "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [PartitionResponse]. |
| /// |
| /// 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<PartitionResponse> partitionRead( |
| PartitionReadRequest request, |
| core.String session, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (session == null) { |
| throw core.ArgumentError('Parameter session is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$session') + |
| ':partitionRead'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => PartitionResponse.fromJson(data)); |
| } |
| |
| /// Reads rows from the database using key lookups and scans, as a simple |
| /// key/value style alternative to ExecuteSql. This method cannot be used to |
| /// return a result set larger than 10 MiB; if the read matches more data than |
| /// that, the read fails with a `FAILED_PRECONDITION` error. Reads inside |
| /// read-write transactions might return `ABORTED`. If this occurs, the |
| /// application should restart the transaction from the beginning. See |
| /// Transaction for more details. Larger result sets can be yielded in |
| /// streaming fashion by calling StreamingRead instead. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [session] - Required. The session in which the read should be performed. |
| /// Value must have pattern |
| /// "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ResultSet]. |
| /// |
| /// 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<ResultSet> read( |
| ReadRequest request, |
| core.String session, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (session == null) { |
| throw core.ArgumentError('Parameter session is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$session') + ':read'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => ResultSet.fromJson(data)); |
| } |
| |
| /// Rolls back a transaction, releasing any locks it holds. It is a good idea |
| /// to call this for any transaction that includes one or more Read or |
| /// ExecuteSql requests and ultimately decides not to commit. `Rollback` |
| /// returns `OK` if it successfully aborts the transaction, the transaction |
| /// was already aborted, or the transaction is not found. `Rollback` never |
| /// returns `ABORTED`. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [session] - Required. The session in which the transaction to roll back is |
| /// running. |
| /// Value must have pattern |
| /// "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// 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> rollback( |
| RollbackRequest request, |
| core.String session, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (session == null) { |
| throw core.ArgumentError('Parameter session is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = |
| 'v1/' + commons.Escaper.ecapeVariableReserved('$session') + ':rollback'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Empty.fromJson(data)); |
| } |
| |
| /// Like Read, except returns the result set as a stream. Unlike Read, there |
| /// is no limit on the size of the returned result set. However, no individual |
| /// row in the result set can exceed 100 MiB, and no column value can exceed |
| /// 10 MiB. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [session] - Required. The session in which the read should be performed. |
| /// Value must have pattern |
| /// "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [PartialResultSet]. |
| /// |
| /// 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<PartialResultSet> streamingRead( |
| ReadRequest request, |
| core.String session, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (session == null) { |
| throw core.ArgumentError('Parameter session is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$session') + |
| ':streamingRead'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => PartialResultSet.fromJson(data)); |
| } |
| } |
| |
| class ProjectsInstancesOperationsResourceApi { |
| final commons.ApiRequester _requester; |
| |
| ProjectsInstancesOperationsResourceApi(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// Starts asynchronous cancellation on a long-running operation. The server |
| /// makes a best effort to cancel the operation, but success is not |
| /// guaranteed. If the server doesn't support this method, it returns |
| /// `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation |
| /// or other methods to check whether the cancellation succeeded or whether |
| /// the operation completed despite cancellation. On successful cancellation, |
| /// the operation is not deleted; instead, it becomes an operation with an |
| /// Operation.error value with a google.rpc.Status.code of 1, corresponding to |
| /// `Code.CANCELLED`. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name of the operation resource to be cancelled. |
| /// Value must have pattern |
| /// "^projects/[^/]+/instances/[^/]+/operations/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// 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> cancel( |
| core.String name, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name') + ':cancel'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Empty.fromJson(data)); |
| } |
| |
| /// Deletes a long-running operation. This method indicates that the client is |
| /// no longer interested in the operation result. It does not cancel the |
| /// operation. If the server doesn't support this method, it returns |
| /// `google.rpc.Code.UNIMPLEMENTED`. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name of the operation resource to be deleted. |
| /// Value must have pattern |
| /// "^projects/[^/]+/instances/[^/]+/operations/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// 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, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = _requester.request( |
| _url, |
| 'DELETE', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Empty.fromJson(data)); |
| } |
| |
| /// Gets the latest state of a long-running operation. Clients can use this |
| /// method to poll the operation result at intervals as recommended by the API |
| /// service. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name of the operation resource. |
| /// Value must have pattern |
| /// "^projects/[^/]+/instances/[^/]+/operations/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// 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<Operation> get( |
| core.String name, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => Operation.fromJson(data)); |
| } |
| |
| /// Lists operations that match the specified filter in the request. If the |
| /// server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the |
| /// `name` binding allows API services to override the binding to use |
| /// different resource name schemes, such as `users / * /operations`. To |
| /// override the binding, API services can add a binding such as |
| /// `"/v1/{name=users / * }/operations"` to their service configuration. For |
| /// backwards compatibility, the default name includes the operations |
| /// collection id, however overriding users must ensure the name binding is |
| /// the parent resource, without the operations collection id. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - The name of the operation's parent resource. |
| /// Value must have pattern "^projects/[^/]+/instances/[^/]+/operations$". |
| /// |
| /// [filter] - The standard list filter. |
| /// |
| /// [pageSize] - The standard list page size. |
| /// |
| /// [pageToken] - The standard list page token. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListOperationsResponse]. |
| /// |
| /// 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<ListOperationsResponse> list( |
| core.String name, { |
| core.String filter, |
| core.int pageSize, |
| core.String pageToken, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if (filter != null) { |
| _queryParams['filter'] = [filter]; |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then((data) => ListOperationsResponse.fromJson(data)); |
| } |
| } |
| |
| /// A backup of a Cloud Spanner database. |
| class Backup { |
| /// Output only. The backup will contain an externally consistent copy of the |
| /// database at the timestamp specified by `create_time`. `create_time` is |
| /// approximately the time the CreateBackup request is received. |
| core.String createTime; |
| |
| /// Required for the CreateBackup operation. Name of the database from which |
| /// this backup was created. This needs to be in the same instance as the |
| /// backup. Values are of the form `projects//instances//databases/`. |
| core.String database; |
| |
| /// Required for the CreateBackup operation. The expiration time of the |
| /// backup, with microseconds granularity that must be at least 6 hours and at |
| /// most 366 days from the time the CreateBackup request is processed. Once |
| /// the `expire_time` has passed, the backup is eligible to be automatically |
| /// deleted by Cloud Spanner to free the resources used by the backup. |
| core.String expireTime; |
| |
| /// Output only for the CreateBackup operation. Required for the UpdateBackup |
| /// operation. A globally unique identifier for the backup which cannot be |
| /// changed. Values are of the form |
| /// `projects//instances//backups/a-z*[a-z0-9]` The final segment of the name |
| /// must be between 2 and 60 characters in length. The backup is stored in the |
| /// location(s) specified in the instance configuration of the instance |
| /// containing the backup, identified by the prefix of the backup name of the |
| /// form `projects//instances/`. |
| core.String name; |
| |
| /// Output only. The names of the restored databases that reference the |
| /// backup. The database names are of the form |
| /// `projects//instances//databases/`. Referencing databases may exist in |
| /// different instances. The existence of any referencing database prevents |
| /// the backup from being deleted. When a restored database from the backup |
| /// enters the `READY` state, the reference to the backup is removed. |
| core.List<core.String> referencingDatabases; |
| |
| /// Output only. Size of the backup in bytes. |
| core.String sizeBytes; |
| |
| /// Output only. The current state of the backup. |
| /// Possible string values are: |
| /// - "STATE_UNSPECIFIED" : Not specified. |
| /// - "CREATING" : The pending backup is still being created. Operations on |
| /// the backup may fail with `FAILED_PRECONDITION` in this state. |
| /// - "READY" : The backup is complete and ready for use. |
| core.String state; |
| |
| Backup(); |
| |
| Backup.fromJson(core.Map _json) { |
| if (_json.containsKey('createTime')) { |
| createTime = _json['createTime']; |
| } |
| if (_json.containsKey('database')) { |
| database = _json['database']; |
| } |
| if (_json.containsKey('expireTime')) { |
| expireTime = _json['expireTime']; |
| } |
| if (_json.containsKey('name')) { |
| name = _json['name']; |
| } |
| if (_json.containsKey('referencingDatabases')) { |
| referencingDatabases = |
| (_json['referencingDatabases'] as core.List).cast<core.String>(); |
| } |
| if (_json.containsKey('sizeBytes')) { |
| sizeBytes = _json['sizeBytes']; |
| } |
| if (_json.containsKey('state')) { |
| state = _json['state']; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (createTime != null) { |
| _json['createTime'] = createTime; |
| } |
| if (database != null) { |
| _json['database'] = database; |
| } |
| if (expireTime != null) { |
| _json['expireTime'] = expireTime; |
| } |
| if (name != null) { |
| _json['name'] = name; |
| } |
| if (referencingDatabases != null) { |
| _json['referencingDatabases'] = referencingDatabases; |
| } |
| if (sizeBytes != null) { |
| _json['sizeBytes'] = sizeBytes; |
| } |
| if (state != null) { |
| _json['state'] = state; |
| } |
| return _json; |
| } |
| } |
| |
| /// Information about a backup. |
| class BackupInfo { |
| /// Name of the backup. |
| core.String backup; |
| |
| /// The backup contains an externally consistent copy of `source_database` at |
| /// the timestamp specified by `create_time`. |
| core.String createTime; |
| |
| /// Name of the database the backup was created from. |
| core.String sourceDatabase; |
| |
| BackupInfo(); |
| |
| BackupInfo.fromJson(core.Map _json) { |
| if (_json.containsKey('backup')) { |
| backup = _json['backup']; |
| } |
| if (_json.containsKey('createTime')) { |
| createTime = _json['createTime']; |
| } |
| if (_json.containsKey('sourceDatabase')) { |
| sourceDatabase = _json['sourceDatabase']; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (backup != null) { |
| _json['backup'] = backup; |
| } |
| if (createTime != null) { |
| _json['createTime'] = createTime; |
| } |
| if (sourceDatabase != null) { |
| _json['sourceDatabase'] = sourceDatabase; |
| } |
| return _json; |
| } |
| } |
| |
| /// The request for BatchCreateSessions. |
| class BatchCreateSessionsRequest { |
| /// Required. The number of sessions to be created in this batch call. The API |
| /// may return fewer than the requested number of sessions. If a specific |
| /// number of sessions are desired, the client can make additional calls to |
| /// BatchCreateSessions (adjusting session_count as necessary). |
| core.int sessionCount; |
| |
| /// Parameters to be applied to each created session. |
| Session sessionTemplate; |
| |
| BatchCreateSessionsRequest(); |
| |
| BatchCreateSessionsRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('sessionCount')) { |
| sessionCount = _json['sessionCount']; |
| } |
| if (_json.containsKey('sessionTemplate')) { |
| sessionTemplate = Session.fromJson(_json['sessionTemplate']); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (sessionCount != null) { |
| _json['sessionCount'] = sessionCount; |
| } |
| if (sessionTemplate != null) { |
| _json['sessionTemplate'] = sessionTemplate.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// The response for BatchCreateSessions. |
| class BatchCreateSessionsResponse { |
| /// The freshly created sessions. |
| core.List<Session> session; |
| |
| BatchCreateSessionsResponse(); |
| |
| BatchCreateSessionsResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('session')) { |
| session = (_json['session'] as core.List) |
| .map<Session>((value) => Session.fromJson(value)) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (session != null) { |
| _json['session'] = session.map((value) => value.toJson()).toList(); |
| } |
| return _json; |
| } |
| } |
| |
| /// The request for BeginTransaction. |
| class BeginTransactionRequest { |
| /// Required. Options for the new transaction. |
| TransactionOptions options; |
| |
| BeginTransactionRequest(); |
| |
| BeginTransactionRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('options')) { |
| options = TransactionOptions.fromJson(_json['options']); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (options != null) { |
| _json['options'] = options.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Associates `members` with a `role`. |
| class Binding { |
| /// A client-specified ID for this binding. Expected to be globally unique to |
| /// support the internal bindings-by-ID API. |
| core.String bindingId; |
| |
| /// The condition that is associated with this binding. If the condition |
| /// evaluates to `true`, then this binding applies to the current request. If |
| /// the condition evaluates to `false`, then this binding does not apply to |
| /// the current request. However, a different role binding might grant the |
| /// same role to one or more of the members in this binding. To learn which |
| /// resources support conditions in their IAM policies, see the [IAM |
| /// documentation](https://cloud.google.com/iam/help/conditions/resource-policies). |
| Expr condition; |
| |
| /// Specifies the identities requesting access for a Cloud Platform resource. |
| /// `members` can have the following values: * `allUsers`: A special |
| /// identifier that represents anyone who is on the internet; with or without |
| /// a Google account. * `allAuthenticatedUsers`: A special identifier that |
| /// represents anyone who is authenticated with a Google account or a service |
| /// account. * `user:{emailid}`: An email address that represents a specific |
| /// Google account. For example, `alice@example.com` . * |
| /// `serviceAccount:{emailid}`: An email address that represents a service |
| /// account. For example, `my-other-app@appspot.gserviceaccount.com`. * |
| /// `group:{emailid}`: An email address that represents a Google group. For |
| /// example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: |
| /// An email address (plus unique identifier) representing a user that has |
| /// been recently deleted. For example, |
| /// `alice@example.com?uid=123456789012345678901`. If the user is recovered, |
| /// this value reverts to `user:{emailid}` and the recovered user retains the |
| /// role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: |
| /// An email address (plus unique identifier) representing a service account |
| /// that has been recently deleted. For example, |
| /// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If |
| /// the service account is undeleted, this value reverts to |
| /// `serviceAccount:{emailid}` and the undeleted service account retains the |
| /// role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email |
| /// address (plus unique identifier) representing a Google group that has been |
| /// recently deleted. For example, |
| /// `admins@example.com?uid=123456789012345678901`. If the group is recovered, |
| /// this value reverts to `group:{emailid}` and the recovered group retains |
| /// the role in the binding. * `domain:{domain}`: The G Suite domain (primary) |
| /// that represents all the users of that domain. For example, `google.com` or |
| /// `example.com`. |
| core.List<core.String> members; |
| |
| /// Role that is assigned to `members`. For example, `roles/viewer`, |
| /// `roles/editor`, or `roles/owner`. |
| core.String role; |
| |
| Binding(); |
| |
| Binding.fromJson(core.Map _json) { |
| if (_json.containsKey('bindingId')) { |
| bindingId = _json['bindingId']; |
| } |
| if (_json.containsKey('condition')) { |
| condition = Expr.fromJson(_json['condition']); |
| } |
| if (_json.containsKey('members')) { |
| members = (_json['members'] as core.List).cast<core.String>(); |
| } |
| if (_json.containsKey('role')) { |
| role = _json['role']; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (bindingId != null) { |
| _json['bindingId'] = bindingId; |
| } |
| if (condition != null) { |
| _json['condition'] = condition.toJson(); |
| } |
| if (members != null) { |
| _json['members'] = members; |
| } |
| if (role != null) { |
| _json['role'] = role; |
| } |
| return _json; |
| } |
| } |
| |
| /// Metadata associated with a parent-child relationship appearing in a |
| /// PlanNode. |
| class ChildLink { |
| /// The node to which the link points. |
| core.int childIndex; |
| |
| /// The type of the link. For example, in Hash Joins this could be used to |
| /// distinguish between the build child and the probe child, or in the case of |
| /// the child being an output variable, to represent the tag associated with |
| /// the output variable. |
| core.String type; |
| |
| /// Only present if the child node is SCALAR and corresponds to an output |
| /// variable of the parent node. The field carries the name of the output |
| /// variable. For example, a `TableScan` operator that reads rows from a table |
| /// will have child links to the `SCALAR` nodes representing the output |
| /// variables created for each column that is read by the operator. The |
| /// corresponding `variable` fields will be set to the variable names assigned |
| /// to the columns. |
| core.String variable; |
| |
| ChildLink(); |
| |
| ChildLink.fromJson(core.Map _json) { |
| if (_json.containsKey('childIndex')) { |
| childIndex = _json['childIndex']; |
| } |
| if (_json.containsKey('type')) { |
| type = _json['type']; |
| } |
| if (_json.containsKey('variable')) { |
| variable = _json['variable']; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (childIndex != null) { |
| _json['childIndex'] = childIndex; |
| } |
| if (type != null) { |
| _json['type'] = type; |
| } |
| if (variable != null) { |
| _json['variable'] = variable; |
| } |
| return _json; |
| } |
| } |
| |
| /// The request for Commit. |
| class CommitRequest { |
| /// The mutations to be executed when this transaction commits. All mutations |
| /// are applied atomically, in the order they appear in this list. |
| core.List<Mutation> mutations; |
| |
| /// Execute mutations in a temporary transaction. Note that unlike commit of a |
| /// previously-started transaction, commit with a temporary transaction is |
| /// non-idempotent. That is, if the `CommitRequest` is sent to Cloud Spanner |
| /// more than once (for instance, due to retries in the application, or in the |
| /// transport library), it is possible that the mutations are executed more |
| /// than once. If this is undesirable, use BeginTransaction and Commit |
| /// instead. |
| TransactionOptions singleUseTransaction; |
| |
| /// Commit a previously-started transaction. |
| core.String transactionId; |
| core.List<core.int> get transactionIdAsBytes => |
| convert.base64.decode(transactionId); |
| |
| set transactionIdAsBytes(core.List<core.int> _bytes) { |
| transactionId = |
| convert.base64.encode(_bytes).replaceAll('/', '_').replaceAll('+', '-'); |
| } |
| |
| CommitRequest(); |
| |
| CommitRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('mutations')) { |
| mutations = (_json['mutations'] as core.List) |
| .map<Mutation>((value) => Mutation.fromJson(value)) |
| .toList(); |
| } |
| if (_json.containsKey('singleUseTransaction')) { |
| singleUseTransaction = |
| TransactionOptions.fromJson(_json['singleUseTransaction']); |
| } |
| if (_json.containsKey('transactionId')) { |
| transactionId = _json['transactionId']; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (mutations != null) { |
| _json['mutations'] = mutations.map((value) => value.toJson()).toList(); |
| } |
| if (singleUseTransaction != null) { |
| _json['singleUseTransaction'] = singleUseTransaction.toJson(); |
| } |
| if (transactionId != null) { |
| _json['transactionId'] = transactionId; |
| } |
| return _json; |
| } |
| } |
| |
| /// The response for Commit. |
| class CommitResponse { |
| /// The Cloud Spanner timestamp at which the transaction committed. |
| core.String commitTimestamp; |
| |
| CommitResponse(); |
| |
| CommitResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('commitTimestamp')) { |
| commitTimestamp = _json['commitTimestamp']; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (commitTimestamp != null) { |
| _json['commitTimestamp'] = commitTimestamp; |
| } |
| return _json; |
| } |
| } |
| |
| /// Metadata type for the operation returned by CreateBackup. |
| class CreateBackupMetadata { |
| /// The time at which cancellation of this operation was received. |
| /// Operations.CancelOperation starts asynchronous cancellation on a |
| /// long-running operation. The server makes a best effort to cancel the |
| /// operation, but success is not guaranteed. Clients can use |
| /// Operations.GetOperation or other methods to check whether the cancellation |
| /// succeeded or whether the operation completed despite cancellation. On |
| /// successful cancellation, the operation is not deleted; instead, it becomes |
| /// an operation with an Operation.error value with a google.rpc.Status.code |
| /// of 1, corresponding to `Code.CANCELLED`. |
| core.String cancelTime; |
| |
| /// The name of the database the backup is created from. |
| core.String database; |
| |
| /// The name of the backup being created. |
| core.String name; |
| |
| /// The progress of the CreateBackup operation. |
| OperationProgress progress; |
| |
| CreateBackupMetadata(); |
| |
| CreateBackupMetadata.fromJson(core.Map _json) { |
| if (_json.containsKey('cancelTime')) { |
| cancelTime = _json['cancelTime']; |
| } |
| if (_json.containsKey('database')) { |
| database = _json['database']; |
| } |
| if (_json.containsKey('name')) { |
| name = _json['name']; |
| } |
| if (_json.containsKey('progress')) { |
| progress = OperationProgress.fromJson(_json['progress']); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (cancelTime != null) { |
| _json['cancelTime'] = cancelTime; |
| } |
| if (database != null) { |
| _json['database'] = database; |
| } |
| if (name != null) { |
| _json['name'] = name; |
| } |
| if (progress != null) { |
| _json['progress'] = progress.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Metadata type for the operation returned by CreateDatabase. |
| class CreateDatabaseMetadata { |
| /// The database being created. |
| core.String database; |
| |
| CreateDatabaseMetadata(); |
| |
| CreateDatabaseMetadata.fromJson(core.Map _json) { |
| if (_json.containsKey('database')) { |
| database = _json['database']; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (database != null) { |
| _json['database'] = database; |
| } |
| return _json; |
| } |
| } |
| |
| /// The request for CreateDatabase. |
| class CreateDatabaseRequest { |
| /// Required. A `CREATE DATABASE` statement, which specifies the ID of the new |
| /// database. The database ID must conform to the regular expression |
| /// `a-z*[a-z0-9]` and be between 2 and 30 characters in length. If the |
| /// database ID is a reserved word or if it contains a hyphen, the database ID |
| /// must be enclosed in backticks (`` ` ``). |
| core.String createStatement; |
| |
| /// Optional. A list of DDL statements to run inside the newly created |
| /// database. Statements can create tables, indexes, etc. These statements |
| /// execute atomically with the creation of the database: if there is an error |
| /// in any statement, the database is not created. |
| core.List<core.String> extraStatements; |
| |
| CreateDatabaseRequest(); |
| |
| CreateDatabaseRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('createStatement')) { |
| createStatement = _json['createStatement']; |
| } |
| if (_json.containsKey('extraStatements')) { |
| extraStatements = |
| (_json['extraStatements'] as core.List).cast<core.String>(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (createStatement != null) { |
| _json['createStatement'] = createStatement; |
| } |
| if (extraStatements != null) { |
| _json['extraStatements'] = extraStatements; |
| } |
| return _json; |
| } |
| } |
| |
| /// Metadata type for the operation returned by CreateInstance. |
| class CreateInstanceMetadata { |
| /// The time at which this operation was cancelled. If set, this operation is |
| /// in the process of undoing itself (which is guaranteed to succeed) and |
| /// cannot be cancelled again. |
| core.String cancelTime; |
| |
| /// The time at which this operation failed or was completed successfully. |
| core.String endTime; |
| |
| /// The instance being created. |
| Instance instance; |
| |
| /// The time at which the CreateInstance request was received. |
| core.String startTime; |
| |
| CreateInstanceMetadata(); |
| |
| CreateInstanceMetadata.fromJson(core.Map _json) { |
| if (_json.containsKey('cancelTime')) { |
| cancelTime = _json['cancelTime']; |
| } |
| if (_json.containsKey('endTime')) { |
| endTime = _json['endTime']; |
| } |
| if (_json.containsKey('instance')) { |
| instance = Instance.fromJson(_json['instance']); |
| } |
| if (_json.containsKey('startTime')) { |
| startTime = _json['startTime']; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (cancelTime != null) { |
| _json['cancelTime'] = cancelTime; |
| } |
| if (endTime != null) { |
| _json['endTime'] = endTime; |
| } |
| if (instance != null) { |
| _json['instance'] = instance.toJson(); |
| } |
| if (startTime != null) { |
| _json['startTime'] = startTime; |
| } |
| return _json; |
| } |
| } |
| |
| /// The request for CreateInstance. |
| class CreateInstanceRequest { |
| /// Required. The instance to create. The name may be omitted, but if |
| /// specified must be `/instances/`. |
| Instance instance; |
| |
| /// Required. The ID of the instance to create. Valid identifiers are of the |
| /// form `a-z*[a-z0-9]` and must be between 2 and 64 characters in length. |
| core.String instanceId; |
| |
| CreateInstanceRequest(); |
| |
| CreateInstanceRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('instance')) { |
| instance = Instance.fromJson(_json['instance']); |
| } |
| if (_json.containsKey('instanceId')) { |
| instanceId = _json['instanceId']; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (instance != null) { |
| _json['instance'] = instance.toJson(); |
| } |
| if (instanceId != null) { |
| _json['instanceId'] = instanceId; |
| } |
| return _json; |
| } |
| } |
| |
| /// The request for CreateSession. |
| class CreateSessionRequest { |
| /// Required. The session to create. |
| Session session; |
| |
| CreateSessionRequest(); |
| |
| CreateSessionRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('session')) { |
| session = Session.fromJson(_json['session']); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (session != null) { |
| _json['session'] = session.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// A Cloud Spanner database. |
| class Database { |
| /// Output only. If exists, the time at which the database creation started. |
| core.String createTime; |
| |
| /// Required. The name of the database. Values are of the form |
| /// `projects//instances//databases/`, where `` is as specified in the `CREATE |
| /// DATABASE` statement. This name can be passed to other API methods to |
| /// identify the database. |
| core.String name; |
| |
| /// Output only. Applicable only for restored databases. Contains information |
| /// about the restore source. |
| RestoreInfo restoreInfo; |
| |
| /// Output only. The current database state. |
| /// Possible string values are: |
| /// - "STATE_UNSPECIFIED" : Not specified. |
| /// - "CREATING" : The database is still being created. Operations on the |
| /// database may fail with `FAILED_PRECONDITION` in this state. |
| /// - "READY" : The database is fully created and ready for use. |
| /// - "READY_OPTIMIZING" : The database is fully created and ready for use, |
| /// but is still being optimized for performance and cannot handle full load. |
| /// In this state, the database still references the backup it was restore |
| /// from, preventing the backup from being deleted. When optimizations are |
| /// complete, the full performance of the database will be restored, and the |
| /// database will transition to `READY` state. |
| core.String state; |
| |
| Database(); |
| |
| Database.fromJson(core.Map _json) { |
| if (_json.containsKey('createTime')) { |
| createTime = _json['createTime']; |
| } |
| if (_json.containsKey('name')) { |
| name = _json['name']; |
| } |
| if (_json.containsKey('restoreInfo')) { |
| restoreInfo = RestoreInfo.fromJson(_json['restoreInfo']); |
| } |
| if (_json.containsKey('state')) { |
| state = _json['state']; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (createTime != null) { |
| _json['createTime'] = createTime; |
| } |
| if (name != null) { |
| _json['name'] = name; |
| } |
| if (restoreInfo != null) { |
| _json['restoreInfo'] = restoreInfo.toJson(); |
| } |
| if (state != null) { |
| _json['state'] = state; |
| } |
| return _json; |
| } |
| } |
| |
| /// Arguments to delete operations. |
| class Delete { |
| /// Required. The primary keys of the rows within table to delete. The primary |
| /// keys must be specified in the order in which they appear in the `PRIMARY |
| /// KEY()` clause of the table's equivalent DDL statement (the DDL statement |
| /// used to create the table). Delete is idempotent. The transaction will |
| /// succeed even if some or all rows do not exist. |
| KeySet keySet; |
| |
| /// Required. The table whose rows will be deleted. |
| core.String table; |
| |
| Delete(); |
| |
| Delete.fromJson(core.Map _json) { |
| if (_json.containsKey('keySet')) { |
| keySet = KeySet.fromJson(_json['keySet']); |
| } |
| if (_json.containsKey('table')) { |
| table = _json['table']; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (keySet != null) { |
| _json['keySet'] = keySet.toJson(); |
| } |
| if (table != null) { |
| _json['table'] = table; |
| } |
| 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( |
| // ignore: avoid_unused_constructor_parameters |
| core.Map _json); |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| return _json; |
| } |
| } |
| |
| /// The request for ExecuteBatchDml. |
| class ExecuteBatchDmlRequest { |
| /// Required. A per-transaction sequence number used to identify this request. |
| /// This field makes each request idempotent such that if the request is |
| /// received multiple times, at most one will succeed. The sequence number |
| /// must be monotonically increasing within the transaction. If a request |
| /// arrives for the first time with an out-of-order sequence number, the |
| /// transaction may be aborted. Replays of previously handled requests will |
| /// yield the same response as the first execution. |
| core.String seqno; |
| |
| /// Required. The list of statements to execute in this batch. Statements are |
| /// executed serially, such that the effects of statement `i` are visible to |
| /// statement `i+1`. Each statement must be a DML statement. Execution stops |
| /// at the first failed statement; the remaining statements are not executed. |
| /// Callers must provide at least one statement. |
| core.List<Statement> statements; |
| |
| /// Required. The transaction to use. Must be a read-write transaction. To |
| /// protect against replays, single-use transactions are not supported. The |
| /// caller must either supply an existing transaction ID or begin a new |
| /// transaction. |
| TransactionSelector transaction; |
| |
| ExecuteBatchDmlRequest(); |
| |
| ExecuteBatchDmlRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('seqno')) { |
| seqno = _json['seqno']; |
| } |
| if (_json.containsKey('statements')) { |
| statements = (_json['statements'] as core.List) |
| .map<Statement>((value) => Statement.fromJson(value)) |
| .toList(); |
| } |
| if (_json.containsKey('transaction')) { |
| transaction = TransactionSelector.fromJson(_json['transaction']); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (seqno != null) { |
| _json['seqno'] = seqno; |
| } |
| if (statements != null) { |
| _json['statements'] = statements.map((value) => value.toJson()).toList(); |
| } |
| if (transaction != null) { |
| _json['transaction'] = transaction.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// The response for ExecuteBatchDml. Contains a list of ResultSet messages, one |
| /// for each DML statement that has successfully executed, in the same order as |
| /// the statements in the request. If a statement fails, the status in the |
| /// response body identifies the cause of the failure. To check for DML |
| /// statements that failed, use the following approach: 1. Check the status in |
| /// the response message. The google.rpc.Code enum value `OK` indicates that all |
| /// statements were executed successfully. 2. If the status was not `OK`, check |
| /// the number of result sets in the response. If the response contains `N` |
| /// ResultSet messages, then statement `N+1` in the request failed. Example 1: * |
| /// Request: 5 DML statements, all executed successfully. * Response: 5 |
| /// ResultSet messages, with the status `OK`. Example 2: * Request: 5 DML |
| /// statements. The third statement has a syntax error. * Response: 2 ResultSet |
| /// messages, and a syntax error (`INVALID_ARGUMENT`) status. The number of |
| /// ResultSet messages indicates that the third statement failed, and the fourth |
| /// and fifth statements were not executed. |
| class ExecuteBatchDmlResponse { |
| /// One ResultSet for each statement in the request that ran successfully, in |
| /// the same order as the statements in the request. Each ResultSet does not |
| /// contain any rows. The ResultSetStats in each ResultSet contain the number |
| /// of rows modified by the statement. Only the first ResultSet in the |
| /// response contains valid ResultSetMetadata. |
| core.List<ResultSet> resultSets; |
| |
| /// If all DML statements are executed successfully, the status is `OK`. |
| /// Otherwise, the error status of the first failed statement. |
| Status status; |
| |
| ExecuteBatchDmlResponse(); |
| |
| ExecuteBatchDmlResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('resultSets')) { |
| resultSets = (_json['resultSets'] as core.List) |
| .map<ResultSet>((value) => ResultSet.fromJson(value)) |
| .toList(); |
| } |
| if (_json.containsKey('status')) { |
| status = Status.fromJson(_json['status']); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (resultSets != null) { |
| _json['resultSets'] = resultSets.map((value) => value.toJson()).toList(); |
| } |
| if (status != null) { |
| _json['status'] = status.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// The request for ExecuteSql and ExecuteStreamingSql. |
| class ExecuteSqlRequest { |
| /// It is not always possible for Cloud Spanner to infer the right SQL type |
| /// from a JSON value. For example, values of type `BYTES` and values of type |
| /// `STRING` both appear in params as JSON strings. In these cases, |
| /// `param_types` can be used to specify the exact SQL type for some or all of |
| /// the SQL statement parameters. See the definition of Type for more |
| /// information about SQL types. |
| core.Map<core.String, Type> paramTypes; |
| |
| /// Parameter names and values that bind to placeholders in the SQL string. A |
| /// parameter placeholder consists of the `@` character followed by the |
| /// parameter name (for example, `@firstName`). Parameter names must conform |
| /// to the naming requirements of identifiers as specified at |
| /// https://cloud.google.com/spanner/docs/lexical#identifiers. Parameters can |
| /// appear anywhere that a literal value is expected. The same parameter name |
| /// can be used more than once, for example: `"WHERE id > @msg_id AND id < |
| /// @msg_id + 100"` It is an error to execute a SQL statement with unbound |
| /// 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; |
| |
| /// If present, results will be restricted to the specified partition |
| /// previously created using PartitionQuery(). There must be an exact match |
| /// for the values of fields common to this message and the |
| /// PartitionQueryRequest message used to create this partition_token. |
| core.String partitionToken; |
| core.List<core.int> get partitionTokenAsBytes => |
| convert.base64.decode(partitionToken); |
| |
| set partitionTokenAsBytes(core.List<core.int> _bytes) { |
| partitionToken = |
| convert.base64.encode(_bytes).replaceAll('/', '_').replaceAll('+', '-'); |
| } |
| |
| /// Used to control the amount of debugging information returned in |
| /// ResultSetStats. If partition_token is set, query_mode can only be set to |
| /// QueryMode.NORMAL. |
| /// Possible string values are: |
| /// - "NORMAL" : The default mode. Only the statement results are returned. |
| /// - "PLAN" : This mode returns only the query plan, without any results or |
| /// execution statistics information. |
| /// - "PROFILE" : This mode returns both the query plan and the execution |
| /// statistics along with the results. |
| core.String queryMode; |
| |
| /// Query optimizer configuration to use for the given query. |
| QueryOptions queryOptions; |
| |
| /// If this request is resuming a previously interrupted SQL statement |
| /// execution, `resume_token` should be copied from the last PartialResultSet |
| /// yielded before the interruption. Doing this enables the new SQL statement |
| /// execution to resume where the last one left off. The rest of the request |
| /// parameters must exactly match the request that yielded this token. |
| core.String resumeToken; |
| core.List<core.int> get resumeTokenAsBytes => |
| convert.base64.decode(resumeToken); |
| |
| set resumeTokenAsBytes(core.List<core.int> _bytes) { |
| resumeToken = |
| convert.base64.encode(_bytes).replaceAll('/', '_').replaceAll('+', '-'); |
| } |
| |
| /// A per-transaction sequence number used to identify this request. This |
| /// field makes each request idempotent such that if the request is received |
| /// multiple times, at most one will succeed. The sequence number must be |
| /// monotonically increasing within the transaction. If a request arrives for |
| /// the first time with an out-of-order sequence number, the transaction may |
| /// be aborted. Replays of previously handled requests will yield the same |
| /// response as the first execution. Required for DML statements. Ignored for |
| /// queries. |
| core.String seqno; |
| |
| /// Required. The SQL string. |
| core.String sql; |
| |
| /// The transaction to use. For queries, if none is provided, the default is a |
| /// temporary read-only transaction with strong concurrency. Standard DML |
| /// statements require a read-write transaction. To protect against replays, |
| /// single-use transactions are not supported. The caller must either supply |
| /// an existing transaction ID or begin a new transaction. Partitioned DML |
| /// requires an existing Partitioned DML transaction ID. |
| TransactionSelector transaction; |
| |
| ExecuteSqlRequest(); |
| |
| ExecuteSqlRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('paramTypes')) { |
| paramTypes = commons.mapMap<core.Map, Type>( |
| _json['paramTypes'].cast<core.String, core.Map>(), |
| (core.Map item) => Type.fromJson(item)); |
| } |
| if (_json.containsKey('params')) { |
| params = (_json['params'] as core.Map).cast<core.String, core.Object>(); |
| } |
| if (_json.containsKey('partitionToken')) { |
| partitionToken = _json['partitionToken']; |
| } |
| if (_json.containsKey('queryMode')) { |
| queryMode = _json['queryMode']; |
| } |
| if (_json.containsKey('queryOptions')) { |
| queryOptions = QueryOptions.fromJson(_json['queryOptions']); |
| } |
| if (_json.containsKey('resumeToken')) { |
| resumeToken = _json['resumeToken']; |
| } |
| if (_json.containsKey('seqno')) { |
| seqno = _json['seqno']; |
| } |
| if (_json.containsKey('sql')) { |
| sql = _json['sql']; |
| } |
| if (_json.containsKey('transaction')) { |
| transaction = TransactionSelector.fromJson(_json['transaction']); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (paramTypes != null) { |
| _json['paramTypes'] = |
| commons.mapMap<Type, core.Map<core.String, core.Object>>( |
| paramTypes, (Type item) => item.toJson()); |
| } |
| if (params != null) { |
| _json['params'] = params; |
| } |
| if (partitionToken != null) { |
| _json['partitionToken'] = partitionToken; |
| } |
| if (queryMode != null) { |
| _json['queryMode'] = queryMode; |
| } |
| if (queryOptions != null) { |
| _json['queryOptions'] = queryOptions.toJson(); |
| } |
| if (resumeToken != null) { |
| _json['resumeToken'] = resumeToken; |
| } |
| if (seqno != null) { |
| _json['seqno'] = seqno; |
| } |
| if (sql != null) { |
| _json['sql'] = sql; |
| } |
| if (transaction != null) { |
| _json['transaction'] = transaction.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Represents a textual expression in the Common Expression Language (CEL) |
| /// syntax. CEL is a C-like expression language. The syntax and semantics of CEL |
| /// are documented at https://github.com/google/cel-spec. Example (Comparison): |
| /// title: "Summary size limit" description: "Determines if a summary is less |
| /// than 100 chars" expression: "document.summary.size() < 100" Example |
| /// (Equality): title: "Requestor is owner" description: "Determines if |
| /// requestor is the document owner" expression: "document.owner == |
| /// request.auth.claims.email" Example (Logic): title: "Public documents" |
| /// description: "Determine whether the document should be publicly visible" |
| /// expression: "document.type != 'private' && document.type != 'internal'" |
| /// Example (Data Manipulation): title: "Notification string" description: |
| /// "Create a notification string with a timestamp." expression: "'New message |
| /// received at ' + string(document.create_time)" The exact variables and |
| /// functions that may be referenced within an expression are determined by the |
| /// service that evaluates it. See the service documentation for additional |
| /// information. |
| class Expr { |
| /// Optional. Description of the expression. This is a longer text which |
| /// describes the expression, e.g. when hovered over it in a UI. |
| core.String description; |
| |
| /// Textual representation of an expression in Common Expression Language |
| /// syntax. |
| core.String expression; |
| |
| /// Optional. String indicating the location of the expression for error |
| /// reporting, e.g. a file name and a position in the file. |
| core.String location; |
| |
| /// Optional. Title for the expression, i.e. a short string describing its |
| /// purpose. This can be used e.g. in UIs which allow to enter the expression. |
| core.String title; |
| |
| Expr(); |
| |
| Expr.fromJson(core.Map _json) { |
| if (_json.containsKey('description')) { |
| description = _json['description']; |
| } |
| if (_json.containsKey('expression')) { |
| expression = _json['expression']; |
| } |
| if (_json.containsKey('location')) { |
| location = _json['location']; |
| } |
| if (_json.containsKey('title')) { |
| title = _json['title']; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (description != null) { |
| _json['description'] = description; |
| } |
| if (expression != null) { |
| _json['expression'] = expression; |
| } |
| if (location != null) { |
| _json['location'] = location; |
| } |
| if (title != null) { |
| _json['title'] = title; |
| } |
| return _json; |
| } |
| } |
| |
| /// Message representing a single field of a struct. |
| class Field { |
| /// The name of the field. For reads, this is the column name. For SQL |
| /// queries, it is the column alias (e.g., `"Word"` in the query `"SELECT |
| /// 'hello' AS Word"`), or the column name (e.g., `"ColName"` in the query |
| /// `"SELECT ColName FROM Table"`). Some columns might have an empty name |
| /// (e.g., !"SELECT UPPER(ColName)"`). Note that a query result can contain |
| /// multiple fields with the same name. |
| core.String name; |
| |
| /// The type of the field. |
| Type type; |
| |
| Field(); |
| |
| Field.fromJson(core.Map _json) { |
| if (_json.containsKey('name')) { |
| name = _json['name']; |
| } |
| if (_json.containsKey('type')) { |
| type = Type.fromJson(_json['type']); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (name != null) { |
| _json['name'] = name; |
| } |
| if (type != null) { |
| _json['type'] = type.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// The response for GetDatabaseDdl. |
| class GetDatabaseDdlResponse { |
| /// A list of formatted DDL statements defining the schema of the database |
| /// specified in the request. |
| core.List<core.String> statements; |
| |
| GetDatabaseDdlResponse(); |
| |
| GetDatabaseDdlResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('statements')) { |
| statements = (_json['statements'] as core.List).cast<core.String>(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (statements != null) { |
| _json['statements'] = statements; |
| } |
| return _json; |
| } |
| } |
| |
| /// Request message for `GetIamPolicy` method. |
| class GetIamPolicyRequest { |
| /// OPTIONAL: A `GetPolicyOptions` object for specifying options to |
| /// `GetIamPolicy`. |
| GetPolicyOptions options; |
| |
| GetIamPolicyRequest(); |
| |
| GetIamPolicyRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('options')) { |
| options = GetPolicyOptions.fromJson(_json['options']); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (options != null) { |
| _json['options'] = options.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Encapsulates settings provided to GetIamPolicy. |
| class GetPolicyOptions { |
| /// Optional. The policy format version to be returned. Valid values are 0, 1, |
| /// and 3. Requests specifying an invalid value will be rejected. Requests for |
| /// policies with any conditional bindings must specify version 3. Policies |
| /// without any conditional bindings may specify any valid value or leave the |
| /// field unset. To learn which resources support conditions in their IAM |
| /// policies, see the [IAM |
| /// documentation](https://cloud.google.com/iam/help/conditions/resource-policies). |
| core.int requestedPolicyVersion; |
| |
| GetPolicyOptions(); |
| |
| GetPolicyOptions.fromJson(core.Map _json) { |
| if (_json.containsKey('requestedPolicyVersion')) { |
| requestedPolicyVersion = _json['requestedPolicyVersion']; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (requestedPolicyVersion != null) { |
| _json['requestedPolicyVersion'] = requestedPolicyVersion; |
| } |
| return _json; |
| } |
| } |
| |
| /// An isolated set of Cloud Spanner resources on which databases can be hosted. |
| class Instance { |
| /// Required. The name of the instance's configuration. Values are of the form |
| /// `projects//instanceConfigs/`. See also InstanceConfig and |
| /// ListInstanceConfigs. |
| core.String config; |
| |
| /// Required. The descriptive name for this instance as it appears in UIs. |
| /// Must be unique per project and between 4 and 30 characters in length. |
| core.String displayName; |
| |
| /// Deprecated. This field is not populated. |
| core.List<core.String> endpointUris; |
| |
| /// Cloud Labels are a flexible and lightweight mechanism for organizing cloud |
| /// resources into groups that reflect a customer's organizational needs and |
| /// deployment strategies. Cloud Labels can be used to filter collections of |
| /// resources. They can be used to control how resource metrics are |
| /// aggregated. And they can be used as arguments to policy management rules |
| /// (e.g. route, firewall, load balancing, etc.). * Label keys must be between |
| /// 1 and 63 characters long and must conform to the following regular |
| /// expression: `[a-z]([-a-z0-9]*[a-z0-9])?`. * Label values must be between 0 |
| /// and 63 characters long and must conform to the regular expression |
| /// `([a-z]([-a-z0-9]*[a-z0-9])?)?`. * No more than 64 labels can be |
| /// associated with a given resource. See https://goo.gl/xmQnxf for more |
| /// information on and examples of labels. If you plan to use labels in your |
| /// own code, please note that additional characters may be allowed in the |
| /// future. And so you are advised to use an internal label representation, |
| /// such as JSON, which doesn't rely upon specific characters being |
| /// disallowed. For example, representing labels as the string: name + "_" + |
| /// value would prove problematic if we were to allow "_" in a future release. |
| core.Map<core.String, core.String> labels; |
| |
| /// Required. A unique identifier for the instance, which cannot be changed |
| /// after the instance is created. Values are of the form |
| /// `projects//instances/a-z*[a-z0-9]`. The final segment of the name must be |
| /// between 2 and 64 characters in length. |
| core.String name; |
| |
| /// The number of nodes allocated to this instance. This may be zero in API |
| /// responses for instances that are not yet in state `READY`. See [the |
| /// documentation](https://cloud.google.com/spanner/docs/instances#node_count) |
| /// for more information about nodes. |
| core.int nodeCount; |
| |
| /// Output only. The current instance state. For CreateInstance, the state |
| /// must be either omitted or set to `CREATING`. For UpdateInstance, the state |
| /// must be either omitted or set to `READY`. |
| /// Possible string values are: |
| /// - "STATE_UNSPECIFIED" : Not specified. |
| /// - "CREATING" : The instance is still being created. Resources may not be |
| /// available yet, and operations such as database creation may not work. |
| /// - "READY" : The instance is fully created and ready to do work such as |
| /// creating databases. |
| core.String state; |
| |
| Instance(); |
| |
| Instance.fromJson(core.Map _json) { |
| if (_json.containsKey('config')) { |
| config = _json['config']; |
| } |
| if (_json.containsKey('displayName')) { |
| displayName = _json['displayName']; |
| } |
| if (_json.containsKey('endpointUris')) { |
| endpointUris = (_json['endpointUris'] as core.List).cast<core.String>(); |
| } |
| if (_json.containsKey('labels')) { |
| labels = (_json['labels'] as core.Map).cast<core.String, core.String>(); |
| } |
| if (_json.containsKey('name')) { |
| name = _json['name']; |
| } |
| if (_json.containsKey('nodeCount')) { |
| nodeCount = _json['nodeCount']; |
| } |
| if (_json.containsKey('state')) { |
| state = _json['state']; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (config != null) { |
| _json['config'] = config; |
| } |
| if (displayName != null) { |
| _json['displayName'] = displayName; |
| } |
| if (endpointUris != null) { |
| _json['endpointUris'] = endpointUris; |
| } |
| if (labels != null) { |
| _json['labels'] = labels; |
| } |
| if (name != null) { |
| _json['name'] = name; |
| } |
| if (nodeCount != null) { |
| _json['nodeCount'] = nodeCount; |
| } |
| if (state != null) { |
| _json['state'] = state; |
| } |
| return _json; |
| } |
| } |
| |
| /// A possible configuration for a Cloud Spanner instance. Configurations define |
| /// the geographic placement of nodes and their replication. |
| class InstanceConfig { |
| /// The name of this instance configuration as it appears in UIs. |
| core.String displayName; |
| |
| /// A unique identifier for the instance configuration. Values are of the form |
| /// `projects//instanceConfigs/a-z*` |
| core.String name; |
| |
| /// The geographic placement of nodes in this instance configuration and their |
| /// replication properties. |
| core.List<ReplicaInfo> replicas; |
| |
| InstanceConfig(); |
| |
| InstanceConfig.fromJson(core.Map _json) { |
| if (_json.containsKey('displayName')) { |
| displayName = _json['displayName']; |
| } |
| if (_json.containsKey('name')) { |
| name = _json['name']; |
| } |
| if (_json.containsKey('replicas')) { |
| replicas = (_json['replicas'] as core.List) |
| .map<ReplicaInfo>((value) => ReplicaInfo.fromJson(value)) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (displayName != null) { |
| _json['displayName'] = displayName; |
| } |
| if (name != null) { |
| _json['name'] = name; |
| } |
| if (replicas != null) { |
| _json['replicas'] = replicas.map((value) => value.toJson()).toList(); |
| } |
| return _json; |
| } |
| } |
| |
| /// KeyRange represents a range of rows in a table or index. A range has a start |
| /// key and an end key. These keys can be open or closed, indicating if the |
| /// range includes rows with that key. Keys are represented by lists, where the |
| /// ith value in the list corresponds to the ith component of the table or index |
| /// primary key. Individual values are encoded as described here. For example, |
| /// consider the following table definition: CREATE TABLE UserEvents ( UserName |
| /// STRING(MAX), EventDate STRING(10) ) PRIMARY KEY(UserName, EventDate); The |
| /// following keys name rows in this table: "Bob", "2014-09-23" Since the |
| /// `UserEvents` table's `PRIMARY KEY` clause names two columns, each |
| /// `UserEvents` key has two elements; the first is the `UserName`, and the |
| /// second is the `EventDate`. Key ranges with multiple components are |
| /// interpreted lexicographically by component using the table or index key's |
| /// declared sort order. For example, the following range returns all events for |
| /// user `"Bob"` that occurred in the year 2015: "start_closed": ["Bob", |
| /// "2015-01-01"] "end_closed": ["Bob", "2015-12-31"] Start and end keys can |
| /// omit trailing key components. This affects the inclusion and exclusion of |
| /// rows that exactly match the provided key components: if the key is closed, |
| /// then rows that exactly match the provided components are included; if the |
| /// key is open, then rows that exactly match are not included. For example, the |
| /// following range includes all events for `"Bob"` that occurred during and |
| /// after the year 2000: "start_closed": ["Bob", "2000-01-01"] "end_closed": |
| /// ["Bob"] The next example retrieves all events for `"Bob"`: "start_closed": |
| /// ["Bob"] "end_closed": ["Bob"] To retrieve events before the year 2000: |
| /// "start_closed": ["Bob"] "end_open": ["Bob", "2000-01-01"] The following |
| /// range includes all rows in the table: "start_closed": [] "end_closed": [] |
| /// This range returns all users whose `UserName` begins with any character from |
| /// A to C: "start_closed": ["A"] "end_open": ["D"] This range returns all users |
| /// whose `UserName` begins with B: "start_closed": ["B"] "end_open": ["C"] Key |
| /// ranges honor column sort order. For example, suppose a table is defined as |
| /// follows: CREATE TABLE DescendingSortedTable { Key INT64, ... ) PRIMARY |
| /// KEY(Key DESC); The following range retrieves all rows with key values |
| /// between 1 and 100 inclusive: "start_closed": ["100"] "end_closed": ["1"] |
| /// Note that 100 is passed as the start, and 1 is passed as the end, because |
| /// `Key` is a descending column in the schema. |
| class KeyRange { |
| /// If the end is closed, then the range includes all rows whose first |
| /// `len(end_closed)` key columns exactly match `end_closed`. |
| /// |
| /// 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.List<core.Object> endClosed; |
| |
| /// If the end is open, then the range excludes rows whose first |
| /// `len(end_open)` key columns exactly match `end_open`. |
| /// |
| /// 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.List<core.Object> endOpen; |
| |
| /// If the start is closed, then the range includes all rows whose first |
| /// `len(start_closed)` key columns exactly match `start_closed`. |
| /// |
| /// 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.List<core.Object> startClosed; |
| |
| /// If the start is open, then the range excludes rows whose first |
| /// `len(start_open)` key columns exactly match `start_open`. |
| /// |
| /// 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.List<core.Object> startOpen; |
| |
| KeyRange(); |
| |
| KeyRange.fromJson(core.Map _json) { |
| if (_json.containsKey('endClosed')) { |
| endClosed = (_json['endClosed'] as core.List).cast<core.Object>(); |
| } |
| if (_json.containsKey('endOpen')) { |
| endOpen = (_json['endOpen'] as core.List).cast<core.Object>(); |
| } |
| if (_json.containsKey('startClosed')) { |
| startClosed = (_json['startClosed'] as core.List).cast<core.Object>(); |
| } |
| if (_json.containsKey('startOpen')) { |
| startOpen = (_json['startOpen'] as core.List).cast<core.Object>(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (endClosed != null) { |
| _json['endClosed'] = endClosed; |
| } |
| if (endOpen != null) { |
| _json['endOpen'] = endOpen; |
| } |
| if (startClosed != null) { |
| _json['startClosed'] = startClosed; |
| } |
| if (startOpen != null) { |
| _json['startOpen'] = startOpen; |
| } |
| return _json; |
| } |
| } |
| |
| /// `KeySet` defines a collection of Cloud Spanner keys and/or key ranges. All |
| /// the keys are expected to be in the same table or index. The keys need not be |
| /// sorted in any particular way. If the same key is specified multiple times in |
| /// the set (for example if two ranges, two keys, or a key and a range overlap), |
| /// Cloud Spanner behaves as if the key were only specified once. |
| class KeySet { |
| /// For convenience `all` can be set to `true` to indicate that this `KeySet` |
| /// matches all keys in the table or index. Note that any keys specified in |
| /// `keys` or `ranges` are only yielded once. |
| core.bool all; |
| |
| /// A list of specific keys. Entries in `keys` should have exactly as many |
| /// elements as there are columns in the primary or index key with which this |
| /// `KeySet` is used. Individual key values are encoded as described here. |
| /// |
| /// 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.List<core.List<core.Object>> keys; |
| |
| /// A list of key ranges. See KeyRange for more information about key range |
| /// specifications. |
| core.List<KeyRange> ranges; |
| |
| KeySet(); |
| |
| KeySet.fromJson(core.Map _json) { |
| if (_json.containsKey('all')) { |
| all = _json['all']; |
| } |
| if (_json.containsKey('keys')) { |
| keys = (_json['keys'] as core.List) |
| .map<core.List<core.Object>>( |
| (value) => (value as core.List).cast<core.Object>()) |
| .toList(); |
| } |
| if (_json.containsKey('ranges')) { |
| ranges = (_json['ranges'] as core.List) |
| .map<KeyRange>((value) => KeyRange.fromJson(value)) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (all != null) { |
| _json['all'] = all; |
| } |
| if (keys != null) { |
| _json['keys'] = keys; |
| } |
| if (ranges != null) { |
| _json['ranges'] = ranges.map((value) => value.toJson()).toList(); |
| } |
| return _json; |
| } |
| } |
| |
| /// The response for ListBackupOperations. |
| class ListBackupOperationsResponse { |
| /// `next_page_token` can be sent in a subsequent ListBackupOperations call to |
| /// fetch more of the matching metadata. |
| core.String nextPageToken; |
| |
| /// The list of matching backup long-running operations. Each operation's name |
| /// will be prefixed by the backup's name and the operation's metadata will be |
| /// of type CreateBackupMetadata. Operations returned include those that are |
| /// pending or have completed/failed/canceled within the last 7 days. |
| /// Operations returned are ordered by |
| /// `operation.metadata.value.progress.start_time` in descending order |
| /// starting from the most recently started operation. |
| core.List<Operation> operations; |
| |
| ListBackupOperationsResponse(); |
| |
| ListBackupOperationsResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('nextPageToken')) { |
| nextPageToken = _json['nextPageToken']; |
| } |
| if (_json.containsKey('operations')) { |
| operations = (_json['operations'] as core.List) |
| .map<Operation>((value) => Operation.fromJson(value)) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (nextPageToken != null) { |
| _json['nextPageToken'] = nextPageToken; |
| } |
| if (operations != null) { |
| _json['operations'] = operations.map((value) => value.toJson()).toList(); |
| } |
| return _json; |
| } |
| } |
| |
| /// The response for ListBackups. |
| class ListBackupsResponse { |
| /// The list of matching backups. Backups returned are ordered by |
| /// `create_time` in descending order, starting from the most recent |
| /// `create_time`. |
| core.List<Backup> backups; |
| |
| /// `next_page_token` can be sent in a subsequent ListBackups call to fetch |
| /// more of the matching backups. |
| core.String nextPageToken; |
| |
| ListBackupsResponse(); |
| |
| ListBackupsResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('backups')) { |
| backups = (_json['backups'] as core.List) |
| .map<Backup>((value) => Backup.fromJson(value)) |
| .toList(); |
| } |
| if (_json.containsKey('nextPageToken')) { |
| nextPageToken = _json['nextPageToken']; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (backups != null) { |
| _json['backups'] = backups.map((value) => value.toJson()).toList(); |
| } |
| if (nextPageToken != null) { |
| _json['nextPageToken'] = nextPageToken; |
| } |
| return _json; |
| } |
| } |
| |
| /// The response for ListDatabaseOperations. |
| class ListDatabaseOperationsResponse { |
| /// `next_page_token` can be sent in a subsequent ListDatabaseOperations call |
| /// to fetch more of the matching metadata. |
| core.String nextPageToken; |
| |
| /// The list of matching database long-running operations. Each operation's |
| /// name will be prefixed by the database's name. The operation's metadata |
| /// field type `metadata.type_url` describes the type of the metadata. |
| core.List<Operation> operations; |
| |
| ListDatabaseOperationsResponse(); |
| |
| ListDatabaseOperationsResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('nextPageToken')) { |
| nextPageToken = _json['nextPageToken']; |
| } |
| if (_json.containsKey('operations')) { |
| operations = (_json['operations'] as core.List) |
| .map<Operation>((value) => Operation.fromJson(value)) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (nextPageToken != null) { |
| _json['nextPageToken'] = nextPageToken; |
| } |
| if (operations != null) { |
| _json['operations'] = operations.map((value) => value.toJson()).toList(); |
| } |
| return _json; |
| } |
| } |
| |
| /// The response for ListDatabases. |
| class ListDatabasesResponse { |
| /// Databases that matched the request. |
| core.List<Database> databases; |
| |
| /// `next_page_token` can be sent in a subsequent ListDatabases call to fetch |
| /// more of the matching databases. |
| core.String nextPageToken; |
| |
| ListDatabasesResponse(); |
| |
| ListDatabasesResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('databases')) { |
| databases = (_json['databases'] as core.List) |
| .map<Database>((value) => Database.fromJson(value)) |
| .toList(); |
| } |
| if (_json.containsKey('nextPageToken')) { |
| nextPageToken = _json['nextPageToken']; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (databases != null) { |
| _json['databases'] = databases.map((value) => value.toJson()).toList(); |
| } |
| if (nextPageToken != null) { |
| _json['nextPageToken'] = nextPageToken; |
| } |
| return _json; |
| } |
| } |
| |
| /// The response for ListInstanceConfigs. |
| class ListInstanceConfigsResponse { |
| /// The list of requested instance configurations. |
| core.List<InstanceConfig> instanceConfigs; |
| |
| /// `next_page_token` can be sent in a subsequent ListInstanceConfigs call to |
| /// fetch more of the matching instance configurations. |
| core.String nextPageToken; |
| |
| ListInstanceConfigsResponse(); |
| |
| ListInstanceConfigsResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('instanceConfigs')) { |
| instanceConfigs = (_json['instanceConfigs'] as core.List) |
| .map<InstanceConfig>((value) => InstanceConfig.fromJson(value)) |
| .toList(); |
| } |
| if (_json.containsKey('nextPageToken')) { |
| nextPageToken = _json['nextPageToken']; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (instanceConfigs != null) { |
| _json['instanceConfigs'] = |
| instanceConfigs.map((value) => value.toJson()).toList(); |
| } |
| if (nextPageToken != null) { |
| _json['nextPageToken'] = nextPageToken; |
| } |
| return _json; |
| } |
| } |
| |
| /// The response for ListInstances. |
| class ListInstancesResponse { |
| /// The list of requested instances. |
| core.List<Instance> instances; |
| |
| /// `next_page_token` can be sent in a subsequent ListInstances call to fetch |
| /// more of the matching instances. |
| core.String nextPageToken; |
| |
| ListInstancesResponse(); |
| |
| ListInstancesResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('instances')) { |
| instances = (_json['instances'] as core.List) |
| .map<Instance>((value) => Instance.fromJson(value)) |
| .toList(); |
| } |
| if (_json.containsKey('nextPageToken')) { |
| nextPageToken = _json['nextPageToken']; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (instances != null) { |
| _json['instances'] = instances.map((value) => value.toJson()).toList(); |
| } |
| if (nextPageToken != null) { |
| _json['nextPageToken'] = nextPageToken; |
| } |
| return _json; |
| } |
| } |
| |
| /// The response message for Operations.ListOperations. |
| class ListOperationsResponse { |
| /// The standard List next-page token. |
| core.String nextPageToken; |
| |
| /// A list of operations that matches the specified filter in the request. |
| core.List<Operation> operations; |
| |
| ListOperationsResponse(); |
| |
| ListOperationsResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('nextPageToken')) { |
| nextPageToken = _json['nextPageToken']; |
| } |
| if (_json.containsKey('operations')) { |
| operations = (_json['operations'] as core.List) |
| .map<Operation>((value) => Operation.fromJson(value)) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (nextPageToken != null) { |
| _json['nextPageToken'] = nextPageToken; |
| } |
| if (operations != null) { |
| _json['operations'] = operations.map((value) => value.toJson()).toList(); |
| } |
| return _json; |
| } |
| } |
| |
| /// The response for ListSessions. |
| class ListSessionsResponse { |
| /// `next_page_token` can be sent in a subsequent ListSessions call to fetch |
| /// more of the matching sessions. |
| core.String nextPageToken; |
| |
| /// The list of requested sessions. |
| core.List<Session> sessions; |
| |
| ListSessionsResponse(); |
| |
| ListSessionsResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('nextPageToken')) { |
| nextPageToken = _json['nextPageToken']; |
| } |
| if (_json.containsKey('sessions')) { |
| sessions = (_json['sessions'] as core.List) |
| .map<Session>((value) => Session.fromJson(value)) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (nextPageToken != null) { |
| _json['nextPageToken'] = nextPageToken; |
| } |
| if (sessions != null) { |
| _json['sessions'] = sessions.map((value) => value.toJson()).toList(); |
| } |
| return _json; |
| } |
| } |
| |
| /// A modification to one or more Cloud Spanner rows. Mutations can be applied |
| /// to a Cloud Spanner database by sending them in a Commit call. |
| class Mutation { |
| /// Delete rows from a table. Succeeds whether or not the named rows were |
| /// present. |
| Delete delete; |
| |
| /// Insert new rows in a table. If any of the rows already exist, the write or |
| /// transaction fails with error `ALREADY_EXISTS`. |
| Write insert; |
| |
| /// Like insert, except that if the row already exists, then its column values |
| /// are overwritten with the ones provided. Any column values not explicitly |
| /// written are preserved. When using insert_or_update, just as when using |
| /// insert, all `NOT NULL` columns in the table must be given a value. This |
| /// holds true even when the row already exists and will therefore actually be |
| /// updated. |
| Write insertOrUpdate; |
| |
| /// Like insert, except that if the row already exists, it is deleted, and the |
| /// column values provided are inserted instead. Unlike insert_or_update, this |
| /// means any values not explicitly written become `NULL`. In an interleaved |
| /// table, if you create the child table with the `ON DELETE CASCADE` |
| /// annotation, then replacing a parent row also deletes the child rows. |
| /// Otherwise, you must delete the child rows before you replace the parent |
| /// row. |
| Write replace; |
| |
| /// Update existing rows in a table. If any of the rows does not already |
| /// exist, the transaction fails with error `NOT_FOUND`. |
| Write update; |
| |
| Mutation(); |
| |
| Mutation.fromJson(core.Map _json) { |
| if (_json.containsKey('delete')) { |
| delete = Delete.fromJson(_json['delete']); |
| } |
| if (_json.containsKey('insert')) { |
| insert = Write.fromJson(_json['insert']); |
| } |
| if (_json.containsKey('insertOrUpdate')) { |
| insertOrUpdate = Write.fromJson(_json['insertOrUpdate']); |
| } |
| if (_json.containsKey('replace')) { |
| replace = Write.fromJson(_json['replace']); |
| } |
| if (_json.containsKey('update')) { |
| update = Write.fromJson(_json['update']); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (delete != null) { |
| _json['delete'] = delete.toJson(); |
| } |
| if (insert != null) { |
| _json['insert'] = insert.toJson(); |
| } |
| if (insertOrUpdate != null) { |
| _json['insertOrUpdate'] = insertOrUpdate.toJson(); |
| } |
| if (replace != null) { |
| _json['replace'] = replace.toJson(); |
| } |
| if (update != null) { |
| _json['update'] = update.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// This resource represents a long-running operation that is the result of a |
| /// network API call. |
| class Operation { |
| /// If the value is `false`, it means the operation is still in progress. If |
| /// `true`, the operation is completed, and either `error` or `response` is |
| /// available. |
| core.bool done; |
| |
| /// The error result of the operation in case of failure or cancellation. |
| Status error; |
| |
| /// Service-specific metadata associated with the operation. It typically |
| /// contains progress information and common metadata such as create time. |
| /// Some services might not provide such metadata. Any method that returns a |
| /// long-running operation should document the metadata type, if any. |
| /// |
| /// 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> metadata; |
| |
| /// The server-assigned name, which is only unique within the same service |
| /// that originally returns it. If you use the default HTTP mapping, the |
| /// `name` should be a resource name ending with `operations/{unique_id}`. |
| core.String name; |
| |
| /// The normal response of the operation in case of success. If the original |
| /// method returns no data on success, such as `Delete`, the response is |
| /// `google.protobuf.Empty`. If the original method is standard |
| /// `Get`/`Create`/`Update`, the response should be the resource. For other |
| /// methods, the response should have the type `XxxResponse`, where `Xxx` is |
| /// the original method name. For example, if the original method name is |
| /// `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`. |
| /// |
| /// 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> response; |
| |
| Operation(); |
| |
| Operation.fromJson(core.Map _json) { |
| if (_json.containsKey('done')) { |
| done = _json['done']; |
| } |
| if (_json.containsKey('error')) { |
| error = Status.fromJson(_json['error']); |
| } |
| if (_json.containsKey('metadata')) { |
| metadata = |
| (_json['metadata'] as core.Map).cast<core.String, core.Object>(); |
| } |
| if (_json.containsKey('name')) { |
| name = _json['name']; |
| } |
| if (_json.containsKey('response')) { |
| response = |
| (_json['response'] as core.Map).cast<core.String, core.Object>(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (done != null) { |
| _json['done'] = done; |
| } |
| if (error != null) { |
| _json['error'] = error.toJson(); |
| } |
| if (metadata != null) { |
| _json['metadata'] = metadata; |
| } |
| if (name != null) { |
| _json['name'] = name; |
| } |
| if (response != null) { |
| _json['response'] = response; |
| } |
| return _json; |
| } |
| } |
| |
| /// Encapsulates progress related information for a Cloud Spanner long running |
| /// operation. |
| class OperationProgress { |
| /// If set, the time at which this operation failed or was completed |
| /// successfully. |
| core.String endTime; |
| |
| /// Percent completion of the operation. Values are between 0 and 100 |
| /// inclusive. |
| core.int progressPercent; |
| |
| /// Time the request was received. |
| core.String startTime; |
| |
| OperationProgress(); |
| |
| OperationProgress.fromJson(core.Map _json) { |
| if (_json.containsKey('endTime')) { |
| endTime = _json['endTime']; |
| } |
| if (_json.containsKey('progressPercent')) { |
| progressPercent = _json['progressPercent']; |
| } |
| if (_json.containsKey('startTime')) { |
| startTime = _json['startTime']; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (endTime != null) { |
| _json['endTime'] = endTime; |
| } |
| if (progressPercent != null) { |
| _json['progressPercent'] = progressPercent; |
| } |
| if (startTime != null) { |
| _json['startTime'] = startTime; |
| } |
| return _json; |
| } |
| } |
| |
| /// Metadata type for the long-running operation used to track the progress of |
| /// optimizations performed on a newly restored database. This long-running |
| /// operation is automatically created by the system after the successful |
| /// completion of a database restore, and cannot be cancelled. |
| class OptimizeRestoredDatabaseMetadata { |
| /// Name of the restored database being optimized. |
| core.String name; |
| |
| /// The progress of the post-restore optimizations. |
| OperationProgress progress; |
| |
| OptimizeRestoredDatabaseMetadata(); |
| |
| OptimizeRestoredDatabaseMetadata.fromJson(core.Map _json) { |
| if (_json.containsKey('name')) { |
| name = _json['name']; |
| } |
| if (_json.containsKey('progress')) { |
| progress = OperationProgress.fromJson(_json['progress']); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (name != null) { |
| _json['name'] = name; |
| } |
| if (progress != null) { |
| _json['progress'] = progress.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Partial results from a streaming read or SQL query. Streaming reads and SQL |
| /// queries better tolerate large result sets, large rows, and large values, but |
| /// are a little trickier to consume. |
| class PartialResultSet { |
| /// If true, then the final value in values is chunked, and must be combined |
| /// with more values from subsequent `PartialResultSet`s to obtain a complete |
| /// field value. |
| core.bool chunkedValue; |
| |
| /// Metadata about the result set, such as row type information. Only present |
| /// in the first response. |
| ResultSetMetadata metadata; |
| |
| /// Streaming calls might be interrupted for a variety of reasons, such as TCP |
| /// connection loss. If this occurs, the stream of results can be resumed by |
| /// re-sending the original request and including `resume_token`. Note that |
| /// executing any other transaction in the same session invalidates the token. |
| core.String resumeToken; |
| core.List<core.int> get resumeTokenAsBytes => |
| convert.base64.decode(resumeToken); |
| |
| set resumeTokenAsBytes(core.List<core.int> _bytes) { |
| resumeToken = |
| convert.base64.encode(_bytes).replaceAll('/', '_').replaceAll('+', '-'); |
| } |
| |
| /// Query plan and execution statistics for the statement that produced this |
| /// streaming result set. These can be requested by setting |
| /// ExecuteSqlRequest.query_mode and are sent only once with the last response |
| /// in the stream. This field will also be present in the last response for |
| /// DML statements. |
| ResultSetStats stats; |
| |
| /// A streamed result set consists of a stream of values, which might be split |
| /// into many `PartialResultSet` messages to accommodate large rows and/or |
| /// large values. Every N complete values defines a row, where N is equal to |
| /// the number of entries in metadata.row_type.fields. Most values are encoded |
| /// based on type as described here. It is possible that the last value in |
| /// values is "chunked", meaning that the rest of the value is sent in |
| /// subsequent `PartialResultSet`(s). This is denoted by the chunked_value |
| /// field. Two or more chunked values can be merged to form a complete value |
| /// as follows: * `bool/number/null`: cannot be chunked * `string`: |
| /// concatenate the strings * `list`: concatenate the lists. If the last |
| /// element in a list is a `string`, `list`, or `object`, merge it with the |
| /// first element in the next list by applying these rules recursively. * |
| /// `object`: concatenate the (field name, field value) pairs. If a field name |
| /// is duplicated, then apply these rules recursively to merge the field |
| /// values. Some examples of merging: # Strings are concatenated. "foo", "bar" |
| /// => "foobar" # Lists of non-strings are concatenated. [2, 3], [4] => [2, 3, |
| /// 4] # Lists are concatenated, but the last and first elements are merged # |
| /// because they are strings. ["a", "b"], ["c", "d"] => ["a", "bc", "d"] # |
| /// Lists are concatenated, but the last and first elements are merged # |
| /// because they are lists. Recursively, the last and first elements # of the |
| /// inner lists are merged because they are strings. ["a", ["b", "c"]], |
| /// [["d"], "e"] => ["a", ["b", "cd"], "e"] # Non-overlapping object fields |
| /// are combined. {"a": "1"}, {"b": "2"} => {"a": "1", "b": 2"} # Overlapping |
| /// object fields are merged. {"a": "1"}, {"a": "2"} => {"a": "12"} # Examples |
| /// of merging objects containing lists of strings. {"a": ["1"]}, {"a": ["2"]} |
| /// => {"a": ["12"]} For a more complete example, suppose a streaming SQL |
| /// query is yielding a result set whose rows contain a single string field. |
| /// The following `PartialResultSet`s might be yielded: { "metadata": { ... } |
| /// "values": ["Hello", "W"] "chunked_value": true "resume_token": "Af65..." } |
| /// { "values": ["orl"] "chunked_value": true "resume_token": "Bqp2..." } { |
| /// "values": ["d"] "resume_token": "Zx1B..." } This sequence of |
| /// `PartialResultSet`s encodes two rows, one containing the field value |
| /// `"Hello"`, and a second containing the field value `"World" = "W" + "orl" |
| /// + "d"`. |
| /// |
| /// 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.List<core.Object> values; |
| |
| PartialResultSet(); |
| |
| PartialResultSet.fromJson(core.Map _json) { |
| if (_json.containsKey('chunkedValue')) { |
| chunkedValue = _json['chunkedValue']; |
| } |
| if (_json.containsKey('metadata')) { |
| metadata = ResultSetMetadata.fromJson(_json['metadata']); |
| } |
| if (_json.containsKey('resumeToken')) { |
| resumeToken = _json['resumeToken']; |
| } |
| if (_json.containsKey('stats')) { |
| stats = ResultSetStats.fromJson(_json['stats']); |
| } |
| if (_json.containsKey('values')) { |
| values = (_json['values'] as core.List).cast<core.Object>(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (chunkedValue != null) { |
| _json['chunkedValue'] = chunkedValue; |
| } |
| if (metadata != null) { |
| _json['metadata'] = metadata.toJson(); |
| } |
| if (resumeToken != null) { |
| _json['resumeToken'] = resumeToken; |
| } |
| if (stats != null) { |
| _json['stats'] = stats.toJson(); |
| } |
| if (values != null) { |
| _json['values'] = values; |
| } |
| return _json; |
| } |
| } |
| |
| /// Information returned for each partition returned in a PartitionResponse. |
| class Partition { |
| /// This token can be passed to Read, StreamingRead, ExecuteSql, or |
| /// ExecuteStreamingSql requests to restrict the results to those identified |
| /// by this partition token. |
| core.String partitionToken; |
| core.List<core.int> get partitionTokenAsBytes => |
| convert.base64.decode(partitionToken); |
| |
| set partitionTokenAsBytes(core.List<core.int> _bytes) { |
| partitionToken = |
| convert.base64.encode(_bytes).replaceAll('/', '_').replaceAll('+', '-'); |
| } |
| |
| Partition(); |
| |
| Partition.fromJson(core.Map _json) { |
| if (_json.containsKey('partitionToken')) { |
| partitionToken = _json['partitionToken']; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (partitionToken != null) { |
| _json['partitionToken'] = partitionToken; |
| } |
| return _json; |
| } |
| } |
| |
| /// Options for a PartitionQueryRequest and PartitionReadRequest. |
| class PartitionOptions { |
| /// **Note:** This hint is currently ignored by PartitionQuery and |
| /// PartitionRead requests. The desired maximum number of partitions to |
| /// return. For example, this may be set to the number of workers available. |
| /// The default for this option is currently 10,000. The maximum value is |
| /// currently 200,000. This is only a hint. The actual number of partitions |
| /// returned may be smaller or larger than this maximum count request. |
| core.String maxPartitions; |
| |
| /// **Note:** This hint is currently ignored by PartitionQuery and |
| /// PartitionRead requests. The desired data size for each partition |
| /// generated. The default for this option is currently 1 GiB. This is only a |
| /// hint. The actual size of each partition may be smaller or larger than this |
| /// size request. |
| core.String partitionSizeBytes; |
| |
| PartitionOptions(); |
| |
| PartitionOptions.fromJson(core.Map _json) { |
| if (_json.containsKey('maxPartitions')) { |
| maxPartitions = _json['maxPartitions']; |
| } |
| if (_json.containsKey('partitionSizeBytes')) { |
| partitionSizeBytes = _json['partitionSizeBytes']; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (maxPartitions != null) { |
| _json['maxPartitions'] = maxPartitions; |
| } |
| if (partitionSizeBytes != null) { |
| _json['partitionSizeBytes'] = partitionSizeBytes; |
| } |
| return _json; |
| } |
| } |
| |
| /// The request for PartitionQuery |
| class PartitionQueryRequest { |
| /// It is not always possible for Cloud Spanner to infer the right SQL type |
| /// from a JSON value. For example, values of type `BYTES` and values of type |
| /// `STRING` both appear in params as JSON strings. In these cases, |
| /// `param_types` can be used to specify the exact SQL type for some or all of |
| /// the SQL query parameters. See the definition of Type for more information |
| /// about SQL types. |
| core.Map<core.String, Type> paramTypes; |
| |
| /// Parameter names and values that bind to placeholders in the SQL string. A |
| /// parameter placeholder consists of the `@` character followed by the |
| /// parameter name (for example, `@firstName`). Parameter names can contain |
| /// letters, numbers, and underscores. Parameters can appear anywhere that a |
| /// literal value is expected. The same parameter name can be used more than |
| /// once, for example: `"WHERE id > @msg_id AND id < @msg_id + 100"` It is an |
| /// error to execute a SQL statement with unbound 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; |
| |
| /// Additional options that affect how many partitions are created. |
| PartitionOptions partitionOptions; |
| |
| /// Required. The query request to generate partitions for. The request will |
| /// fail if the query is not root partitionable. The query plan of a root |
| /// partitionable query has a single distributed union operator. A distributed |
| /// union operator conceptually divides one or more tables into multiple |
| /// splits, remotely evaluates a subquery independently on each split, and |
| /// then unions all results. This must not contain DML commands, such as |
| /// INSERT, UPDATE, or DELETE. Use ExecuteStreamingSql with a PartitionedDml |
| /// transaction for large, partition-friendly DML operations. |
| core.String sql; |
| |
| /// Read only snapshot transactions are supported, read/write and single use |
| /// transactions are not. |
| TransactionSelector transaction; |
| |
| PartitionQueryRequest(); |
| |
| PartitionQueryRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('paramTypes')) { |
| paramTypes = commons.mapMap<core.Map, Type>( |
| _json['paramTypes'].cast<core.String, core.Map>(), |
| (core.Map item) => Type.fromJson(item)); |
| } |
| if (_json.containsKey('params')) { |
| params = (_json['params'] as core.Map).cast<core.String, core.Object>(); |
| } |
| if (_json.containsKey('partitionOptions')) { |
| partitionOptions = PartitionOptions.fromJson(_json['partitionOptions']); |
| } |
| if (_json.containsKey('sql')) { |
| sql = _json['sql']; |
| } |
| if (_json.containsKey('transaction')) { |
| transaction = TransactionSelector.fromJson(_json['transaction']); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (paramTypes != null) { |
| _json['paramTypes'] = |
| commons.mapMap<Type, core.Map<core.String, core.Object>>( |
| paramTypes, (Type item) => item.toJson()); |
| } |
| if (params != null) { |
| _json['params'] = params; |
| } |
| if (partitionOptions != null) { |
| _json['partitionOptions'] = partitionOptions.toJson(); |
| } |
| if (sql != null) { |
| _json['sql'] = sql; |
| } |
| if (transaction != null) { |
| _json['transaction'] = transaction.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// The request for PartitionRead |
| class PartitionReadRequest { |
| /// The columns of table to be returned for each row matching this request. |
| core.List<core.String> columns; |
| |
| /// If non-empty, the name of an index on table. This index is used instead of |
| /// the table primary key when interpreting key_set and sorting result rows. |
| /// See key_set for further information. |
| core.String index; |
| |
| /// Required. `key_set` identifies the rows to be yielded. `key_set` names the |
| /// primary keys of the rows in table to be yielded, unless index is present. |
| /// If index is present, then key_set instead names index keys in index. It is |
| /// not an error for the `key_set` to name rows that do not exist in the |
| /// database. Read yields nothing for nonexistent rows. |
| KeySet keySet; |
| |
| /// Additional options that affect how many partitions are created. |
| PartitionOptions partitionOptions; |
| |
| /// Required. The name of the table in the database to be read. |
| core.String table; |
| |
| /// Read only snapshot transactions are supported, read/write and single use |
| /// transactions are not. |
| TransactionSelector transaction; |
| |
| PartitionReadRequest(); |
| |
| PartitionReadRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('columns')) { |
| columns = (_json['columns'] as core.List).cast<core.String>(); |
| } |
| if (_json.containsKey('index')) { |
| index = _json['index']; |
| } |
| if (_json.containsKey('keySet')) { |
| keySet = KeySet.fromJson(_json['keySet']); |
| } |
| if (_json.containsKey('partitionOptions')) { |
| partitionOptions = PartitionOptions.fromJson(_json['partitionOptions']); |
| } |
| if (_json.containsKey('table')) { |
| table = _json['table']; |
| } |
| if (_json.containsKey('transaction')) { |
| transaction = TransactionSelector.fromJson(_json['transaction']); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (columns != null) { |
| _json['columns'] = columns; |
| } |
| if (index != null) { |
| _json['index'] = index; |
| } |
| if (keySet != null) { |
| _json['keySet'] = keySet.toJson(); |
| } |
| if (partitionOptions != null) { |
| _json['partitionOptions'] = partitionOptions.toJson(); |
| } |
| if (table != null) { |
| _json['table'] = table; |
| } |
| if (transaction != null) { |
| _json['transaction'] = transaction.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// The response for PartitionQuery or PartitionRead |
| class PartitionResponse { |
| /// Partitions created by this request. |
| core.List<Partition> partitions; |
| |
| /// Transaction created by this request. |
| Transaction transaction; |
| |
| PartitionResponse(); |
| |
| PartitionResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('partitions')) { |
| partitions = (_json['partitions'] as core.List) |
| .map<Partition>((value) => Partition.fromJson(value)) |
| .toList(); |
| } |
| if (_json.containsKey('transaction')) { |
| transaction = Transaction.fromJson(_json['transaction']); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (partitions != null) { |
| _json['partitions'] = partitions.map((value) => value.toJson()).toList(); |
| } |
| if (transaction != null) { |
| _json['transaction'] = transaction.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Message type to initiate a Partitioned DML transaction. |
| class PartitionedDml { |
| PartitionedDml(); |
| |
| PartitionedDml.fromJson( |
| // ignore: avoid_unused_constructor_parameters |
| core.Map _json); |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| return _json; |
| } |
| } |
| |
| /// Node information for nodes appearing in a QueryPlan.plan_nodes. |
| class PlanNode { |
| /// List of child node `index`es and their relationship to this parent. |
| core.List<ChildLink> childLinks; |
| |
| /// The display name for the node. |
| core.String displayName; |
| |
| /// The execution statistics associated with the node, contained in a group of |
| /// key-value pairs. Only present if the plan was returned as a result of a |
| /// profile query. For example, number of executions, number of rows/time per |
| /// execution etc. |
| /// |
| /// 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> executionStats; |
| |
| /// The `PlanNode`'s index in node list. |
| core.int index; |
| |
| /// Used to determine the type of node. May be needed for visualizing |
| /// different kinds of nodes differently. For example, If the node is a SCALAR |
| /// node, it will have a condensed representation which can be used to |
| /// directly embed a description of the node in its parent. |
| /// Possible string values are: |
| /// - "KIND_UNSPECIFIED" : Not specified. |
| /// - "RELATIONAL" : Denotes a Relational operator node in the expression |
| /// tree. Relational operators represent iterative processing of rows during |
| /// query execution. For example, a `TableScan` operation that reads rows from |
| /// a table. |
| /// - "SCALAR" : Denotes a Scalar node in the expression tree. Scalar nodes |
| /// represent non-iterable entities in the query plan. For example, constants |
| /// or arithmetic operators appearing inside predicate expressions or |
| /// references to column names. |
| core.String kind; |
| |
| /// Attributes relevant to the node contained in a group of key-value pairs. |
| /// For example, a Parameter Reference node could have the following |
| /// information in its metadata: { "parameter_reference": "param1", |
| /// "parameter_type": "array" } |
| /// |
| /// 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> metadata; |
| |
| /// Condensed representation for SCALAR nodes. |
| ShortRepresentation shortRepresentation; |
| |
| PlanNode(); |
| |
| PlanNode.fromJson(core.Map _json) { |
| if (_json.containsKey('childLinks')) { |
| childLinks = (_json['childLinks'] as core.List) |
| .map<ChildLink>((value) => ChildLink.fromJson(value)) |
| .toList(); |
| } |
| if (_json.containsKey('displayName')) { |
| displayName = _json['displayName']; |
| } |
| if (_json.containsKey('executionStats')) { |
| executionStats = (_json['executionStats'] as core.Map) |
| .cast<core.String, core.Object>(); |
| } |
| if (_json.containsKey('index')) { |
| index = _json['index']; |
| } |
| if (_json.containsKey('kind')) { |
| kind = _json['kind']; |
| } |
| if (_json.containsKey('metadata')) { |
| metadata = |
| (_json['metadata'] as core.Map).cast<core.String, core.Object>(); |
| } |
| if (_json.containsKey('shortRepresentation')) { |
| shortRepresentation = |
| ShortRepresentation.fromJson(_json['shortRepresentation']); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (childLinks != null) { |
| _json['childLinks'] = childLinks.map((value) => value.toJson()).toList(); |
| } |
| if (displayName != null) { |
| _json['displayName'] = displayName; |
| } |
| if (executionStats != null) { |
| _json['executionStats'] = executionStats; |
| } |
| if (index != null) { |
| _json['index'] = index; |
| } |
| if (kind != null) { |
| _json['kind'] = kind; |
| } |
| if (metadata != null) { |
| _json['metadata'] = metadata; |
| } |
| if (shortRepresentation != null) { |
| _json['shortRepresentation'] = shortRepresentation.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// An Identity and Access Management (IAM) policy, which specifies access |
| /// controls for Google Cloud resources. A `Policy` is a collection of |
| /// `bindings`. A `binding` binds one or more `members` to a single `role`. |
| /// Members can be user accounts, service accounts, Google groups, and domains |
| /// (such as G Suite). A `role` is a named list of permissions; each `role` can |
| /// be an IAM predefined role or a user-created custom role. For some types of |
| /// Google Cloud resources, a `binding` can also specify a `condition`, which is |
| /// a logical expression that allows access to a resource only if the expression |
| /// evaluates to `true`. A condition can add constraints based on attributes of |
| /// the request, the resource, or both. To learn which resources support |
| /// conditions in their IAM policies, see the [IAM |
| /// documentation](https://cloud.google.com/iam/help/conditions/resource-policies). |
| /// **JSON example:** { "bindings": [ { "role": |
| /// "roles/resourcemanager.organizationAdmin", "members": [ |
| /// "user:mike@example.com", "group:admins@example.com", "domain:google.com", |
| /// "serviceAccount:my-project-id@appspot.gserviceaccount.com" ] }, { "role": |
| /// "roles/resourcemanager.organizationViewer", "members": [ |
| /// "user:eve@example.com" ], "condition": { "title": "expirable access", |
| /// "description": "Does not grant access after Sep 2020", "expression": |
| /// "request.time < timestamp('2020-10-01T00:00:00.000Z')", } } ], "etag": |
| /// "BwWWja0YfJA=", "version": 3 } **YAML example:** bindings: - members: - |
| /// user:mike@example.com - group:admins@example.com - domain:google.com - |
| /// serviceAccount:my-project-id@appspot.gserviceaccount.com role: |
| /// roles/resourcemanager.organizationAdmin - members: - user:eve@example.com |
| /// role: roles/resourcemanager.organizationViewer condition: title: expirable |
| /// access description: Does not grant access after Sep 2020 expression: |
| /// request.time < timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - |
| /// version: 3 For a description of IAM and its features, see the [IAM |
| /// documentation](https://cloud.google.com/iam/docs/). |
| class Policy { |
| /// Associates a list of `members` to a `role`. Optionally, may specify a |
| /// `condition` that determines how and when the `bindings` are applied. Each |
| /// of the `bindings` must contain at least one member. |
| core.List<Binding> bindings; |
| |
| /// `etag` is used for optimistic concurrency control as a way to help prevent |
| /// simultaneous updates of a policy from overwriting each other. It is |
| /// strongly suggested that systems make use of the `etag` in the |
| /// read-modify-write cycle to perform policy updates in order to avoid race |
| /// conditions: An `etag` is returned in the response to `getIamPolicy`, and |
| /// systems are expected to put that etag in the request to `setIamPolicy` to |
| /// ensure that their change will be applied to the same version of the |
| /// policy. **Important:** If you use IAM Conditions, you must include the |
| /// `etag` field whenever you call `setIamPolicy`. If you omit this field, |
| /// then IAM allows you to overwrite a version `3` policy with a version `1` |
| /// policy, and all of the conditions in the version `3` policy are lost. |
| core.String etag; |
| core.List<core.int> get etagAsBytes => convert.base64.decode(etag); |
| |
| set etagAsBytes(core.List<core.int> _bytes) { |
| etag = |
| convert.base64.encode(_bytes).replaceAll('/', '_').replaceAll('+', '-'); |
| } |
| |
| /// Specifies the format of the policy. Valid values are `0`, `1`, and `3`. |
| /// Requests that specify an invalid value are rejected. Any operation that |
| /// affects conditional role bindings must specify version `3`. This |
| /// requirement applies to the following operations: * Getting a policy that |
| /// includes a conditional role binding * Adding a conditional role binding to |
| /// a policy * Changing a conditional role binding in a policy * Removing any |
| /// role binding, with or without a condition, from a policy that includes |
| /// conditions **Important:** If you use IAM Conditions, you must include the |
| /// `etag` field whenever you call `setIamPolicy`. If you omit this field, |
| /// then IAM allows you to overwrite a version `3` policy with a version `1` |
| /// policy, and all of the conditions in the version `3` policy are lost. If a |
| /// policy does not include any conditions, operations on that policy may |
| /// specify any valid version or leave the field unset. To learn which |
| /// resources support conditions in their IAM policies, see the [IAM |
| /// documentation](https://cloud.google.com/iam/help/conditions/resource-policies). |
| core.int version; |
| |
| Policy(); |
| |
| Policy.fromJson(core.Map _json) { |
| if (_json.containsKey('bindings')) { |
| bindings = (_json['bindings'] as core.List) |
| .map<Binding>((value) => Binding.fromJson(value)) |
| .toList(); |
| } |
| if (_json.containsKey('etag')) { |
| etag = _json['etag']; |
| } |
| if (_json.containsKey('version')) { |
| version = _json['version']; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (bindings != null) { |
| _json['bindings'] = bindings.map((value) => value.toJson()).toList(); |
| } |
| if (etag != null) { |
| _json['etag'] = etag; |
| } |
| if (version != null) { |
| _json['version'] = version; |
| } |
| return _json; |
| } |
| } |
| |
| /// Query optimizer configuration. |
| class QueryOptions { |
| /// An option to control the selection of optimizer version. This parameter |
| /// allows individual queries to pick different query optimizer versions. |
| /// Specifying "latest" as a value instructs Cloud Spanner to use the latest |
| /// supported query optimizer version. If not specified, Cloud Spanner uses |
| /// optimizer version set at the database level options. Any other positive |
| /// integer (from the list of supported optimizer versions) overrides the |
| /// default optimizer version for query execution. The list of supported |
| /// optimizer versions can be queried from |
| /// SPANNER_SYS.SUPPORTED_OPTIMIZER_VERSIONS. Executing a SQL statement with |
| /// an invalid optimizer version will fail with a syntax error |
| /// (`INVALID_ARGUMENT`) status. See |
| /// https://cloud.google.com/spanner/docs/query-optimizer/manage-query-optimizer |
| /// for more information on managing the query optimizer. The |
| /// `optimizer_version` statement hint has precedence over this setting. |
| core.String optimizerVersion; |
| |
| QueryOptions(); |
| |
| QueryOptions.fromJson(core.Map _json) { |
| if (_json.containsKey('optimizerVersion')) { |
| optimizerVersion = _json['optimizerVersion']; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (optimizerVersion != null) { |
| _json['optimizerVersion'] = optimizerVersion; |
| } |
| return _json; |
| } |
| } |
| |
| /// Contains an ordered list of nodes appearing in the query plan. |
| class QueryPlan { |
| /// The nodes in the query plan. Plan nodes are returned in pre-order starting |
| /// with the plan root. Each PlanNode's `id` corresponds to its index in |
| /// `plan_nodes`. |
| core.List<PlanNode> planNodes; |
| |
| QueryPlan(); |
| |
| QueryPlan.fromJson(core.Map _json) { |
| if (_json.containsKey('planNodes')) { |
| planNodes = (_json['planNodes'] as core.List) |
| .map<PlanNode>((value) => PlanNode.fromJson(value)) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (planNodes != null) { |
| _json['planNodes'] = planNodes.map((value) => value.toJson()).toList(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Message type to initiate a read-only transaction. |
| class ReadOnly { |
| /// Executes all reads at a timestamp that is `exact_staleness` old. The |
| /// timestamp is chosen soon after the read is started. Guarantees that all |
| /// writes that have committed more than the specified number of seconds ago |
| /// are visible. Because Cloud Spanner chooses the exact timestamp, this mode |
| /// works even if the client's local clock is substantially skewed from Cloud |
| /// Spanner commit timestamps. Useful for reading at nearby replicas without |
| /// the distributed timestamp negotiation overhead of `max_staleness`. |
| core.String exactStaleness; |
| |
| /// Read data at a timestamp >= `NOW - max_staleness` seconds. Guarantees that |
| /// all writes that have committed more than the specified number of seconds |
| /// ago are visible. Because Cloud Spanner chooses the exact timestamp, this |
| /// mode works even if the client's local clock is substantially skewed from |
| /// Cloud Spanner commit timestamps. Useful for reading the freshest data |
| /// available at a nearby replica, while bounding the possible staleness if |
| /// the local replica has fallen behind. Note that this option can only be |
| /// used in single-use transactions. |
| core.String maxStaleness; |
| |
| /// Executes all reads at a timestamp >= `min_read_timestamp`. This is useful |
| /// for requesting fresher data than some previous read, or data that is fresh |
| /// enough to observe the effects of some previously committed transaction |
| /// whose timestamp is known. Note that this option can only be used in |
| /// single-use transactions. A timestamp in RFC3339 UTC \"Zulu\" format, |
| /// accurate to nanoseconds. Example: `"2014-10-02T15:01:23.045123456Z"`. |
| core.String minReadTimestamp; |
| |
| /// Executes all reads at the given timestamp. Unlike other modes, reads at a |
| /// specific timestamp are repeatable; the same read at the same timestamp |
| /// always returns the same data. If the timestamp is in the future, the read |
| /// will block until the specified timestamp, modulo the read's deadline. |
| /// Useful for large scale consistent reads such as mapreduces, or for |
| /// coordinating many reads against a consistent snapshot of the data. A |
| /// timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. |
| /// Example: `"2014-10-02T15:01:23.045123456Z"`. |
| core.String readTimestamp; |
| |
| /// If true, the Cloud Spanner-selected read timestamp is included in the |
| /// Transaction message that describes the transaction. |
| core.bool returnReadTimestamp; |
| |
| /// Read at a timestamp where all previously committed transactions are |
| /// visible. |
| core.bool strong; |
| |
| ReadOnly(); |
| |
| ReadOnly.fromJson(core.Map _json) { |
| if (_json.containsKey('exactStaleness')) { |
| exactStaleness = _json['exactStaleness']; |
| } |
| if (_json.containsKey('maxStaleness')) { |
| maxStaleness = _json['maxStaleness']; |
| } |
| if (_json.containsKey('minReadTimestamp')) { |
| minReadTimestamp = _json['minReadTimestamp']; |
| } |
| if (_json.containsKey('readTimestamp')) { |
| readTimestamp = _json['readTimestamp']; |
| } |
| if (_json.containsKey('returnReadTimestamp')) { |
| returnReadTimestamp = _json['returnReadTimestamp']; |
| } |
| if (_json.containsKey('strong')) { |
| strong = _json['strong']; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (exactStaleness != null) { |
| _json['exactStaleness'] = exactStaleness; |
| } |
| if (maxStaleness != null) { |
| _json['maxStaleness'] = maxStaleness; |
| } |
| if (minReadTimestamp != null) { |
| _json['minReadTimestamp'] = minReadTimestamp; |
| } |
| if (readTimestamp != null) { |
| _json['readTimestamp'] = readTimestamp; |
| } |
| if (returnReadTimestamp != null) { |
| _json['returnReadTimestamp'] = returnReadTimestamp; |
| } |
| if (strong != null) { |
| _json['strong'] = strong; |
| } |
| return _json; |
| } |
| } |
| |
| /// The request for Read and StreamingRead. |
| class ReadRequest { |
| /// Required. The columns of table to be returned for each row matching this |
| /// request. |
| core.List<core.String> columns; |
| |
| /// If non-empty, the name of an index on table. This index is used instead of |
| /// the table primary key when interpreting key_set and sorting result rows. |
| /// See key_set for further information. |
| core.String index; |
| |
| /// Required. `key_set` identifies the rows to be yielded. `key_set` names the |
| /// primary keys of the rows in table to be yielded, unless index is present. |
| /// If index is present, then key_set instead names index keys in index. If |
| /// the partition_token field is empty, rows are yielded in table primary key |
| /// order (if index is empty) or index key order (if index is non-empty). If |
| /// the partition_token field is not empty, rows will be yielded in an |
| /// unspecified order. It is not an error for the `key_set` to name rows that |
| /// do not exist in the database. Read yields nothing for nonexistent rows. |
| KeySet keySet; |
| |
| /// If greater than zero, only the first `limit` rows are yielded. If `limit` |
| /// is zero, the default is no limit. A limit cannot be specified if |
| /// `partition_token` is set. |
| core.String limit; |
| |
| /// If present, results will be restricted to the specified partition |
| /// previously created using PartitionRead(). There must be an exact match for |
| /// the values of fields common to this message and the PartitionReadRequest |
| /// message used to create this partition_token. |
| core.String partitionToken; |
| core.List<core.int> get partitionTokenAsBytes => |
| convert.base64.decode(partitionToken); |
| |
| set partitionTokenAsBytes(core.List<core.int> _bytes) { |
| partitionToken = |
| convert.base64.encode(_bytes).replaceAll('/', '_').replaceAll('+', '-'); |
| } |
| |
| /// If this request is resuming a previously interrupted read, `resume_token` |
| /// should be copied from the last PartialResultSet yielded before the |
| /// interruption. Doing this enables the new read to resume where the last |
| /// read left off. The rest of the request parameters must exactly match the |
| /// request that yielded this token. |
| core.String resumeToken; |
| core.List<core.int> get resumeTokenAsBytes => |
| convert.base64.decode(resumeToken); |
| |
| set resumeTokenAsBytes(core.List<core.int> _bytes) { |
| resumeToken = |
| convert.base64.encode(_bytes).replaceAll('/', '_').replaceAll('+', '-'); |
| } |
| |
| /// Required. The name of the table in the database to be read. |
| core.String table; |
| |
| /// The transaction to use. If none is provided, the default is a temporary |
| /// read-only transaction with strong concurrency. |
| TransactionSelector transaction; |
| |
| ReadRequest(); |
| |
| ReadRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('columns')) { |
| columns = (_json['columns'] as core.List).cast<core.String>(); |
| } |
| if (_json.containsKey('index')) { |
| index = _json['index']; |
| } |
| if (_json.containsKey('keySet')) { |
| keySet = KeySet.fromJson(_json['keySet']); |
| } |
| if (_json.containsKey('limit')) { |
| limit = _json['limit']; |
| } |
| if (_json.containsKey('partitionToken')) { |
| partitionToken = _json['partitionToken']; |
| } |
| if (_json.containsKey('resumeToken')) { |
| resumeToken = _json['resumeToken']; |
| } |
| if (_json.containsKey('table')) { |
| table = _json['table']; |
| } |
| if (_json.containsKey('transaction')) { |
| transaction = TransactionSelector.fromJson(_json['transaction']); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (columns != null) { |
| _json['columns'] = columns; |
| } |
| if (index != null) { |
| _json['index'] = index; |
| } |
| if (keySet != null) { |
| _json['keySet'] = keySet.toJson(); |
| } |
| if (limit != null) { |
| _json['limit'] = limit; |
| } |
| if (partitionToken != null) { |
| _json['partitionToken'] = partitionToken; |
| } |
| if (resumeToken != null) { |
| _json['resumeToken'] = resumeToken; |
| } |
| if (table != null) { |
| _json['table'] = table; |
| } |
| if (transaction != null) { |
| _json['transaction'] = transaction.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Message type to initiate a read-write transaction. Currently this |
| /// transaction type has no options. |
| class ReadWrite { |
| ReadWrite(); |
| |
| ReadWrite.fromJson( |
| // ignore: avoid_unused_constructor_parameters |
| core.Map _json); |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| return _json; |
| } |
| } |
| |
| class ReplicaInfo { |
| /// If true, this location is designated as the default leader location where |
| /// leader replicas are placed. See the [region types |
| /// documentation](https://cloud.google.com/spanner/docs/instances#region_types) |
| /// for more details. |
| core.bool defaultLeaderLocation; |
| |
| /// The location of the serving resources, e.g. "us-central1". |
| core.String location; |
| |
| /// The type of replica. |
| /// Possible string values are: |
| /// - "TYPE_UNSPECIFIED" : Not specified. |
| /// - "READ_WRITE" : Read-write replicas support both reads and writes. These |
| /// replicas: * Maintain a full copy of your data. * Serve reads. * Can vote |
| /// whether to commit a write. * Participate in leadership election. * Are |
| /// eligible to become a leader. |
| /// - "READ_ONLY" : Read-only replicas only support reads (not writes). |
| /// Read-only replicas: * Maintain a full copy of your data. * Serve reads. * |
| /// Do not participate in voting to commit writes. * Are not eligible to |
| /// become a leader. |
| /// - "WITNESS" : Witness replicas don't support reads but do participate in |
| /// voting to commit writes. Witness replicas: * Do not maintain a full copy |
| /// of data. * Do not serve reads. * Vote whether to commit writes. * |
| /// Participate in leader election but are not eligible to become leader. |
| core.String type; |
| |
| ReplicaInfo(); |
| |
| ReplicaInfo.fromJson(core.Map _json) { |
| if (_json.containsKey('defaultLeaderLocation')) { |
| defaultLeaderLocation = _json['defaultLeaderLocation']; |
| } |
| if (_json.containsKey('location')) { |
| location = _json['location']; |
| } |
| if (_json.containsKey('type')) { |
| type = _json['type']; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (defaultLeaderLocation != null) { |
| _json['defaultLeaderLocation'] = defaultLeaderLocation; |
| } |
| if (location != null) { |
| _json['location'] = location; |
| } |
| if (type != null) { |
| _json['type'] = type; |
| } |
| return _json; |
| } |
| } |
| |
| /// Metadata type for the long-running operation returned by RestoreDatabase. |
| class RestoreDatabaseMetadata { |
| /// Information about the backup used to restore the database. |
| BackupInfo backupInfo; |
| |
| /// The time at which cancellation of this operation was received. |
| /// Operations.CancelOperation starts asynchronous cancellation on a |
| /// long-running operation. The server makes a best effort to cancel the |
| /// operation, but success is not guaranteed. Clients can use |
| /// Operations.GetOperation or other methods to check whether the cancellation |
| /// succeeded or whether the operation completed despite cancellation. On |
| /// successful cancellation, the operation is not deleted; instead, it becomes |
| /// an operation with an Operation.error value with a google.rpc.Status.code |
| /// of 1, corresponding to `Code.CANCELLED`. |
| core.String cancelTime; |
| |
| /// Name of the database being created and restored to. |
| core.String name; |
| |
| /// If exists, the name of the long-running operation that will be used to |
| /// track the post-restore optimization process to optimize the performance of |
| /// the restored database, and remove the dependency on the restore source. |
| /// The name is of the form `projects//instances//databases//operations/` |
| /// where the is the name of database being created and restored to. The |
| /// metadata type of the long-running operation is |
| /// OptimizeRestoredDatabaseMetadata. This long-running operation will be |
| /// automatically created by the system after the RestoreDatabase long-running |
| /// operation completes successfully. This operation will not be created if |
| /// the restore was not successful. |
| core.String optimizeDatabaseOperationName; |
| |
| /// The progress of the RestoreDatabase operation. |
| OperationProgress progress; |
| |
| /// The type of the restore source. |
| /// Possible string values are: |
| /// - "TYPE_UNSPECIFIED" : No restore associated. |
| /// - "BACKUP" : A backup was used as the source of the restore. |
| core.String sourceType; |
| |
| RestoreDatabaseMetadata(); |
| |
| RestoreDatabaseMetadata.fromJson(core.Map _json) { |
| if (_json.containsKey('backupInfo')) { |
| backupInfo = BackupInfo.fromJson(_json['backupInfo']); |
| } |
| if (_json.containsKey('cancelTime')) { |
| cancelTime = _json['cancelTime']; |
| } |
| if (_json.containsKey('name')) { |
| name = _json['name']; |
| } |
| if (_json.containsKey('optimizeDatabaseOperationName')) { |
| optimizeDatabaseOperationName = _json['optimizeDatabaseOperationName']; |
| } |
| if (_json.containsKey('progress')) { |
| progress = OperationProgress.fromJson(_json['progress']); |
| } |
| if (_json.containsKey('sourceType')) { |
| sourceType = _json['sourceType']; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (backupInfo != null) { |
| _json['backupInfo'] = backupInfo.toJson(); |
| } |
| if (cancelTime != null) { |
| _json['cancelTime'] = cancelTime; |
| } |
| if (name != null) { |
| _json['name'] = name; |
| } |
| if (optimizeDatabaseOperationName != null) { |
| _json['optimizeDatabaseOperationName'] = optimizeDatabaseOperationName; |
| } |
| if (progress != null) { |
| _json['progress'] = progress.toJson(); |
| } |
| if (sourceType != null) { |
| _json['sourceType'] = sourceType; |
| } |
| return _json; |
| } |
| } |
| |
| /// The request for RestoreDatabase. |
| class RestoreDatabaseRequest { |
| /// Name of the backup from which to restore. Values are of the form |
| /// `projects//instances//backups/`. |
| core.String backup; |
| |
| /// Required. The id of the database to create and restore to. This database |
| /// must not already exist. The `database_id` appended to `parent` forms the |
| /// full database name of the form `projects//instances//databases/`. |
| core.String databaseId; |
| |
| RestoreDatabaseRequest(); |
| |
| RestoreDatabaseRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('backup')) { |
| backup = _json['backup']; |
| } |
| if (_json.containsKey('databaseId')) { |
| databaseId = _json['databaseId']; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (backup != null) { |
| _json['backup'] = backup; |
| } |
| if (databaseId != null) { |
| _json['databaseId'] = databaseId; |
| } |
| return _json; |
| } |
| } |
| |
| /// Information about the database restore. |
| class RestoreInfo { |
| /// Information about the backup used to restore the database. The backup may |
| /// no longer exist. |
| BackupInfo backupInfo; |
| |
| /// The type of the restore source. |
| /// Possible string values are: |
| /// - "TYPE_UNSPECIFIED" : No restore associated. |
| /// - "BACKUP" : A backup was used as the source of the restore. |
| core.String sourceType; |
| |
| RestoreInfo(); |
| |
| RestoreInfo.fromJson(core.Map _json) { |
| if (_json.containsKey('backupInfo')) { |
| backupInfo = BackupInfo.fromJson(_json['backupInfo']); |
| } |
| if (_json.containsKey('sourceType')) { |
| sourceType = _json['sourceType']; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (backupInfo != null) { |
| _json['backupInfo'] = backupInfo.toJson(); |
| } |
| if (sourceType != null) { |
| _json['sourceType'] = sourceType; |
| } |
| return _json; |
| } |
| } |
| |
| /// Results from Read or ExecuteSql. |
| class ResultSet { |
| /// Metadata about the result set, such as row type information. |
| ResultSetMetadata metadata; |
| |
| /// Each element in `rows` is a row whose format is defined by |
| /// metadata.row_type. The ith element in each row matches the ith field in |
| /// metadata.row_type. Elements are encoded based on type as described here. |
| /// |
| /// 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.List<core.List<core.Object>> rows; |
| |
| /// Query plan and execution statistics for the SQL statement that produced |
| /// this result set. These can be requested by setting |
| /// ExecuteSqlRequest.query_mode. DML statements always produce stats |
| /// containing the number of rows modified, unless executed using the |
| /// ExecuteSqlRequest.QueryMode.PLAN ExecuteSqlRequest.query_mode. Other |
| /// fields may or may not be populated, based on the |
| /// ExecuteSqlRequest.query_mode. |
| ResultSetStats stats; |
| |
| ResultSet(); |
| |
| ResultSet.fromJson(core.Map _json) { |
| if (_json.containsKey('metadata')) { |
| metadata = ResultSetMetadata.fromJson(_json['metadata']); |
| } |
| if (_json.containsKey('rows')) { |
| rows = (_json['rows'] as core.List) |
| .map<core.List<core.Object>>( |
| (value) => (value as core.List).cast<core.Object>()) |
| .toList(); |
| } |
| if (_json.containsKey('stats')) { |
| stats = ResultSetStats.fromJson(_json['stats']); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (metadata != null) { |
| _json['metadata'] = metadata.toJson(); |
| } |
| if (rows != null) { |
| _json['rows'] = rows; |
| } |
| if (stats != null) { |
| _json['stats'] = stats.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Metadata about a ResultSet or PartialResultSet. |
| class ResultSetMetadata { |
| /// Indicates the field names and types for the rows in the result set. For |
| /// example, a SQL query like `"SELECT UserId, UserName FROM Users"` could |
| /// return a `row_type` value like: "fields": [ { "name": "UserId", "type": { |
| /// "code": "INT64" } }, { "name": "UserName", "type": { "code": "STRING" } }, |
| /// ] |
| StructType rowType; |
| |
| /// If the read or SQL query began a transaction as a side-effect, the |
| /// information about the new transaction is yielded here. |
| Transaction transaction; |
| |
| ResultSetMetadata(); |
| |
| ResultSetMetadata.fromJson(core.Map _json) { |
| if (_json.containsKey('rowType')) { |
| rowType = StructType.fromJson(_json['rowType']); |
| } |
| if (_json.containsKey('transaction')) { |
| transaction = Transaction.fromJson(_json['transaction']); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (rowType != null) { |
| _json['rowType'] = rowType.toJson(); |
| } |
| if (transaction != null) { |
| _json['transaction'] = transaction.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Additional statistics about a ResultSet or PartialResultSet. |
| class ResultSetStats { |
| /// QueryPlan for the query associated with this result. |
| QueryPlan queryPlan; |
| |
| /// Aggregated statistics from the execution of the query. Only present when |
| /// the query is profiled. For example, a query could return the statistics as |
| /// follows: { "rows_returned": "3", "elapsed_time": "1.22 secs", "cpu_time": |
| /// "1.19 secs" } |
| /// |
| /// 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> queryStats; |
| |
| /// Standard DML returns an exact count of rows that were modified. |
| core.String rowCountExact; |
| |
| /// Partitioned DML does not offer exactly-once semantics, so it returns a |
| /// lower bound of the rows modified. |
| core.String rowCountLowerBound; |
| |
| ResultSetStats(); |
| |
| ResultSetStats.fromJson(core.Map _json) { |
| if (_json.containsKey('queryPlan')) { |
| queryPlan = QueryPlan.fromJson(_json['queryPlan']); |
| } |
| if (_json.containsKey('queryStats')) { |
| queryStats = |
| (_json['queryStats'] as core.Map).cast<core.String, core.Object>(); |
| } |
| if (_json.containsKey('rowCountExact')) { |
| rowCountExact = _json['rowCountExact']; |
| } |
| if (_json.containsKey('rowCountLowerBound')) { |
| rowCountLowerBound = _json['rowCountLowerBound']; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (queryPlan != null) { |
| _json['queryPlan'] = queryPlan.toJson(); |
| } |
| if (queryStats != null) { |
| _json['queryStats'] = queryStats; |
| } |
| if (rowCountExact != null) { |
| _json['rowCountExact'] = rowCountExact; |
| } |
| if (rowCountLowerBound != null) { |
| _json['rowCountLowerBound'] = rowCountLowerBound; |
| } |
| return _json; |
| } |
| } |
| |
| /// The request for Rollback. |
| class RollbackRequest { |
| /// Required. The transaction to roll back. |
| core.String transactionId; |
| core.List<core.int> get transactionIdAsBytes => |
| convert.base64.decode(transactionId); |
| |
| set transactionIdAsBytes(core.List<core.int> _bytes) { |
| transactionId = |
| convert.base64.encode(_bytes).replaceAll('/', '_').replaceAll('+', '-'); |
| } |
| |
| RollbackRequest(); |
| |
| RollbackRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('transactionId')) { |
| transactionId = _json['transactionId']; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (transactionId != null) { |
| _json['transactionId'] = transactionId; |
| } |
| return _json; |
| } |
| } |
| |
| /// A session in the Cloud Spanner API. |
| class Session { |
| /// Output only. The approximate timestamp when the session is last used. It |
| /// is typically earlier than the actual last use time. |
| core.String approximateLastUseTime; |
| |
| /// Output only. The timestamp when the session is created. |
| core.String createTime; |
| |
| /// The labels for the session. * Label keys must be between 1 and 63 |
| /// characters long and must conform to the following regular expression: |
| /// `[a-z]([-a-z0-9]*[a-z0-9])?`. * Label values must be between 0 and 63 |
| /// characters long and must conform to the regular expression |
| /// `([a-z]([-a-z0-9]*[a-z0-9])?)?`. * No more than 64 labels can be |
| /// associated with a given session. See https://goo.gl/xmQnxf for more |
| /// information on and examples of labels. |
| core.Map<core.String, core.String> labels; |
| |
| /// Output only. The name of the session. This is always system-assigned. |
| core.String name; |
| |
| Session(); |
| |
| Session.fromJson(core.Map _json) { |
| if (_json.containsKey('approximateLastUseTime')) { |
| approximateLastUseTime = _json['approximateLastUseTime']; |
| } |
| if (_json.containsKey('createTime')) { |
| createTime = _json['createTime']; |
| } |
| if (_json.containsKey('labels')) { |
| labels = (_json['labels'] as core.Map).cast<core.String, core.String>(); |
| } |
| if (_json.containsKey('name')) { |
| name = _json['name']; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (approximateLastUseTime != null) { |
| _json['approximateLastUseTime'] = approximateLastUseTime; |
| } |
| if (createTime != null) { |
| _json['createTime'] = createTime; |
| } |
| if (labels != null) { |
| _json['labels'] = labels; |
| } |
| if (name != null) { |
| _json['name'] = name; |
| } |
| return _json; |
| } |
| } |
| |
| /// Request message for `SetIamPolicy` method. |
| class SetIamPolicyRequest { |
| /// REQUIRED: The complete policy to be applied to the `resource`. The size of |
| /// the policy is limited to a few 10s of KB. An empty policy is a valid |
| /// policy but certain Cloud Platform services (such as Projects) might reject |
| /// them. |
| Policy policy; |
| |
| SetIamPolicyRequest(); |
| |
| SetIamPolicyRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('policy')) { |
| policy = Policy.fromJson(_json['policy']); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (policy != null) { |
| _json['policy'] = policy.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Condensed representation of a node and its subtree. Only present for |
| /// `SCALAR` PlanNode(s). |
| class ShortRepresentation { |
| /// A string representation of the expression subtree rooted at this node. |
| core.String description; |
| |
| /// A mapping of (subquery variable name) -> (subquery node id) for cases |
| /// where the `description` string of this node references a `SCALAR` subquery |
| /// contained in the expression subtree rooted at this node. The referenced |
| /// `SCALAR` subquery may not necessarily be a direct child of this node. |
| core.Map<core.String, core.int> subqueries; |
| |
| ShortRepresentation(); |
| |
| ShortRepresentation.fromJson(core.Map _json) { |
| if (_json.containsKey('description')) { |
| description = _json['description']; |
| } |
| if (_json.containsKey('subqueries')) { |
| subqueries = |
| (_json['subqueries'] as core.Map).cast<core.String, core.int>(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (description != null) { |
| _json['description'] = description; |
| } |
| if (subqueries != null) { |
| _json['subqueries'] = subqueries; |
| } |
| return _json; |
| } |
| } |
| |
| /// A single DML statement. |
| class Statement { |
| /// It is not always possible for Cloud Spanner to infer the right SQL type |
| /// from a JSON value. For example, values of type `BYTES` and values of type |
| /// `STRING` both appear in params as JSON strings. In these cases, |
| /// `param_types` can be used to specify the exact SQL type for some or all of |
| /// the SQL statement parameters. See the definition of Type for more |
| /// information about SQL types. |
| core.Map<core.String, Type> paramTypes; |
| |
| /// Parameter names and values that bind to placeholders in the DML string. A |
| /// parameter placeholder consists of the `@` character followed by the |
| /// parameter name (for example, `@firstName`). Parameter names can contain |
| /// letters, numbers, and underscores. Parameters can appear anywhere that a |
| /// literal value is expected. The same parameter name can be used more than |
| /// once, for example: `"WHERE id > @msg_id AND id < @msg_id + 100"` It is an |
| /// error to execute a SQL statement with unbound 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; |
| |
| /// Required. The DML string. |
| core.String sql; |
| |
| Statement(); |
| |
| Statement.fromJson(core.Map _json) { |
| if (_json.containsKey('paramTypes')) { |
| paramTypes = commons.mapMap<core.Map, Type>( |
| _json['paramTypes'].cast<core.String, core.Map>(), |
| (core.Map item) => Type.fromJson(item)); |
| } |
| if (_json.containsKey('params')) { |
| params = (_json['params'] as core.Map).cast<core.String, core.Object>(); |
| } |
| if (_json.containsKey('sql')) { |
| sql = _json['sql']; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (paramTypes != null) { |
| _json['paramTypes'] = |
| commons.mapMap<Type, core.Map<core.String, core.Object>>( |
| paramTypes, (Type item) => item.toJson()); |
| } |
| if (params != null) { |
| _json['params'] = params; |
| } |
| if (sql != null) { |
| _json['sql'] = sql; |
| } |
| return _json; |
| } |
| } |
| |
| /// 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). |
| class Status { |
| /// The status code, which should be an enum value of google.rpc.Code. |
| core.int code; |
| |
| /// A list of messages that carry the error details. There is a common set of |
| /// message types for APIs to use. |
| /// |
| /// 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.List<core.Map<core.String, core.Object>> details; |
| |
| /// 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. |
| core.String message; |
| |
| Status(); |
| |
| Status.fromJson(core.Map _json) { |
| if (_json.containsKey('code')) { |
| code = _json['code']; |
| } |
| if (_json.containsKey('details')) { |
| details = (_json['details'] as core.List) |
| .map<core.Map<core.String, core.Object>>( |
| (value) => (value as core.Map).cast<core.String, core.Object>()) |
| .toList(); |
| } |
| if (_json.containsKey('message')) { |
| message = _json['message']; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (code != null) { |
| _json['code'] = code; |
| } |
| if (details != null) { |
| _json['details'] = details; |
| } |
| if (message != null) { |
| _json['message'] = message; |
| } |
| return _json; |
| } |
| } |
| |
| /// `StructType` defines the fields of a STRUCT type. |
| class StructType { |
| /// The list of fields that make up this struct. Order is significant, because |
| /// values of this struct type are represented as lists, where the order of |
| /// field values matches the order of fields in the StructType. In turn, the |
| /// order of fields matches the order of columns in a read request, or the |
| /// order of fields in the `SELECT` clause of a query. |
| core.List<Field> fields; |
| |
| StructType(); |
| |
| StructType.fromJson(core.Map _json) { |
| if (_json.containsKey('fields')) { |
| fields = (_json['fields'] as core.List) |
| .map<Field>((value) => Field.fromJson(value)) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (fields != null) { |
| _json['fields'] = fields.map((value) => value.toJson()).toList(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Request message for `TestIamPermissions` method. |
| class TestIamPermissionsRequest { |
| /// REQUIRED: The set of permissions to check for 'resource'. Permissions with |
| /// wildcards (such as '*', 'spanner.*', 'spanner.instances.*') are not |
| /// allowed. |
| core.List<core.String> permissions; |
| |
| TestIamPermissionsRequest(); |
| |
| TestIamPermissionsRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('permissions')) { |
| permissions = (_json['permissions'] as core.List).cast<core.String>(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (permissions != null) { |
| _json['permissions'] = permissions; |
| } |
| return _json; |
| } |
| } |
| |
| /// Response message for `TestIamPermissions` method. |
| class TestIamPermissionsResponse { |
| /// A subset of `TestPermissionsRequest.permissions` that the caller is |
| /// allowed. |
| core.List<core.String> permissions; |
| |
| TestIamPermissionsResponse(); |
| |
| TestIamPermissionsResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('permissions')) { |
| permissions = (_json['permissions'] as core.List).cast<core.String>(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (permissions != null) { |
| _json['permissions'] = permissions; |
| } |
| return _json; |
| } |
| } |
| |
| /// A transaction. |
| class Transaction { |
| /// `id` may be used to identify the transaction in subsequent Read, |
| /// ExecuteSql, Commit, or Rollback calls. Single-use read-only transactions |
| /// do not have IDs, because single-use transactions do not support multiple |
| /// requests. |
| core.String id; |
| core.List<core.int> get idAsBytes => convert.base64.decode(id); |
| |
| set idAsBytes(core.List<core.int> _bytes) { |
| id = |
| convert.base64.encode(_bytes).replaceAll('/', '_').replaceAll('+', '-'); |
| } |
| |
| /// For snapshot read-only transactions, the read timestamp chosen for the |
| /// transaction. Not returned by default: see |
| /// TransactionOptions.ReadOnly.return_read_timestamp. A timestamp in RFC3339 |
| /// UTC \"Zulu\" format, accurate to nanoseconds. Example: |
| /// `"2014-10-02T15:01:23.045123456Z"`. |
| core.String readTimestamp; |
| |
| Transaction(); |
| |
| Transaction.fromJson(core.Map _json) { |
| if (_json.containsKey('id')) { |
| id = _json['id']; |
| } |
| if (_json.containsKey('readTimestamp')) { |
| readTimestamp = _json['readTimestamp']; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (id != null) { |
| _json['id'] = id; |
| } |
| if (readTimestamp != null) { |
| _json['readTimestamp'] = readTimestamp; |
| } |
| return _json; |
| } |
| } |
| |
| /// # Transactions Each session can have at most one active transaction at a |
| /// time (note that standalone reads and queries use a transaction internally |
| /// and do count towards the one transaction limit). After the active |
| /// transaction is completed, the session can immediately be re-used for the |
| /// next transaction. It is not necessary to create a new session for each |
| /// transaction. # Transaction Modes Cloud Spanner supports three transaction |
| /// modes: 1. Locking read-write. This type of transaction is the only way to |
| /// write data into Cloud Spanner. These transactions rely on pessimistic |
| /// locking and, if necessary, two-phase commit. Locking read-write transactions |
| /// may abort, requiring the application to retry. 2. Snapshot read-only. This |
| /// transaction type provides guaranteed consistency across several reads, but |
| /// does not allow writes. Snapshot read-only transactions can be configured to |
| /// read at timestamps in the past. Snapshot read-only transactions do not need |
| /// to be committed. 3. Partitioned DML. This type of transaction is used to |
| /// execute a single Partitioned DML statement. Partitioned DML partitions the |
| /// key space and runs the DML statement over each partition in parallel using |
| /// separate, internal transactions that commit independently. Partitioned DML |
| /// transactions do not need to be committed. For transactions that only read, |
| /// snapshot read-only transactions provide simpler semantics and are almost |
| /// always faster. In particular, read-only transactions do not take locks, so |
| /// they do not conflict with read-write transactions. As a consequence of not |
| /// taking locks, they also do not abort, so retry loops are not needed. |
| /// Transactions may only read/write data in a single database. They may, |
| /// however, read/write data in different tables within that database. ## |
| /// Locking Read-Write Transactions Locking transactions may be used to |
| /// atomically read-modify-write data anywhere in a database. This type of |
| /// transaction is externally consistent. Clients should attempt to minimize the |
| /// amount of time a transaction is active. Faster transactions commit with |
| /// higher probability and cause less contention. Cloud Spanner attempts to keep |
| /// read locks active as long as the transaction continues to do reads, and the |
| /// transaction has not been terminated by Commit or Rollback. Long periods of |
| /// inactivity at the client may cause Cloud Spanner to release a transaction's |
| /// locks and abort it. Conceptually, a read-write transaction consists of zero |
| /// or more reads or SQL statements followed by Commit. At any time before |
| /// Commit, the client can send a Rollback request to abort the transaction. ### |
| /// Semantics Cloud Spanner can commit the transaction if all read locks it |
| /// acquired are still valid at commit time, and it is able to acquire write |
| /// locks for all writes. Cloud Spanner can abort the transaction for any |
| /// reason. If a commit attempt returns `ABORTED`, Cloud Spanner guarantees that |
| /// the transaction has not modified any user data in Cloud Spanner. Unless the |
| /// transaction commits, Cloud Spanner makes no guarantees about how long the |
| /// transaction's locks were held for. It is an error to use Cloud Spanner locks |
| /// for any sort of mutual exclusion other than between Cloud Spanner |
| /// transactions themselves. ### Retrying Aborted Transactions When a |
| /// transaction aborts, the application can choose to retry the whole |
| /// transaction again. To maximize the chances of successfully committing the |
| /// retry, the client should execute the retry in the same session as the |
| /// original attempt. The original session's lock priority increases with each |
| /// consecutive abort, meaning that each attempt has a slightly better chance of |
| /// success than the previous. Under some circumstances (e.g., many transactions |
| /// attempting to modify the same row(s)), a transaction can abort many times in |
| /// a short period before successfully committing. Thus, it is not a good idea |
| /// to cap the number of retries a transaction can attempt; instead, it is |
| /// better to limit the total amount of wall time spent retrying. ### Idle |
| /// Transactions A transaction is considered idle if it has no outstanding reads |
| /// or SQL queries and has not started a read or SQL query within the last 10 |
| /// seconds. Idle transactions can be aborted by Cloud Spanner so that they |
| /// don't hold on to locks indefinitely. In that case, the commit will fail with |
| /// error `ABORTED`. If this behavior is undesirable, periodically executing a |
| /// simple SQL query in the transaction (e.g., `SELECT 1`) prevents the |
| /// transaction from becoming idle. ## Snapshot Read-Only Transactions Snapshot |
| /// read-only transactions provides a simpler method than locking read-write |
| /// transactions for doing several consistent reads. However, this type of |
| /// transaction does not support writes. Snapshot transactions do not take |
| /// locks. Instead, they work by choosing a Cloud Spanner timestamp, then |
| /// executing all reads at that timestamp. Since they do not acquire locks, they |
| /// do not block concurrent read-write transactions. Unlike locking read-write |
| /// transactions, snapshot read-only transactions never abort. They can fail if |
| /// the chosen read timestamp is garbage collected; however, the default garbage |
| /// collection policy is generous enough that most applications do not need to |
| /// worry about this in practice. Snapshot read-only transactions do not need to |
| /// call Commit or Rollback (and in fact are not permitted to do so). To execute |
| /// a snapshot transaction, the client specifies a timestamp bound, which tells |
| /// Cloud Spanner how to choose a read timestamp. The types of timestamp bound |
| /// are: - Strong (the default). - Bounded staleness. - Exact staleness. If the |
| /// Cloud Spanner database to be read is geographically distributed, stale |
| /// read-only transactions can execute more quickly than strong or read-write |
| /// transaction, because they are able to execute far from the leader replica. |
| /// Each type of timestamp bound is discussed in detail below. ### Strong Strong |
| /// reads are guaranteed to see the effects of all transactions that have |
| /// committed before the start of the read. Furthermore, all rows yielded by a |
| /// single read are consistent with each other -- if any part of the read |
| /// observes a transaction, all parts of the read see the transaction. Strong |
| /// reads are not repeatable: two consecutive strong read-only transactions |
| /// might return inconsistent results if there are concurrent writes. If |
| /// consistency across reads is required, the reads should be executed within a |
| /// transaction or at an exact read timestamp. See |
| /// TransactionOptions.ReadOnly.strong. ### Exact Staleness These timestamp |
| /// bounds execute reads at a user-specified timestamp. Reads at a timestamp are |
| /// guaranteed to see a consistent prefix of the global transaction history: |
| /// they observe modifications done by all transactions with a commit timestamp |
| /// <= the read timestamp, and observe none of the modifications done by |
| /// transactions with a larger commit timestamp. They will block until all |
| /// conflicting transactions that may be assigned commit timestamps <= the read |
| /// timestamp have finished. The timestamp can either be expressed as an |
| /// absolute Cloud Spanner commit timestamp or a staleness relative to the |
| /// current time. These modes do not require a "negotiation phase" to pick a |
| /// timestamp. As a result, they execute slightly faster than the equivalent |
| /// boundedly stale concurrency modes. On the other hand, boundedly stale reads |
| /// usually return fresher results. See |
| /// TransactionOptions.ReadOnly.read_timestamp and |
| /// TransactionOptions.ReadOnly.exact_staleness. ### Bounded Staleness Bounded |
| /// staleness modes allow Cloud Spanner to pick the read timestamp, subject to a |
| /// user-provided staleness bound. Cloud Spanner chooses the newest timestamp |
| /// within the staleness bound that allows execution of the reads at the closest |
| /// available replica without blocking. All rows yielded are consistent with |
| /// each other -- if any part of the read observes a transaction, all parts of |
| /// the read see the transaction. Boundedly stale reads are not repeatable: two |
| /// stale reads, even if they use the same staleness bound, can execute at |
| /// different timestamps and thus return inconsistent results. Boundedly stale |
| /// reads execute in two phases: the first phase negotiates a timestamp among |
| /// all replicas needed to serve the read. In the second phase, reads are |
| /// executed at the negotiated timestamp. As a result of the two phase |
| /// execution, bounded staleness reads are usually a little slower than |
| /// comparable exact staleness reads. However, they are typically able to return |
| /// fresher results, and are more likely to execute at the closest replica. |
| /// Because the timestamp negotiation requires up-front knowledge of which rows |
| /// will be read, it can only be used with single-use read-only transactions. |
| /// See TransactionOptions.ReadOnly.max_staleness and |
| /// TransactionOptions.ReadOnly.min_read_timestamp. ### Old Read Timestamps and |
| /// Garbage Collection Cloud Spanner continuously garbage collects deleted and |
| /// overwritten data in the background to reclaim storage space. This process is |
| /// known as "version GC". By default, version GC reclaims versions after they |
| /// are one hour old. Because of this, Cloud Spanner cannot perform reads at |
| /// read timestamps more than one hour in the past. This restriction also |
| /// applies to in-progress reads and/or SQL queries whose timestamp become too |
| /// old while executing. Reads and SQL queries with too-old read timestamps fail |
| /// with the error `FAILED_PRECONDITION`. ## Partitioned DML Transactions |
| /// Partitioned DML transactions are used to execute DML statements with a |
| /// different execution strategy that provides different, and often better, |
| /// scalability properties for large, table-wide operations than DML in a |
| /// ReadWrite transaction. Smaller scoped statements, such as an OLTP workload, |
| /// should prefer using ReadWrite transactions. Partitioned DML partitions the |
| /// keyspace and runs the DML statement on each partition in separate, internal |
| /// transactions. These transactions commit automatically when complete, and run |
| /// independently from one another. To reduce lock contention, this execution |
| /// strategy only acquires read locks on rows that match the WHERE clause of the |
| /// statement. Additionally, the smaller per-partition transactions hold locks |
| /// for less time. That said, Partitioned DML is not a drop-in replacement for |
| /// standard DML used in ReadWrite transactions. - The DML statement must be |
| /// fully-partitionable. Specifically, the statement must be expressible as the |
| /// union of many statements which each access only a single row of the table. - |
| /// The statement is not applied atomically to all rows of the table. Rather, |
| /// the statement is applied atomically to partitions of the table, in |
| /// independent transactions. Secondary index rows are updated atomically with |
| /// the base table rows. - Partitioned DML does not guarantee exactly-once |
| /// execution semantics against a partition. The statement will be applied at |
| /// least once to each partition. It is strongly recommended that the DML |
| /// statement should be idempotent to avoid unexpected results. For instance, it |
| /// is potentially dangerous to run a statement such as `UPDATE table SET column |
| /// = column + 1` as it could be run multiple times against some rows. - The |
| /// partitions are committed automatically - there is no support for Commit or |
| /// Rollback. If the call returns an error, or if the client issuing the |
| /// ExecuteSql call dies, it is possible that some rows had the statement |
| /// executed on them successfully. It is also possible that statement was never |
| /// executed against other rows. - Partitioned DML transactions may only contain |
| /// the execution of a single DML statement via ExecuteSql or |
| /// ExecuteStreamingSql. - If any error is encountered during the execution of |
| /// the partitioned DML operation (for instance, a UNIQUE INDEX violation, |
| /// division by zero, or a value that cannot be stored due to schema |
| /// constraints), then the operation is stopped at that point and an error is |
| /// returned. It is possible that at this point, some partitions have been |
| /// committed (or even committed multiple times), and other partitions have not |
| /// been run at all. Given the above, Partitioned DML is good fit for large, |
| /// database-wide, operations that are idempotent, such as deleting old rows |
| /// from a very large table. |
| class TransactionOptions { |
| /// Partitioned DML transaction. Authorization to begin a Partitioned DML |
| /// transaction requires `spanner.databases.beginPartitionedDmlTransaction` |
| /// permission on the `session` resource. |
| PartitionedDml partitionedDml; |
| |
| /// Transaction will not write. Authorization to begin a read-only transaction |
| /// requires `spanner.databases.beginReadOnlyTransaction` permission on the |
| /// `session` resource. |
| ReadOnly readOnly; |
| |
| /// Transaction may write. Authorization to begin a read-write transaction |
| /// requires `spanner.databases.beginOrRollbackReadWriteTransaction` |
| /// permission on the `session` resource. |
| ReadWrite readWrite; |
| |
| TransactionOptions(); |
| |
| TransactionOptions.fromJson(core.Map _json) { |
| if (_json.containsKey('partitionedDml')) { |
| partitionedDml = PartitionedDml.fromJson(_json['partitionedDml']); |
| } |
| if (_json.containsKey('readOnly')) { |
| readOnly = ReadOnly.fromJson(_json['readOnly']); |
| } |
| if (_json.containsKey('readWrite')) { |
| readWrite = ReadWrite.fromJson(_json['readWrite']); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (partitionedDml != null) { |
| _json['partitionedDml'] = partitionedDml.toJson(); |
| } |
| if (readOnly != null) { |
| _json['readOnly'] = readOnly.toJson(); |
| } |
| if (readWrite != null) { |
| _json['readWrite'] = readWrite.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// This message is used to select the transaction in which a Read or ExecuteSql |
| /// call runs. See TransactionOptions for more information about transactions. |
| class TransactionSelector { |
| /// Begin a new transaction and execute this read or SQL query in it. The |
| /// transaction ID of the new transaction is returned in |
| /// ResultSetMetadata.transaction, which is a Transaction. |
| TransactionOptions begin; |
| |
| /// Execute the read or SQL query in a previously-started transaction. |
| core.String id; |
| core.List<core.int> get idAsBytes => convert.base64.decode(id); |
| |
| set idAsBytes(core.List<core.int> _bytes) { |
| id = |
| convert.base64.encode(_bytes).replaceAll('/', '_').replaceAll('+', '-'); |
| } |
| |
| /// Execute the read or SQL query in a temporary transaction. This is the most |
| /// efficient way to execute a transaction that consists of a single SQL |
| /// query. |
| TransactionOptions singleUse; |
| |
| TransactionSelector(); |
| |
| TransactionSelector.fromJson(core.Map _json) { |
| if (_json.containsKey('begin')) { |
| begin = TransactionOptions.fromJson(_json['begin']); |
| } |
| if (_json.containsKey('id')) { |
| id = _json['id']; |
| } |
| if (_json.containsKey('singleUse')) { |
| singleUse = TransactionOptions.fromJson(_json['singleUse']); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (begin != null) { |
| _json['begin'] = begin.toJson(); |
| } |
| if (id != null) { |
| _json['id'] = id; |
| } |
| if (singleUse != null) { |
| _json['singleUse'] = singleUse.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// `Type` indicates the type of a Cloud Spanner value, as might be stored in a |
| /// table cell or returned from an SQL query. |
| class Type { |
| /// If code == ARRAY, then `array_element_type` is the type of the array |
| /// elements. |
| Type arrayElementType; |
| |
| /// Required. The TypeCode for this type. |
| /// Possible string values are: |
| /// - "TYPE_CODE_UNSPECIFIED" : Not specified. |
| /// - "BOOL" : Encoded as JSON `true` or `false`. |
| /// - "INT64" : Encoded as `string`, in decimal format. |
| /// - "FLOAT64" : Encoded as `number`, or the strings `"NaN"`, `"Infinity"`, |
| /// or `"-Infinity"`. |
| /// - "TIMESTAMP" : Encoded as `string` in RFC 3339 timestamp format. The time |
| /// zone must be present, and must be `"Z"`. If the schema has the column |
| /// option `allow_commit_timestamp=true`, the placeholder string |
| /// `"spanner.commit_timestamp()"` can be used to instruct the system to |
| /// insert the commit timestamp associated with the transaction commit. |
| /// - "DATE" : Encoded as `string` in RFC 3339 date format. |
| /// - "STRING" : Encoded as `string`. |
| /// - "BYTES" : Encoded as a base64-encoded `string`, as described in RFC |
| /// 4648, section 4. |
| /// - "ARRAY" : Encoded as `list`, where the list elements are represented |
| /// according to array_element_type. |
| /// - "STRUCT" : Encoded as `list`, where list element `i` is represented |
| /// according to [struct_type.fields[i]][google.spanner.v1.StructType.fields]. |
| /// - "NUMERIC" : Encoded as `string`, in decimal format or scientific |
| /// notation format. Decimal format: `[+-]Digits[.[Digits]]` or `+-.Digits` |
| /// Scientific notation: `[+-]Digits[.[Digits]][ExponentIndicator[+-]Digits]` |
| /// or `+-.Digits[ExponentIndicator[+-]Digits]` (ExponentIndicator is `"e"` or |
| /// `"E"`) |
| core.String code; |
| |
| /// If code == STRUCT, then `struct_type` provides type information for the |
| /// struct's fields. |
| StructType structType; |
| |
| Type(); |
| |
| Type.fromJson(core.Map _json) { |
| if (_json.containsKey('arrayElementType')) { |
| arrayElementType = Type.fromJson(_json['arrayElementType']); |
| } |
| if (_json.containsKey('code')) { |
| code = _json['code']; |
| } |
| if (_json.containsKey('structType')) { |
| structType = StructType.fromJson(_json['structType']); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (arrayElementType != null) { |
| _json['arrayElementType'] = arrayElementType.toJson(); |
| } |
| if (code != null) { |
| _json['code'] = code; |
| } |
| if (structType != null) { |
| _json['structType'] = structType.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Metadata type for the operation returned by UpdateDatabaseDdl. |
| class UpdateDatabaseDdlMetadata { |
| /// Reports the commit timestamps of all statements that have succeeded so |
| /// far, where `commit_timestamps[i]` is the commit timestamp for the |
| /// statement `statements[i]`. |
| core.List<core.String> commitTimestamps; |
| |
| /// The database being modified. |
| core.String database; |
| |
| /// For an update this list contains all the statements. For an individual |
| /// statement, this list contains only that statement. |
| core.List<core.String> statements; |
| |
| UpdateDatabaseDdlMetadata(); |
| |
| UpdateDatabaseDdlMetadata.fromJson(core.Map _json) { |
| if (_json.containsKey('commitTimestamps')) { |
| commitTimestamps = |
| (_json['commitTimestamps'] as core.List).cast<core.String>(); |
| } |
| if (_json.containsKey('database')) { |
| database = _json['database']; |
| } |
| if (_json.containsKey('statements')) { |
| statements = (_json['statements'] as core.List).cast<core.String>(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (commitTimestamps != null) { |
| _json['commitTimestamps'] = commitTimestamps; |
| } |
| if (database != null) { |
| _json['database'] = database; |
| } |
| if (statements != null) { |
| _json['statements'] = statements; |
| } |
| return _json; |
| } |
| } |
| |
| /// Enqueues the given DDL statements to be applied, in order but not |
| /// necessarily all at once, to the database schema at some point (or points) in |
| /// the future. The server checks that the statements are executable |
| /// (syntactically valid, name tables that exist, etc.) before enqueueing them, |
| /// but they may still fail upon later execution (e.g., if a statement from |
| /// another batch of statements is applied first and it conflicts in some way, |
| /// or if there is some data-related problem like a `NULL` value in a column to |
| /// which `NOT NULL` would be added). If a statement fails, all subsequent |
| /// statements in the batch are automatically cancelled. Each batch of |
| /// statements is assigned a name which can be used with the Operations API to |
| /// monitor progress. See the operation_id field for more details. |
| class UpdateDatabaseDdlRequest { |
| /// If empty, the new update request is assigned an automatically-generated |
| /// operation ID. Otherwise, `operation_id` is used to construct the name of |
| /// the resulting Operation. Specifying an explicit operation ID simplifies |
| /// determining whether the statements were executed in the event that the |
| /// UpdateDatabaseDdl call is replayed, or the return value is otherwise lost: |
| /// the database and `operation_id` fields can be combined to form the name of |
| /// the resulting longrunning.Operation: `/operations/`. `operation_id` should |
| /// be unique within the database, and must be a valid identifier: `a-z*`. |
| /// Note that automatically-generated operation IDs always begin with an |
| /// underscore. If the named operation already exists, UpdateDatabaseDdl |
| /// returns `ALREADY_EXISTS`. |
| core.String operationId; |
| |
| /// Required. DDL statements to be applied to the database. |
| core.List<core.String> statements; |
| |
| UpdateDatabaseDdlRequest(); |
| |
| UpdateDatabaseDdlRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('operationId')) { |
| operationId = _json['operationId']; |
| } |
| if (_json.containsKey('statements')) { |
| statements = (_json['statements'] as core.List).cast<core.String>(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (operationId != null) { |
| _json['operationId'] = operationId; |
| } |
| if (statements != null) { |
| _json['statements'] = statements; |
| } |
| return _json; |
| } |
| } |
| |
| /// Metadata type for the operation returned by UpdateInstance. |
| class UpdateInstanceMetadata { |
| /// The time at which this operation was cancelled. If set, this operation is |
| /// in the process of undoing itself (which is guaranteed to succeed) and |
| /// cannot be cancelled again. |
| core.String cancelTime; |
| |
| /// The time at which this operation failed or was completed successfully. |
| core.String endTime; |
| |
| /// The desired end state of the update. |
| Instance instance; |
| |
| /// The time at which UpdateInstance request was received. |
| core.String startTime; |
| |
| UpdateInstanceMetadata(); |
| |
| UpdateInstanceMetadata.fromJson(core.Map _json) { |
| if (_json.containsKey('cancelTime')) { |
| cancelTime = _json['cancelTime']; |
| } |
| if (_json.containsKey('endTime')) { |
| endTime = _json['endTime']; |
| } |
| if (_json.containsKey('instance')) { |
| instance = Instance.fromJson(_json['instance']); |
| } |
| if (_json.containsKey('startTime')) { |
| startTime = _json['startTime']; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (cancelTime != null) { |
| _json['cancelTime'] = cancelTime; |
| } |
| if (endTime != null) { |
| _json['endTime'] = endTime; |
| } |
| if (instance != null) { |
| _json['instance'] = instance.toJson(); |
| } |
| if (startTime != null) { |
| _json['startTime'] = startTime; |
| } |
| return _json; |
| } |
| } |
| |
| /// The request for UpdateInstance. |
| class UpdateInstanceRequest { |
| /// Required. A mask specifying which fields in Instance should be updated. |
| /// The field mask must always be specified; this prevents any future fields |
| /// in Instance from being erased accidentally by clients that do not know |
| /// about them. |
| core.String fieldMask; |
| |
| /// Required. The instance to update, which must always include the instance |
| /// name. Otherwise, only fields mentioned in field_mask need be included. |
| Instance instance; |
| |
| UpdateInstanceRequest(); |
| |
| UpdateInstanceRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('fieldMask')) { |
| fieldMask = _json['fieldMask']; |
| } |
| if (_json.containsKey('instance')) { |
| instance = Instance.fromJson(_json['instance']); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (fieldMask != null) { |
| _json['fieldMask'] = fieldMask; |
| } |
| if (instance != null) { |
| _json['instance'] = instance.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Arguments to insert, update, insert_or_update, and replace operations. |
| class Write { |
| /// The names of the columns in table to be written. The list of columns must |
| /// contain enough columns to allow Cloud Spanner to derive values for all |
| /// primary key columns in the row(s) to be modified. |
| core.List<core.String> columns; |
| |
| /// Required. The table whose rows will be written. |
| core.String table; |
| |
| /// The values to be written. `values` can contain more than one list of |
| /// values. If it does, then multiple rows are written, one for each entry in |
| /// `values`. Each list in `values` must have exactly as many entries as there |
| /// are entries in columns above. Sending multiple lists is equivalent to |
| /// sending multiple `Mutation`s, each containing one `values` entry and |
| /// repeating table and columns. Individual values in each list are encoded as |
| /// described here. |
| /// |
| /// 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.List<core.List<core.Object>> values; |
| |
| Write(); |
| |
| Write.fromJson(core.Map _json) { |
| if (_json.containsKey('columns')) { |
| columns = (_json['columns'] as core.List).cast<core.String>(); |
| } |
| if (_json.containsKey('table')) { |
| table = _json['table']; |
| } |
| if (_json.containsKey('values')) { |
| values = (_json['values'] as core.List) |
| .map<core.List<core.Object>>( |
| (value) => (value as core.List).cast<core.Object>()) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (columns != null) { |
| _json['columns'] = columns; |
| } |
| if (table != null) { |
| _json['table'] = table; |
| } |
| if (values != null) { |
| _json['values'] = values; |
| } |
| return _json; |
| } |
| } |