Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(205)

Side by Side Diff: generated/googleapis/lib/spanner/v1.dart

Issue 3006323002: Api-Roll 54: 2017-09-11 (Closed)
Patch Set: use 2.0.0-dev.infinity sdk constraint in pubspecs Created 3 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « generated/googleapis/lib/sourcerepo/v1.dart ('k') | generated/googleapis/lib/speech/v1.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // This is a generated file (see the discoveryapis_generator project). 1 // This is a generated file (see the discoveryapis_generator project).
2 2
3 library googleapis.spanner.v1; 3 library googleapis.spanner.v1;
4 4
5 import 'dart:core' as core; 5 import 'dart:core' as core;
6 import 'dart:async' as async; 6 import 'dart:async' as async;
7 import 'dart:convert' as convert; 7 import 'dart:convert' as convert;
8 8
9 import 'package:_discoveryapis_commons/_discoveryapis_commons.dart' as commons; 9 import 'package:_discoveryapis_commons/_discoveryapis_commons.dart' as commons;
10 import 'package:http/http.dart' as http; 10 import 'package:http/http.dart' as http;
11 11
12 export 'package:_discoveryapis_commons/_discoveryapis_commons.dart' show 12 export 'package:_discoveryapis_commons/_discoveryapis_commons.dart'
13 ApiRequestError, DetailedApiRequestError; 13 show ApiRequestError, DetailedApiRequestError;
14 14
15 const core.String USER_AGENT = 'dart-api-client spanner/v1'; 15 const core.String USER_AGENT = 'dart-api-client spanner/v1';
16 16
17 /** 17 /// Cloud Spanner is a managed, mission-critical, globally consistent and
18 * Cloud Spanner is a managed, mission-critical, globally consistent and 18 /// scalable relational database service.
19 * scalable relational database service.
20 */
21 class SpannerApi { 19 class SpannerApi {
22 /** View and manage your data across Google Cloud Platform services */ 20 /// View and manage your data across Google Cloud Platform services
23 static const CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platf orm"; 21 static const CloudPlatformScope =
22 "https://www.googleapis.com/auth/cloud-platform";
24 23
25 /** Administer your Spanner databases */ 24 /// Administer your Spanner databases
26 static const SpannerAdminScope = "https://www.googleapis.com/auth/spanner.admi n"; 25 static const SpannerAdminScope =
26 "https://www.googleapis.com/auth/spanner.admin";
27 27
28 /** View and manage the contents of your Spanner databases */ 28 /// View and manage the contents of your Spanner databases
29 static const SpannerDataScope = "https://www.googleapis.com/auth/spanner.data" ; 29 static const SpannerDataScope =
30 30 "https://www.googleapis.com/auth/spanner.data";
31 31
32 final commons.ApiRequester _requester; 32 final commons.ApiRequester _requester;
33 33
34 ProjectsResourceApi get projects => new ProjectsResourceApi(_requester); 34 ProjectsResourceApi get projects => new ProjectsResourceApi(_requester);
35 35
36 SpannerApi(http.Client client, {core.String rootUrl: "https://spanner.googleap is.com/", core.String servicePath: ""}) : 36 SpannerApi(http.Client client,
37 _requester = new commons.ApiRequester(client, rootUrl, servicePath, USER_A GENT); 37 {core.String rootUrl: "https://spanner.googleapis.com/",
38 core.String servicePath: ""})
39 : _requester =
40 new commons.ApiRequester(client, rootUrl, servicePath, USER_AGENT);
38 } 41 }
39 42
40
41 class ProjectsResourceApi { 43 class ProjectsResourceApi {
42 final commons.ApiRequester _requester; 44 final commons.ApiRequester _requester;
43 45
44 ProjectsInstanceConfigsResourceApi get instanceConfigs => new ProjectsInstance ConfigsResourceApi(_requester); 46 ProjectsInstanceConfigsResourceApi get instanceConfigs =>
45 ProjectsInstancesResourceApi get instances => new ProjectsInstancesResourceApi (_requester); 47 new ProjectsInstanceConfigsResourceApi(_requester);
48 ProjectsInstancesResourceApi get instances =>
49 new ProjectsInstancesResourceApi(_requester);
46 50
47 ProjectsResourceApi(commons.ApiRequester client) : 51 ProjectsResourceApi(commons.ApiRequester client) : _requester = client;
48 _requester = client;
49 } 52 }
50 53
51
52 class ProjectsInstanceConfigsResourceApi { 54 class ProjectsInstanceConfigsResourceApi {
53 final commons.ApiRequester _requester; 55 final commons.ApiRequester _requester;
54 56
55 ProjectsInstanceConfigsResourceApi(commons.ApiRequester client) : 57 ProjectsInstanceConfigsResourceApi(commons.ApiRequester client)
56 _requester = client; 58 : _requester = client;
57 59
58 /** 60 /// Gets information about a particular instance configuration.
59 * Gets information about a particular instance configuration. 61 ///
60 * 62 /// Request parameters:
61 * Request parameters: 63 ///
62 * 64 /// [name] - Required. The name of the requested instance configuration.
63 * [name] - Required. The name of the requested instance configuration. Values 65 /// Values are of
64 * are of 66 /// the form `projects/<project>/instanceConfigs/<config>`.
65 * the form `projects/<project>/instanceConfigs/<config>`. 67 /// Value must have pattern "^projects/[^/]+/instanceConfigs/[^/]+$".
66 * Value must have pattern "^projects/[^/]+/instanceConfigs/[^/]+$". 68 ///
67 * 69 /// Completes with a [InstanceConfig].
68 * Completes with a [InstanceConfig]. 70 ///
69 * 71 /// Completes with a [commons.ApiRequestError] if the API endpoint returned
70 * Completes with a [commons.ApiRequestError] if the API endpoint returned an 72 /// an error.
71 * error. 73 ///
72 * 74 /// If the used [http.Client] completes with an error when making a REST
73 * If the used [http.Client] completes with an error when making a REST call, 75 /// call, this method will complete with the same error.
74 * this method will complete with the same error.
75 */
76 async.Future<InstanceConfig> get(core.String name) { 76 async.Future<InstanceConfig> get(core.String name) {
77 var _url = null; 77 var _url = null;
78 var _queryParams = new core.Map(); 78 var _queryParams = new core.Map();
79 var _uploadMedia = null; 79 var _uploadMedia = null;
80 var _uploadOptions = null; 80 var _uploadOptions = null;
81 var _downloadOptions = commons.DownloadOptions.Metadata; 81 var _downloadOptions = commons.DownloadOptions.Metadata;
82 var _body = null; 82 var _body = null;
83 83
84 if (name == null) { 84 if (name == null) {
85 throw new core.ArgumentError("Parameter name is required."); 85 throw new core.ArgumentError("Parameter name is required.");
86 } 86 }
87 87
88 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); 88 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name');
89 89
90 var _response = _requester.request(_url, 90 var _response = _requester.request(_url, "GET",
91 "GET", 91 body: _body,
92 body: _body, 92 queryParams: _queryParams,
93 queryParams: _queryParams, 93 uploadOptions: _uploadOptions,
94 uploadOptions: _uploadOptions, 94 uploadMedia: _uploadMedia,
95 uploadMedia: _uploadMedia, 95 downloadOptions: _downloadOptions);
96 downloadOptions: _downloadOptions);
97 return _response.then((data) => new InstanceConfig.fromJson(data)); 96 return _response.then((data) => new InstanceConfig.fromJson(data));
98 } 97 }
99 98
100 /** 99 /// Lists the supported instance configurations for a given project.
101 * Lists the supported instance configurations for a given project. 100 ///
102 * 101 /// Request parameters:
103 * Request parameters: 102 ///
104 * 103 /// [parent] - Required. The name of the project for which a list of
105 * [parent] - Required. The name of the project for which a list of supported 104 /// supported instance
106 * instance 105 /// configurations is requested. Values are of the form
107 * configurations is requested. Values are of the form 106 /// `projects/<project>`.
108 * `projects/<project>`. 107 /// Value must have pattern "^projects/[^/]+$".
109 * Value must have pattern "^projects/[^/]+$". 108 ///
110 * 109 /// [pageToken] - If non-empty, `page_token` should contain a
111 * [pageToken] - If non-empty, `page_token` should contain a 110 /// next_page_token
112 * next_page_token 111 /// from a previous ListInstanceConfigsResponse.
113 * from a previous ListInstanceConfigsResponse. 112 ///
114 * 113 /// [pageSize] - Number of instance configurations to be returned in the
115 * [pageSize] - Number of instance configurations to be returned in the 114 /// response. If 0 or
116 * response. If 0 or 115 /// less, defaults to the server's maximum allowed page size.
117 * less, defaults to the server's maximum allowed page size. 116 ///
118 * 117 /// Completes with a [ListInstanceConfigsResponse].
119 * Completes with a [ListInstanceConfigsResponse]. 118 ///
120 * 119 /// Completes with a [commons.ApiRequestError] if the API endpoint returned
121 * Completes with a [commons.ApiRequestError] if the API endpoint returned an 120 /// an error.
122 * error. 121 ///
123 * 122 /// If the used [http.Client] completes with an error when making a REST
124 * If the used [http.Client] completes with an error when making a REST call, 123 /// call, this method will complete with the same error.
125 * this method will complete with the same error. 124 async.Future<ListInstanceConfigsResponse> list(core.String parent,
126 */ 125 {core.String pageToken, core.int pageSize}) {
127 async.Future<ListInstanceConfigsResponse> list(core.String parent, {core.Strin g pageToken, core.int pageSize}) {
128 var _url = null; 126 var _url = null;
129 var _queryParams = new core.Map(); 127 var _queryParams = new core.Map();
130 var _uploadMedia = null; 128 var _uploadMedia = null;
131 var _uploadOptions = null; 129 var _uploadOptions = null;
132 var _downloadOptions = commons.DownloadOptions.Metadata; 130 var _downloadOptions = commons.DownloadOptions.Metadata;
133 var _body = null; 131 var _body = null;
134 132
135 if (parent == null) { 133 if (parent == null) {
136 throw new core.ArgumentError("Parameter parent is required."); 134 throw new core.ArgumentError("Parameter parent is required.");
137 } 135 }
138 if (pageToken != null) { 136 if (pageToken != null) {
139 _queryParams["pageToken"] = [pageToken]; 137 _queryParams["pageToken"] = [pageToken];
140 } 138 }
141 if (pageSize != null) { 139 if (pageSize != null) {
142 _queryParams["pageSize"] = ["${pageSize}"]; 140 _queryParams["pageSize"] = ["${pageSize}"];
143 } 141 }
144 142
145 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$parent') + '/instance Configs'; 143 _url = 'v1/' +
144 commons.Escaper.ecapeVariableReserved('$parent') +
145 '/instanceConfigs';
146 146
147 var _response = _requester.request(_url, 147 var _response = _requester.request(_url, "GET",
148 "GET", 148 body: _body,
149 body: _body, 149 queryParams: _queryParams,
150 queryParams: _queryParams, 150 uploadOptions: _uploadOptions,
151 uploadOptions: _uploadOptions, 151 uploadMedia: _uploadMedia,
152 uploadMedia: _uploadMedia, 152 downloadOptions: _downloadOptions);
153 downloadOptions: _downloadOptions); 153 return _response
154 return _response.then((data) => new ListInstanceConfigsResponse.fromJson(dat a)); 154 .then((data) => new ListInstanceConfigsResponse.fromJson(data));
155 } 155 }
156
157 } 156 }
158 157
159
160 class ProjectsInstancesResourceApi { 158 class ProjectsInstancesResourceApi {
161 final commons.ApiRequester _requester; 159 final commons.ApiRequester _requester;
162 160
163 ProjectsInstancesDatabasesResourceApi get databases => new ProjectsInstancesDa tabasesResourceApi(_requester); 161 ProjectsInstancesDatabasesResourceApi get databases =>
164 ProjectsInstancesOperationsResourceApi get operations => new ProjectsInstances OperationsResourceApi(_requester); 162 new ProjectsInstancesDatabasesResourceApi(_requester);
163 ProjectsInstancesOperationsResourceApi get operations =>
164 new ProjectsInstancesOperationsResourceApi(_requester);
165 165
166 ProjectsInstancesResourceApi(commons.ApiRequester client) : 166 ProjectsInstancesResourceApi(commons.ApiRequester client)
167 _requester = client; 167 : _requester = client;
168 168
169 /** 169 /// Creates an instance and begins preparing it to begin serving. The
170 * Creates an instance and begins preparing it to begin serving. The 170 /// returned long-running operation
171 * returned long-running operation 171 /// can be used to track the progress of preparing the new
172 * can be used to track the progress of preparing the new 172 /// instance. The instance name is assigned by the caller. If the
173 * instance. The instance name is assigned by the caller. If the 173 /// named instance already exists, `CreateInstance` returns
174 * named instance already exists, `CreateInstance` returns 174 /// `ALREADY_EXISTS`.
175 * `ALREADY_EXISTS`. 175 ///
176 * 176 /// Immediately upon completion of this request:
177 * Immediately upon completion of this request: 177 ///
178 * 178 /// * The instance is readable via the API, with all requested attributes
179 * * The instance is readable via the API, with all requested attributes 179 /// but no allocated resources. Its state is `CREATING`.
180 * but no allocated resources. Its state is `CREATING`. 180 ///
181 * 181 /// Until completion of the returned operation:
182 * Until completion of the returned operation: 182 ///
183 * 183 /// * Cancelling the operation renders the instance immediately unreadable
184 * * Cancelling the operation renders the instance immediately unreadable 184 /// via the API.
185 * via the API. 185 /// * The instance can be deleted.
186 * * The instance can be deleted. 186 /// * All other attempts to modify the instance are rejected.
187 * * All other attempts to modify the instance are rejected. 187 ///
188 * 188 /// Upon completion of the returned operation:
189 * Upon completion of the returned operation: 189 ///
190 * 190 /// * Billing for all successfully-allocated resources begins (some types
191 * * Billing for all successfully-allocated resources begins (some types 191 /// may have lower than the requested levels).
192 * may have lower than the requested levels). 192 /// * Databases can be created in the instance.
193 * * Databases can be created in the instance. 193 /// * The instance's allocated resource levels are readable via the API.
194 * * The instance's allocated resource levels are readable via the API. 194 /// * The instance's state becomes `READY`.
195 * * The instance's state becomes `READY`. 195 ///
196 * 196 /// The returned long-running operation will
197 * The returned long-running operation will 197 /// have a name of the format `<instance_name>/operations/<operation_id>` and
198 * have a name of the format `<instance_name>/operations/<operation_id>` and 198 /// can be used to track creation of the instance. The
199 * can be used to track creation of the instance. The 199 /// metadata field type is
200 * metadata field type is 200 /// CreateInstanceMetadata.
201 * CreateInstanceMetadata. 201 /// The response field type is
202 * The response field type is 202 /// Instance, if successful.
203 * Instance, if successful. 203 ///
204 * 204 /// [request] - The metadata request object.
205 * [request] - The metadata request object. 205 ///
206 * 206 /// Request parameters:
207 * Request parameters: 207 ///
208 * 208 /// [parent] - Required. The name of the project in which to create the
209 * [parent] - Required. The name of the project in which to create the 209 /// instance. Values
210 * instance. Values 210 /// are of the form `projects/<project>`.
211 * are of the form `projects/<project>`. 211 /// Value must have pattern "^projects/[^/]+$".
212 * Value must have pattern "^projects/[^/]+$". 212 ///
213 * 213 /// Completes with a [Operation].
214 * Completes with a [Operation]. 214 ///
215 * 215 /// Completes with a [commons.ApiRequestError] if the API endpoint returned
216 * Completes with a [commons.ApiRequestError] if the API endpoint returned an 216 /// an error.
217 * error. 217 ///
218 * 218 /// If the used [http.Client] completes with an error when making a REST
219 * If the used [http.Client] completes with an error when making a REST call, 219 /// call, this method will complete with the same error.
220 * this method will complete with the same error. 220 async.Future<Operation> create(
221 */ 221 CreateInstanceRequest request, core.String parent) {
222 async.Future<Operation> create(CreateInstanceRequest request, core.String pare nt) {
223 var _url = null; 222 var _url = null;
224 var _queryParams = new core.Map(); 223 var _queryParams = new core.Map();
225 var _uploadMedia = null; 224 var _uploadMedia = null;
226 var _uploadOptions = null; 225 var _uploadOptions = null;
227 var _downloadOptions = commons.DownloadOptions.Metadata; 226 var _downloadOptions = commons.DownloadOptions.Metadata;
228 var _body = null; 227 var _body = null;
229 228
230 if (request != null) { 229 if (request != null) {
231 _body = convert.JSON.encode((request).toJson()); 230 _body = convert.JSON.encode((request).toJson());
232 } 231 }
233 if (parent == null) { 232 if (parent == null) {
234 throw new core.ArgumentError("Parameter parent is required."); 233 throw new core.ArgumentError("Parameter parent is required.");
235 } 234 }
236 235
237 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$parent') + '/instance s'; 236 _url =
237 'v1/' + commons.Escaper.ecapeVariableReserved('$parent') + '/instances';
238 238
239 var _response = _requester.request(_url, 239 var _response = _requester.request(_url, "POST",
240 "POST", 240 body: _body,
241 body: _body, 241 queryParams: _queryParams,
242 queryParams: _queryParams, 242 uploadOptions: _uploadOptions,
243 uploadOptions: _uploadOptions, 243 uploadMedia: _uploadMedia,
244 uploadMedia: _uploadMedia, 244 downloadOptions: _downloadOptions);
245 downloadOptions: _downloadOptions);
246 return _response.then((data) => new Operation.fromJson(data)); 245 return _response.then((data) => new Operation.fromJson(data));
247 } 246 }
248 247
249 /** 248 /// Deletes an instance.
250 * Deletes an instance. 249 ///
251 * 250 /// Immediately upon completion of the request:
252 * Immediately upon completion of the request: 251 ///
253 * 252 /// * Billing ceases for all of the instance's reserved resources.
254 * * Billing ceases for all of the instance's reserved resources. 253 ///
255 * 254 /// Soon afterward:
256 * Soon afterward: 255 ///
257 * 256 /// * The instance and *all of its databases* immediately and
258 * * The instance and *all of its databases* immediately and 257 /// irrevocably disappear from the API. All data in the databases
259 * irrevocably disappear from the API. All data in the databases 258 /// is permanently deleted.
260 * is permanently deleted. 259 ///
261 * 260 /// Request parameters:
262 * Request parameters: 261 ///
263 * 262 /// [name] - Required. The name of the instance to be deleted. Values are of
264 * [name] - Required. The name of the instance to be deleted. Values are of 263 /// the form
265 * the form 264 /// `projects/<project>/instances/<instance>`
266 * `projects/<project>/instances/<instance>` 265 /// Value must have pattern "^projects/[^/]+/instances/[^/]+$".
267 * Value must have pattern "^projects/[^/]+/instances/[^/]+$". 266 ///
268 * 267 /// Completes with a [Empty].
269 * Completes with a [Empty]. 268 ///
270 * 269 /// Completes with a [commons.ApiRequestError] if the API endpoint returned
271 * Completes with a [commons.ApiRequestError] if the API endpoint returned an 270 /// an error.
272 * error. 271 ///
273 * 272 /// If the used [http.Client] completes with an error when making a REST
274 * If the used [http.Client] completes with an error when making a REST call, 273 /// call, this method will complete with the same error.
275 * this method will complete with the same error.
276 */
277 async.Future<Empty> delete(core.String name) { 274 async.Future<Empty> delete(core.String name) {
278 var _url = null; 275 var _url = null;
279 var _queryParams = new core.Map(); 276 var _queryParams = new core.Map();
280 var _uploadMedia = null; 277 var _uploadMedia = null;
281 var _uploadOptions = null; 278 var _uploadOptions = null;
282 var _downloadOptions = commons.DownloadOptions.Metadata; 279 var _downloadOptions = commons.DownloadOptions.Metadata;
283 var _body = null; 280 var _body = null;
284 281
285 if (name == null) { 282 if (name == null) {
286 throw new core.ArgumentError("Parameter name is required."); 283 throw new core.ArgumentError("Parameter name is required.");
287 } 284 }
288 285
289 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); 286 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name');
290 287
291 var _response = _requester.request(_url, 288 var _response = _requester.request(_url, "DELETE",
292 "DELETE", 289 body: _body,
293 body: _body, 290 queryParams: _queryParams,
294 queryParams: _queryParams, 291 uploadOptions: _uploadOptions,
295 uploadOptions: _uploadOptions, 292 uploadMedia: _uploadMedia,
296 uploadMedia: _uploadMedia, 293 downloadOptions: _downloadOptions);
297 downloadOptions: _downloadOptions);
298 return _response.then((data) => new Empty.fromJson(data)); 294 return _response.then((data) => new Empty.fromJson(data));
299 } 295 }
300 296
301 /** 297 /// Gets information about a particular instance.
302 * Gets information about a particular instance. 298 ///
303 * 299 /// Request parameters:
304 * Request parameters: 300 ///
305 * 301 /// [name] - Required. The name of the requested instance. Values are of the
306 * [name] - Required. The name of the requested instance. Values are of the 302 /// form
307 * form 303 /// `projects/<project>/instances/<instance>`.
308 * `projects/<project>/instances/<instance>`. 304 /// Value must have pattern "^projects/[^/]+/instances/[^/]+$".
309 * Value must have pattern "^projects/[^/]+/instances/[^/]+$". 305 ///
310 * 306 /// Completes with a [Instance].
311 * Completes with a [Instance]. 307 ///
312 * 308 /// Completes with a [commons.ApiRequestError] if the API endpoint returned
313 * Completes with a [commons.ApiRequestError] if the API endpoint returned an 309 /// an error.
314 * error. 310 ///
315 * 311 /// If the used [http.Client] completes with an error when making a REST
316 * If the used [http.Client] completes with an error when making a REST call, 312 /// call, this method will complete with the same error.
317 * this method will complete with the same error.
318 */
319 async.Future<Instance> get(core.String name) { 313 async.Future<Instance> get(core.String name) {
320 var _url = null; 314 var _url = null;
321 var _queryParams = new core.Map(); 315 var _queryParams = new core.Map();
322 var _uploadMedia = null; 316 var _uploadMedia = null;
323 var _uploadOptions = null; 317 var _uploadOptions = null;
324 var _downloadOptions = commons.DownloadOptions.Metadata; 318 var _downloadOptions = commons.DownloadOptions.Metadata;
325 var _body = null; 319 var _body = null;
326 320
327 if (name == null) { 321 if (name == null) {
328 throw new core.ArgumentError("Parameter name is required."); 322 throw new core.ArgumentError("Parameter name is required.");
329 } 323 }
330 324
331 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); 325 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name');
332 326
333 var _response = _requester.request(_url, 327 var _response = _requester.request(_url, "GET",
334 "GET", 328 body: _body,
335 body: _body, 329 queryParams: _queryParams,
336 queryParams: _queryParams, 330 uploadOptions: _uploadOptions,
337 uploadOptions: _uploadOptions, 331 uploadMedia: _uploadMedia,
338 uploadMedia: _uploadMedia, 332 downloadOptions: _downloadOptions);
339 downloadOptions: _downloadOptions);
340 return _response.then((data) => new Instance.fromJson(data)); 333 return _response.then((data) => new Instance.fromJson(data));
341 } 334 }
342 335
343 /** 336 /// Gets the access control policy for an instance resource. Returns an empty
344 * Gets the access control policy for an instance resource. Returns an empty 337 /// policy if an instance exists but does not have a policy set.
345 * policy if an instance exists but does not have a policy set. 338 ///
346 * 339 /// Authorization requires `spanner.instances.getIamPolicy` on
347 * Authorization requires `spanner.instances.getIamPolicy` on 340 /// resource.
348 * resource. 341 ///
349 * 342 /// [request] - The metadata request object.
350 * [request] - The metadata request object. 343 ///
351 * 344 /// Request parameters:
352 * Request parameters: 345 ///
353 * 346 /// [resource] - REQUIRED: The Cloud Spanner resource for which the policy is
354 * [resource] - REQUIRED: The Cloud Spanner resource for which the policy is 347 /// being retrieved. The format is `projects/<project ID>/instances/<instance
355 * being retrieved. The format is `projects/<project ID>/instances/<instance 348 /// ID>` for instance resources and `projects/<project
356 * ID>` for instance resources and `projects/<project ID>/instances/<instance 349 /// ID>/instances/<instance ID>/databases/<database ID>` for database
357 * ID>/databases/<database ID>` for database resources. 350 /// resources.
358 * Value must have pattern "^projects/[^/]+/instances/[^/]+$". 351 /// Value must have pattern "^projects/[^/]+/instances/[^/]+$".
359 * 352 ///
360 * Completes with a [Policy]. 353 /// Completes with a [Policy].
361 * 354 ///
362 * Completes with a [commons.ApiRequestError] if the API endpoint returned an 355 /// Completes with a [commons.ApiRequestError] if the API endpoint returned
363 * error. 356 /// an error.
364 * 357 ///
365 * If the used [http.Client] completes with an error when making a REST call, 358 /// If the used [http.Client] completes with an error when making a REST
366 * this method will complete with the same error. 359 /// call, this method will complete with the same error.
367 */ 360 async.Future<Policy> getIamPolicy(
368 async.Future<Policy> getIamPolicy(GetIamPolicyRequest request, core.String res ource) { 361 GetIamPolicyRequest request, core.String resource) {
369 var _url = null; 362 var _url = null;
370 var _queryParams = new core.Map(); 363 var _queryParams = new core.Map();
371 var _uploadMedia = null; 364 var _uploadMedia = null;
372 var _uploadOptions = null; 365 var _uploadOptions = null;
373 var _downloadOptions = commons.DownloadOptions.Metadata; 366 var _downloadOptions = commons.DownloadOptions.Metadata;
374 var _body = null; 367 var _body = null;
375 368
376 if (request != null) { 369 if (request != null) {
377 _body = convert.JSON.encode((request).toJson()); 370 _body = convert.JSON.encode((request).toJson());
378 } 371 }
379 if (resource == null) { 372 if (resource == null) {
380 throw new core.ArgumentError("Parameter resource is required."); 373 throw new core.ArgumentError("Parameter resource is required.");
381 } 374 }
382 375
383 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$resource') + ':getIam Policy'; 376 _url = 'v1/' +
377 commons.Escaper.ecapeVariableReserved('$resource') +
378 ':getIamPolicy';
384 379
385 var _response = _requester.request(_url, 380 var _response = _requester.request(_url, "POST",
386 "POST", 381 body: _body,
387 body: _body, 382 queryParams: _queryParams,
388 queryParams: _queryParams, 383 uploadOptions: _uploadOptions,
389 uploadOptions: _uploadOptions, 384 uploadMedia: _uploadMedia,
390 uploadMedia: _uploadMedia, 385 downloadOptions: _downloadOptions);
391 downloadOptions: _downloadOptions);
392 return _response.then((data) => new Policy.fromJson(data)); 386 return _response.then((data) => new Policy.fromJson(data));
393 } 387 }
394 388
395 /** 389 /// Lists all instances in the given project.
396 * Lists all instances in the given project. 390 ///
397 * 391 /// Request parameters:
398 * Request parameters: 392 ///
399 * 393 /// [parent] - Required. The name of the project for which a list of
400 * [parent] - Required. The name of the project for which a list of instances 394 /// instances is
401 * is 395 /// requested. Values are of the form `projects/<project>`.
402 * requested. Values are of the form `projects/<project>`. 396 /// Value must have pattern "^projects/[^/]+$".
403 * Value must have pattern "^projects/[^/]+$". 397 ///
404 * 398 /// [pageToken] - If non-empty, `page_token` should contain a
405 * [pageToken] - If non-empty, `page_token` should contain a 399 /// next_page_token from a
406 * next_page_token from a 400 /// previous ListInstancesResponse.
407 * previous ListInstancesResponse. 401 ///
408 * 402 /// [pageSize] - Number of instances to be returned in the response. If 0 or
409 * [pageSize] - Number of instances to be returned in the response. If 0 or 403 /// less, defaults
410 * less, defaults 404 /// to the server's maximum allowed page size.
411 * to the server's maximum allowed page size. 405 ///
412 * 406 /// [filter] - An expression for filtering the results of the request. Filter
413 * [filter] - An expression for filtering the results of the request. Filter 407 /// rules are
414 * rules are 408 /// case insensitive. The fields eligible for filtering are:
415 * case insensitive. The fields eligible for filtering are: 409 ///
416 * 410 /// * name
417 * * name 411 /// * display_name
418 * * display_name 412 /// * labels.key where key is the name of a label
419 * * labels.key where key is the name of a label 413 ///
420 * 414 /// Some examples of using filters are:
421 * Some examples of using filters are: 415 ///
422 * 416 /// * name:* --> The instance has a name.
423 * * name:* --> The instance has a name. 417 /// * name:Howl --> The instance's name contains the string "howl".
424 * * name:Howl --> The instance's name contains the string "howl". 418 /// * name:HOWL --> Equivalent to above.
425 * * name:HOWL --> Equivalent to above. 419 /// * NAME:howl --> Equivalent to above.
426 * * NAME:howl --> Equivalent to above. 420 /// * labels.env:* --> The instance has the label "env".
427 * * labels.env:* --> The instance has the label "env". 421 /// * labels.env:dev --> The instance has the label "env" and the value of
428 * * labels.env:dev --> The instance has the label "env" and the value of 422 /// the label contains the string "dev".
429 * the label contains the string "dev". 423 /// * name:howl labels.env:dev --> The instance's name contains "howl" and
430 * * name:howl labels.env:dev --> The instance's name contains "howl" and 424 /// it has the label "env" with its value
431 * it has the label "env" with its value 425 /// containing "dev".
432 * containing "dev". 426 ///
433 * 427 /// Completes with a [ListInstancesResponse].
434 * Completes with a [ListInstancesResponse]. 428 ///
435 * 429 /// Completes with a [commons.ApiRequestError] if the API endpoint returned
436 * Completes with a [commons.ApiRequestError] if the API endpoint returned an 430 /// an error.
437 * error. 431 ///
438 * 432 /// If the used [http.Client] completes with an error when making a REST
439 * If the used [http.Client] completes with an error when making a REST call, 433 /// call, this method will complete with the same error.
440 * this method will complete with the same error. 434 async.Future<ListInstancesResponse> list(core.String parent,
441 */ 435 {core.String pageToken, core.int pageSize, core.String filter}) {
442 async.Future<ListInstancesResponse> list(core.String parent, {core.String page Token, core.int pageSize, core.String filter}) {
443 var _url = null; 436 var _url = null;
444 var _queryParams = new core.Map(); 437 var _queryParams = new core.Map();
445 var _uploadMedia = null; 438 var _uploadMedia = null;
446 var _uploadOptions = null; 439 var _uploadOptions = null;
447 var _downloadOptions = commons.DownloadOptions.Metadata; 440 var _downloadOptions = commons.DownloadOptions.Metadata;
448 var _body = null; 441 var _body = null;
449 442
450 if (parent == null) { 443 if (parent == null) {
451 throw new core.ArgumentError("Parameter parent is required."); 444 throw new core.ArgumentError("Parameter parent is required.");
452 } 445 }
453 if (pageToken != null) { 446 if (pageToken != null) {
454 _queryParams["pageToken"] = [pageToken]; 447 _queryParams["pageToken"] = [pageToken];
455 } 448 }
456 if (pageSize != null) { 449 if (pageSize != null) {
457 _queryParams["pageSize"] = ["${pageSize}"]; 450 _queryParams["pageSize"] = ["${pageSize}"];
458 } 451 }
459 if (filter != null) { 452 if (filter != null) {
460 _queryParams["filter"] = [filter]; 453 _queryParams["filter"] = [filter];
461 } 454 }
462 455
463 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$parent') + '/instance s'; 456 _url =
457 'v1/' + commons.Escaper.ecapeVariableReserved('$parent') + '/instances';
464 458
465 var _response = _requester.request(_url, 459 var _response = _requester.request(_url, "GET",
466 "GET", 460 body: _body,
467 body: _body, 461 queryParams: _queryParams,
468 queryParams: _queryParams, 462 uploadOptions: _uploadOptions,
469 uploadOptions: _uploadOptions, 463 uploadMedia: _uploadMedia,
470 uploadMedia: _uploadMedia, 464 downloadOptions: _downloadOptions);
471 downloadOptions: _downloadOptions);
472 return _response.then((data) => new ListInstancesResponse.fromJson(data)); 465 return _response.then((data) => new ListInstancesResponse.fromJson(data));
473 } 466 }
474 467
475 /** 468 /// Updates an instance, and begins allocating or releasing resources
476 * Updates an instance, and begins allocating or releasing resources 469 /// as requested. The returned long-running
477 * as requested. The returned long-running 470 /// operation can be used to track the
478 * operation can be used to track the 471 /// progress of updating the instance. If the named instance does not
479 * progress of updating the instance. If the named instance does not 472 /// exist, returns `NOT_FOUND`.
480 * exist, returns `NOT_FOUND`. 473 ///
481 * 474 /// Immediately upon completion of this request:
482 * Immediately upon completion of this request: 475 ///
483 * 476 /// * For resource types for which a decrease in the instance's allocation
484 * * For resource types for which a decrease in the instance's allocation 477 /// has been requested, billing is based on the newly-requested level.
485 * has been requested, billing is based on the newly-requested level. 478 ///
486 * 479 /// Until completion of the returned operation:
487 * Until completion of the returned operation: 480 ///
488 * 481 /// * Cancelling the operation sets its metadata's
489 * * Cancelling the operation sets its metadata's 482 /// cancel_time, and begins
490 * cancel_time, and begins 483 /// restoring resources to their pre-request values. The operation
491 * restoring resources to their pre-request values. The operation 484 /// is guaranteed to succeed at undoing all resource changes,
492 * is guaranteed to succeed at undoing all resource changes, 485 /// after which point it terminates with a `CANCELLED` status.
493 * after which point it terminates with a `CANCELLED` status. 486 /// * All other attempts to modify the instance are rejected.
494 * * All other attempts to modify the instance are rejected. 487 /// * Reading the instance via the API continues to give the pre-request
495 * * Reading the instance via the API continues to give the pre-request 488 /// resource levels.
496 * resource levels. 489 ///
497 * 490 /// Upon completion of the returned operation:
498 * Upon completion of the returned operation: 491 ///
499 * 492 /// * Billing begins for all successfully-allocated resources (some types
500 * * Billing begins for all successfully-allocated resources (some types 493 /// may have lower than the requested levels).
501 * may have lower than the requested levels). 494 /// * All newly-reserved resources are available for serving the instance's
502 * * All newly-reserved resources are available for serving the instance's 495 /// tables.
503 * tables. 496 /// * The instance's new resource levels are readable via the API.
504 * * The instance's new resource levels are readable via the API. 497 ///
505 * 498 /// The returned long-running operation will
506 * The returned long-running operation will 499 /// have a name of the format `<instance_name>/operations/<operation_id>` and
507 * have a name of the format `<instance_name>/operations/<operation_id>` and 500 /// can be used to track the instance modification. The
508 * can be used to track the instance modification. The 501 /// metadata field type is
509 * metadata field type is 502 /// UpdateInstanceMetadata.
510 * UpdateInstanceMetadata. 503 /// The response field type is
511 * The response field type is 504 /// Instance, if successful.
512 * Instance, if successful. 505 ///
513 * 506 /// Authorization requires `spanner.instances.update` permission on
514 * Authorization requires `spanner.instances.update` permission on 507 /// resource name.
515 * resource name. 508 ///
516 * 509 /// [request] - The metadata request object.
517 * [request] - The metadata request object. 510 ///
518 * 511 /// Request parameters:
519 * Request parameters: 512 ///
520 * 513 /// [name] - Required. A unique identifier for the instance, which cannot be
521 * [name] - Required. A unique identifier for the instance, which cannot be 514 /// changed
522 * changed 515 /// after the instance is created. Values are of the form
523 * after the instance is created. Values are of the form 516 /// `projects/<project>/instances/a-z*[a-z0-9]`. The final
524 * `projects/<project>/instances/a-z*[a-z0-9]`. The final 517 /// segment of the name must be between 6 and 30 characters in length.
525 * segment of the name must be between 6 and 30 characters in length. 518 /// Value must have pattern "^projects/[^/]+/instances/[^/]+$".
526 * Value must have pattern "^projects/[^/]+/instances/[^/]+$". 519 ///
527 * 520 /// Completes with a [Operation].
528 * Completes with a [Operation]. 521 ///
529 * 522 /// Completes with a [commons.ApiRequestError] if the API endpoint returned
530 * Completes with a [commons.ApiRequestError] if the API endpoint returned an 523 /// an error.
531 * error. 524 ///
532 * 525 /// If the used [http.Client] completes with an error when making a REST
533 * If the used [http.Client] completes with an error when making a REST call, 526 /// call, this method will complete with the same error.
534 * this method will complete with the same error. 527 async.Future<Operation> patch(
535 */ 528 UpdateInstanceRequest request, core.String name) {
536 async.Future<Operation> patch(UpdateInstanceRequest request, core.String name) {
537 var _url = null; 529 var _url = null;
538 var _queryParams = new core.Map(); 530 var _queryParams = new core.Map();
539 var _uploadMedia = null; 531 var _uploadMedia = null;
540 var _uploadOptions = null; 532 var _uploadOptions = null;
541 var _downloadOptions = commons.DownloadOptions.Metadata; 533 var _downloadOptions = commons.DownloadOptions.Metadata;
542 var _body = null; 534 var _body = null;
543 535
544 if (request != null) { 536 if (request != null) {
545 _body = convert.JSON.encode((request).toJson()); 537 _body = convert.JSON.encode((request).toJson());
546 } 538 }
547 if (name == null) { 539 if (name == null) {
548 throw new core.ArgumentError("Parameter name is required."); 540 throw new core.ArgumentError("Parameter name is required.");
549 } 541 }
550 542
551 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); 543 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name');
552 544
553 var _response = _requester.request(_url, 545 var _response = _requester.request(_url, "PATCH",
554 "PATCH", 546 body: _body,
555 body: _body, 547 queryParams: _queryParams,
556 queryParams: _queryParams, 548 uploadOptions: _uploadOptions,
557 uploadOptions: _uploadOptions, 549 uploadMedia: _uploadMedia,
558 uploadMedia: _uploadMedia, 550 downloadOptions: _downloadOptions);
559 downloadOptions: _downloadOptions);
560 return _response.then((data) => new Operation.fromJson(data)); 551 return _response.then((data) => new Operation.fromJson(data));
561 } 552 }
562 553
563 /** 554 /// Sets the access control policy on an instance resource. Replaces any
564 * Sets the access control policy on an instance resource. Replaces any 555 /// existing policy.
565 * existing policy. 556 ///
566 * 557 /// Authorization requires `spanner.instances.setIamPolicy` on
567 * Authorization requires `spanner.instances.setIamPolicy` on 558 /// resource.
568 * resource. 559 ///
569 * 560 /// [request] - The metadata request object.
570 * [request] - The metadata request object. 561 ///
571 * 562 /// Request parameters:
572 * Request parameters: 563 ///
573 * 564 /// [resource] - REQUIRED: The Cloud Spanner resource for which the policy is
574 * [resource] - REQUIRED: The Cloud Spanner resource for which the policy is 565 /// being set. The format is `projects/<project ID>/instances/<instance ID>`
575 * being set. The format is `projects/<project ID>/instances/<instance ID>` 566 /// for instance resources and `projects/<project ID>/instances/<instance
576 * for instance resources and `projects/<project ID>/instances/<instance 567 /// ID>/databases/<database ID>` for databases resources.
577 * ID>/databases/<database ID>` for databases resources. 568 /// Value must have pattern "^projects/[^/]+/instances/[^/]+$".
578 * Value must have pattern "^projects/[^/]+/instances/[^/]+$". 569 ///
579 * 570 /// Completes with a [Policy].
580 * Completes with a [Policy]. 571 ///
581 * 572 /// Completes with a [commons.ApiRequestError] if the API endpoint returned
582 * Completes with a [commons.ApiRequestError] if the API endpoint returned an 573 /// an error.
583 * error. 574 ///
584 * 575 /// If the used [http.Client] completes with an error when making a REST
585 * If the used [http.Client] completes with an error when making a REST call, 576 /// call, this method will complete with the same error.
586 * this method will complete with the same error. 577 async.Future<Policy> setIamPolicy(
587 */ 578 SetIamPolicyRequest request, core.String resource) {
588 async.Future<Policy> setIamPolicy(SetIamPolicyRequest request, core.String res ource) {
589 var _url = null; 579 var _url = null;
590 var _queryParams = new core.Map(); 580 var _queryParams = new core.Map();
591 var _uploadMedia = null; 581 var _uploadMedia = null;
592 var _uploadOptions = null; 582 var _uploadOptions = null;
593 var _downloadOptions = commons.DownloadOptions.Metadata; 583 var _downloadOptions = commons.DownloadOptions.Metadata;
594 var _body = null; 584 var _body = null;
595 585
596 if (request != null) { 586 if (request != null) {
597 _body = convert.JSON.encode((request).toJson()); 587 _body = convert.JSON.encode((request).toJson());
598 } 588 }
599 if (resource == null) { 589 if (resource == null) {
600 throw new core.ArgumentError("Parameter resource is required."); 590 throw new core.ArgumentError("Parameter resource is required.");
601 } 591 }
602 592
603 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$resource') + ':setIam Policy'; 593 _url = 'v1/' +
594 commons.Escaper.ecapeVariableReserved('$resource') +
595 ':setIamPolicy';
604 596
605 var _response = _requester.request(_url, 597 var _response = _requester.request(_url, "POST",
606 "POST", 598 body: _body,
607 body: _body, 599 queryParams: _queryParams,
608 queryParams: _queryParams, 600 uploadOptions: _uploadOptions,
609 uploadOptions: _uploadOptions, 601 uploadMedia: _uploadMedia,
610 uploadMedia: _uploadMedia, 602 downloadOptions: _downloadOptions);
611 downloadOptions: _downloadOptions);
612 return _response.then((data) => new Policy.fromJson(data)); 603 return _response.then((data) => new Policy.fromJson(data));
613 } 604 }
614 605
615 /** 606 /// Returns permissions that the caller has on the specified instance
616 * Returns permissions that the caller has on the specified instance resource. 607 /// resource.
617 * 608 ///
618 * Attempting this RPC on a non-existent Cloud Spanner instance resource will 609 /// Attempting this RPC on a non-existent Cloud Spanner instance resource
619 * result in a NOT_FOUND error if the user has `spanner.instances.list` 610 /// will
620 * permission on the containing Google Cloud Project. Otherwise returns an 611 /// result in a NOT_FOUND error if the user has `spanner.instances.list`
621 * empty set of permissions. 612 /// permission on the containing Google Cloud Project. Otherwise returns an
622 * 613 /// empty set of permissions.
623 * [request] - The metadata request object. 614 ///
624 * 615 /// [request] - The metadata request object.
625 * Request parameters: 616 ///
626 * 617 /// Request parameters:
627 * [resource] - REQUIRED: The Cloud Spanner resource for which permissions are 618 ///
628 * being tested. The format is `projects/<project ID>/instances/<instance ID>` 619 /// [resource] - REQUIRED: The Cloud Spanner resource for which permissions
629 * for instance resources and `projects/<project ID>/instances/<instance 620 /// are being tested. The format is `projects/<project
630 * ID>/databases/<database ID>` for database resources. 621 /// ID>/instances/<instance ID>` for instance resources and
631 * Value must have pattern "^projects/[^/]+/instances/[^/]+$". 622 /// `projects/<project ID>/instances/<instance ID>/databases/<database ID>`
632 * 623 /// for database resources.
633 * Completes with a [TestIamPermissionsResponse]. 624 /// Value must have pattern "^projects/[^/]+/instances/[^/]+$".
634 * 625 ///
635 * Completes with a [commons.ApiRequestError] if the API endpoint returned an 626 /// Completes with a [TestIamPermissionsResponse].
636 * error. 627 ///
637 * 628 /// Completes with a [commons.ApiRequestError] if the API endpoint returned
638 * If the used [http.Client] completes with an error when making a REST call, 629 /// an error.
639 * this method will complete with the same error. 630 ///
640 */ 631 /// If the used [http.Client] completes with an error when making a REST
641 async.Future<TestIamPermissionsResponse> testIamPermissions(TestIamPermissions Request request, core.String resource) { 632 /// call, this method will complete with the same error.
633 async.Future<TestIamPermissionsResponse> testIamPermissions(
634 TestIamPermissionsRequest request, core.String resource) {
642 var _url = null; 635 var _url = null;
643 var _queryParams = new core.Map(); 636 var _queryParams = new core.Map();
644 var _uploadMedia = null; 637 var _uploadMedia = null;
645 var _uploadOptions = null; 638 var _uploadOptions = null;
646 var _downloadOptions = commons.DownloadOptions.Metadata; 639 var _downloadOptions = commons.DownloadOptions.Metadata;
647 var _body = null; 640 var _body = null;
648 641
649 if (request != null) { 642 if (request != null) {
650 _body = convert.JSON.encode((request).toJson()); 643 _body = convert.JSON.encode((request).toJson());
651 } 644 }
652 if (resource == null) { 645 if (resource == null) {
653 throw new core.ArgumentError("Parameter resource is required."); 646 throw new core.ArgumentError("Parameter resource is required.");
654 } 647 }
655 648
656 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$resource') + ':testIa mPermissions'; 649 _url = 'v1/' +
650 commons.Escaper.ecapeVariableReserved('$resource') +
651 ':testIamPermissions';
657 652
658 var _response = _requester.request(_url, 653 var _response = _requester.request(_url, "POST",
659 "POST", 654 body: _body,
660 body: _body, 655 queryParams: _queryParams,
661 queryParams: _queryParams, 656 uploadOptions: _uploadOptions,
662 uploadOptions: _uploadOptions, 657 uploadMedia: _uploadMedia,
663 uploadMedia: _uploadMedia, 658 downloadOptions: _downloadOptions);
664 downloadOptions: _downloadOptions); 659 return _response
665 return _response.then((data) => new TestIamPermissionsResponse.fromJson(data )); 660 .then((data) => new TestIamPermissionsResponse.fromJson(data));
666 } 661 }
667
668 } 662 }
669 663
670
671 class ProjectsInstancesDatabasesResourceApi { 664 class ProjectsInstancesDatabasesResourceApi {
672 final commons.ApiRequester _requester; 665 final commons.ApiRequester _requester;
673 666
674 ProjectsInstancesDatabasesOperationsResourceApi get operations => new Projects InstancesDatabasesOperationsResourceApi(_requester); 667 ProjectsInstancesDatabasesOperationsResourceApi get operations =>
675 ProjectsInstancesDatabasesSessionsResourceApi get sessions => new ProjectsInst ancesDatabasesSessionsResourceApi(_requester); 668 new ProjectsInstancesDatabasesOperationsResourceApi(_requester);
669 ProjectsInstancesDatabasesSessionsResourceApi get sessions =>
670 new ProjectsInstancesDatabasesSessionsResourceApi(_requester);
676 671
677 ProjectsInstancesDatabasesResourceApi(commons.ApiRequester client) : 672 ProjectsInstancesDatabasesResourceApi(commons.ApiRequester client)
678 _requester = client; 673 : _requester = client;
679 674
680 /** 675 /// Creates a new Cloud Spanner database and starts to prepare it for
681 * Creates a new Cloud Spanner database and starts to prepare it for serving. 676 /// serving.
682 * The returned long-running operation will 677 /// The returned long-running operation will
683 * have a name of the format `<database_name>/operations/<operation_id>` and 678 /// have a name of the format `<database_name>/operations/<operation_id>` and
684 * can be used to track preparation of the database. The 679 /// can be used to track preparation of the database. The
685 * metadata field type is 680 /// metadata field type is
686 * CreateDatabaseMetadata. The 681 /// CreateDatabaseMetadata. The
687 * response field type is 682 /// response field type is
688 * Database, if successful. 683 /// Database, if successful.
689 * 684 ///
690 * [request] - The metadata request object. 685 /// [request] - The metadata request object.
691 * 686 ///
692 * Request parameters: 687 /// Request parameters:
693 * 688 ///
694 * [parent] - Required. The name of the instance that will serve the new 689 /// [parent] - Required. The name of the instance that will serve the new
695 * database. 690 /// database.
696 * Values are of the form `projects/<project>/instances/<instance>`. 691 /// Values are of the form `projects/<project>/instances/<instance>`.
697 * Value must have pattern "^projects/[^/]+/instances/[^/]+$". 692 /// Value must have pattern "^projects/[^/]+/instances/[^/]+$".
698 * 693 ///
699 * Completes with a [Operation]. 694 /// Completes with a [Operation].
700 * 695 ///
701 * Completes with a [commons.ApiRequestError] if the API endpoint returned an 696 /// Completes with a [commons.ApiRequestError] if the API endpoint returned
702 * error. 697 /// an error.
703 * 698 ///
704 * If the used [http.Client] completes with an error when making a REST call, 699 /// If the used [http.Client] completes with an error when making a REST
705 * this method will complete with the same error. 700 /// call, this method will complete with the same error.
706 */ 701 async.Future<Operation> create(
707 async.Future<Operation> create(CreateDatabaseRequest request, core.String pare nt) { 702 CreateDatabaseRequest request, core.String parent) {
708 var _url = null; 703 var _url = null;
709 var _queryParams = new core.Map(); 704 var _queryParams = new core.Map();
710 var _uploadMedia = null; 705 var _uploadMedia = null;
711 var _uploadOptions = null; 706 var _uploadOptions = null;
712 var _downloadOptions = commons.DownloadOptions.Metadata; 707 var _downloadOptions = commons.DownloadOptions.Metadata;
713 var _body = null; 708 var _body = null;
714 709
715 if (request != null) { 710 if (request != null) {
716 _body = convert.JSON.encode((request).toJson()); 711 _body = convert.JSON.encode((request).toJson());
717 } 712 }
718 if (parent == null) { 713 if (parent == null) {
719 throw new core.ArgumentError("Parameter parent is required."); 714 throw new core.ArgumentError("Parameter parent is required.");
720 } 715 }
721 716
722 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$parent') + '/database s'; 717 _url =
718 'v1/' + commons.Escaper.ecapeVariableReserved('$parent') + '/databases';
723 719
724 var _response = _requester.request(_url, 720 var _response = _requester.request(_url, "POST",
725 "POST", 721 body: _body,
726 body: _body, 722 queryParams: _queryParams,
727 queryParams: _queryParams, 723 uploadOptions: _uploadOptions,
728 uploadOptions: _uploadOptions, 724 uploadMedia: _uploadMedia,
729 uploadMedia: _uploadMedia, 725 downloadOptions: _downloadOptions);
730 downloadOptions: _downloadOptions);
731 return _response.then((data) => new Operation.fromJson(data)); 726 return _response.then((data) => new Operation.fromJson(data));
732 } 727 }
733 728
734 /** 729 /// Drops (aka deletes) a Cloud Spanner database.
735 * Drops (aka deletes) a Cloud Spanner database. 730 ///
736 * 731 /// Request parameters:
737 * Request parameters: 732 ///
738 * 733 /// [database] - Required. The database to be dropped.
739 * [database] - Required. The database to be dropped. 734 /// Value must have pattern
740 * Value must have pattern "^projects/[^/]+/instances/[^/]+/databases/[^/]+$". 735 /// "^projects/[^/]+/instances/[^/]+/databases/[^/]+$".
741 * 736 ///
742 * Completes with a [Empty]. 737 /// Completes with a [Empty].
743 * 738 ///
744 * Completes with a [commons.ApiRequestError] if the API endpoint returned an 739 /// Completes with a [commons.ApiRequestError] if the API endpoint returned
745 * error. 740 /// an error.
746 * 741 ///
747 * If the used [http.Client] completes with an error when making a REST call, 742 /// If the used [http.Client] completes with an error when making a REST
748 * this method will complete with the same error. 743 /// call, this method will complete with the same error.
749 */
750 async.Future<Empty> dropDatabase(core.String database) { 744 async.Future<Empty> dropDatabase(core.String database) {
751 var _url = null; 745 var _url = null;
752 var _queryParams = new core.Map(); 746 var _queryParams = new core.Map();
753 var _uploadMedia = null; 747 var _uploadMedia = null;
754 var _uploadOptions = null; 748 var _uploadOptions = null;
755 var _downloadOptions = commons.DownloadOptions.Metadata; 749 var _downloadOptions = commons.DownloadOptions.Metadata;
756 var _body = null; 750 var _body = null;
757 751
758 if (database == null) { 752 if (database == null) {
759 throw new core.ArgumentError("Parameter database is required."); 753 throw new core.ArgumentError("Parameter database is required.");
760 } 754 }
761 755
762 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$database'); 756 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$database');
763 757
764 var _response = _requester.request(_url, 758 var _response = _requester.request(_url, "DELETE",
765 "DELETE", 759 body: _body,
766 body: _body, 760 queryParams: _queryParams,
767 queryParams: _queryParams, 761 uploadOptions: _uploadOptions,
768 uploadOptions: _uploadOptions, 762 uploadMedia: _uploadMedia,
769 uploadMedia: _uploadMedia, 763 downloadOptions: _downloadOptions);
770 downloadOptions: _downloadOptions);
771 return _response.then((data) => new Empty.fromJson(data)); 764 return _response.then((data) => new Empty.fromJson(data));
772 } 765 }
773 766
774 /** 767 /// Gets the state of a Cloud Spanner database.
775 * Gets the state of a Cloud Spanner database. 768 ///
776 * 769 /// Request parameters:
777 * Request parameters: 770 ///
778 * 771 /// [name] - Required. The name of the requested database. Values are of the
779 * [name] - Required. The name of the requested database. Values are of the 772 /// form
780 * form 773 /// `projects/<project>/instances/<instance>/databases/<database>`.
781 * `projects/<project>/instances/<instance>/databases/<database>`. 774 /// Value must have pattern
782 * Value must have pattern "^projects/[^/]+/instances/[^/]+/databases/[^/]+$". 775 /// "^projects/[^/]+/instances/[^/]+/databases/[^/]+$".
783 * 776 ///
784 * Completes with a [Database]. 777 /// Completes with a [Database].
785 * 778 ///
786 * Completes with a [commons.ApiRequestError] if the API endpoint returned an 779 /// Completes with a [commons.ApiRequestError] if the API endpoint returned
787 * error. 780 /// an error.
788 * 781 ///
789 * If the used [http.Client] completes with an error when making a REST call, 782 /// If the used [http.Client] completes with an error when making a REST
790 * this method will complete with the same error. 783 /// call, this method will complete with the same error.
791 */
792 async.Future<Database> get(core.String name) { 784 async.Future<Database> get(core.String name) {
793 var _url = null; 785 var _url = null;
794 var _queryParams = new core.Map(); 786 var _queryParams = new core.Map();
795 var _uploadMedia = null; 787 var _uploadMedia = null;
796 var _uploadOptions = null; 788 var _uploadOptions = null;
797 var _downloadOptions = commons.DownloadOptions.Metadata; 789 var _downloadOptions = commons.DownloadOptions.Metadata;
798 var _body = null; 790 var _body = null;
799 791
800 if (name == null) { 792 if (name == null) {
801 throw new core.ArgumentError("Parameter name is required."); 793 throw new core.ArgumentError("Parameter name is required.");
802 } 794 }
803 795
804 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); 796 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name');
805 797
806 var _response = _requester.request(_url, 798 var _response = _requester.request(_url, "GET",
807 "GET", 799 body: _body,
808 body: _body, 800 queryParams: _queryParams,
809 queryParams: _queryParams, 801 uploadOptions: _uploadOptions,
810 uploadOptions: _uploadOptions, 802 uploadMedia: _uploadMedia,
811 uploadMedia: _uploadMedia, 803 downloadOptions: _downloadOptions);
812 downloadOptions: _downloadOptions);
813 return _response.then((data) => new Database.fromJson(data)); 804 return _response.then((data) => new Database.fromJson(data));
814 } 805 }
815 806
816 /** 807 /// Returns the schema of a Cloud Spanner database as a list of formatted
817 * Returns the schema of a Cloud Spanner database as a list of formatted 808 /// DDL statements. This method does not show pending schema updates, those
818 * DDL statements. This method does not show pending schema updates, those may 809 /// may
819 * be queried using the Operations API. 810 /// be queried using the Operations API.
820 * 811 ///
821 * Request parameters: 812 /// Request parameters:
822 * 813 ///
823 * [database] - Required. The database whose schema we wish to get. 814 /// [database] - Required. The database whose schema we wish to get.
824 * Value must have pattern "^projects/[^/]+/instances/[^/]+/databases/[^/]+$". 815 /// Value must have pattern
825 * 816 /// "^projects/[^/]+/instances/[^/]+/databases/[^/]+$".
826 * Completes with a [GetDatabaseDdlResponse]. 817 ///
827 * 818 /// Completes with a [GetDatabaseDdlResponse].
828 * Completes with a [commons.ApiRequestError] if the API endpoint returned an 819 ///
829 * error. 820 /// Completes with a [commons.ApiRequestError] if the API endpoint returned
830 * 821 /// an error.
831 * If the used [http.Client] completes with an error when making a REST call, 822 ///
832 * this method will complete with the same error. 823 /// If the used [http.Client] completes with an error when making a REST
833 */ 824 /// call, this method will complete with the same error.
834 async.Future<GetDatabaseDdlResponse> getDdl(core.String database) { 825 async.Future<GetDatabaseDdlResponse> getDdl(core.String database) {
835 var _url = null; 826 var _url = null;
836 var _queryParams = new core.Map(); 827 var _queryParams = new core.Map();
837 var _uploadMedia = null; 828 var _uploadMedia = null;
838 var _uploadOptions = null; 829 var _uploadOptions = null;
839 var _downloadOptions = commons.DownloadOptions.Metadata; 830 var _downloadOptions = commons.DownloadOptions.Metadata;
840 var _body = null; 831 var _body = null;
841 832
842 if (database == null) { 833 if (database == null) {
843 throw new core.ArgumentError("Parameter database is required."); 834 throw new core.ArgumentError("Parameter database is required.");
844 } 835 }
845 836
846 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$database') + '/ddl'; 837 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$database') + '/ddl';
847 838
848 var _response = _requester.request(_url, 839 var _response = _requester.request(_url, "GET",
849 "GET", 840 body: _body,
850 body: _body, 841 queryParams: _queryParams,
851 queryParams: _queryParams, 842 uploadOptions: _uploadOptions,
852 uploadOptions: _uploadOptions, 843 uploadMedia: _uploadMedia,
853 uploadMedia: _uploadMedia, 844 downloadOptions: _downloadOptions);
854 downloadOptions: _downloadOptions);
855 return _response.then((data) => new GetDatabaseDdlResponse.fromJson(data)); 845 return _response.then((data) => new GetDatabaseDdlResponse.fromJson(data));
856 } 846 }
857 847
858 /** 848 /// Gets the access control policy for a database resource. Returns an empty
859 * Gets the access control policy for a database resource. Returns an empty 849 /// policy if a database exists but does not have a policy set.
860 * policy if a database exists but does not have a policy set. 850 ///
861 * 851 /// Authorization requires `spanner.databases.getIamPolicy` permission on
862 * Authorization requires `spanner.databases.getIamPolicy` permission on 852 /// resource.
863 * resource. 853 ///
864 * 854 /// [request] - The metadata request object.
865 * [request] - The metadata request object. 855 ///
866 * 856 /// Request parameters:
867 * Request parameters: 857 ///
868 * 858 /// [resource] - REQUIRED: The Cloud Spanner resource for which the policy is
869 * [resource] - REQUIRED: The Cloud Spanner resource for which the policy is 859 /// being retrieved. The format is `projects/<project ID>/instances/<instance
870 * being retrieved. The format is `projects/<project ID>/instances/<instance 860 /// ID>` for instance resources and `projects/<project
871 * ID>` for instance resources and `projects/<project ID>/instances/<instance 861 /// ID>/instances/<instance ID>/databases/<database ID>` for database
872 * ID>/databases/<database ID>` for database resources. 862 /// resources.
873 * Value must have pattern "^projects/[^/]+/instances/[^/]+/databases/[^/]+$". 863 /// Value must have pattern
874 * 864 /// "^projects/[^/]+/instances/[^/]+/databases/[^/]+$".
875 * Completes with a [Policy]. 865 ///
876 * 866 /// Completes with a [Policy].
877 * Completes with a [commons.ApiRequestError] if the API endpoint returned an 867 ///
878 * error. 868 /// Completes with a [commons.ApiRequestError] if the API endpoint returned
879 * 869 /// an error.
880 * If the used [http.Client] completes with an error when making a REST call, 870 ///
881 * this method will complete with the same error. 871 /// If the used [http.Client] completes with an error when making a REST
882 */ 872 /// call, this method will complete with the same error.
883 async.Future<Policy> getIamPolicy(GetIamPolicyRequest request, core.String res ource) { 873 async.Future<Policy> getIamPolicy(
874 GetIamPolicyRequest request, core.String resource) {
884 var _url = null; 875 var _url = null;
885 var _queryParams = new core.Map(); 876 var _queryParams = new core.Map();
886 var _uploadMedia = null; 877 var _uploadMedia = null;
887 var _uploadOptions = null; 878 var _uploadOptions = null;
888 var _downloadOptions = commons.DownloadOptions.Metadata; 879 var _downloadOptions = commons.DownloadOptions.Metadata;
889 var _body = null; 880 var _body = null;
890 881
891 if (request != null) { 882 if (request != null) {
892 _body = convert.JSON.encode((request).toJson()); 883 _body = convert.JSON.encode((request).toJson());
893 } 884 }
894 if (resource == null) { 885 if (resource == null) {
895 throw new core.ArgumentError("Parameter resource is required."); 886 throw new core.ArgumentError("Parameter resource is required.");
896 } 887 }
897 888
898 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$resource') + ':getIam Policy'; 889 _url = 'v1/' +
890 commons.Escaper.ecapeVariableReserved('$resource') +
891 ':getIamPolicy';
899 892
900 var _response = _requester.request(_url, 893 var _response = _requester.request(_url, "POST",
901 "POST", 894 body: _body,
902 body: _body, 895 queryParams: _queryParams,
903 queryParams: _queryParams, 896 uploadOptions: _uploadOptions,
904 uploadOptions: _uploadOptions, 897 uploadMedia: _uploadMedia,
905 uploadMedia: _uploadMedia, 898 downloadOptions: _downloadOptions);
906 downloadOptions: _downloadOptions);
907 return _response.then((data) => new Policy.fromJson(data)); 899 return _response.then((data) => new Policy.fromJson(data));
908 } 900 }
909 901
910 /** 902 /// Lists Cloud Spanner databases.
911 * Lists Cloud Spanner databases. 903 ///
912 * 904 /// Request parameters:
913 * Request parameters: 905 ///
914 * 906 /// [parent] - Required. The instance whose databases should be listed.
915 * [parent] - Required. The instance whose databases should be listed. 907 /// Values are of the form `projects/<project>/instances/<instance>`.
916 * Values are of the form `projects/<project>/instances/<instance>`. 908 /// Value must have pattern "^projects/[^/]+/instances/[^/]+$".
917 * Value must have pattern "^projects/[^/]+/instances/[^/]+$". 909 ///
918 * 910 /// [pageToken] - If non-empty, `page_token` should contain a
919 * [pageToken] - If non-empty, `page_token` should contain a 911 /// next_page_token from a
920 * next_page_token from a 912 /// previous ListDatabasesResponse.
921 * previous ListDatabasesResponse. 913 ///
922 * 914 /// [pageSize] - Number of databases to be returned in the response. If 0 or
923 * [pageSize] - Number of databases to be returned in the response. If 0 or 915 /// less,
924 * less, 916 /// defaults to the server's maximum allowed page size.
925 * defaults to the server's maximum allowed page size. 917 ///
926 * 918 /// Completes with a [ListDatabasesResponse].
927 * Completes with a [ListDatabasesResponse]. 919 ///
928 * 920 /// Completes with a [commons.ApiRequestError] if the API endpoint returned
929 * Completes with a [commons.ApiRequestError] if the API endpoint returned an 921 /// an error.
930 * error. 922 ///
931 * 923 /// If the used [http.Client] completes with an error when making a REST
932 * If the used [http.Client] completes with an error when making a REST call, 924 /// call, this method will complete with the same error.
933 * this method will complete with the same error. 925 async.Future<ListDatabasesResponse> list(core.String parent,
934 */ 926 {core.String pageToken, core.int pageSize}) {
935 async.Future<ListDatabasesResponse> list(core.String parent, {core.String page Token, core.int pageSize}) {
936 var _url = null; 927 var _url = null;
937 var _queryParams = new core.Map(); 928 var _queryParams = new core.Map();
938 var _uploadMedia = null; 929 var _uploadMedia = null;
939 var _uploadOptions = null; 930 var _uploadOptions = null;
940 var _downloadOptions = commons.DownloadOptions.Metadata; 931 var _downloadOptions = commons.DownloadOptions.Metadata;
941 var _body = null; 932 var _body = null;
942 933
943 if (parent == null) { 934 if (parent == null) {
944 throw new core.ArgumentError("Parameter parent is required."); 935 throw new core.ArgumentError("Parameter parent is required.");
945 } 936 }
946 if (pageToken != null) { 937 if (pageToken != null) {
947 _queryParams["pageToken"] = [pageToken]; 938 _queryParams["pageToken"] = [pageToken];
948 } 939 }
949 if (pageSize != null) { 940 if (pageSize != null) {
950 _queryParams["pageSize"] = ["${pageSize}"]; 941 _queryParams["pageSize"] = ["${pageSize}"];
951 } 942 }
952 943
953 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$parent') + '/database s'; 944 _url =
945 'v1/' + commons.Escaper.ecapeVariableReserved('$parent') + '/databases';
954 946
955 var _response = _requester.request(_url, 947 var _response = _requester.request(_url, "GET",
956 "GET", 948 body: _body,
957 body: _body, 949 queryParams: _queryParams,
958 queryParams: _queryParams, 950 uploadOptions: _uploadOptions,
959 uploadOptions: _uploadOptions, 951 uploadMedia: _uploadMedia,
960 uploadMedia: _uploadMedia, 952 downloadOptions: _downloadOptions);
961 downloadOptions: _downloadOptions);
962 return _response.then((data) => new ListDatabasesResponse.fromJson(data)); 953 return _response.then((data) => new ListDatabasesResponse.fromJson(data));
963 } 954 }
964 955
965 /** 956 /// Sets the access control policy on a database resource. Replaces any
966 * Sets the access control policy on a database resource. Replaces any 957 /// existing policy.
967 * existing policy. 958 ///
968 * 959 /// Authorization requires `spanner.databases.setIamPolicy` permission on
969 * Authorization requires `spanner.databases.setIamPolicy` permission on 960 /// resource.
970 * resource. 961 ///
971 * 962 /// [request] - The metadata request object.
972 * [request] - The metadata request object. 963 ///
973 * 964 /// Request parameters:
974 * Request parameters: 965 ///
975 * 966 /// [resource] - REQUIRED: The Cloud Spanner resource for which the policy is
976 * [resource] - REQUIRED: The Cloud Spanner resource for which the policy is 967 /// being set. The format is `projects/<project ID>/instances/<instance ID>`
977 * being set. The format is `projects/<project ID>/instances/<instance ID>` 968 /// for instance resources and `projects/<project ID>/instances/<instance
978 * for instance resources and `projects/<project ID>/instances/<instance 969 /// ID>/databases/<database ID>` for databases resources.
979 * ID>/databases/<database ID>` for databases resources. 970 /// Value must have pattern
980 * Value must have pattern "^projects/[^/]+/instances/[^/]+/databases/[^/]+$". 971 /// "^projects/[^/]+/instances/[^/]+/databases/[^/]+$".
981 * 972 ///
982 * Completes with a [Policy]. 973 /// Completes with a [Policy].
983 * 974 ///
984 * Completes with a [commons.ApiRequestError] if the API endpoint returned an 975 /// Completes with a [commons.ApiRequestError] if the API endpoint returned
985 * error. 976 /// an error.
986 * 977 ///
987 * If the used [http.Client] completes with an error when making a REST call, 978 /// If the used [http.Client] completes with an error when making a REST
988 * this method will complete with the same error. 979 /// call, this method will complete with the same error.
989 */ 980 async.Future<Policy> setIamPolicy(
990 async.Future<Policy> setIamPolicy(SetIamPolicyRequest request, core.String res ource) { 981 SetIamPolicyRequest request, core.String resource) {
991 var _url = null; 982 var _url = null;
992 var _queryParams = new core.Map(); 983 var _queryParams = new core.Map();
993 var _uploadMedia = null; 984 var _uploadMedia = null;
994 var _uploadOptions = null; 985 var _uploadOptions = null;
995 var _downloadOptions = commons.DownloadOptions.Metadata; 986 var _downloadOptions = commons.DownloadOptions.Metadata;
996 var _body = null; 987 var _body = null;
997 988
998 if (request != null) { 989 if (request != null) {
999 _body = convert.JSON.encode((request).toJson()); 990 _body = convert.JSON.encode((request).toJson());
1000 } 991 }
1001 if (resource == null) { 992 if (resource == null) {
1002 throw new core.ArgumentError("Parameter resource is required."); 993 throw new core.ArgumentError("Parameter resource is required.");
1003 } 994 }
1004 995
1005 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$resource') + ':setIam Policy'; 996 _url = 'v1/' +
997 commons.Escaper.ecapeVariableReserved('$resource') +
998 ':setIamPolicy';
1006 999
1007 var _response = _requester.request(_url, 1000 var _response = _requester.request(_url, "POST",
1008 "POST", 1001 body: _body,
1009 body: _body, 1002 queryParams: _queryParams,
1010 queryParams: _queryParams, 1003 uploadOptions: _uploadOptions,
1011 uploadOptions: _uploadOptions, 1004 uploadMedia: _uploadMedia,
1012 uploadMedia: _uploadMedia, 1005 downloadOptions: _downloadOptions);
1013 downloadOptions: _downloadOptions);
1014 return _response.then((data) => new Policy.fromJson(data)); 1006 return _response.then((data) => new Policy.fromJson(data));
1015 } 1007 }
1016 1008
1017 /** 1009 /// Returns permissions that the caller has on the specified database
1018 * Returns permissions that the caller has on the specified database resource. 1010 /// resource.
1019 * 1011 ///
1020 * Attempting this RPC on a non-existent Cloud Spanner database will result in 1012 /// Attempting this RPC on a non-existent Cloud Spanner database will result
1021 * a NOT_FOUND error if the user has `spanner.databases.list` permission on 1013 /// in
1022 * the containing Cloud Spanner instance. Otherwise returns an empty set of 1014 /// a NOT_FOUND error if the user has `spanner.databases.list` permission on
1023 * permissions. 1015 /// the containing Cloud Spanner instance. Otherwise returns an empty set of
1024 * 1016 /// permissions.
1025 * [request] - The metadata request object. 1017 ///
1026 * 1018 /// [request] - The metadata request object.
1027 * Request parameters: 1019 ///
1028 * 1020 /// Request parameters:
1029 * [resource] - REQUIRED: The Cloud Spanner resource for which permissions are 1021 ///
1030 * being tested. The format is `projects/<project ID>/instances/<instance ID>` 1022 /// [resource] - REQUIRED: The Cloud Spanner resource for which permissions
1031 * for instance resources and `projects/<project ID>/instances/<instance 1023 /// are being tested. The format is `projects/<project
1032 * ID>/databases/<database ID>` for database resources. 1024 /// ID>/instances/<instance ID>` for instance resources and
1033 * Value must have pattern "^projects/[^/]+/instances/[^/]+/databases/[^/]+$". 1025 /// `projects/<project ID>/instances/<instance ID>/databases/<database ID>`
1034 * 1026 /// for database resources.
1035 * Completes with a [TestIamPermissionsResponse]. 1027 /// Value must have pattern
1036 * 1028 /// "^projects/[^/]+/instances/[^/]+/databases/[^/]+$".
1037 * Completes with a [commons.ApiRequestError] if the API endpoint returned an 1029 ///
1038 * error. 1030 /// Completes with a [TestIamPermissionsResponse].
1039 * 1031 ///
1040 * If the used [http.Client] completes with an error when making a REST call, 1032 /// Completes with a [commons.ApiRequestError] if the API endpoint returned
1041 * this method will complete with the same error. 1033 /// an error.
1042 */ 1034 ///
1043 async.Future<TestIamPermissionsResponse> testIamPermissions(TestIamPermissions Request request, core.String resource) { 1035 /// If the used [http.Client] completes with an error when making a REST
1036 /// call, this method will complete with the same error.
1037 async.Future<TestIamPermissionsResponse> testIamPermissions(
1038 TestIamPermissionsRequest request, core.String resource) {
1044 var _url = null; 1039 var _url = null;
1045 var _queryParams = new core.Map(); 1040 var _queryParams = new core.Map();
1046 var _uploadMedia = null; 1041 var _uploadMedia = null;
1047 var _uploadOptions = null; 1042 var _uploadOptions = null;
1048 var _downloadOptions = commons.DownloadOptions.Metadata; 1043 var _downloadOptions = commons.DownloadOptions.Metadata;
1049 var _body = null; 1044 var _body = null;
1050 1045
1051 if (request != null) { 1046 if (request != null) {
1052 _body = convert.JSON.encode((request).toJson()); 1047 _body = convert.JSON.encode((request).toJson());
1053 } 1048 }
1054 if (resource == null) { 1049 if (resource == null) {
1055 throw new core.ArgumentError("Parameter resource is required."); 1050 throw new core.ArgumentError("Parameter resource is required.");
1056 } 1051 }
1057 1052
1058 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$resource') + ':testIa mPermissions'; 1053 _url = 'v1/' +
1054 commons.Escaper.ecapeVariableReserved('$resource') +
1055 ':testIamPermissions';
1059 1056
1060 var _response = _requester.request(_url, 1057 var _response = _requester.request(_url, "POST",
1061 "POST", 1058 body: _body,
1062 body: _body, 1059 queryParams: _queryParams,
1063 queryParams: _queryParams, 1060 uploadOptions: _uploadOptions,
1064 uploadOptions: _uploadOptions, 1061 uploadMedia: _uploadMedia,
1065 uploadMedia: _uploadMedia, 1062 downloadOptions: _downloadOptions);
1066 downloadOptions: _downloadOptions); 1063 return _response
1067 return _response.then((data) => new TestIamPermissionsResponse.fromJson(data )); 1064 .then((data) => new TestIamPermissionsResponse.fromJson(data));
1068 } 1065 }
1069 1066
1070 /** 1067 /// Updates the schema of a Cloud Spanner database by
1071 * Updates the schema of a Cloud Spanner database by 1068 /// creating/altering/dropping tables, columns, indexes, etc. The returned
1072 * creating/altering/dropping tables, columns, indexes, etc. The returned 1069 /// long-running operation will have a name of
1073 * long-running operation will have a name of 1070 /// the format `<database_name>/operations/<operation_id>` and can be used to
1074 * the format `<database_name>/operations/<operation_id>` and can be used to 1071 /// track execution of the schema change(s). The
1075 * track execution of the schema change(s). The 1072 /// metadata field type is
1076 * metadata field type is 1073 /// UpdateDatabaseDdlMetadata. The operation has no response.
1077 * UpdateDatabaseDdlMetadata. The operation has no response. 1074 ///
1078 * 1075 /// [request] - The metadata request object.
1079 * [request] - The metadata request object. 1076 ///
1080 * 1077 /// Request parameters:
1081 * Request parameters: 1078 ///
1082 * 1079 /// [database] - Required. The database to update.
1083 * [database] - Required. The database to update. 1080 /// Value must have pattern
1084 * Value must have pattern "^projects/[^/]+/instances/[^/]+/databases/[^/]+$". 1081 /// "^projects/[^/]+/instances/[^/]+/databases/[^/]+$".
1085 * 1082 ///
1086 * Completes with a [Operation]. 1083 /// Completes with a [Operation].
1087 * 1084 ///
1088 * Completes with a [commons.ApiRequestError] if the API endpoint returned an 1085 /// Completes with a [commons.ApiRequestError] if the API endpoint returned
1089 * error. 1086 /// an error.
1090 * 1087 ///
1091 * If the used [http.Client] completes with an error when making a REST call, 1088 /// If the used [http.Client] completes with an error when making a REST
1092 * this method will complete with the same error. 1089 /// call, this method will complete with the same error.
1093 */ 1090 async.Future<Operation> updateDdl(
1094 async.Future<Operation> updateDdl(UpdateDatabaseDdlRequest request, core.Strin g database) { 1091 UpdateDatabaseDdlRequest request, core.String database) {
1095 var _url = null; 1092 var _url = null;
1096 var _queryParams = new core.Map(); 1093 var _queryParams = new core.Map();
1097 var _uploadMedia = null; 1094 var _uploadMedia = null;
1098 var _uploadOptions = null; 1095 var _uploadOptions = null;
1099 var _downloadOptions = commons.DownloadOptions.Metadata; 1096 var _downloadOptions = commons.DownloadOptions.Metadata;
1100 var _body = null; 1097 var _body = null;
1101 1098
1102 if (request != null) { 1099 if (request != null) {
1103 _body = convert.JSON.encode((request).toJson()); 1100 _body = convert.JSON.encode((request).toJson());
1104 } 1101 }
1105 if (database == null) { 1102 if (database == null) {
1106 throw new core.ArgumentError("Parameter database is required."); 1103 throw new core.ArgumentError("Parameter database is required.");
1107 } 1104 }
1108 1105
1109 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$database') + '/ddl'; 1106 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$database') + '/ddl';
1110 1107
1111 var _response = _requester.request(_url, 1108 var _response = _requester.request(_url, "PATCH",
1112 "PATCH", 1109 body: _body,
1113 body: _body, 1110 queryParams: _queryParams,
1114 queryParams: _queryParams, 1111 uploadOptions: _uploadOptions,
1115 uploadOptions: _uploadOptions, 1112 uploadMedia: _uploadMedia,
1116 uploadMedia: _uploadMedia, 1113 downloadOptions: _downloadOptions);
1117 downloadOptions: _downloadOptions);
1118 return _response.then((data) => new Operation.fromJson(data)); 1114 return _response.then((data) => new Operation.fromJson(data));
1119 } 1115 }
1120
1121 } 1116 }
1122 1117
1123
1124 class ProjectsInstancesDatabasesOperationsResourceApi { 1118 class ProjectsInstancesDatabasesOperationsResourceApi {
1125 final commons.ApiRequester _requester; 1119 final commons.ApiRequester _requester;
1126 1120
1127 ProjectsInstancesDatabasesOperationsResourceApi(commons.ApiRequester client) : 1121 ProjectsInstancesDatabasesOperationsResourceApi(commons.ApiRequester client)
1128 _requester = client; 1122 : _requester = client;
1129 1123
1130 /** 1124 /// Starts asynchronous cancellation on a long-running operation. The server
1131 * Starts asynchronous cancellation on a long-running operation. The server 1125 /// makes a best effort to cancel the operation, but success is not
1132 * makes a best effort to cancel the operation, but success is not 1126 /// guaranteed. If the server doesn't support this method, it returns
1133 * guaranteed. If the server doesn't support this method, it returns 1127 /// `google.rpc.Code.UNIMPLEMENTED`. Clients can use
1134 * `google.rpc.Code.UNIMPLEMENTED`. Clients can use 1128 /// Operations.GetOperation or
1135 * Operations.GetOperation or 1129 /// other methods to check whether the cancellation succeeded or whether the
1136 * other methods to check whether the cancellation succeeded or whether the 1130 /// operation completed despite cancellation. On successful cancellation,
1137 * operation completed despite cancellation. On successful cancellation, 1131 /// the operation is not deleted; instead, it becomes an operation with
1138 * the operation is not deleted; instead, it becomes an operation with 1132 /// an Operation.error value with a google.rpc.Status.code of 1,
1139 * an Operation.error value with a google.rpc.Status.code of 1, 1133 /// corresponding to `Code.CANCELLED`.
1140 * corresponding to `Code.CANCELLED`. 1134 ///
1141 * 1135 /// Request parameters:
1142 * Request parameters: 1136 ///
1143 * 1137 /// [name] - The name of the operation resource to be cancelled.
1144 * [name] - The name of the operation resource to be cancelled. 1138 /// Value must have pattern
1145 * Value must have pattern 1139 /// "^projects/[^/]+/instances/[^/]+/databases/[^/]+/operations/[^/]+$".
1146 * "^projects/[^/]+/instances/[^/]+/databases/[^/]+/operations/[^/]+$". 1140 ///
1147 * 1141 /// Completes with a [Empty].
1148 * Completes with a [Empty]. 1142 ///
1149 * 1143 /// Completes with a [commons.ApiRequestError] if the API endpoint returned
1150 * Completes with a [commons.ApiRequestError] if the API endpoint returned an 1144 /// an error.
1151 * error. 1145 ///
1152 * 1146 /// If the used [http.Client] completes with an error when making a REST
1153 * If the used [http.Client] completes with an error when making a REST call, 1147 /// call, this method will complete with the same error.
1154 * this method will complete with the same error.
1155 */
1156 async.Future<Empty> cancel(core.String name) { 1148 async.Future<Empty> cancel(core.String name) {
1157 var _url = null; 1149 var _url = null;
1158 var _queryParams = new core.Map(); 1150 var _queryParams = new core.Map();
1159 var _uploadMedia = null; 1151 var _uploadMedia = null;
1160 var _uploadOptions = null; 1152 var _uploadOptions = null;
1161 var _downloadOptions = commons.DownloadOptions.Metadata; 1153 var _downloadOptions = commons.DownloadOptions.Metadata;
1162 var _body = null; 1154 var _body = null;
1163 1155
1164 if (name == null) { 1156 if (name == null) {
1165 throw new core.ArgumentError("Parameter name is required."); 1157 throw new core.ArgumentError("Parameter name is required.");
1166 } 1158 }
1167 1159
1168 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name') + ':cancel'; 1160 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name') + ':cancel';
1169 1161
1170 var _response = _requester.request(_url, 1162 var _response = _requester.request(_url, "POST",
1171 "POST", 1163 body: _body,
1172 body: _body, 1164 queryParams: _queryParams,
1173 queryParams: _queryParams, 1165 uploadOptions: _uploadOptions,
1174 uploadOptions: _uploadOptions, 1166 uploadMedia: _uploadMedia,
1175 uploadMedia: _uploadMedia, 1167 downloadOptions: _downloadOptions);
1176 downloadOptions: _downloadOptions);
1177 return _response.then((data) => new Empty.fromJson(data)); 1168 return _response.then((data) => new Empty.fromJson(data));
1178 } 1169 }
1179 1170
1180 /** 1171 /// Deletes a long-running operation. This method indicates that the client
1181 * Deletes a long-running operation. This method indicates that the client is 1172 /// is
1182 * no longer interested in the operation result. It does not cancel the 1173 /// no longer interested in the operation result. It does not cancel the
1183 * operation. If the server doesn't support this method, it returns 1174 /// operation. If the server doesn't support this method, it returns
1184 * `google.rpc.Code.UNIMPLEMENTED`. 1175 /// `google.rpc.Code.UNIMPLEMENTED`.
1185 * 1176 ///
1186 * Request parameters: 1177 /// Request parameters:
1187 * 1178 ///
1188 * [name] - The name of the operation resource to be deleted. 1179 /// [name] - The name of the operation resource to be deleted.
1189 * Value must have pattern 1180 /// Value must have pattern
1190 * "^projects/[^/]+/instances/[^/]+/databases/[^/]+/operations/[^/]+$". 1181 /// "^projects/[^/]+/instances/[^/]+/databases/[^/]+/operations/[^/]+$".
1191 * 1182 ///
1192 * Completes with a [Empty]. 1183 /// Completes with a [Empty].
1193 * 1184 ///
1194 * Completes with a [commons.ApiRequestError] if the API endpoint returned an 1185 /// Completes with a [commons.ApiRequestError] if the API endpoint returned
1195 * error. 1186 /// an error.
1196 * 1187 ///
1197 * If the used [http.Client] completes with an error when making a REST call, 1188 /// If the used [http.Client] completes with an error when making a REST
1198 * this method will complete with the same error. 1189 /// call, this method will complete with the same error.
1199 */
1200 async.Future<Empty> delete(core.String name) { 1190 async.Future<Empty> delete(core.String name) {
1201 var _url = null; 1191 var _url = null;
1202 var _queryParams = new core.Map(); 1192 var _queryParams = new core.Map();
1203 var _uploadMedia = null; 1193 var _uploadMedia = null;
1204 var _uploadOptions = null; 1194 var _uploadOptions = null;
1205 var _downloadOptions = commons.DownloadOptions.Metadata; 1195 var _downloadOptions = commons.DownloadOptions.Metadata;
1206 var _body = null; 1196 var _body = null;
1207 1197
1208 if (name == null) { 1198 if (name == null) {
1209 throw new core.ArgumentError("Parameter name is required."); 1199 throw new core.ArgumentError("Parameter name is required.");
1210 } 1200 }
1211 1201
1212 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); 1202 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name');
1213 1203
1214 var _response = _requester.request(_url, 1204 var _response = _requester.request(_url, "DELETE",
1215 "DELETE", 1205 body: _body,
1216 body: _body, 1206 queryParams: _queryParams,
1217 queryParams: _queryParams, 1207 uploadOptions: _uploadOptions,
1218 uploadOptions: _uploadOptions, 1208 uploadMedia: _uploadMedia,
1219 uploadMedia: _uploadMedia, 1209 downloadOptions: _downloadOptions);
1220 downloadOptions: _downloadOptions);
1221 return _response.then((data) => new Empty.fromJson(data)); 1210 return _response.then((data) => new Empty.fromJson(data));
1222 } 1211 }
1223 1212
1224 /** 1213 /// Gets the latest state of a long-running operation. Clients can use this
1225 * Gets the latest state of a long-running operation. Clients can use this 1214 /// method to poll the operation result at intervals as recommended by the
1226 * method to poll the operation result at intervals as recommended by the API 1215 /// API
1227 * service. 1216 /// service.
1228 * 1217 ///
1229 * Request parameters: 1218 /// Request parameters:
1230 * 1219 ///
1231 * [name] - The name of the operation resource. 1220 /// [name] - The name of the operation resource.
1232 * Value must have pattern 1221 /// Value must have pattern
1233 * "^projects/[^/]+/instances/[^/]+/databases/[^/]+/operations/[^/]+$". 1222 /// "^projects/[^/]+/instances/[^/]+/databases/[^/]+/operations/[^/]+$".
1234 * 1223 ///
1235 * Completes with a [Operation]. 1224 /// Completes with a [Operation].
1236 * 1225 ///
1237 * Completes with a [commons.ApiRequestError] if the API endpoint returned an 1226 /// Completes with a [commons.ApiRequestError] if the API endpoint returned
1238 * error. 1227 /// an error.
1239 * 1228 ///
1240 * If the used [http.Client] completes with an error when making a REST call, 1229 /// If the used [http.Client] completes with an error when making a REST
1241 * this method will complete with the same error. 1230 /// call, this method will complete with the same error.
1242 */
1243 async.Future<Operation> get(core.String name) { 1231 async.Future<Operation> get(core.String name) {
1244 var _url = null; 1232 var _url = null;
1245 var _queryParams = new core.Map(); 1233 var _queryParams = new core.Map();
1246 var _uploadMedia = null; 1234 var _uploadMedia = null;
1247 var _uploadOptions = null; 1235 var _uploadOptions = null;
1248 var _downloadOptions = commons.DownloadOptions.Metadata; 1236 var _downloadOptions = commons.DownloadOptions.Metadata;
1249 var _body = null; 1237 var _body = null;
1250 1238
1251 if (name == null) { 1239 if (name == null) {
1252 throw new core.ArgumentError("Parameter name is required."); 1240 throw new core.ArgumentError("Parameter name is required.");
1253 } 1241 }
1254 1242
1255 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); 1243 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name');
1256 1244
1257 var _response = _requester.request(_url, 1245 var _response = _requester.request(_url, "GET",
1258 "GET", 1246 body: _body,
1259 body: _body, 1247 queryParams: _queryParams,
1260 queryParams: _queryParams, 1248 uploadOptions: _uploadOptions,
1261 uploadOptions: _uploadOptions, 1249 uploadMedia: _uploadMedia,
1262 uploadMedia: _uploadMedia, 1250 downloadOptions: _downloadOptions);
1263 downloadOptions: _downloadOptions);
1264 return _response.then((data) => new Operation.fromJson(data)); 1251 return _response.then((data) => new Operation.fromJson(data));
1265 } 1252 }
1266 1253
1267 /** 1254 /// Lists operations that match the specified filter in the request. If the
1268 * Lists operations that match the specified filter in the request. If the 1255 /// server doesn't support this method, it returns `UNIMPLEMENTED`.
1269 * server doesn't support this method, it returns `UNIMPLEMENTED`. 1256 ///
1270 * 1257 /// NOTE: the `name` binding allows API services to override the binding
1271 * NOTE: the `name` binding allows API services to override the binding 1258 /// to use different resource name schemes, such as `users / * /operations`.
1272 * to use different resource name schemes, such as `users / * /operations`. To 1259 /// To
1273 * override the binding, API services can add a binding such as 1260 /// override the binding, API services can add a binding such as
1274 * `"/v1/{name=users / * }/operations"` to their service configuration. 1261 /// `"/v1/{name=users / * }/operations"` to their service configuration.
1275 * For backwards compatibility, the default name includes the operations 1262 /// For backwards compatibility, the default name includes the operations
1276 * collection id, however overriding users must ensure the name binding 1263 /// collection id, however overriding users must ensure the name binding
1277 * is the parent resource, without the operations collection id. 1264 /// is the parent resource, without the operations collection id.
1278 * 1265 ///
1279 * Request parameters: 1266 /// Request parameters:
1280 * 1267 ///
1281 * [name] - The name of the operation's parent resource. 1268 /// [name] - The name of the operation's parent resource.
1282 * Value must have pattern 1269 /// Value must have pattern
1283 * "^projects/[^/]+/instances/[^/]+/databases/[^/]+/operations$". 1270 /// "^projects/[^/]+/instances/[^/]+/databases/[^/]+/operations$".
1284 * 1271 ///
1285 * [pageToken] - The standard list page token. 1272 /// [filter] - The standard list filter.
1286 * 1273 ///
1287 * [pageSize] - The standard list page size. 1274 /// [pageToken] - The standard list page token.
1288 * 1275 ///
1289 * [filter] - The standard list filter. 1276 /// [pageSize] - The standard list page size.
1290 * 1277 ///
1291 * Completes with a [ListOperationsResponse]. 1278 /// Completes with a [ListOperationsResponse].
1292 * 1279 ///
1293 * Completes with a [commons.ApiRequestError] if the API endpoint returned an 1280 /// Completes with a [commons.ApiRequestError] if the API endpoint returned
1294 * error. 1281 /// an error.
1295 * 1282 ///
1296 * If the used [http.Client] completes with an error when making a REST call, 1283 /// If the used [http.Client] completes with an error when making a REST
1297 * this method will complete with the same error. 1284 /// call, this method will complete with the same error.
1298 */ 1285 async.Future<ListOperationsResponse> list(core.String name,
1299 async.Future<ListOperationsResponse> list(core.String name, {core.String pageT oken, core.int pageSize, core.String filter}) { 1286 {core.String filter, core.String pageToken, core.int pageSize}) {
1300 var _url = null; 1287 var _url = null;
1301 var _queryParams = new core.Map(); 1288 var _queryParams = new core.Map();
1302 var _uploadMedia = null; 1289 var _uploadMedia = null;
1303 var _uploadOptions = null; 1290 var _uploadOptions = null;
1304 var _downloadOptions = commons.DownloadOptions.Metadata; 1291 var _downloadOptions = commons.DownloadOptions.Metadata;
1305 var _body = null; 1292 var _body = null;
1306 1293
1307 if (name == null) { 1294 if (name == null) {
1308 throw new core.ArgumentError("Parameter name is required."); 1295 throw new core.ArgumentError("Parameter name is required.");
1309 } 1296 }
1297 if (filter != null) {
1298 _queryParams["filter"] = [filter];
1299 }
1310 if (pageToken != null) { 1300 if (pageToken != null) {
1311 _queryParams["pageToken"] = [pageToken]; 1301 _queryParams["pageToken"] = [pageToken];
1312 } 1302 }
1313 if (pageSize != null) { 1303 if (pageSize != null) {
1314 _queryParams["pageSize"] = ["${pageSize}"]; 1304 _queryParams["pageSize"] = ["${pageSize}"];
1315 } 1305 }
1316 if (filter != null) {
1317 _queryParams["filter"] = [filter];
1318 }
1319 1306
1320 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); 1307 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name');
1321 1308
1322 var _response = _requester.request(_url, 1309 var _response = _requester.request(_url, "GET",
1323 "GET", 1310 body: _body,
1324 body: _body, 1311 queryParams: _queryParams,
1325 queryParams: _queryParams, 1312 uploadOptions: _uploadOptions,
1326 uploadOptions: _uploadOptions, 1313 uploadMedia: _uploadMedia,
1327 uploadMedia: _uploadMedia, 1314 downloadOptions: _downloadOptions);
1328 downloadOptions: _downloadOptions);
1329 return _response.then((data) => new ListOperationsResponse.fromJson(data)); 1315 return _response.then((data) => new ListOperationsResponse.fromJson(data));
1330 } 1316 }
1331
1332 } 1317 }
1333 1318
1334
1335 class ProjectsInstancesDatabasesSessionsResourceApi { 1319 class ProjectsInstancesDatabasesSessionsResourceApi {
1336 final commons.ApiRequester _requester; 1320 final commons.ApiRequester _requester;
1337 1321
1338 ProjectsInstancesDatabasesSessionsResourceApi(commons.ApiRequester client) : 1322 ProjectsInstancesDatabasesSessionsResourceApi(commons.ApiRequester client)
1339 _requester = client; 1323 : _requester = client;
1340 1324
1341 /** 1325 /// Begins a new transaction. This step can often be skipped:
1342 * Begins a new transaction. This step can often be skipped: 1326 /// Read, ExecuteSql and
1343 * Read, ExecuteSql and 1327 /// Commit can begin a new transaction as a
1344 * Commit can begin a new transaction as a 1328 /// side-effect.
1345 * side-effect. 1329 ///
1346 * 1330 /// [request] - The metadata request object.
1347 * [request] - The metadata request object. 1331 ///
1348 * 1332 /// Request parameters:
1349 * Request parameters: 1333 ///
1350 * 1334 /// [session] - Required. The session in which the transaction runs.
1351 * [session] - Required. The session in which the transaction runs. 1335 /// Value must have pattern
1352 * Value must have pattern 1336 /// "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$".
1353 * "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$". 1337 ///
1354 * 1338 /// Completes with a [Transaction].
1355 * Completes with a [Transaction]. 1339 ///
1356 * 1340 /// Completes with a [commons.ApiRequestError] if the API endpoint returned
1357 * Completes with a [commons.ApiRequestError] if the API endpoint returned an 1341 /// an error.
1358 * error. 1342 ///
1359 * 1343 /// If the used [http.Client] completes with an error when making a REST
1360 * If the used [http.Client] completes with an error when making a REST call, 1344 /// call, this method will complete with the same error.
1361 * this method will complete with the same error. 1345 async.Future<Transaction> beginTransaction(
1362 */ 1346 BeginTransactionRequest request, core.String session) {
1363 async.Future<Transaction> beginTransaction(BeginTransactionRequest request, co re.String session) {
1364 var _url = null; 1347 var _url = null;
1365 var _queryParams = new core.Map(); 1348 var _queryParams = new core.Map();
1366 var _uploadMedia = null; 1349 var _uploadMedia = null;
1367 var _uploadOptions = null; 1350 var _uploadOptions = null;
1368 var _downloadOptions = commons.DownloadOptions.Metadata; 1351 var _downloadOptions = commons.DownloadOptions.Metadata;
1369 var _body = null; 1352 var _body = null;
1370 1353
1371 if (request != null) { 1354 if (request != null) {
1372 _body = convert.JSON.encode((request).toJson()); 1355 _body = convert.JSON.encode((request).toJson());
1373 } 1356 }
1374 if (session == null) { 1357 if (session == null) {
1375 throw new core.ArgumentError("Parameter session is required."); 1358 throw new core.ArgumentError("Parameter session is required.");
1376 } 1359 }
1377 1360
1378 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$session') + ':beginTr ansaction'; 1361 _url = 'v1/' +
1362 commons.Escaper.ecapeVariableReserved('$session') +
1363 ':beginTransaction';
1379 1364
1380 var _response = _requester.request(_url, 1365 var _response = _requester.request(_url, "POST",
1381 "POST", 1366 body: _body,
1382 body: _body, 1367 queryParams: _queryParams,
1383 queryParams: _queryParams, 1368 uploadOptions: _uploadOptions,
1384 uploadOptions: _uploadOptions, 1369 uploadMedia: _uploadMedia,
1385 uploadMedia: _uploadMedia, 1370 downloadOptions: _downloadOptions);
1386 downloadOptions: _downloadOptions);
1387 return _response.then((data) => new Transaction.fromJson(data)); 1371 return _response.then((data) => new Transaction.fromJson(data));
1388 } 1372 }
1389 1373
1390 /** 1374 /// Commits a transaction. The request includes the mutations to be
1391 * Commits a transaction. The request includes the mutations to be 1375 /// applied to rows in the database.
1392 * applied to rows in the database. 1376 ///
1393 * 1377 /// `Commit` might return an `ABORTED` error. This can occur at any time;
1394 * `Commit` might return an `ABORTED` error. This can occur at any time; 1378 /// commonly, the cause is conflicts with concurrent
1395 * commonly, the cause is conflicts with concurrent 1379 /// transactions. However, it can also happen for a variety of other
1396 * transactions. However, it can also happen for a variety of other 1380 /// reasons. If `Commit` returns `ABORTED`, the caller should re-attempt
1397 * reasons. If `Commit` returns `ABORTED`, the caller should re-attempt 1381 /// the transaction from the beginning, re-using the same session.
1398 * the transaction from the beginning, re-using the same session. 1382 ///
1399 * 1383 /// [request] - The metadata request object.
1400 * [request] - The metadata request object. 1384 ///
1401 * 1385 /// Request parameters:
1402 * Request parameters: 1386 ///
1403 * 1387 /// [session] - Required. The session in which the transaction to be
1404 * [session] - Required. The session in which the transaction to be committed 1388 /// committed is running.
1405 * is running. 1389 /// Value must have pattern
1406 * Value must have pattern 1390 /// "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$".
1407 * "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$". 1391 ///
1408 * 1392 /// Completes with a [CommitResponse].
1409 * Completes with a [CommitResponse]. 1393 ///
1410 * 1394 /// Completes with a [commons.ApiRequestError] if the API endpoint returned
1411 * Completes with a [commons.ApiRequestError] if the API endpoint returned an 1395 /// an error.
1412 * error. 1396 ///
1413 * 1397 /// If the used [http.Client] completes with an error when making a REST
1414 * If the used [http.Client] completes with an error when making a REST call, 1398 /// call, this method will complete with the same error.
1415 * this method will complete with the same error. 1399 async.Future<CommitResponse> commit(
1416 */ 1400 CommitRequest request, core.String session) {
1417 async.Future<CommitResponse> commit(CommitRequest request, core.String session ) {
1418 var _url = null; 1401 var _url = null;
1419 var _queryParams = new core.Map(); 1402 var _queryParams = new core.Map();
1420 var _uploadMedia = null; 1403 var _uploadMedia = null;
1421 var _uploadOptions = null; 1404 var _uploadOptions = null;
1422 var _downloadOptions = commons.DownloadOptions.Metadata; 1405 var _downloadOptions = commons.DownloadOptions.Metadata;
1423 var _body = null; 1406 var _body = null;
1424 1407
1425 if (request != null) { 1408 if (request != null) {
1426 _body = convert.JSON.encode((request).toJson()); 1409 _body = convert.JSON.encode((request).toJson());
1427 } 1410 }
1428 if (session == null) { 1411 if (session == null) {
1429 throw new core.ArgumentError("Parameter session is required."); 1412 throw new core.ArgumentError("Parameter session is required.");
1430 } 1413 }
1431 1414
1432 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$session') + ':commit' ; 1415 _url =
1416 'v1/' + commons.Escaper.ecapeVariableReserved('$session') + ':commit';
1433 1417
1434 var _response = _requester.request(_url, 1418 var _response = _requester.request(_url, "POST",
1435 "POST", 1419 body: _body,
1436 body: _body, 1420 queryParams: _queryParams,
1437 queryParams: _queryParams, 1421 uploadOptions: _uploadOptions,
1438 uploadOptions: _uploadOptions, 1422 uploadMedia: _uploadMedia,
1439 uploadMedia: _uploadMedia, 1423 downloadOptions: _downloadOptions);
1440 downloadOptions: _downloadOptions);
1441 return _response.then((data) => new CommitResponse.fromJson(data)); 1424 return _response.then((data) => new CommitResponse.fromJson(data));
1442 } 1425 }
1443 1426
1444 /** 1427 /// Creates a new session. A session can be used to perform
1445 * Creates a new session. A session can be used to perform 1428 /// transactions that read and/or modify data in a Cloud Spanner database.
1446 * transactions that read and/or modify data in a Cloud Spanner database. 1429 /// Sessions are meant to be reused for many consecutive
1447 * Sessions are meant to be reused for many consecutive 1430 /// transactions.
1448 * transactions. 1431 ///
1449 * 1432 /// Sessions can only execute one transaction at a time. To execute
1450 * Sessions can only execute one transaction at a time. To execute 1433 /// multiple concurrent read-write/write-only transactions, create
1451 * multiple concurrent read-write/write-only transactions, create 1434 /// multiple sessions. Note that standalone reads and queries use a
1452 * multiple sessions. Note that standalone reads and queries use a 1435 /// transaction internally, and count toward the one transaction
1453 * transaction internally, and count toward the one transaction 1436 /// limit.
1454 * limit. 1437 ///
1455 * 1438 /// Cloud Spanner limits the number of sessions that can exist at any given
1456 * Cloud Spanner limits the number of sessions that can exist at any given 1439 /// time; thus, it is a good idea to delete idle and/or unneeded sessions.
1457 * time; thus, it is a good idea to delete idle and/or unneeded sessions. 1440 /// Aside from explicit deletes, Cloud Spanner can delete sessions for which
1458 * Aside from explicit deletes, Cloud Spanner can delete sessions for which no 1441 /// no
1459 * operations are sent for more than an hour. If a session is deleted, 1442 /// operations are sent for more than an hour. If a session is deleted,
1460 * requests to it return `NOT_FOUND`. 1443 /// requests to it return `NOT_FOUND`.
1461 * 1444 ///
1462 * Idle sessions can be kept alive by sending a trivial SQL query 1445 /// Idle sessions can be kept alive by sending a trivial SQL query
1463 * periodically, e.g., `"SELECT 1"`. 1446 /// periodically, e.g., `"SELECT 1"`.
1464 * 1447 ///
1465 * Request parameters: 1448 /// Request parameters:
1466 * 1449 ///
1467 * [database] - Required. The database in which the new session is created. 1450 /// [database] - Required. The database in which the new session is created.
1468 * Value must have pattern "^projects/[^/]+/instances/[^/]+/databases/[^/]+$". 1451 /// Value must have pattern
1469 * 1452 /// "^projects/[^/]+/instances/[^/]+/databases/[^/]+$".
1470 * Completes with a [Session]. 1453 ///
1471 * 1454 /// Completes with a [Session].
1472 * Completes with a [commons.ApiRequestError] if the API endpoint returned an 1455 ///
1473 * error. 1456 /// Completes with a [commons.ApiRequestError] if the API endpoint returned
1474 * 1457 /// an error.
1475 * If the used [http.Client] completes with an error when making a REST call, 1458 ///
1476 * this method will complete with the same error. 1459 /// If the used [http.Client] completes with an error when making a REST
1477 */ 1460 /// call, this method will complete with the same error.
1478 async.Future<Session> create(core.String database) { 1461 async.Future<Session> create(core.String database) {
1479 var _url = null; 1462 var _url = null;
1480 var _queryParams = new core.Map(); 1463 var _queryParams = new core.Map();
1481 var _uploadMedia = null; 1464 var _uploadMedia = null;
1482 var _uploadOptions = null; 1465 var _uploadOptions = null;
1483 var _downloadOptions = commons.DownloadOptions.Metadata; 1466 var _downloadOptions = commons.DownloadOptions.Metadata;
1484 var _body = null; 1467 var _body = null;
1485 1468
1486 if (database == null) { 1469 if (database == null) {
1487 throw new core.ArgumentError("Parameter database is required."); 1470 throw new core.ArgumentError("Parameter database is required.");
1488 } 1471 }
1489 1472
1490 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$database') + '/sessio ns'; 1473 _url = 'v1/' +
1474 commons.Escaper.ecapeVariableReserved('$database') +
1475 '/sessions';
1491 1476
1492 var _response = _requester.request(_url, 1477 var _response = _requester.request(_url, "POST",
1493 "POST", 1478 body: _body,
1494 body: _body, 1479 queryParams: _queryParams,
1495 queryParams: _queryParams, 1480 uploadOptions: _uploadOptions,
1496 uploadOptions: _uploadOptions, 1481 uploadMedia: _uploadMedia,
1497 uploadMedia: _uploadMedia, 1482 downloadOptions: _downloadOptions);
1498 downloadOptions: _downloadOptions);
1499 return _response.then((data) => new Session.fromJson(data)); 1483 return _response.then((data) => new Session.fromJson(data));
1500 } 1484 }
1501 1485
1502 /** 1486 /// Ends a session, releasing server resources associated with it.
1503 * Ends a session, releasing server resources associated with it. 1487 ///
1504 * 1488 /// Request parameters:
1505 * Request parameters: 1489 ///
1506 * 1490 /// [name] - Required. The name of the session to delete.
1507 * [name] - Required. The name of the session to delete. 1491 /// Value must have pattern
1508 * Value must have pattern 1492 /// "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$".
1509 * "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$". 1493 ///
1510 * 1494 /// Completes with a [Empty].
1511 * Completes with a [Empty]. 1495 ///
1512 * 1496 /// Completes with a [commons.ApiRequestError] if the API endpoint returned
1513 * Completes with a [commons.ApiRequestError] if the API endpoint returned an 1497 /// an error.
1514 * error. 1498 ///
1515 * 1499 /// If the used [http.Client] completes with an error when making a REST
1516 * If the used [http.Client] completes with an error when making a REST call, 1500 /// call, this method will complete with the same error.
1517 * this method will complete with the same error.
1518 */
1519 async.Future<Empty> delete(core.String name) { 1501 async.Future<Empty> delete(core.String name) {
1520 var _url = null; 1502 var _url = null;
1521 var _queryParams = new core.Map(); 1503 var _queryParams = new core.Map();
1522 var _uploadMedia = null; 1504 var _uploadMedia = null;
1523 var _uploadOptions = null; 1505 var _uploadOptions = null;
1524 var _downloadOptions = commons.DownloadOptions.Metadata; 1506 var _downloadOptions = commons.DownloadOptions.Metadata;
1525 var _body = null; 1507 var _body = null;
1526 1508
1527 if (name == null) { 1509 if (name == null) {
1528 throw new core.ArgumentError("Parameter name is required."); 1510 throw new core.ArgumentError("Parameter name is required.");
1529 } 1511 }
1530 1512
1531 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); 1513 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name');
1532 1514
1533 var _response = _requester.request(_url, 1515 var _response = _requester.request(_url, "DELETE",
1534 "DELETE", 1516 body: _body,
1535 body: _body, 1517 queryParams: _queryParams,
1536 queryParams: _queryParams, 1518 uploadOptions: _uploadOptions,
1537 uploadOptions: _uploadOptions, 1519 uploadMedia: _uploadMedia,
1538 uploadMedia: _uploadMedia, 1520 downloadOptions: _downloadOptions);
1539 downloadOptions: _downloadOptions);
1540 return _response.then((data) => new Empty.fromJson(data)); 1521 return _response.then((data) => new Empty.fromJson(data));
1541 } 1522 }
1542 1523
1543 /** 1524 /// Executes an SQL query, returning all rows in a single reply. This
1544 * Executes an SQL query, returning all rows in a single reply. This 1525 /// method cannot be used to return a result set larger than 10 MiB;
1545 * method cannot be used to return a result set larger than 10 MiB; 1526 /// if the query yields more data than that, the query fails with
1546 * if the query yields more data than that, the query fails with 1527 /// a `FAILED_PRECONDITION` error.
1547 * a `FAILED_PRECONDITION` error. 1528 ///
1548 * 1529 /// Queries inside read-write transactions might return `ABORTED`. If
1549 * Queries inside read-write transactions might return `ABORTED`. If 1530 /// this occurs, the application should restart the transaction from
1550 * this occurs, the application should restart the transaction from 1531 /// the beginning. See Transaction for more details.
1551 * the beginning. See Transaction for more details. 1532 ///
1552 * 1533 /// Larger result sets can be fetched in streaming fashion by calling
1553 * Larger result sets can be fetched in streaming fashion by calling 1534 /// ExecuteStreamingSql instead.
1554 * ExecuteStreamingSql instead. 1535 ///
1555 * 1536 /// [request] - The metadata request object.
1556 * [request] - The metadata request object. 1537 ///
1557 * 1538 /// Request parameters:
1558 * Request parameters: 1539 ///
1559 * 1540 /// [session] - Required. The session in which the SQL query should be
1560 * [session] - Required. The session in which the SQL query should be 1541 /// performed.
1561 * performed. 1542 /// Value must have pattern
1562 * Value must have pattern 1543 /// "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$".
1563 * "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$". 1544 ///
1564 * 1545 /// Completes with a [ResultSet].
1565 * Completes with a [ResultSet]. 1546 ///
1566 * 1547 /// Completes with a [commons.ApiRequestError] if the API endpoint returned
1567 * Completes with a [commons.ApiRequestError] if the API endpoint returned an 1548 /// an error.
1568 * error. 1549 ///
1569 * 1550 /// If the used [http.Client] completes with an error when making a REST
1570 * If the used [http.Client] completes with an error when making a REST call, 1551 /// call, this method will complete with the same error.
1571 * this method will complete with the same error. 1552 async.Future<ResultSet> executeSql(
1572 */ 1553 ExecuteSqlRequest request, core.String session) {
1573 async.Future<ResultSet> executeSql(ExecuteSqlRequest request, core.String sess ion) {
1574 var _url = null; 1554 var _url = null;
1575 var _queryParams = new core.Map(); 1555 var _queryParams = new core.Map();
1576 var _uploadMedia = null; 1556 var _uploadMedia = null;
1577 var _uploadOptions = null; 1557 var _uploadOptions = null;
1578 var _downloadOptions = commons.DownloadOptions.Metadata; 1558 var _downloadOptions = commons.DownloadOptions.Metadata;
1579 var _body = null; 1559 var _body = null;
1580 1560
1581 if (request != null) { 1561 if (request != null) {
1582 _body = convert.JSON.encode((request).toJson()); 1562 _body = convert.JSON.encode((request).toJson());
1583 } 1563 }
1584 if (session == null) { 1564 if (session == null) {
1585 throw new core.ArgumentError("Parameter session is required."); 1565 throw new core.ArgumentError("Parameter session is required.");
1586 } 1566 }
1587 1567
1588 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$session') + ':execute Sql'; 1568 _url = 'v1/' +
1569 commons.Escaper.ecapeVariableReserved('$session') +
1570 ':executeSql';
1589 1571
1590 var _response = _requester.request(_url, 1572 var _response = _requester.request(_url, "POST",
1591 "POST", 1573 body: _body,
1592 body: _body, 1574 queryParams: _queryParams,
1593 queryParams: _queryParams, 1575 uploadOptions: _uploadOptions,
1594 uploadOptions: _uploadOptions, 1576 uploadMedia: _uploadMedia,
1595 uploadMedia: _uploadMedia, 1577 downloadOptions: _downloadOptions);
1596 downloadOptions: _downloadOptions);
1597 return _response.then((data) => new ResultSet.fromJson(data)); 1578 return _response.then((data) => new ResultSet.fromJson(data));
1598 } 1579 }
1599 1580
1600 /** 1581 /// Like ExecuteSql, except returns the result
1601 * Like ExecuteSql, except returns the result 1582 /// set as a stream. Unlike ExecuteSql, there
1602 * set as a stream. Unlike ExecuteSql, there 1583 /// is no limit on the size of the returned result set. However, no
1603 * is no limit on the size of the returned result set. However, no 1584 /// individual row in the result set can exceed 100 MiB, and no
1604 * individual row in the result set can exceed 100 MiB, and no 1585 /// column value can exceed 10 MiB.
1605 * column value can exceed 10 MiB. 1586 ///
1606 * 1587 /// [request] - The metadata request object.
1607 * [request] - The metadata request object. 1588 ///
1608 * 1589 /// Request parameters:
1609 * Request parameters: 1590 ///
1610 * 1591 /// [session] - Required. The session in which the SQL query should be
1611 * [session] - Required. The session in which the SQL query should be 1592 /// performed.
1612 * performed. 1593 /// Value must have pattern
1613 * Value must have pattern 1594 /// "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$".
1614 * "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$". 1595 ///
1615 * 1596 /// Completes with a [PartialResultSet].
1616 * Completes with a [PartialResultSet]. 1597 ///
1617 * 1598 /// Completes with a [commons.ApiRequestError] if the API endpoint returned
1618 * Completes with a [commons.ApiRequestError] if the API endpoint returned an 1599 /// an error.
1619 * error. 1600 ///
1620 * 1601 /// If the used [http.Client] completes with an error when making a REST
1621 * If the used [http.Client] completes with an error when making a REST call, 1602 /// call, this method will complete with the same error.
1622 * this method will complete with the same error. 1603 async.Future<PartialResultSet> executeStreamingSql(
1623 */ 1604 ExecuteSqlRequest request, core.String session) {
1624 async.Future<PartialResultSet> executeStreamingSql(ExecuteSqlRequest request, core.String session) {
1625 var _url = null; 1605 var _url = null;
1626 var _queryParams = new core.Map(); 1606 var _queryParams = new core.Map();
1627 var _uploadMedia = null; 1607 var _uploadMedia = null;
1628 var _uploadOptions = null; 1608 var _uploadOptions = null;
1629 var _downloadOptions = commons.DownloadOptions.Metadata; 1609 var _downloadOptions = commons.DownloadOptions.Metadata;
1630 var _body = null; 1610 var _body = null;
1631 1611
1632 if (request != null) { 1612 if (request != null) {
1633 _body = convert.JSON.encode((request).toJson()); 1613 _body = convert.JSON.encode((request).toJson());
1634 } 1614 }
1635 if (session == null) { 1615 if (session == null) {
1636 throw new core.ArgumentError("Parameter session is required."); 1616 throw new core.ArgumentError("Parameter session is required.");
1637 } 1617 }
1638 1618
1639 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$session') + ':execute StreamingSql'; 1619 _url = 'v1/' +
1620 commons.Escaper.ecapeVariableReserved('$session') +
1621 ':executeStreamingSql';
1640 1622
1641 var _response = _requester.request(_url, 1623 var _response = _requester.request(_url, "POST",
1642 "POST", 1624 body: _body,
1643 body: _body, 1625 queryParams: _queryParams,
1644 queryParams: _queryParams, 1626 uploadOptions: _uploadOptions,
1645 uploadOptions: _uploadOptions, 1627 uploadMedia: _uploadMedia,
1646 uploadMedia: _uploadMedia, 1628 downloadOptions: _downloadOptions);
1647 downloadOptions: _downloadOptions);
1648 return _response.then((data) => new PartialResultSet.fromJson(data)); 1629 return _response.then((data) => new PartialResultSet.fromJson(data));
1649 } 1630 }
1650 1631
1651 /** 1632 /// Gets a session. Returns `NOT_FOUND` if the session does not exist.
1652 * Gets a session. Returns `NOT_FOUND` if the session does not exist. 1633 /// This is mainly useful for determining whether a session is still
1653 * This is mainly useful for determining whether a session is still 1634 /// alive.
1654 * alive. 1635 ///
1655 * 1636 /// Request parameters:
1656 * Request parameters: 1637 ///
1657 * 1638 /// [name] - Required. The name of the session to retrieve.
1658 * [name] - Required. The name of the session to retrieve. 1639 /// Value must have pattern
1659 * Value must have pattern 1640 /// "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$".
1660 * "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$". 1641 ///
1661 * 1642 /// Completes with a [Session].
1662 * Completes with a [Session]. 1643 ///
1663 * 1644 /// Completes with a [commons.ApiRequestError] if the API endpoint returned
1664 * Completes with a [commons.ApiRequestError] if the API endpoint returned an 1645 /// an error.
1665 * error. 1646 ///
1666 * 1647 /// If the used [http.Client] completes with an error when making a REST
1667 * If the used [http.Client] completes with an error when making a REST call, 1648 /// call, this method will complete with the same error.
1668 * this method will complete with the same error.
1669 */
1670 async.Future<Session> get(core.String name) { 1649 async.Future<Session> get(core.String name) {
1671 var _url = null; 1650 var _url = null;
1672 var _queryParams = new core.Map(); 1651 var _queryParams = new core.Map();
1673 var _uploadMedia = null; 1652 var _uploadMedia = null;
1674 var _uploadOptions = null; 1653 var _uploadOptions = null;
1675 var _downloadOptions = commons.DownloadOptions.Metadata; 1654 var _downloadOptions = commons.DownloadOptions.Metadata;
1676 var _body = null; 1655 var _body = null;
1677 1656
1678 if (name == null) { 1657 if (name == null) {
1679 throw new core.ArgumentError("Parameter name is required."); 1658 throw new core.ArgumentError("Parameter name is required.");
1680 } 1659 }
1681 1660
1682 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); 1661 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name');
1683 1662
1684 var _response = _requester.request(_url, 1663 var _response = _requester.request(_url, "GET",
1685 "GET", 1664 body: _body,
1686 body: _body, 1665 queryParams: _queryParams,
1687 queryParams: _queryParams, 1666 uploadOptions: _uploadOptions,
1688 uploadOptions: _uploadOptions, 1667 uploadMedia: _uploadMedia,
1689 uploadMedia: _uploadMedia, 1668 downloadOptions: _downloadOptions);
1690 downloadOptions: _downloadOptions);
1691 return _response.then((data) => new Session.fromJson(data)); 1669 return _response.then((data) => new Session.fromJson(data));
1692 } 1670 }
1693 1671
1694 /** 1672 /// Reads rows from the database using key lookups and scans, as a
1695 * Reads rows from the database using key lookups and scans, as a 1673 /// simple key/value style alternative to
1696 * simple key/value style alternative to 1674 /// ExecuteSql. This method cannot be used to
1697 * ExecuteSql. This method cannot be used to 1675 /// return a result set larger than 10 MiB; if the read matches more
1698 * return a result set larger than 10 MiB; if the read matches more 1676 /// data than that, the read fails with a `FAILED_PRECONDITION`
1699 * data than that, the read fails with a `FAILED_PRECONDITION` 1677 /// error.
1700 * error. 1678 ///
1701 * 1679 /// Reads inside read-write transactions might return `ABORTED`. If
1702 * Reads inside read-write transactions might return `ABORTED`. If 1680 /// this occurs, the application should restart the transaction from
1703 * this occurs, the application should restart the transaction from 1681 /// the beginning. See Transaction for more details.
1704 * the beginning. See Transaction for more details. 1682 ///
1705 * 1683 /// Larger result sets can be yielded in streaming fashion by calling
1706 * Larger result sets can be yielded in streaming fashion by calling 1684 /// StreamingRead instead.
1707 * StreamingRead instead. 1685 ///
1708 * 1686 /// [request] - The metadata request object.
1709 * [request] - The metadata request object. 1687 ///
1710 * 1688 /// Request parameters:
1711 * Request parameters: 1689 ///
1712 * 1690 /// [session] - Required. The session in which the read should be performed.
1713 * [session] - Required. The session in which the read should be performed. 1691 /// Value must have pattern
1714 * Value must have pattern 1692 /// "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$".
1715 * "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$". 1693 ///
1716 * 1694 /// Completes with a [ResultSet].
1717 * Completes with a [ResultSet]. 1695 ///
1718 * 1696 /// Completes with a [commons.ApiRequestError] if the API endpoint returned
1719 * Completes with a [commons.ApiRequestError] if the API endpoint returned an 1697 /// an error.
1720 * error. 1698 ///
1721 * 1699 /// If the used [http.Client] completes with an error when making a REST
1722 * If the used [http.Client] completes with an error when making a REST call, 1700 /// call, this method will complete with the same error.
1723 * this method will complete with the same error.
1724 */
1725 async.Future<ResultSet> read(ReadRequest request, core.String session) { 1701 async.Future<ResultSet> read(ReadRequest request, core.String session) {
1726 var _url = null; 1702 var _url = null;
1727 var _queryParams = new core.Map(); 1703 var _queryParams = new core.Map();
1728 var _uploadMedia = null; 1704 var _uploadMedia = null;
1729 var _uploadOptions = null; 1705 var _uploadOptions = null;
1730 var _downloadOptions = commons.DownloadOptions.Metadata; 1706 var _downloadOptions = commons.DownloadOptions.Metadata;
1731 var _body = null; 1707 var _body = null;
1732 1708
1733 if (request != null) { 1709 if (request != null) {
1734 _body = convert.JSON.encode((request).toJson()); 1710 _body = convert.JSON.encode((request).toJson());
1735 } 1711 }
1736 if (session == null) { 1712 if (session == null) {
1737 throw new core.ArgumentError("Parameter session is required."); 1713 throw new core.ArgumentError("Parameter session is required.");
1738 } 1714 }
1739 1715
1740 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$session') + ':read'; 1716 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$session') + ':read';
1741 1717
1742 var _response = _requester.request(_url, 1718 var _response = _requester.request(_url, "POST",
1743 "POST", 1719 body: _body,
1744 body: _body, 1720 queryParams: _queryParams,
1745 queryParams: _queryParams, 1721 uploadOptions: _uploadOptions,
1746 uploadOptions: _uploadOptions, 1722 uploadMedia: _uploadMedia,
1747 uploadMedia: _uploadMedia, 1723 downloadOptions: _downloadOptions);
1748 downloadOptions: _downloadOptions);
1749 return _response.then((data) => new ResultSet.fromJson(data)); 1724 return _response.then((data) => new ResultSet.fromJson(data));
1750 } 1725 }
1751 1726
1752 /** 1727 /// Rolls back a transaction, releasing any locks it holds. It is a good
1753 * Rolls back a transaction, releasing any locks it holds. It is a good 1728 /// idea to call this for any transaction that includes one or more
1754 * idea to call this for any transaction that includes one or more 1729 /// Read or ExecuteSql requests and
1755 * Read or ExecuteSql requests and 1730 /// ultimately decides not to commit.
1756 * ultimately decides not to commit. 1731 ///
1757 * 1732 /// `Rollback` returns `OK` if it successfully aborts the transaction, the
1758 * `Rollback` returns `OK` if it successfully aborts the transaction, the 1733 /// transaction was already aborted, or the transaction is not
1759 * transaction was already aborted, or the transaction is not 1734 /// found. `Rollback` never returns `ABORTED`.
1760 * found. `Rollback` never returns `ABORTED`. 1735 ///
1761 * 1736 /// [request] - The metadata request object.
1762 * [request] - The metadata request object. 1737 ///
1763 * 1738 /// Request parameters:
1764 * Request parameters: 1739 ///
1765 * 1740 /// [session] - Required. The session in which the transaction to roll back
1766 * [session] - Required. The session in which the transaction to roll back is 1741 /// is running.
1767 * running. 1742 /// Value must have pattern
1768 * Value must have pattern 1743 /// "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$".
1769 * "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$". 1744 ///
1770 * 1745 /// Completes with a [Empty].
1771 * Completes with a [Empty]. 1746 ///
1772 * 1747 /// Completes with a [commons.ApiRequestError] if the API endpoint returned
1773 * Completes with a [commons.ApiRequestError] if the API endpoint returned an 1748 /// an error.
1774 * error. 1749 ///
1775 * 1750 /// If the used [http.Client] completes with an error when making a REST
1776 * If the used [http.Client] completes with an error when making a REST call, 1751 /// call, this method will complete with the same error.
1777 * this method will complete with the same error.
1778 */
1779 async.Future<Empty> rollback(RollbackRequest request, core.String session) { 1752 async.Future<Empty> rollback(RollbackRequest request, core.String session) {
1780 var _url = null; 1753 var _url = null;
1781 var _queryParams = new core.Map(); 1754 var _queryParams = new core.Map();
1782 var _uploadMedia = null; 1755 var _uploadMedia = null;
1783 var _uploadOptions = null; 1756 var _uploadOptions = null;
1784 var _downloadOptions = commons.DownloadOptions.Metadata; 1757 var _downloadOptions = commons.DownloadOptions.Metadata;
1785 var _body = null; 1758 var _body = null;
1786 1759
1787 if (request != null) { 1760 if (request != null) {
1788 _body = convert.JSON.encode((request).toJson()); 1761 _body = convert.JSON.encode((request).toJson());
1789 } 1762 }
1790 if (session == null) { 1763 if (session == null) {
1791 throw new core.ArgumentError("Parameter session is required."); 1764 throw new core.ArgumentError("Parameter session is required.");
1792 } 1765 }
1793 1766
1794 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$session') + ':rollbac k'; 1767 _url =
1768 'v1/' + commons.Escaper.ecapeVariableReserved('$session') + ':rollback';
1795 1769
1796 var _response = _requester.request(_url, 1770 var _response = _requester.request(_url, "POST",
1797 "POST", 1771 body: _body,
1798 body: _body, 1772 queryParams: _queryParams,
1799 queryParams: _queryParams, 1773 uploadOptions: _uploadOptions,
1800 uploadOptions: _uploadOptions, 1774 uploadMedia: _uploadMedia,
1801 uploadMedia: _uploadMedia, 1775 downloadOptions: _downloadOptions);
1802 downloadOptions: _downloadOptions);
1803 return _response.then((data) => new Empty.fromJson(data)); 1776 return _response.then((data) => new Empty.fromJson(data));
1804 } 1777 }
1805 1778
1806 /** 1779 /// Like Read, except returns the result set as a
1807 * Like Read, except returns the result set as a 1780 /// stream. Unlike Read, there is no limit on the
1808 * stream. Unlike Read, there is no limit on the 1781 /// size of the returned result set. However, no individual row in
1809 * size of the returned result set. However, no individual row in 1782 /// the result set can exceed 100 MiB, and no column value can exceed
1810 * the result set can exceed 100 MiB, and no column value can exceed 1783 /// 10 MiB.
1811 * 10 MiB. 1784 ///
1812 * 1785 /// [request] - The metadata request object.
1813 * [request] - The metadata request object. 1786 ///
1814 * 1787 /// Request parameters:
1815 * Request parameters: 1788 ///
1816 * 1789 /// [session] - Required. The session in which the read should be performed.
1817 * [session] - Required. The session in which the read should be performed. 1790 /// Value must have pattern
1818 * Value must have pattern 1791 /// "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$".
1819 * "^projects/[^/]+/instances/[^/]+/databases/[^/]+/sessions/[^/]+$". 1792 ///
1820 * 1793 /// Completes with a [PartialResultSet].
1821 * Completes with a [PartialResultSet]. 1794 ///
1822 * 1795 /// Completes with a [commons.ApiRequestError] if the API endpoint returned
1823 * Completes with a [commons.ApiRequestError] if the API endpoint returned an 1796 /// an error.
1824 * error. 1797 ///
1825 * 1798 /// If the used [http.Client] completes with an error when making a REST
1826 * If the used [http.Client] completes with an error when making a REST call, 1799 /// call, this method will complete with the same error.
1827 * this method will complete with the same error. 1800 async.Future<PartialResultSet> streamingRead(
1828 */ 1801 ReadRequest request, core.String session) {
1829 async.Future<PartialResultSet> streamingRead(ReadRequest request, core.String session) {
1830 var _url = null; 1802 var _url = null;
1831 var _queryParams = new core.Map(); 1803 var _queryParams = new core.Map();
1832 var _uploadMedia = null; 1804 var _uploadMedia = null;
1833 var _uploadOptions = null; 1805 var _uploadOptions = null;
1834 var _downloadOptions = commons.DownloadOptions.Metadata; 1806 var _downloadOptions = commons.DownloadOptions.Metadata;
1835 var _body = null; 1807 var _body = null;
1836 1808
1837 if (request != null) { 1809 if (request != null) {
1838 _body = convert.JSON.encode((request).toJson()); 1810 _body = convert.JSON.encode((request).toJson());
1839 } 1811 }
1840 if (session == null) { 1812 if (session == null) {
1841 throw new core.ArgumentError("Parameter session is required."); 1813 throw new core.ArgumentError("Parameter session is required.");
1842 } 1814 }
1843 1815
1844 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$session') + ':streami ngRead'; 1816 _url = 'v1/' +
1817 commons.Escaper.ecapeVariableReserved('$session') +
1818 ':streamingRead';
1845 1819
1846 var _response = _requester.request(_url, 1820 var _response = _requester.request(_url, "POST",
1847 "POST", 1821 body: _body,
1848 body: _body, 1822 queryParams: _queryParams,
1849 queryParams: _queryParams, 1823 uploadOptions: _uploadOptions,
1850 uploadOptions: _uploadOptions, 1824 uploadMedia: _uploadMedia,
1851 uploadMedia: _uploadMedia, 1825 downloadOptions: _downloadOptions);
1852 downloadOptions: _downloadOptions);
1853 return _response.then((data) => new PartialResultSet.fromJson(data)); 1826 return _response.then((data) => new PartialResultSet.fromJson(data));
1854 } 1827 }
1855
1856 } 1828 }
1857 1829
1858
1859 class ProjectsInstancesOperationsResourceApi { 1830 class ProjectsInstancesOperationsResourceApi {
1860 final commons.ApiRequester _requester; 1831 final commons.ApiRequester _requester;
1861 1832
1862 ProjectsInstancesOperationsResourceApi(commons.ApiRequester client) : 1833 ProjectsInstancesOperationsResourceApi(commons.ApiRequester client)
1863 _requester = client; 1834 : _requester = client;
1864 1835
1865 /** 1836 /// Starts asynchronous cancellation on a long-running operation. The server
1866 * Starts asynchronous cancellation on a long-running operation. The server 1837 /// makes a best effort to cancel the operation, but success is not
1867 * makes a best effort to cancel the operation, but success is not 1838 /// guaranteed. If the server doesn't support this method, it returns
1868 * guaranteed. If the server doesn't support this method, it returns 1839 /// `google.rpc.Code.UNIMPLEMENTED`. Clients can use
1869 * `google.rpc.Code.UNIMPLEMENTED`. Clients can use 1840 /// Operations.GetOperation or
1870 * Operations.GetOperation or 1841 /// other methods to check whether the cancellation succeeded or whether the
1871 * other methods to check whether the cancellation succeeded or whether the 1842 /// operation completed despite cancellation. On successful cancellation,
1872 * operation completed despite cancellation. On successful cancellation, 1843 /// the operation is not deleted; instead, it becomes an operation with
1873 * the operation is not deleted; instead, it becomes an operation with 1844 /// an Operation.error value with a google.rpc.Status.code of 1,
1874 * an Operation.error value with a google.rpc.Status.code of 1, 1845 /// corresponding to `Code.CANCELLED`.
1875 * corresponding to `Code.CANCELLED`. 1846 ///
1876 * 1847 /// Request parameters:
1877 * Request parameters: 1848 ///
1878 * 1849 /// [name] - The name of the operation resource to be cancelled.
1879 * [name] - The name of the operation resource to be cancelled. 1850 /// Value must have pattern
1880 * Value must have pattern 1851 /// "^projects/[^/]+/instances/[^/]+/operations/[^/]+$".
1881 * "^projects/[^/]+/instances/[^/]+/operations/[^/]+$". 1852 ///
1882 * 1853 /// Completes with a [Empty].
1883 * Completes with a [Empty]. 1854 ///
1884 * 1855 /// Completes with a [commons.ApiRequestError] if the API endpoint returned
1885 * Completes with a [commons.ApiRequestError] if the API endpoint returned an 1856 /// an error.
1886 * error. 1857 ///
1887 * 1858 /// If the used [http.Client] completes with an error when making a REST
1888 * If the used [http.Client] completes with an error when making a REST call, 1859 /// call, this method will complete with the same error.
1889 * this method will complete with the same error.
1890 */
1891 async.Future<Empty> cancel(core.String name) { 1860 async.Future<Empty> cancel(core.String name) {
1892 var _url = null; 1861 var _url = null;
1893 var _queryParams = new core.Map(); 1862 var _queryParams = new core.Map();
1894 var _uploadMedia = null; 1863 var _uploadMedia = null;
1895 var _uploadOptions = null; 1864 var _uploadOptions = null;
1896 var _downloadOptions = commons.DownloadOptions.Metadata; 1865 var _downloadOptions = commons.DownloadOptions.Metadata;
1897 var _body = null; 1866 var _body = null;
1898 1867
1899 if (name == null) { 1868 if (name == null) {
1900 throw new core.ArgumentError("Parameter name is required."); 1869 throw new core.ArgumentError("Parameter name is required.");
1901 } 1870 }
1902 1871
1903 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name') + ':cancel'; 1872 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name') + ':cancel';
1904 1873
1905 var _response = _requester.request(_url, 1874 var _response = _requester.request(_url, "POST",
1906 "POST", 1875 body: _body,
1907 body: _body, 1876 queryParams: _queryParams,
1908 queryParams: _queryParams, 1877 uploadOptions: _uploadOptions,
1909 uploadOptions: _uploadOptions, 1878 uploadMedia: _uploadMedia,
1910 uploadMedia: _uploadMedia, 1879 downloadOptions: _downloadOptions);
1911 downloadOptions: _downloadOptions);
1912 return _response.then((data) => new Empty.fromJson(data)); 1880 return _response.then((data) => new Empty.fromJson(data));
1913 } 1881 }
1914 1882
1915 /** 1883 /// Deletes a long-running operation. This method indicates that the client
1916 * Deletes a long-running operation. This method indicates that the client is 1884 /// is
1917 * no longer interested in the operation result. It does not cancel the 1885 /// no longer interested in the operation result. It does not cancel the
1918 * operation. If the server doesn't support this method, it returns 1886 /// operation. If the server doesn't support this method, it returns
1919 * `google.rpc.Code.UNIMPLEMENTED`. 1887 /// `google.rpc.Code.UNIMPLEMENTED`.
1920 * 1888 ///
1921 * Request parameters: 1889 /// Request parameters:
1922 * 1890 ///
1923 * [name] - The name of the operation resource to be deleted. 1891 /// [name] - The name of the operation resource to be deleted.
1924 * Value must have pattern 1892 /// Value must have pattern
1925 * "^projects/[^/]+/instances/[^/]+/operations/[^/]+$". 1893 /// "^projects/[^/]+/instances/[^/]+/operations/[^/]+$".
1926 * 1894 ///
1927 * Completes with a [Empty]. 1895 /// Completes with a [Empty].
1928 * 1896 ///
1929 * Completes with a [commons.ApiRequestError] if the API endpoint returned an 1897 /// Completes with a [commons.ApiRequestError] if the API endpoint returned
1930 * error. 1898 /// an error.
1931 * 1899 ///
1932 * If the used [http.Client] completes with an error when making a REST call, 1900 /// If the used [http.Client] completes with an error when making a REST
1933 * this method will complete with the same error. 1901 /// call, this method will complete with the same error.
1934 */
1935 async.Future<Empty> delete(core.String name) { 1902 async.Future<Empty> delete(core.String name) {
1936 var _url = null; 1903 var _url = null;
1937 var _queryParams = new core.Map(); 1904 var _queryParams = new core.Map();
1938 var _uploadMedia = null; 1905 var _uploadMedia = null;
1939 var _uploadOptions = null; 1906 var _uploadOptions = null;
1940 var _downloadOptions = commons.DownloadOptions.Metadata; 1907 var _downloadOptions = commons.DownloadOptions.Metadata;
1941 var _body = null; 1908 var _body = null;
1942 1909
1943 if (name == null) { 1910 if (name == null) {
1944 throw new core.ArgumentError("Parameter name is required."); 1911 throw new core.ArgumentError("Parameter name is required.");
1945 } 1912 }
1946 1913
1947 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); 1914 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name');
1948 1915
1949 var _response = _requester.request(_url, 1916 var _response = _requester.request(_url, "DELETE",
1950 "DELETE", 1917 body: _body,
1951 body: _body, 1918 queryParams: _queryParams,
1952 queryParams: _queryParams, 1919 uploadOptions: _uploadOptions,
1953 uploadOptions: _uploadOptions, 1920 uploadMedia: _uploadMedia,
1954 uploadMedia: _uploadMedia, 1921 downloadOptions: _downloadOptions);
1955 downloadOptions: _downloadOptions);
1956 return _response.then((data) => new Empty.fromJson(data)); 1922 return _response.then((data) => new Empty.fromJson(data));
1957 } 1923 }
1958 1924
1959 /** 1925 /// Gets the latest state of a long-running operation. Clients can use this
1960 * Gets the latest state of a long-running operation. Clients can use this 1926 /// method to poll the operation result at intervals as recommended by the
1961 * method to poll the operation result at intervals as recommended by the API 1927 /// API
1962 * service. 1928 /// service.
1963 * 1929 ///
1964 * Request parameters: 1930 /// Request parameters:
1965 * 1931 ///
1966 * [name] - The name of the operation resource. 1932 /// [name] - The name of the operation resource.
1967 * Value must have pattern 1933 /// Value must have pattern
1968 * "^projects/[^/]+/instances/[^/]+/operations/[^/]+$". 1934 /// "^projects/[^/]+/instances/[^/]+/operations/[^/]+$".
1969 * 1935 ///
1970 * Completes with a [Operation]. 1936 /// Completes with a [Operation].
1971 * 1937 ///
1972 * Completes with a [commons.ApiRequestError] if the API endpoint returned an 1938 /// Completes with a [commons.ApiRequestError] if the API endpoint returned
1973 * error. 1939 /// an error.
1974 * 1940 ///
1975 * If the used [http.Client] completes with an error when making a REST call, 1941 /// If the used [http.Client] completes with an error when making a REST
1976 * this method will complete with the same error. 1942 /// call, this method will complete with the same error.
1977 */
1978 async.Future<Operation> get(core.String name) { 1943 async.Future<Operation> get(core.String name) {
1979 var _url = null; 1944 var _url = null;
1980 var _queryParams = new core.Map(); 1945 var _queryParams = new core.Map();
1981 var _uploadMedia = null; 1946 var _uploadMedia = null;
1982 var _uploadOptions = null; 1947 var _uploadOptions = null;
1983 var _downloadOptions = commons.DownloadOptions.Metadata; 1948 var _downloadOptions = commons.DownloadOptions.Metadata;
1984 var _body = null; 1949 var _body = null;
1985 1950
1986 if (name == null) { 1951 if (name == null) {
1987 throw new core.ArgumentError("Parameter name is required."); 1952 throw new core.ArgumentError("Parameter name is required.");
1988 } 1953 }
1989 1954
1990 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); 1955 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name');
1991 1956
1992 var _response = _requester.request(_url, 1957 var _response = _requester.request(_url, "GET",
1993 "GET", 1958 body: _body,
1994 body: _body, 1959 queryParams: _queryParams,
1995 queryParams: _queryParams, 1960 uploadOptions: _uploadOptions,
1996 uploadOptions: _uploadOptions, 1961 uploadMedia: _uploadMedia,
1997 uploadMedia: _uploadMedia, 1962 downloadOptions: _downloadOptions);
1998 downloadOptions: _downloadOptions);
1999 return _response.then((data) => new Operation.fromJson(data)); 1963 return _response.then((data) => new Operation.fromJson(data));
2000 } 1964 }
2001 1965
2002 /** 1966 /// Lists operations that match the specified filter in the request. If the
2003 * Lists operations that match the specified filter in the request. If the 1967 /// server doesn't support this method, it returns `UNIMPLEMENTED`.
2004 * server doesn't support this method, it returns `UNIMPLEMENTED`. 1968 ///
2005 * 1969 /// NOTE: the `name` binding allows API services to override the binding
2006 * NOTE: the `name` binding allows API services to override the binding 1970 /// to use different resource name schemes, such as `users / * /operations`.
2007 * to use different resource name schemes, such as `users / * /operations`. To 1971 /// To
2008 * override the binding, API services can add a binding such as 1972 /// override the binding, API services can add a binding such as
2009 * `"/v1/{name=users / * }/operations"` to their service configuration. 1973 /// `"/v1/{name=users / * }/operations"` to their service configuration.
2010 * For backwards compatibility, the default name includes the operations 1974 /// For backwards compatibility, the default name includes the operations
2011 * collection id, however overriding users must ensure the name binding 1975 /// collection id, however overriding users must ensure the name binding
2012 * is the parent resource, without the operations collection id. 1976 /// is the parent resource, without the operations collection id.
2013 * 1977 ///
2014 * Request parameters: 1978 /// Request parameters:
2015 * 1979 ///
2016 * [name] - The name of the operation's parent resource. 1980 /// [name] - The name of the operation's parent resource.
2017 * Value must have pattern "^projects/[^/]+/instances/[^/]+/operations$". 1981 /// Value must have pattern "^projects/[^/]+/instances/[^/]+/operations$".
2018 * 1982 ///
2019 * [filter] - The standard list filter. 1983 /// [filter] - The standard list filter.
2020 * 1984 ///
2021 * [pageToken] - The standard list page token. 1985 /// [pageToken] - The standard list page token.
2022 * 1986 ///
2023 * [pageSize] - The standard list page size. 1987 /// [pageSize] - The standard list page size.
2024 * 1988 ///
2025 * Completes with a [ListOperationsResponse]. 1989 /// Completes with a [ListOperationsResponse].
2026 * 1990 ///
2027 * Completes with a [commons.ApiRequestError] if the API endpoint returned an 1991 /// Completes with a [commons.ApiRequestError] if the API endpoint returned
2028 * error. 1992 /// an error.
2029 * 1993 ///
2030 * If the used [http.Client] completes with an error when making a REST call, 1994 /// If the used [http.Client] completes with an error when making a REST
2031 * this method will complete with the same error. 1995 /// call, this method will complete with the same error.
2032 */ 1996 async.Future<ListOperationsResponse> list(core.String name,
2033 async.Future<ListOperationsResponse> list(core.String name, {core.String filte r, core.String pageToken, core.int pageSize}) { 1997 {core.String filter, core.String pageToken, core.int pageSize}) {
2034 var _url = null; 1998 var _url = null;
2035 var _queryParams = new core.Map(); 1999 var _queryParams = new core.Map();
2036 var _uploadMedia = null; 2000 var _uploadMedia = null;
2037 var _uploadOptions = null; 2001 var _uploadOptions = null;
2038 var _downloadOptions = commons.DownloadOptions.Metadata; 2002 var _downloadOptions = commons.DownloadOptions.Metadata;
2039 var _body = null; 2003 var _body = null;
2040 2004
2041 if (name == null) { 2005 if (name == null) {
2042 throw new core.ArgumentError("Parameter name is required."); 2006 throw new core.ArgumentError("Parameter name is required.");
2043 } 2007 }
2044 if (filter != null) { 2008 if (filter != null) {
2045 _queryParams["filter"] = [filter]; 2009 _queryParams["filter"] = [filter];
2046 } 2010 }
2047 if (pageToken != null) { 2011 if (pageToken != null) {
2048 _queryParams["pageToken"] = [pageToken]; 2012 _queryParams["pageToken"] = [pageToken];
2049 } 2013 }
2050 if (pageSize != null) { 2014 if (pageSize != null) {
2051 _queryParams["pageSize"] = ["${pageSize}"]; 2015 _queryParams["pageSize"] = ["${pageSize}"];
2052 } 2016 }
2053 2017
2054 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); 2018 _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name');
2055 2019
2056 var _response = _requester.request(_url, 2020 var _response = _requester.request(_url, "GET",
2057 "GET", 2021 body: _body,
2058 body: _body, 2022 queryParams: _queryParams,
2059 queryParams: _queryParams, 2023 uploadOptions: _uploadOptions,
2060 uploadOptions: _uploadOptions, 2024 uploadMedia: _uploadMedia,
2061 uploadMedia: _uploadMedia, 2025 downloadOptions: _downloadOptions);
2062 downloadOptions: _downloadOptions);
2063 return _response.then((data) => new ListOperationsResponse.fromJson(data)); 2026 return _response.then((data) => new ListOperationsResponse.fromJson(data));
2064 } 2027 }
2065
2066 }
2067
2068
2069
2070 /**
2071 * Specifies the audit configuration for a service.
2072 * The configuration determines which permission types are logged, and what
2073 * identities, if any, are exempted from logging.
2074 * An AuditConfig must have one or more AuditLogConfigs.
2075 *
2076 * If there are AuditConfigs for both `allServices` and a specific service,
2077 * the union of the two AuditConfigs is used for that service: the log_types
2078 * specified in each AuditConfig are enabled, and the exempted_members in each
2079 * AuditConfig are exempted.
2080 *
2081 * Example Policy with multiple AuditConfigs:
2082 *
2083 * {
2084 * "audit_configs": [
2085 * {
2086 * "service": "allServices"
2087 * "audit_log_configs": [
2088 * {
2089 * "log_type": "DATA_READ",
2090 * "exempted_members": [
2091 * "user:foo@gmail.com"
2092 * ]
2093 * },
2094 * {
2095 * "log_type": "DATA_WRITE",
2096 * },
2097 * {
2098 * "log_type": "ADMIN_READ",
2099 * }
2100 * ]
2101 * },
2102 * {
2103 * "service": "fooservice.googleapis.com"
2104 * "audit_log_configs": [
2105 * {
2106 * "log_type": "DATA_READ",
2107 * },
2108 * {
2109 * "log_type": "DATA_WRITE",
2110 * "exempted_members": [
2111 * "user:bar@gmail.com"
2112 * ]
2113 * }
2114 * ]
2115 * }
2116 * ]
2117 * }
2118 *
2119 * For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
2120 * logging. It also exempts foo@gmail.com from DATA_READ logging, and
2121 * bar@gmail.com from DATA_WRITE logging.
2122 */
2123 class AuditConfig {
2124 /**
2125 * The configuration for logging of each type of permission.
2126 * Next ID: 4
2127 */
2128 core.List<AuditLogConfig> auditLogConfigs;
2129 core.List<core.String> exemptedMembers;
2130 /**
2131 * Specifies a service that will be enabled for audit logging.
2132 * For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
2133 * `allServices` is a special value that covers all services.
2134 */
2135 core.String service;
2136
2137 AuditConfig();
2138
2139 AuditConfig.fromJson(core.Map _json) {
2140 if (_json.containsKey("auditLogConfigs")) {
2141 auditLogConfigs = _json["auditLogConfigs"].map((value) => new AuditLogConf ig.fromJson(value)).toList();
2142 }
2143 if (_json.containsKey("exemptedMembers")) {
2144 exemptedMembers = _json["exemptedMembers"];
2145 }
2146 if (_json.containsKey("service")) {
2147 service = _json["service"];
2148 }
2149 }
2150
2151 core.Map<core.String, core.Object> toJson() {
2152 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>();
2153 if (auditLogConfigs != null) {
2154 _json["auditLogConfigs"] = auditLogConfigs.map((value) => (value).toJson() ).toList();
2155 }
2156 if (exemptedMembers != null) {
2157 _json["exemptedMembers"] = exemptedMembers;
2158 }
2159 if (service != null) {
2160 _json["service"] = service;
2161 }
2162 return _json;
2163 }
2164 } 2028 }
2165 2029
2166 /** 2030 /// The request for BeginTransaction.
2167 * Provides the configuration for logging a type of permissions.
2168 * Example:
2169 *
2170 * {
2171 * "audit_log_configs": [
2172 * {
2173 * "log_type": "DATA_READ",
2174 * "exempted_members": [
2175 * "user:foo@gmail.com"
2176 * ]
2177 * },
2178 * {
2179 * "log_type": "DATA_WRITE",
2180 * }
2181 * ]
2182 * }
2183 *
2184 * This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
2185 * foo@gmail.com from DATA_READ logging.
2186 */
2187 class AuditLogConfig {
2188 /**
2189 * Specifies the identities that do not cause logging for this type of
2190 * permission.
2191 * Follows the same format of Binding.members.
2192 */
2193 core.List<core.String> exemptedMembers;
2194 /**
2195 * The log type that this config enables.
2196 * Possible string values are:
2197 * - "LOG_TYPE_UNSPECIFIED" : Default case. Should never be this.
2198 * - "ADMIN_READ" : Admin reads. Example: CloudIAM getIamPolicy
2199 * - "DATA_WRITE" : Data writes. Example: CloudSQL Users create
2200 * - "DATA_READ" : Data reads. Example: CloudSQL Users list
2201 */
2202 core.String logType;
2203
2204 AuditLogConfig();
2205
2206 AuditLogConfig.fromJson(core.Map _json) {
2207 if (_json.containsKey("exemptedMembers")) {
2208 exemptedMembers = _json["exemptedMembers"];
2209 }
2210 if (_json.containsKey("logType")) {
2211 logType = _json["logType"];
2212 }
2213 }
2214
2215 core.Map<core.String, core.Object> toJson() {
2216 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>();
2217 if (exemptedMembers != null) {
2218 _json["exemptedMembers"] = exemptedMembers;
2219 }
2220 if (logType != null) {
2221 _json["logType"] = logType;
2222 }
2223 return _json;
2224 }
2225 }
2226
2227 /** Authorization-related information used by Cloud Audit Logging. */
2228 class AuthorizationLoggingOptions {
2229 /**
2230 * The type of the permission that was checked.
2231 * Possible string values are:
2232 * - "PERMISSION_TYPE_UNSPECIFIED" : Default. Should not be used.
2233 * - "ADMIN_READ" : A read of admin (meta) data.
2234 * - "ADMIN_WRITE" : A write of admin (meta) data.
2235 * - "DATA_READ" : A read of standard data.
2236 * - "DATA_WRITE" : A write of standard data.
2237 */
2238 core.String permissionType;
2239
2240 AuthorizationLoggingOptions();
2241
2242 AuthorizationLoggingOptions.fromJson(core.Map _json) {
2243 if (_json.containsKey("permissionType")) {
2244 permissionType = _json["permissionType"];
2245 }
2246 }
2247
2248 core.Map<core.String, core.Object> toJson() {
2249 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>();
2250 if (permissionType != null) {
2251 _json["permissionType"] = permissionType;
2252 }
2253 return _json;
2254 }
2255 }
2256
2257 /** The request for BeginTransaction. */
2258 class BeginTransactionRequest { 2031 class BeginTransactionRequest {
2259 /** Required. Options for the new transaction. */ 2032 /// Required. Options for the new transaction.
2260 TransactionOptions options; 2033 TransactionOptions options;
2261 2034
2262 BeginTransactionRequest(); 2035 BeginTransactionRequest();
2263 2036
2264 BeginTransactionRequest.fromJson(core.Map _json) { 2037 BeginTransactionRequest.fromJson(core.Map _json) {
2265 if (_json.containsKey("options")) { 2038 if (_json.containsKey("options")) {
2266 options = new TransactionOptions.fromJson(_json["options"]); 2039 options = new TransactionOptions.fromJson(_json["options"]);
2267 } 2040 }
2268 } 2041 }
2269 2042
2270 core.Map<core.String, core.Object> toJson() { 2043 core.Map<core.String, core.Object> toJson() {
2271 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 2044 final core.Map<core.String, core.Object> _json =
2045 new core.Map<core.String, core.Object>();
2272 if (options != null) { 2046 if (options != null) {
2273 _json["options"] = (options).toJson(); 2047 _json["options"] = (options).toJson();
2274 } 2048 }
2275 return _json; 2049 return _json;
2276 } 2050 }
2277 } 2051 }
2278 2052
2279 /** Associates `members` with a `role`. */ 2053 /// Associates `members` with a `role`.
2280 class Binding { 2054 class Binding {
2281 /** 2055 /// Specifies the identities requesting access for a Cloud Platform resource.
2282 * The condition that is associated with this binding. 2056 /// `members` can have the following values:
2283 * NOTE: an unsatisfied condition will not allow user access via current 2057 ///
2284 * binding. Different bindings, including their conditions, are examined 2058 /// * `allUsers`: A special identifier that represents anyone who is
2285 * independently. 2059 /// on the internet; with or without a Google account.
2286 * This field is GOOGLE_INTERNAL. 2060 ///
2287 */ 2061 /// * `allAuthenticatedUsers`: A special identifier that represents anyone
2288 Expr condition; 2062 /// who is authenticated with a Google account or a service account.
2289 /** 2063 ///
2290 * Specifies the identities requesting access for a Cloud Platform resource. 2064 /// * `user:{emailid}`: An email address that represents a specific Google
2291 * `members` can have the following values: 2065 /// account. For example, `alice@gmail.com` or `joe@example.com`.
2292 * 2066 ///
2293 * * `allUsers`: A special identifier that represents anyone who is 2067 ///
2294 * on the internet; with or without a Google account. 2068 /// * `serviceAccount:{emailid}`: An email address that represents a service
2295 * 2069 /// account. For example, `my-other-app@appspot.gserviceaccount.com`.
2296 * * `allAuthenticatedUsers`: A special identifier that represents anyone 2070 ///
2297 * who is authenticated with a Google account or a service account. 2071 /// * `group:{emailid}`: An email address that represents a Google group.
2298 * 2072 /// For example, `admins@example.com`.
2299 * * `user:{emailid}`: An email address that represents a specific Google 2073 ///
2300 * account. For example, `alice@gmail.com` or `joe@example.com`. 2074 ///
2301 * 2075 /// * `domain:{domain}`: A Google Apps domain name that represents all the
2302 * 2076 /// users of that domain. For example, `google.com` or `example.com`.
2303 * * `serviceAccount:{emailid}`: An email address that represents a service
2304 * account. For example, `my-other-app@appspot.gserviceaccount.com`.
2305 *
2306 * * `group:{emailid}`: An email address that represents a Google group.
2307 * For example, `admins@example.com`.
2308 *
2309 *
2310 * * `domain:{domain}`: A Google Apps domain name that represents all the
2311 * users of that domain. For example, `google.com` or `example.com`.
2312 */
2313 core.List<core.String> members; 2077 core.List<core.String> members;
2314 /** 2078
2315 * Role that is assigned to `members`. 2079 /// Role that is assigned to `members`.
2316 * For example, `roles/viewer`, `roles/editor`, or `roles/owner`. 2080 /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
2317 * Required 2081 /// Required
2318 */
2319 core.String role; 2082 core.String role;
2320 2083
2321 Binding(); 2084 Binding();
2322 2085
2323 Binding.fromJson(core.Map _json) { 2086 Binding.fromJson(core.Map _json) {
2324 if (_json.containsKey("condition")) {
2325 condition = new Expr.fromJson(_json["condition"]);
2326 }
2327 if (_json.containsKey("members")) { 2087 if (_json.containsKey("members")) {
2328 members = _json["members"]; 2088 members = _json["members"];
2329 } 2089 }
2330 if (_json.containsKey("role")) { 2090 if (_json.containsKey("role")) {
2331 role = _json["role"]; 2091 role = _json["role"];
2332 } 2092 }
2333 } 2093 }
2334 2094
2335 core.Map<core.String, core.Object> toJson() { 2095 core.Map<core.String, core.Object> toJson() {
2336 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 2096 final core.Map<core.String, core.Object> _json =
2337 if (condition != null) { 2097 new core.Map<core.String, core.Object>();
2338 _json["condition"] = (condition).toJson();
2339 }
2340 if (members != null) { 2098 if (members != null) {
2341 _json["members"] = members; 2099 _json["members"] = members;
2342 } 2100 }
2343 if (role != null) { 2101 if (role != null) {
2344 _json["role"] = role; 2102 _json["role"] = role;
2345 } 2103 }
2346 return _json; 2104 return _json;
2347 } 2105 }
2348 } 2106 }
2349 2107
2350 /** 2108 /// Metadata associated with a parent-child relationship appearing in a
2351 * Metadata associated with a parent-child relationship appearing in a 2109 /// PlanNode.
2352 * PlanNode.
2353 */
2354 class ChildLink { 2110 class ChildLink {
2355 /** The node to which the link points. */ 2111 /// The node to which the link points.
2356 core.int childIndex; 2112 core.int childIndex;
2357 /** 2113
2358 * The type of the link. For example, in Hash Joins this could be used to 2114 /// The type of the link. For example, in Hash Joins this could be used to
2359 * distinguish between the build child and the probe child, or in the case 2115 /// distinguish between the build child and the probe child, or in the case
2360 * of the child being an output variable, to represent the tag associated 2116 /// of the child being an output variable, to represent the tag associated
2361 * with the output variable. 2117 /// with the output variable.
2362 */
2363 core.String type; 2118 core.String type;
2364 /** 2119
2365 * Only present if the child node is SCALAR and corresponds 2120 /// Only present if the child node is SCALAR and corresponds
2366 * to an output variable of the parent node. The field carries the name of 2121 /// to an output variable of the parent node. The field carries the name of
2367 * the output variable. 2122 /// the output variable.
2368 * For example, a `TableScan` operator that reads rows from a table will 2123 /// For example, a `TableScan` operator that reads rows from a table will
2369 * have child links to the `SCALAR` nodes representing the output variables 2124 /// have child links to the `SCALAR` nodes representing the output variables
2370 * created for each column that is read by the operator. The corresponding 2125 /// created for each column that is read by the operator. The corresponding
2371 * `variable` fields will be set to the variable names assigned to the 2126 /// `variable` fields will be set to the variable names assigned to the
2372 * columns. 2127 /// columns.
2373 */
2374 core.String variable; 2128 core.String variable;
2375 2129
2376 ChildLink(); 2130 ChildLink();
2377 2131
2378 ChildLink.fromJson(core.Map _json) { 2132 ChildLink.fromJson(core.Map _json) {
2379 if (_json.containsKey("childIndex")) { 2133 if (_json.containsKey("childIndex")) {
2380 childIndex = _json["childIndex"]; 2134 childIndex = _json["childIndex"];
2381 } 2135 }
2382 if (_json.containsKey("type")) { 2136 if (_json.containsKey("type")) {
2383 type = _json["type"]; 2137 type = _json["type"];
2384 } 2138 }
2385 if (_json.containsKey("variable")) { 2139 if (_json.containsKey("variable")) {
2386 variable = _json["variable"]; 2140 variable = _json["variable"];
2387 } 2141 }
2388 } 2142 }
2389 2143
2390 core.Map<core.String, core.Object> toJson() { 2144 core.Map<core.String, core.Object> toJson() {
2391 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 2145 final core.Map<core.String, core.Object> _json =
2146 new core.Map<core.String, core.Object>();
2392 if (childIndex != null) { 2147 if (childIndex != null) {
2393 _json["childIndex"] = childIndex; 2148 _json["childIndex"] = childIndex;
2394 } 2149 }
2395 if (type != null) { 2150 if (type != null) {
2396 _json["type"] = type; 2151 _json["type"] = type;
2397 } 2152 }
2398 if (variable != null) { 2153 if (variable != null) {
2399 _json["variable"] = variable; 2154 _json["variable"] = variable;
2400 } 2155 }
2401 return _json; 2156 return _json;
2402 } 2157 }
2403 } 2158 }
2404 2159
2405 /** Write a Cloud Audit log */ 2160 /// The request for Commit.
2406 class CloudAuditOptions { 2161 class CommitRequest {
2407 /** Information used by the Cloud Audit Logging pipeline. */ 2162 /// The mutations to be executed when this transaction commits. All
2408 AuthorizationLoggingOptions authorizationLoggingOptions; 2163 /// mutations are applied atomically, in the order they appear in
2409 /** 2164 /// this list.
2410 * The log_name to populate in the Cloud Audit Record. 2165 core.List<Mutation> mutations;
2411 * Possible string values are:
2412 * - "UNSPECIFIED_LOG_NAME" : Default. Should not be used.
2413 * - "ADMIN_ACTIVITY" : Corresponds to "cloudaudit.googleapis.com/activity"
2414 * - "DATA_ACCESS" : Corresponds to "cloudaudit.googleapis.com/data_access"
2415 */
2416 core.String logName;
2417 2166
2418 CloudAuditOptions(); 2167 /// Execute mutations in a temporary transaction. Note that unlike
2168 /// commit of a previously-started transaction, commit with a
2169 /// temporary transaction is non-idempotent. That is, if the
2170 /// `CommitRequest` is sent to Cloud Spanner more than once (for
2171 /// instance, due to retries in the application, or in the
2172 /// transport library), it is possible that the mutations are
2173 /// executed more than once. If this is undesirable, use
2174 /// BeginTransaction and
2175 /// Commit instead.
2176 TransactionOptions singleUseTransaction;
2419 2177
2420 CloudAuditOptions.fromJson(core.Map _json) { 2178 /// Commit a previously-started transaction.
2421 if (_json.containsKey("authorizationLoggingOptions")) {
2422 authorizationLoggingOptions = new AuthorizationLoggingOptions.fromJson(_js on["authorizationLoggingOptions"]);
2423 }
2424 if (_json.containsKey("logName")) {
2425 logName = _json["logName"];
2426 }
2427 }
2428
2429 core.Map<core.String, core.Object> toJson() {
2430 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>();
2431 if (authorizationLoggingOptions != null) {
2432 _json["authorizationLoggingOptions"] = (authorizationLoggingOptions).toJso n();
2433 }
2434 if (logName != null) {
2435 _json["logName"] = logName;
2436 }
2437 return _json;
2438 }
2439 }
2440
2441 /** The request for Commit. */
2442 class CommitRequest {
2443 /**
2444 * The mutations to be executed when this transaction commits. All
2445 * mutations are applied atomically, in the order they appear in
2446 * this list.
2447 */
2448 core.List<Mutation> mutations;
2449 /**
2450 * Execute mutations in a temporary transaction. Note that unlike
2451 * commit of a previously-started transaction, commit with a
2452 * temporary transaction is non-idempotent. That is, if the
2453 * `CommitRequest` is sent to Cloud Spanner more than once (for
2454 * instance, due to retries in the application, or in the
2455 * transport library), it is possible that the mutations are
2456 * executed more than once. If this is undesirable, use
2457 * BeginTransaction and
2458 * Commit instead.
2459 */
2460 TransactionOptions singleUseTransaction;
2461 /** Commit a previously-started transaction. */
2462 core.String transactionId; 2179 core.String transactionId;
2463 core.List<core.int> get transactionIdAsBytes { 2180 core.List<core.int> get transactionIdAsBytes {
2464 return convert.BASE64.decode(transactionId); 2181 return convert.BASE64.decode(transactionId);
2465 } 2182 }
2466 2183
2467 void set transactionIdAsBytes(core.List<core.int> _bytes) { 2184 void set transactionIdAsBytes(core.List<core.int> _bytes) {
2468 transactionId = convert.BASE64.encode(_bytes).replaceAll("/", "_").replaceAl l("+", "-"); 2185 transactionId =
2186 convert.BASE64.encode(_bytes).replaceAll("/", "_").replaceAll("+", "-");
2469 } 2187 }
2470 2188
2471 CommitRequest(); 2189 CommitRequest();
2472 2190
2473 CommitRequest.fromJson(core.Map _json) { 2191 CommitRequest.fromJson(core.Map _json) {
2474 if (_json.containsKey("mutations")) { 2192 if (_json.containsKey("mutations")) {
2475 mutations = _json["mutations"].map((value) => new Mutation.fromJson(value) ).toList(); 2193 mutations = _json["mutations"]
2194 .map((value) => new Mutation.fromJson(value))
2195 .toList();
2476 } 2196 }
2477 if (_json.containsKey("singleUseTransaction")) { 2197 if (_json.containsKey("singleUseTransaction")) {
2478 singleUseTransaction = new TransactionOptions.fromJson(_json["singleUseTra nsaction"]); 2198 singleUseTransaction =
2199 new TransactionOptions.fromJson(_json["singleUseTransaction"]);
2479 } 2200 }
2480 if (_json.containsKey("transactionId")) { 2201 if (_json.containsKey("transactionId")) {
2481 transactionId = _json["transactionId"]; 2202 transactionId = _json["transactionId"];
2482 } 2203 }
2483 } 2204 }
2484 2205
2485 core.Map<core.String, core.Object> toJson() { 2206 core.Map<core.String, core.Object> toJson() {
2486 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 2207 final core.Map<core.String, core.Object> _json =
2208 new core.Map<core.String, core.Object>();
2487 if (mutations != null) { 2209 if (mutations != null) {
2488 _json["mutations"] = mutations.map((value) => (value).toJson()).toList(); 2210 _json["mutations"] = mutations.map((value) => (value).toJson()).toList();
2489 } 2211 }
2490 if (singleUseTransaction != null) { 2212 if (singleUseTransaction != null) {
2491 _json["singleUseTransaction"] = (singleUseTransaction).toJson(); 2213 _json["singleUseTransaction"] = (singleUseTransaction).toJson();
2492 } 2214 }
2493 if (transactionId != null) { 2215 if (transactionId != null) {
2494 _json["transactionId"] = transactionId; 2216 _json["transactionId"] = transactionId;
2495 } 2217 }
2496 return _json; 2218 return _json;
2497 } 2219 }
2498 } 2220 }
2499 2221
2500 /** The response for Commit. */ 2222 /// The response for Commit.
2501 class CommitResponse { 2223 class CommitResponse {
2502 /** The Cloud Spanner timestamp at which the transaction committed. */ 2224 /// The Cloud Spanner timestamp at which the transaction committed.
2503 core.String commitTimestamp; 2225 core.String commitTimestamp;
2504 2226
2505 CommitResponse(); 2227 CommitResponse();
2506 2228
2507 CommitResponse.fromJson(core.Map _json) { 2229 CommitResponse.fromJson(core.Map _json) {
2508 if (_json.containsKey("commitTimestamp")) { 2230 if (_json.containsKey("commitTimestamp")) {
2509 commitTimestamp = _json["commitTimestamp"]; 2231 commitTimestamp = _json["commitTimestamp"];
2510 } 2232 }
2511 } 2233 }
2512 2234
2513 core.Map<core.String, core.Object> toJson() { 2235 core.Map<core.String, core.Object> toJson() {
2514 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 2236 final core.Map<core.String, core.Object> _json =
2237 new core.Map<core.String, core.Object>();
2515 if (commitTimestamp != null) { 2238 if (commitTimestamp != null) {
2516 _json["commitTimestamp"] = commitTimestamp; 2239 _json["commitTimestamp"] = commitTimestamp;
2517 } 2240 }
2518 return _json; 2241 return _json;
2519 } 2242 }
2520 } 2243 }
2521 2244
2522 /** A condition to be met. */ 2245 /// Metadata type for the operation returned by
2523 class Condition { 2246 /// CreateDatabase.
2524 /**
2525 * Trusted attributes supplied by the IAM system.
2526 * Possible string values are:
2527 * - "NO_ATTR" : Default non-attribute.
2528 * - "AUTHORITY" : Either principal or (if present) authority selector.
2529 * - "ATTRIBUTION" : The principal (even if an authority selector is present),
2530 * which
2531 * must only be used for attribution, not authorization.
2532 * - "SECURITY_REALM" : Any of the security realms in the IAMContext
2533 * (go/security-realms).
2534 * When used with IN, the condition indicates "any of the request's realms
2535 * match one of the given values; with NOT_IN, "none of the realms match
2536 * any of the given values". It is not permitted to grant access based on
2537 * the *absence* of a realm, so realm conditions can only be used in
2538 * a "positive" context (e.g., ALLOW/IN or DENY/NOT_IN).
2539 * - "APPROVER" : An approver (distinct from the requester) that has
2540 * authorized this
2541 * request.
2542 * When used with IN, the condition indicates that one of the approvers
2543 * associated with the request matches the specified principal, or is a
2544 * member of the specified group. Approvers can only grant additional
2545 * access, and are thus only used in a strictly positive context
2546 * (e.g. ALLOW/IN or DENY/NOT_IN).
2547 * - "JUSTIFICATION_TYPE" : What types of justifications have been supplied
2548 * with this request.
2549 * String values should match enum names from tech.iam.JustificationType,
2550 * e.g. "MANUAL_STRING". It is not permitted to grant access based on
2551 * the *absence* of a justification, so justification conditions can only
2552 * be used in a "positive" context (e.g., ALLOW/IN or DENY/NOT_IN).
2553 *
2554 * Multiple justifications, e.g., a Buganizer ID and a manually-entered
2555 * reason, are normal and supported.
2556 */
2557 core.String iam;
2558 /**
2559 * An operator to apply the subject with.
2560 * Possible string values are:
2561 * - "NO_OP" : Default no-op.
2562 * - "EQUALS" : DEPRECATED. Use IN instead.
2563 * - "NOT_EQUALS" : DEPRECATED. Use NOT_IN instead.
2564 * - "IN" : The condition is true if the subject (or any element of it if it
2565 * is
2566 * a set) matches any of the supplied values.
2567 * - "NOT_IN" : The condition is true if the subject (or every element of it
2568 * if it is
2569 * a set) matches none of the supplied values.
2570 * - "DISCHARGED" : Subject is discharged
2571 */
2572 core.String op;
2573 /** Trusted attributes discharged by the service. */
2574 core.String svc;
2575 /**
2576 * Trusted attributes supplied by any service that owns resources and uses
2577 * the IAM system for access control.
2578 * Possible string values are:
2579 * - "NO_ATTR" : Default non-attribute type
2580 * - "REGION" : Region of the resource
2581 * - "SERVICE" : Service name
2582 * - "NAME" : Resource name
2583 * - "IP" : IP address of the caller
2584 */
2585 core.String sys;
2586 /** DEPRECATED. Use 'values' instead. */
2587 core.String value;
2588 /** The objects of the condition. This is mutually exclusive with 'value'. */
2589 core.List<core.String> values;
2590
2591 Condition();
2592
2593 Condition.fromJson(core.Map _json) {
2594 if (_json.containsKey("iam")) {
2595 iam = _json["iam"];
2596 }
2597 if (_json.containsKey("op")) {
2598 op = _json["op"];
2599 }
2600 if (_json.containsKey("svc")) {
2601 svc = _json["svc"];
2602 }
2603 if (_json.containsKey("sys")) {
2604 sys = _json["sys"];
2605 }
2606 if (_json.containsKey("value")) {
2607 value = _json["value"];
2608 }
2609 if (_json.containsKey("values")) {
2610 values = _json["values"];
2611 }
2612 }
2613
2614 core.Map<core.String, core.Object> toJson() {
2615 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>();
2616 if (iam != null) {
2617 _json["iam"] = iam;
2618 }
2619 if (op != null) {
2620 _json["op"] = op;
2621 }
2622 if (svc != null) {
2623 _json["svc"] = svc;
2624 }
2625 if (sys != null) {
2626 _json["sys"] = sys;
2627 }
2628 if (value != null) {
2629 _json["value"] = value;
2630 }
2631 if (values != null) {
2632 _json["values"] = values;
2633 }
2634 return _json;
2635 }
2636 }
2637
2638 /** Options for counters */
2639 class CounterOptions {
2640 /** The field value to attribute. */
2641 core.String field;
2642 /** The metric to update. */
2643 core.String metric;
2644
2645 CounterOptions();
2646
2647 CounterOptions.fromJson(core.Map _json) {
2648 if (_json.containsKey("field")) {
2649 field = _json["field"];
2650 }
2651 if (_json.containsKey("metric")) {
2652 metric = _json["metric"];
2653 }
2654 }
2655
2656 core.Map<core.String, core.Object> toJson() {
2657 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>();
2658 if (field != null) {
2659 _json["field"] = field;
2660 }
2661 if (metric != null) {
2662 _json["metric"] = metric;
2663 }
2664 return _json;
2665 }
2666 }
2667
2668 /**
2669 * Metadata type for the operation returned by
2670 * CreateDatabase.
2671 */
2672 class CreateDatabaseMetadata { 2247 class CreateDatabaseMetadata {
2673 /** The database being created. */ 2248 /// The database being created.
2674 core.String database; 2249 core.String database;
2675 2250
2676 CreateDatabaseMetadata(); 2251 CreateDatabaseMetadata();
2677 2252
2678 CreateDatabaseMetadata.fromJson(core.Map _json) { 2253 CreateDatabaseMetadata.fromJson(core.Map _json) {
2679 if (_json.containsKey("database")) { 2254 if (_json.containsKey("database")) {
2680 database = _json["database"]; 2255 database = _json["database"];
2681 } 2256 }
2682 } 2257 }
2683 2258
2684 core.Map<core.String, core.Object> toJson() { 2259 core.Map<core.String, core.Object> toJson() {
2685 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 2260 final core.Map<core.String, core.Object> _json =
2261 new core.Map<core.String, core.Object>();
2686 if (database != null) { 2262 if (database != null) {
2687 _json["database"] = database; 2263 _json["database"] = database;
2688 } 2264 }
2689 return _json; 2265 return _json;
2690 } 2266 }
2691 } 2267 }
2692 2268
2693 /** The request for CreateDatabase. */ 2269 /// The request for CreateDatabase.
2694 class CreateDatabaseRequest { 2270 class CreateDatabaseRequest {
2695 /** 2271 /// Required. A `CREATE DATABASE` statement, which specifies the ID of the
2696 * Required. A `CREATE DATABASE` statement, which specifies the ID of the 2272 /// new database. The database ID must conform to the regular expression
2697 * new database. The database ID must conform to the regular expression 2273 /// `a-z*[a-z0-9]` and be between 2 and 30 characters in length.
2698 * `a-z*[a-z0-9]` and be between 2 and 30 characters in length. 2274 /// If the database ID is a reserved word or if it contains a hyphen, the
2699 * If the database ID is a reserved word or if it contains a hyphen, the 2275 /// database ID must be enclosed in backticks (`` ` ``).
2700 * database ID must be enclosed in backticks (`` ` ``).
2701 */
2702 core.String createStatement; 2276 core.String createStatement;
2703 /** 2277
2704 * An optional list of DDL statements to run inside the newly created 2278 /// An optional list of DDL statements to run inside the newly created
2705 * database. Statements can create tables, indexes, etc. These 2279 /// database. Statements can create tables, indexes, etc. These
2706 * statements execute atomically with the creation of the database: 2280 /// statements execute atomically with the creation of the database:
2707 * if there is an error in any statement, the database is not created. 2281 /// if there is an error in any statement, the database is not created.
2708 */
2709 core.List<core.String> extraStatements; 2282 core.List<core.String> extraStatements;
2710 2283
2711 CreateDatabaseRequest(); 2284 CreateDatabaseRequest();
2712 2285
2713 CreateDatabaseRequest.fromJson(core.Map _json) { 2286 CreateDatabaseRequest.fromJson(core.Map _json) {
2714 if (_json.containsKey("createStatement")) { 2287 if (_json.containsKey("createStatement")) {
2715 createStatement = _json["createStatement"]; 2288 createStatement = _json["createStatement"];
2716 } 2289 }
2717 if (_json.containsKey("extraStatements")) { 2290 if (_json.containsKey("extraStatements")) {
2718 extraStatements = _json["extraStatements"]; 2291 extraStatements = _json["extraStatements"];
2719 } 2292 }
2720 } 2293 }
2721 2294
2722 core.Map<core.String, core.Object> toJson() { 2295 core.Map<core.String, core.Object> toJson() {
2723 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 2296 final core.Map<core.String, core.Object> _json =
2297 new core.Map<core.String, core.Object>();
2724 if (createStatement != null) { 2298 if (createStatement != null) {
2725 _json["createStatement"] = createStatement; 2299 _json["createStatement"] = createStatement;
2726 } 2300 }
2727 if (extraStatements != null) { 2301 if (extraStatements != null) {
2728 _json["extraStatements"] = extraStatements; 2302 _json["extraStatements"] = extraStatements;
2729 } 2303 }
2730 return _json; 2304 return _json;
2731 } 2305 }
2732 } 2306 }
2733 2307
2734 /** 2308 /// Metadata type for the operation returned by
2735 * Metadata type for the operation returned by 2309 /// CreateInstance.
2736 * CreateInstance.
2737 */
2738 class CreateInstanceMetadata { 2310 class CreateInstanceMetadata {
2739 /** 2311 /// The time at which this operation was cancelled. If set, this operation is
2740 * The time at which this operation was cancelled. If set, this operation is 2312 /// in the process of undoing itself (which is guaranteed to succeed) and
2741 * in the process of undoing itself (which is guaranteed to succeed) and 2313 /// cannot be cancelled again.
2742 * cannot be cancelled again.
2743 */
2744 core.String cancelTime; 2314 core.String cancelTime;
2745 /** The time at which this operation failed or was completed successfully. */ 2315
2316 /// The time at which this operation failed or was completed successfully.
2746 core.String endTime; 2317 core.String endTime;
2747 /** The instance being created. */ 2318
2319 /// The instance being created.
2748 Instance instance; 2320 Instance instance;
2749 /** 2321
2750 * The time at which the 2322 /// The time at which the
2751 * CreateInstance request was 2323 /// CreateInstance request was
2752 * received. 2324 /// received.
2753 */
2754 core.String startTime; 2325 core.String startTime;
2755 2326
2756 CreateInstanceMetadata(); 2327 CreateInstanceMetadata();
2757 2328
2758 CreateInstanceMetadata.fromJson(core.Map _json) { 2329 CreateInstanceMetadata.fromJson(core.Map _json) {
2759 if (_json.containsKey("cancelTime")) { 2330 if (_json.containsKey("cancelTime")) {
2760 cancelTime = _json["cancelTime"]; 2331 cancelTime = _json["cancelTime"];
2761 } 2332 }
2762 if (_json.containsKey("endTime")) { 2333 if (_json.containsKey("endTime")) {
2763 endTime = _json["endTime"]; 2334 endTime = _json["endTime"];
2764 } 2335 }
2765 if (_json.containsKey("instance")) { 2336 if (_json.containsKey("instance")) {
2766 instance = new Instance.fromJson(_json["instance"]); 2337 instance = new Instance.fromJson(_json["instance"]);
2767 } 2338 }
2768 if (_json.containsKey("startTime")) { 2339 if (_json.containsKey("startTime")) {
2769 startTime = _json["startTime"]; 2340 startTime = _json["startTime"];
2770 } 2341 }
2771 } 2342 }
2772 2343
2773 core.Map<core.String, core.Object> toJson() { 2344 core.Map<core.String, core.Object> toJson() {
2774 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 2345 final core.Map<core.String, core.Object> _json =
2346 new core.Map<core.String, core.Object>();
2775 if (cancelTime != null) { 2347 if (cancelTime != null) {
2776 _json["cancelTime"] = cancelTime; 2348 _json["cancelTime"] = cancelTime;
2777 } 2349 }
2778 if (endTime != null) { 2350 if (endTime != null) {
2779 _json["endTime"] = endTime; 2351 _json["endTime"] = endTime;
2780 } 2352 }
2781 if (instance != null) { 2353 if (instance != null) {
2782 _json["instance"] = (instance).toJson(); 2354 _json["instance"] = (instance).toJson();
2783 } 2355 }
2784 if (startTime != null) { 2356 if (startTime != null) {
2785 _json["startTime"] = startTime; 2357 _json["startTime"] = startTime;
2786 } 2358 }
2787 return _json; 2359 return _json;
2788 } 2360 }
2789 } 2361 }
2790 2362
2791 /** The request for CreateInstance. */ 2363 /// The request for CreateInstance.
2792 class CreateInstanceRequest { 2364 class CreateInstanceRequest {
2793 /** 2365 /// Required. The instance to create. The name may be omitted, but if
2794 * Required. The instance to create. The name may be omitted, but if 2366 /// specified must be `<parent>/instances/<instance_id>`.
2795 * specified must be `<parent>/instances/<instance_id>`.
2796 */
2797 Instance instance; 2367 Instance instance;
2798 /** 2368
2799 * Required. The ID of the instance to create. Valid identifiers are of the 2369 /// Required. The ID of the instance to create. Valid identifiers are of the
2800 * form `a-z*[a-z0-9]` and must be between 6 and 30 characters in 2370 /// form `a-z*[a-z0-9]` and must be between 6 and 30 characters in
2801 * length. 2371 /// length.
2802 */
2803 core.String instanceId; 2372 core.String instanceId;
2804 2373
2805 CreateInstanceRequest(); 2374 CreateInstanceRequest();
2806 2375
2807 CreateInstanceRequest.fromJson(core.Map _json) { 2376 CreateInstanceRequest.fromJson(core.Map _json) {
2808 if (_json.containsKey("instance")) { 2377 if (_json.containsKey("instance")) {
2809 instance = new Instance.fromJson(_json["instance"]); 2378 instance = new Instance.fromJson(_json["instance"]);
2810 } 2379 }
2811 if (_json.containsKey("instanceId")) { 2380 if (_json.containsKey("instanceId")) {
2812 instanceId = _json["instanceId"]; 2381 instanceId = _json["instanceId"];
2813 } 2382 }
2814 } 2383 }
2815 2384
2816 core.Map<core.String, core.Object> toJson() { 2385 core.Map<core.String, core.Object> toJson() {
2817 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 2386 final core.Map<core.String, core.Object> _json =
2387 new core.Map<core.String, core.Object>();
2818 if (instance != null) { 2388 if (instance != null) {
2819 _json["instance"] = (instance).toJson(); 2389 _json["instance"] = (instance).toJson();
2820 } 2390 }
2821 if (instanceId != null) { 2391 if (instanceId != null) {
2822 _json["instanceId"] = instanceId; 2392 _json["instanceId"] = instanceId;
2823 } 2393 }
2824 return _json; 2394 return _json;
2825 } 2395 }
2826 } 2396 }
2827 2397
2828 /** Write a Data Access (Gin) log */ 2398 /// A Cloud Spanner database.
2829 class DataAccessOptions { 2399 class Database {
2400 /// Required. The name of the database. Values are of the form
2401 /// `projects/<project>/instances/<instance>/databases/<database>`,
2402 /// where `<database>` is as specified in the `CREATE DATABASE`
2403 /// statement. This name can be passed to other API methods to
2404 /// identify the database.
2405 core.String name;
2830 2406
2831 DataAccessOptions(); 2407 /// Output only. The current database state.
2832 2408 /// Possible string values are:
2833 DataAccessOptions.fromJson(core.Map _json) { 2409 /// - "STATE_UNSPECIFIED" : Not specified.
2834 } 2410 /// - "CREATING" : The database is still being created. Operations on the
2835 2411 /// database may fail
2836 core.Map<core.String, core.Object> toJson() { 2412 /// with `FAILED_PRECONDITION` in this state.
2837 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 2413 /// - "READY" : The database is fully created and ready for use.
2838 return _json;
2839 }
2840 }
2841
2842 /** A Cloud Spanner database. */
2843 class Database {
2844 /**
2845 * Required. The name of the database. Values are of the form
2846 * `projects/<project>/instances/<instance>/databases/<database>`,
2847 * where `<database>` is as specified in the `CREATE DATABASE`
2848 * statement. This name can be passed to other API methods to
2849 * identify the database.
2850 */
2851 core.String name;
2852 /**
2853 * Output only. The current database state.
2854 * Possible string values are:
2855 * - "STATE_UNSPECIFIED" : Not specified.
2856 * - "CREATING" : The database is still being created. Operations on the
2857 * database may fail
2858 * with `FAILED_PRECONDITION` in this state.
2859 * - "READY" : The database is fully created and ready for use.
2860 */
2861 core.String state; 2414 core.String state;
2862 2415
2863 Database(); 2416 Database();
2864 2417
2865 Database.fromJson(core.Map _json) { 2418 Database.fromJson(core.Map _json) {
2866 if (_json.containsKey("name")) { 2419 if (_json.containsKey("name")) {
2867 name = _json["name"]; 2420 name = _json["name"];
2868 } 2421 }
2869 if (_json.containsKey("state")) { 2422 if (_json.containsKey("state")) {
2870 state = _json["state"]; 2423 state = _json["state"];
2871 } 2424 }
2872 } 2425 }
2873 2426
2874 core.Map<core.String, core.Object> toJson() { 2427 core.Map<core.String, core.Object> toJson() {
2875 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 2428 final core.Map<core.String, core.Object> _json =
2429 new core.Map<core.String, core.Object>();
2876 if (name != null) { 2430 if (name != null) {
2877 _json["name"] = name; 2431 _json["name"] = name;
2878 } 2432 }
2879 if (state != null) { 2433 if (state != null) {
2880 _json["state"] = state; 2434 _json["state"] = state;
2881 } 2435 }
2882 return _json; 2436 return _json;
2883 } 2437 }
2884 } 2438 }
2885 2439
2886 /** Arguments to delete operations. */ 2440 /// Arguments to delete operations.
2887 class Delete { 2441 class Delete {
2888 /** Required. The primary keys of the rows within table to delete. */ 2442 /// Required. The primary keys of the rows within table to delete.
2889 KeySet keySet; 2443 KeySet keySet;
2890 /** Required. The table whose rows will be deleted. */ 2444
2445 /// Required. The table whose rows will be deleted.
2891 core.String table; 2446 core.String table;
2892 2447
2893 Delete(); 2448 Delete();
2894 2449
2895 Delete.fromJson(core.Map _json) { 2450 Delete.fromJson(core.Map _json) {
2896 if (_json.containsKey("keySet")) { 2451 if (_json.containsKey("keySet")) {
2897 keySet = new KeySet.fromJson(_json["keySet"]); 2452 keySet = new KeySet.fromJson(_json["keySet"]);
2898 } 2453 }
2899 if (_json.containsKey("table")) { 2454 if (_json.containsKey("table")) {
2900 table = _json["table"]; 2455 table = _json["table"];
2901 } 2456 }
2902 } 2457 }
2903 2458
2904 core.Map<core.String, core.Object> toJson() { 2459 core.Map<core.String, core.Object> toJson() {
2905 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 2460 final core.Map<core.String, core.Object> _json =
2461 new core.Map<core.String, core.Object>();
2906 if (keySet != null) { 2462 if (keySet != null) {
2907 _json["keySet"] = (keySet).toJson(); 2463 _json["keySet"] = (keySet).toJson();
2908 } 2464 }
2909 if (table != null) { 2465 if (table != null) {
2910 _json["table"] = table; 2466 _json["table"] = table;
2911 } 2467 }
2912 return _json; 2468 return _json;
2913 } 2469 }
2914 } 2470 }
2915 2471
2916 /** 2472 /// A generic empty message that you can re-use to avoid defining duplicated
2917 * A generic empty message that you can re-use to avoid defining duplicated 2473 /// empty messages in your APIs. A typical example is to use it as the request
2918 * empty messages in your APIs. A typical example is to use it as the request 2474 /// or the response type of an API method. For instance:
2919 * or the response type of an API method. For instance: 2475 ///
2920 * 2476 /// service Foo {
2921 * service Foo { 2477 /// rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
2922 * rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); 2478 /// }
2923 * } 2479 ///
2924 * 2480 /// The JSON representation for `Empty` is empty JSON object `{}`.
2925 * The JSON representation for `Empty` is empty JSON object `{}`.
2926 */
2927 class Empty { 2481 class Empty {
2928
2929 Empty(); 2482 Empty();
2930 2483
2931 Empty.fromJson(core.Map _json) { 2484 Empty.fromJson(core.Map _json) {}
2932 }
2933 2485
2934 core.Map<core.String, core.Object> toJson() { 2486 core.Map<core.String, core.Object> toJson() {
2935 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 2487 final core.Map<core.String, core.Object> _json =
2488 new core.Map<core.String, core.Object>();
2936 return _json; 2489 return _json;
2937 } 2490 }
2938 } 2491 }
2939 2492
2940 /** 2493 /// The request for ExecuteSql and
2941 * The request for ExecuteSql and 2494 /// ExecuteStreamingSql.
2942 * ExecuteStreamingSql.
2943 */
2944 class ExecuteSqlRequest { 2495 class ExecuteSqlRequest {
2945 /** 2496 /// It is not always possible for Cloud Spanner to infer the right SQL type
2946 * It is not always possible for Cloud Spanner to infer the right SQL type 2497 /// from a JSON value. For example, values of type `BYTES` and values
2947 * from a JSON value. For example, values of type `BYTES` and values 2498 /// of type `STRING` both appear in params as JSON strings.
2948 * of type `STRING` both appear in params as JSON strings. 2499 ///
2949 * 2500 /// In these cases, `param_types` can be used to specify the exact
2950 * In these cases, `param_types` can be used to specify the exact 2501 /// SQL type for some or all of the SQL query parameters. See the
2951 * SQL type for some or all of the SQL query parameters. See the 2502 /// definition of Type for more information
2952 * definition of Type for more information 2503 /// about SQL types.
2953 * about SQL types.
2954 */
2955 core.Map<core.String, Type> paramTypes; 2504 core.Map<core.String, Type> paramTypes;
2956 /** 2505
2957 * The SQL query string can contain parameter placeholders. A parameter 2506 /// The SQL query string can contain parameter placeholders. A parameter
2958 * placeholder consists of `'@'` followed by the parameter 2507 /// placeholder consists of `'@'` followed by the parameter
2959 * name. Parameter names consist of any combination of letters, 2508 /// name. Parameter names consist of any combination of letters,
2960 * numbers, and underscores. 2509 /// numbers, and underscores.
2961 * 2510 ///
2962 * Parameters can appear anywhere that a literal value is expected. The same 2511 /// Parameters can appear anywhere that a literal value is expected. The
2963 * parameter name can be used more than once, for example: 2512 /// same
2964 * `"WHERE id > @msg_id AND id < @msg_id + 100"` 2513 /// parameter name can be used more than once, for example:
2965 * 2514 /// `"WHERE id > @msg_id AND id < @msg_id + 100"`
2966 * It is an error to execute an SQL query with unbound parameters. 2515 ///
2967 * 2516 /// It is an error to execute an SQL query with unbound parameters.
2968 * Parameter values are specified using `params`, which is a JSON 2517 ///
2969 * object whose keys are parameter names, and whose values are the 2518 /// Parameter values are specified using `params`, which is a JSON
2970 * corresponding parameter values. 2519 /// object whose keys are parameter names, and whose values are the
2971 * 2520 /// corresponding parameter values.
2972 * The values for Object must be JSON objects. It can consist of `num`, 2521 ///
2973 * `String`, `bool` and `null` as well as `Map` and `List` values. 2522 /// The values for Object must be JSON objects. It can consist of `num`,
2974 */ 2523 /// `String`, `bool` and `null` as well as `Map` and `List` values.
2975 core.Map<core.String, core.Object> params; 2524 core.Map<core.String, core.Object> params;
2976 /** 2525
2977 * Used to control the amount of debugging information returned in 2526 /// Used to control the amount of debugging information returned in
2978 * ResultSetStats. 2527 /// ResultSetStats.
2979 * Possible string values are: 2528 /// Possible string values are:
2980 * - "NORMAL" : The default mode where only the query result, without any 2529 /// - "NORMAL" : The default mode where only the query result, without any
2981 * information 2530 /// information
2982 * about the query plan is returned. 2531 /// about the query plan is returned.
2983 * - "PLAN" : This mode returns only the query plan, without any result rows 2532 /// - "PLAN" : This mode returns only the query plan, without any result rows
2984 * or 2533 /// or
2985 * execution statistics information. 2534 /// execution statistics information.
2986 * - "PROFILE" : This mode returns both the query plan and the execution 2535 /// - "PROFILE" : This mode returns both the query plan and the execution
2987 * statistics along 2536 /// statistics along
2988 * with the result rows. 2537 /// with the result rows.
2989 */
2990 core.String queryMode; 2538 core.String queryMode;
2991 /** 2539
2992 * If this request is resuming a previously interrupted SQL query 2540 /// If this request is resuming a previously interrupted SQL query
2993 * execution, `resume_token` should be copied from the last 2541 /// execution, `resume_token` should be copied from the last
2994 * PartialResultSet yielded before the interruption. Doing this 2542 /// PartialResultSet yielded before the interruption. Doing this
2995 * enables the new SQL query execution to resume where the last one left 2543 /// enables the new SQL query execution to resume where the last one left
2996 * off. The rest of the request parameters must exactly match the 2544 /// off. The rest of the request parameters must exactly match the
2997 * request that yielded this token. 2545 /// request that yielded this token.
2998 */
2999 core.String resumeToken; 2546 core.String resumeToken;
3000 core.List<core.int> get resumeTokenAsBytes { 2547 core.List<core.int> get resumeTokenAsBytes {
3001 return convert.BASE64.decode(resumeToken); 2548 return convert.BASE64.decode(resumeToken);
3002 } 2549 }
3003 2550
3004 void set resumeTokenAsBytes(core.List<core.int> _bytes) { 2551 void set resumeTokenAsBytes(core.List<core.int> _bytes) {
3005 resumeToken = convert.BASE64.encode(_bytes).replaceAll("/", "_").replaceAll( "+", "-"); 2552 resumeToken =
2553 convert.BASE64.encode(_bytes).replaceAll("/", "_").replaceAll("+", "-");
3006 } 2554 }
3007 /** Required. The SQL query string. */ 2555
2556 /// Required. The SQL query string.
3008 core.String sql; 2557 core.String sql;
3009 /** 2558
3010 * The transaction to use. If none is provided, the default is a 2559 /// The transaction to use. If none is provided, the default is a
3011 * temporary read-only transaction with strong concurrency. 2560 /// temporary read-only transaction with strong concurrency.
3012 */
3013 TransactionSelector transaction; 2561 TransactionSelector transaction;
3014 2562
3015 ExecuteSqlRequest(); 2563 ExecuteSqlRequest();
3016 2564
3017 ExecuteSqlRequest.fromJson(core.Map _json) { 2565 ExecuteSqlRequest.fromJson(core.Map _json) {
3018 if (_json.containsKey("paramTypes")) { 2566 if (_json.containsKey("paramTypes")) {
3019 paramTypes = commons.mapMap<core.Map<core.String, core.Object>, Type>(_jso n["paramTypes"], (core.Map<core.String, core.Object> item) => new Type.fromJson( item)); 2567 paramTypes = commons.mapMap<core.Map<core.String, core.Object>, Type>(
2568 _json["paramTypes"],
2569 (core.Map<core.String, core.Object> item) => new Type.fromJson(item));
3020 } 2570 }
3021 if (_json.containsKey("params")) { 2571 if (_json.containsKey("params")) {
3022 params = _json["params"]; 2572 params = _json["params"];
3023 } 2573 }
3024 if (_json.containsKey("queryMode")) { 2574 if (_json.containsKey("queryMode")) {
3025 queryMode = _json["queryMode"]; 2575 queryMode = _json["queryMode"];
3026 } 2576 }
3027 if (_json.containsKey("resumeToken")) { 2577 if (_json.containsKey("resumeToken")) {
3028 resumeToken = _json["resumeToken"]; 2578 resumeToken = _json["resumeToken"];
3029 } 2579 }
3030 if (_json.containsKey("sql")) { 2580 if (_json.containsKey("sql")) {
3031 sql = _json["sql"]; 2581 sql = _json["sql"];
3032 } 2582 }
3033 if (_json.containsKey("transaction")) { 2583 if (_json.containsKey("transaction")) {
3034 transaction = new TransactionSelector.fromJson(_json["transaction"]); 2584 transaction = new TransactionSelector.fromJson(_json["transaction"]);
3035 } 2585 }
3036 } 2586 }
3037 2587
3038 core.Map<core.String, core.Object> toJson() { 2588 core.Map<core.String, core.Object> toJson() {
3039 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 2589 final core.Map<core.String, core.Object> _json =
2590 new core.Map<core.String, core.Object>();
3040 if (paramTypes != null) { 2591 if (paramTypes != null) {
3041 _json["paramTypes"] = commons.mapMap<Type, core.Map<core.String, core.Obje ct>>(paramTypes, (Type item) => (item).toJson()); 2592 _json["paramTypes"] =
2593 commons.mapMap<Type, core.Map<core.String, core.Object>>(
2594 paramTypes, (Type item) => (item).toJson());
3042 } 2595 }
3043 if (params != null) { 2596 if (params != null) {
3044 _json["params"] = params; 2597 _json["params"] = params;
3045 } 2598 }
3046 if (queryMode != null) { 2599 if (queryMode != null) {
3047 _json["queryMode"] = queryMode; 2600 _json["queryMode"] = queryMode;
3048 } 2601 }
3049 if (resumeToken != null) { 2602 if (resumeToken != null) {
3050 _json["resumeToken"] = resumeToken; 2603 _json["resumeToken"] = resumeToken;
3051 } 2604 }
3052 if (sql != null) { 2605 if (sql != null) {
3053 _json["sql"] = sql; 2606 _json["sql"] = sql;
3054 } 2607 }
3055 if (transaction != null) { 2608 if (transaction != null) {
3056 _json["transaction"] = (transaction).toJson(); 2609 _json["transaction"] = (transaction).toJson();
3057 } 2610 }
3058 return _json; 2611 return _json;
3059 } 2612 }
3060 } 2613 }
3061 2614
3062 /** 2615 /// Message representing a single field of a struct.
3063 * Represents an expression text. Example: 2616 class Field {
3064 * 2617 /// The name of the field. For reads, this is the column name. For
3065 * title: "User account presence" 2618 /// SQL queries, it is the column alias (e.g., `"Word"` in the
3066 * description: "Determines whether the request has a user account" 2619 /// query `"SELECT 'hello' AS Word"`), or the column name (e.g.,
3067 * expression: "size(request.user) > 0" 2620 /// `"ColName"` in the query `"SELECT ColName FROM Table"`). Some
3068 */ 2621 /// columns might have an empty name (e.g., !"SELECT
3069 class Expr { 2622 /// UPPER(ColName)"`). Note that a query result can contain
3070 /** 2623 /// multiple fields with the same name.
3071 * An optional description of the expression. This is a longer text which 2624 core.String name;
3072 * describes the expression, e.g. when hovered over it in a UI.
3073 */
3074 core.String description;
3075 /**
3076 * Textual representation of an expression in
3077 * Common Expression Language syntax.
3078 *
3079 * The application context of the containing message determines which
3080 * well-known feature set of CEL is supported.
3081 */
3082 core.String expression;
3083 /**
3084 * An optional string indicating the location of the expression for error
3085 * reporting, e.g. a file name and a position in the file.
3086 */
3087 core.String location;
3088 /**
3089 * An optional title for the expression, i.e. a short string describing
3090 * its purpose. This can be used e.g. in UIs which allow to enter the
3091 * expression.
3092 */
3093 core.String title;
3094 2625
3095 Expr(); 2626 /// The type of the field.
3096
3097 Expr.fromJson(core.Map _json) {
3098 if (_json.containsKey("description")) {
3099 description = _json["description"];
3100 }
3101 if (_json.containsKey("expression")) {
3102 expression = _json["expression"];
3103 }
3104 if (_json.containsKey("location")) {
3105 location = _json["location"];
3106 }
3107 if (_json.containsKey("title")) {
3108 title = _json["title"];
3109 }
3110 }
3111
3112 core.Map<core.String, core.Object> toJson() {
3113 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>();
3114 if (description != null) {
3115 _json["description"] = description;
3116 }
3117 if (expression != null) {
3118 _json["expression"] = expression;
3119 }
3120 if (location != null) {
3121 _json["location"] = location;
3122 }
3123 if (title != null) {
3124 _json["title"] = title;
3125 }
3126 return _json;
3127 }
3128 }
3129
3130 /** Message representing a single field of a struct. */
3131 class Field {
3132 /**
3133 * The name of the field. For reads, this is the column name. For
3134 * SQL queries, it is the column alias (e.g., `"Word"` in the
3135 * query `"SELECT 'hello' AS Word"`), or the column name (e.g.,
3136 * `"ColName"` in the query `"SELECT ColName FROM Table"`). Some
3137 * columns might have an empty name (e.g., !"SELECT
3138 * UPPER(ColName)"`). Note that a query result can contain
3139 * multiple fields with the same name.
3140 */
3141 core.String name;
3142 /** The type of the field. */
3143 Type type; 2627 Type type;
3144 2628
3145 Field(); 2629 Field();
3146 2630
3147 Field.fromJson(core.Map _json) { 2631 Field.fromJson(core.Map _json) {
3148 if (_json.containsKey("name")) { 2632 if (_json.containsKey("name")) {
3149 name = _json["name"]; 2633 name = _json["name"];
3150 } 2634 }
3151 if (_json.containsKey("type")) { 2635 if (_json.containsKey("type")) {
3152 type = new Type.fromJson(_json["type"]); 2636 type = new Type.fromJson(_json["type"]);
3153 } 2637 }
3154 } 2638 }
3155 2639
3156 core.Map<core.String, core.Object> toJson() { 2640 core.Map<core.String, core.Object> toJson() {
3157 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 2641 final core.Map<core.String, core.Object> _json =
2642 new core.Map<core.String, core.Object>();
3158 if (name != null) { 2643 if (name != null) {
3159 _json["name"] = name; 2644 _json["name"] = name;
3160 } 2645 }
3161 if (type != null) { 2646 if (type != null) {
3162 _json["type"] = (type).toJson(); 2647 _json["type"] = (type).toJson();
3163 } 2648 }
3164 return _json; 2649 return _json;
3165 } 2650 }
3166 } 2651 }
3167 2652
3168 /** The response for GetDatabaseDdl. */ 2653 /// The response for GetDatabaseDdl.
3169 class GetDatabaseDdlResponse { 2654 class GetDatabaseDdlResponse {
3170 /** 2655 /// A list of formatted DDL statements defining the schema of the database
3171 * A list of formatted DDL statements defining the schema of the database 2656 /// specified in the request.
3172 * specified in the request.
3173 */
3174 core.List<core.String> statements; 2657 core.List<core.String> statements;
3175 2658
3176 GetDatabaseDdlResponse(); 2659 GetDatabaseDdlResponse();
3177 2660
3178 GetDatabaseDdlResponse.fromJson(core.Map _json) { 2661 GetDatabaseDdlResponse.fromJson(core.Map _json) {
3179 if (_json.containsKey("statements")) { 2662 if (_json.containsKey("statements")) {
3180 statements = _json["statements"]; 2663 statements = _json["statements"];
3181 } 2664 }
3182 } 2665 }
3183 2666
3184 core.Map<core.String, core.Object> toJson() { 2667 core.Map<core.String, core.Object> toJson() {
3185 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 2668 final core.Map<core.String, core.Object> _json =
2669 new core.Map<core.String, core.Object>();
3186 if (statements != null) { 2670 if (statements != null) {
3187 _json["statements"] = statements; 2671 _json["statements"] = statements;
3188 } 2672 }
3189 return _json; 2673 return _json;
3190 } 2674 }
3191 } 2675 }
3192 2676
3193 /** Request message for `GetIamPolicy` method. */ 2677 /// Request message for `GetIamPolicy` method.
3194 class GetIamPolicyRequest { 2678 class GetIamPolicyRequest {
3195
3196 GetIamPolicyRequest(); 2679 GetIamPolicyRequest();
3197 2680
3198 GetIamPolicyRequest.fromJson(core.Map _json) { 2681 GetIamPolicyRequest.fromJson(core.Map _json) {}
3199 }
3200 2682
3201 core.Map<core.String, core.Object> toJson() { 2683 core.Map<core.String, core.Object> toJson() {
3202 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 2684 final core.Map<core.String, core.Object> _json =
2685 new core.Map<core.String, core.Object>();
3203 return _json; 2686 return _json;
3204 } 2687 }
3205 } 2688 }
3206 2689
3207 /** 2690 /// An isolated set of Cloud Spanner resources on which databases can be
3208 * An isolated set of Cloud Spanner resources on which databases can be hosted. 2691 /// hosted.
3209 */
3210 class Instance { 2692 class Instance {
3211 /** 2693 /// Required. The name of the instance's configuration. Values are of the
3212 * Required. The name of the instance's configuration. Values are of the form 2694 /// form
3213 * `projects/<project>/instanceConfigs/<configuration>`. See 2695 /// `projects/<project>/instanceConfigs/<configuration>`. See
3214 * also InstanceConfig and 2696 /// also InstanceConfig and
3215 * ListInstanceConfigs. 2697 /// ListInstanceConfigs.
3216 */
3217 core.String config; 2698 core.String config;
3218 /** 2699
3219 * Required. The descriptive name for this instance as it appears in UIs. 2700 /// Required. The descriptive name for this instance as it appears in UIs.
3220 * Must be unique per project and between 4 and 30 characters in length. 2701 /// Must be unique per project and between 4 and 30 characters in length.
3221 */
3222 core.String displayName; 2702 core.String displayName;
3223 /** 2703
3224 * Cloud Labels are a flexible and lightweight mechanism for organizing cloud 2704 /// Cloud Labels are a flexible and lightweight mechanism for organizing
3225 * resources into groups that reflect a customer's organizational needs and 2705 /// cloud
3226 * deployment strategies. Cloud Labels can be used to filter collections of 2706 /// resources into groups that reflect a customer's organizational needs and
3227 * resources. They can be used to control how resource metrics are aggregated. 2707 /// deployment strategies. Cloud Labels can be used to filter collections of
3228 * And they can be used as arguments to policy management rules (e.g. route, 2708 /// resources. They can be used to control how resource metrics are
3229 * firewall, load balancing, etc.). 2709 /// aggregated.
3230 * 2710 /// And they can be used as arguments to policy management rules (e.g. route,
3231 * * Label keys must be between 1 and 63 characters long and must conform to 2711 /// firewall, load balancing, etc.).
3232 * the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`. 2712 ///
3233 * * Label values must be between 0 and 63 characters long and must conform 2713 /// * Label keys must be between 1 and 63 characters long and must conform to
3234 * to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`. 2714 /// the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.
3235 * * No more than 64 labels can be associated with a given resource. 2715 /// * Label values must be between 0 and 63 characters long and must conform
3236 * 2716 /// to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.
3237 * See https://goo.gl/xmQnxf for more information on and examples of labels. 2717 /// * No more than 64 labels can be associated with a given resource.
3238 * 2718 ///
3239 * If you plan to use labels in your own code, please note that additional 2719 /// See https://goo.gl/xmQnxf for more information on and examples of labels.
3240 * characters may be allowed in the future. And so you are advised to use an 2720 ///
3241 * internal label representation, such as JSON, which doesn't rely upon 2721 /// If you plan to use labels in your own code, please note that additional
3242 * specific characters being disallowed. For example, representing labels 2722 /// characters may be allowed in the future. And so you are advised to use an
3243 * as the string: name + "_" + value would prove problematic if we were to 2723 /// internal label representation, such as JSON, which doesn't rely upon
3244 * allow "_" in a future release. 2724 /// specific characters being disallowed. For example, representing labels
3245 */ 2725 /// as the string: name + "_" + value would prove problematic if we were to
2726 /// allow "_" in a future release.
3246 core.Map<core.String, core.String> labels; 2727 core.Map<core.String, core.String> labels;
3247 /** 2728
3248 * Required. A unique identifier for the instance, which cannot be changed 2729 /// Required. A unique identifier for the instance, which cannot be changed
3249 * after the instance is created. Values are of the form 2730 /// after the instance is created. Values are of the form
3250 * `projects/<project>/instances/a-z*[a-z0-9]`. The final 2731 /// `projects/<project>/instances/a-z*[a-z0-9]`. The final
3251 * segment of the name must be between 6 and 30 characters in length. 2732 /// segment of the name must be between 6 and 30 characters in length.
3252 */
3253 core.String name; 2733 core.String name;
3254 /** 2734
3255 * Required. The number of nodes allocated to this instance. This may be zero 2735 /// Required. The number of nodes allocated to this instance. This may be
3256 * in API responses for instances that are not yet in state `READY`. 2736 /// zero
3257 * 2737 /// in API responses for instances that are not yet in state `READY`.
3258 * Each Spanner node can provide up to 10,000 QPS of reads or 2000 QPS of 2738 ///
3259 * writes (writing single rows at 1KB data per row), and 2 TiB storage. 2739 /// Each Spanner node can provide up to 10,000 QPS of reads or 2000 QPS of
3260 * 2740 /// writes (writing single rows at 1KB data per row), and 2 TiB storage.
3261 * For optimal performance, we recommend provisioning enough nodes to keep 2741 ///
3262 * overall CPU utilization under 75%. 2742 /// For optimal performance, we recommend provisioning enough nodes to keep
3263 * 2743 /// overall CPU utilization under 75%.
3264 * A minimum of 3 nodes is recommended for production environments. This 2744 ///
3265 * minimum is required for SLAs to apply to your instance. 2745 /// A minimum of 3 nodes is recommended for production environments. This
3266 * 2746 /// minimum is required for SLAs to apply to your instance.
3267 * Note that Cloud Spanner performance is highly dependent on workload, schema 2747 ///
3268 * design, and dataset characteristics. The performance numbers above are 2748 /// Note that Cloud Spanner performance is highly dependent on workload,
3269 * estimates, and assume [best 2749 /// schema
3270 * practices](https://cloud.google.com/spanner/docs/bulk-loading) 2750 /// design, and dataset characteristics. The performance numbers above are
3271 * are followed. 2751 /// estimates, and assume [best
3272 */ 2752 /// practices](https://cloud.google.com/spanner/docs/bulk-loading)
2753 /// are followed.
3273 core.int nodeCount; 2754 core.int nodeCount;
3274 /** 2755
3275 * Output only. The current instance state. For 2756 /// Output only. The current instance state. For
3276 * CreateInstance, the state must be 2757 /// CreateInstance, the state must be
3277 * either omitted or set to `CREATING`. For 2758 /// either omitted or set to `CREATING`. For
3278 * UpdateInstance, the state must be 2759 /// UpdateInstance, the state must be
3279 * either omitted or set to `READY`. 2760 /// either omitted or set to `READY`.
3280 * Possible string values are: 2761 /// Possible string values are:
3281 * - "STATE_UNSPECIFIED" : Not specified. 2762 /// - "STATE_UNSPECIFIED" : Not specified.
3282 * - "CREATING" : The instance is still being created. Resources may not be 2763 /// - "CREATING" : The instance is still being created. Resources may not be
3283 * available yet, and operations such as database creation may not 2764 /// available yet, and operations such as database creation may not
3284 * work. 2765 /// work.
3285 * - "READY" : The instance is fully created and ready to do work such as 2766 /// - "READY" : The instance is fully created and ready to do work such as
3286 * creating databases. 2767 /// creating databases.
3287 */
3288 core.String state; 2768 core.String state;
3289 2769
3290 Instance(); 2770 Instance();
3291 2771
3292 Instance.fromJson(core.Map _json) { 2772 Instance.fromJson(core.Map _json) {
3293 if (_json.containsKey("config")) { 2773 if (_json.containsKey("config")) {
3294 config = _json["config"]; 2774 config = _json["config"];
3295 } 2775 }
3296 if (_json.containsKey("displayName")) { 2776 if (_json.containsKey("displayName")) {
3297 displayName = _json["displayName"]; 2777 displayName = _json["displayName"];
3298 } 2778 }
3299 if (_json.containsKey("labels")) { 2779 if (_json.containsKey("labels")) {
3300 labels = _json["labels"]; 2780 labels = _json["labels"];
3301 } 2781 }
3302 if (_json.containsKey("name")) { 2782 if (_json.containsKey("name")) {
3303 name = _json["name"]; 2783 name = _json["name"];
3304 } 2784 }
3305 if (_json.containsKey("nodeCount")) { 2785 if (_json.containsKey("nodeCount")) {
3306 nodeCount = _json["nodeCount"]; 2786 nodeCount = _json["nodeCount"];
3307 } 2787 }
3308 if (_json.containsKey("state")) { 2788 if (_json.containsKey("state")) {
3309 state = _json["state"]; 2789 state = _json["state"];
3310 } 2790 }
3311 } 2791 }
3312 2792
3313 core.Map<core.String, core.Object> toJson() { 2793 core.Map<core.String, core.Object> toJson() {
3314 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 2794 final core.Map<core.String, core.Object> _json =
2795 new core.Map<core.String, core.Object>();
3315 if (config != null) { 2796 if (config != null) {
3316 _json["config"] = config; 2797 _json["config"] = config;
3317 } 2798 }
3318 if (displayName != null) { 2799 if (displayName != null) {
3319 _json["displayName"] = displayName; 2800 _json["displayName"] = displayName;
3320 } 2801 }
3321 if (labels != null) { 2802 if (labels != null) {
3322 _json["labels"] = labels; 2803 _json["labels"] = labels;
3323 } 2804 }
3324 if (name != null) { 2805 if (name != null) {
3325 _json["name"] = name; 2806 _json["name"] = name;
3326 } 2807 }
3327 if (nodeCount != null) { 2808 if (nodeCount != null) {
3328 _json["nodeCount"] = nodeCount; 2809 _json["nodeCount"] = nodeCount;
3329 } 2810 }
3330 if (state != null) { 2811 if (state != null) {
3331 _json["state"] = state; 2812 _json["state"] = state;
3332 } 2813 }
3333 return _json; 2814 return _json;
3334 } 2815 }
3335 } 2816 }
3336 2817
3337 /** 2818 /// A possible configuration for a Cloud Spanner instance. Configurations
3338 * A possible configuration for a Cloud Spanner instance. Configurations 2819 /// define the geographic placement of nodes and their replication.
3339 * define the geographic placement of nodes and their replication.
3340 */
3341 class InstanceConfig { 2820 class InstanceConfig {
3342 /** The name of this instance configuration as it appears in UIs. */ 2821 /// The name of this instance configuration as it appears in UIs.
3343 core.String displayName; 2822 core.String displayName;
3344 /** 2823
3345 * A unique identifier for the instance configuration. Values 2824 /// A unique identifier for the instance configuration. Values
3346 * are of the form 2825 /// are of the form
3347 * `projects/<project>/instanceConfigs/a-z*` 2826 /// `projects/<project>/instanceConfigs/a-z*`
3348 */
3349 core.String name; 2827 core.String name;
3350 2828
3351 InstanceConfig(); 2829 InstanceConfig();
3352 2830
3353 InstanceConfig.fromJson(core.Map _json) { 2831 InstanceConfig.fromJson(core.Map _json) {
3354 if (_json.containsKey("displayName")) { 2832 if (_json.containsKey("displayName")) {
3355 displayName = _json["displayName"]; 2833 displayName = _json["displayName"];
3356 } 2834 }
3357 if (_json.containsKey("name")) { 2835 if (_json.containsKey("name")) {
3358 name = _json["name"]; 2836 name = _json["name"];
3359 } 2837 }
3360 } 2838 }
3361 2839
3362 core.Map<core.String, core.Object> toJson() { 2840 core.Map<core.String, core.Object> toJson() {
3363 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 2841 final core.Map<core.String, core.Object> _json =
2842 new core.Map<core.String, core.Object>();
3364 if (displayName != null) { 2843 if (displayName != null) {
3365 _json["displayName"] = displayName; 2844 _json["displayName"] = displayName;
3366 } 2845 }
3367 if (name != null) { 2846 if (name != null) {
3368 _json["name"] = name; 2847 _json["name"] = name;
3369 } 2848 }
3370 return _json; 2849 return _json;
3371 } 2850 }
3372 } 2851 }
3373 2852
3374 /** 2853 /// KeyRange represents a range of rows in a table or index.
3375 * KeyRange represents a range of rows in a table or index. 2854 ///
3376 * 2855 /// A range has a start key and an end key. These keys can be open or
3377 * A range has a start key and an end key. These keys can be open or 2856 /// closed, indicating if the range includes rows with that key.
3378 * closed, indicating if the range includes rows with that key. 2857 ///
3379 * 2858 /// Keys are represented by lists, where the ith value in the list
3380 * Keys are represented by lists, where the ith value in the list 2859 /// corresponds to the ith component of the table or index primary key.
3381 * corresponds to the ith component of the table or index primary key. 2860 /// Individual values are encoded as described here.
3382 * Individual values are encoded as described here. 2861 ///
3383 * 2862 /// For example, consider the following table definition:
3384 * For example, consider the following table definition: 2863 ///
3385 * 2864 /// CREATE TABLE UserEvents (
3386 * CREATE TABLE UserEvents ( 2865 /// UserName STRING(MAX),
3387 * UserName STRING(MAX), 2866 /// EventDate STRING(10)
3388 * EventDate STRING(10) 2867 /// ) PRIMARY KEY(UserName, EventDate);
3389 * ) PRIMARY KEY(UserName, EventDate); 2868 ///
3390 * 2869 /// The following keys name rows in this table:
3391 * The following keys name rows in this table: 2870 ///
3392 * 2871 /// "Bob", "2014-09-23"
3393 * "Bob", "2014-09-23" 2872 ///
3394 * 2873 /// Since the `UserEvents` table's `PRIMARY KEY` clause names two
3395 * Since the `UserEvents` table's `PRIMARY KEY` clause names two 2874 /// columns, each `UserEvents` key has two elements; the first is the
3396 * columns, each `UserEvents` key has two elements; the first is the 2875 /// `UserName`, and the second is the `EventDate`.
3397 * `UserName`, and the second is the `EventDate`. 2876 ///
3398 * 2877 /// Key ranges with multiple components are interpreted
3399 * Key ranges with multiple components are interpreted 2878 /// lexicographically by component using the table or index key's declared
3400 * lexicographically by component using the table or index key's declared 2879 /// sort order. For example, the following range returns all events for
3401 * sort order. For example, the following range returns all events for 2880 /// user `"Bob"` that occurred in the year 2015:
3402 * user `"Bob"` that occurred in the year 2015: 2881 ///
3403 * 2882 /// "start_closed": ["Bob", "2015-01-01"]
3404 * "start_closed": ["Bob", "2015-01-01"] 2883 /// "end_closed": ["Bob", "2015-12-31"]
3405 * "end_closed": ["Bob", "2015-12-31"] 2884 ///
3406 * 2885 /// Start and end keys can omit trailing key components. This affects the
3407 * Start and end keys can omit trailing key components. This affects the 2886 /// inclusion and exclusion of rows that exactly match the provided key
3408 * inclusion and exclusion of rows that exactly match the provided key 2887 /// components: if the key is closed, then rows that exactly match the
3409 * components: if the key is closed, then rows that exactly match the 2888 /// provided components are included; if the key is open, then rows
3410 * provided components are included; if the key is open, then rows 2889 /// that exactly match are not included.
3411 * that exactly match are not included. 2890 ///
3412 * 2891 /// For example, the following range includes all events for `"Bob"` that
3413 * For example, the following range includes all events for `"Bob"` that 2892 /// occurred during and after the year 2000:
3414 * occurred during and after the year 2000: 2893 ///
3415 * 2894 /// "start_closed": ["Bob", "2000-01-01"]
3416 * "start_closed": ["Bob", "2000-01-01"] 2895 /// "end_closed": ["Bob"]
3417 * "end_closed": ["Bob"] 2896 ///
3418 * 2897 /// The next example retrieves all events for `"Bob"`:
3419 * The next example retrieves all events for `"Bob"`: 2898 ///
3420 * 2899 /// "start_closed": ["Bob"]
3421 * "start_closed": ["Bob"] 2900 /// "end_closed": ["Bob"]
3422 * "end_closed": ["Bob"] 2901 ///
3423 * 2902 /// To retrieve events before the year 2000:
3424 * To retrieve events before the year 2000: 2903 ///
3425 * 2904 /// "start_closed": ["Bob"]
3426 * "start_closed": ["Bob"] 2905 /// "end_open": ["Bob", "2000-01-01"]
3427 * "end_open": ["Bob", "2000-01-01"] 2906 ///
3428 * 2907 /// The following range includes all rows in the table:
3429 * The following range includes all rows in the table: 2908 ///
3430 * 2909 /// "start_closed": []
3431 * "start_closed": [] 2910 /// "end_closed": []
3432 * "end_closed": [] 2911 ///
3433 * 2912 /// This range returns all users whose `UserName` begins with any
3434 * This range returns all users whose `UserName` begins with any 2913 /// character from A to C:
3435 * character from A to C: 2914 ///
3436 * 2915 /// "start_closed": ["A"]
3437 * "start_closed": ["A"] 2916 /// "end_open": ["D"]
3438 * "end_open": ["D"] 2917 ///
3439 * 2918 /// This range returns all users whose `UserName` begins with B:
3440 * This range returns all users whose `UserName` begins with B: 2919 ///
3441 * 2920 /// "start_closed": ["B"]
3442 * "start_closed": ["B"] 2921 /// "end_open": ["C"]
3443 * "end_open": ["C"] 2922 ///
3444 * 2923 /// Key ranges honor column sort order. For example, suppose a table is
3445 * Key ranges honor column sort order. For example, suppose a table is 2924 /// defined as follows:
3446 * defined as follows: 2925 ///
3447 * 2926 /// CREATE TABLE DescendingSortedTable {
3448 * CREATE TABLE DescendingSortedTable { 2927 /// Key INT64,
3449 * Key INT64, 2928 /// ...
3450 * ... 2929 /// ) PRIMARY KEY(Key DESC);
3451 * ) PRIMARY KEY(Key DESC); 2930 ///
3452 * 2931 /// The following range retrieves all rows with key values between 1
3453 * The following range retrieves all rows with key values between 1 2932 /// and 100 inclusive:
3454 * and 100 inclusive: 2933 ///
3455 * 2934 /// "start_closed": ["100"]
3456 * "start_closed": ["100"] 2935 /// "end_closed": ["1"]
3457 * "end_closed": ["1"] 2936 ///
3458 * 2937 /// Note that 100 is passed as the start, and 1 is passed as the end,
3459 * Note that 100 is passed as the start, and 1 is passed as the end, 2938 /// because `Key` is a descending column in the schema.
3460 * because `Key` is a descending column in the schema.
3461 */
3462 class KeyRange { 2939 class KeyRange {
3463 /** 2940 /// If the end is closed, then the range includes all rows whose
3464 * If the end is closed, then the range includes all rows whose 2941 /// first `len(end_closed)` key columns exactly match `end_closed`.
3465 * first `len(end_closed)` key columns exactly match `end_closed`. 2942 ///
3466 * 2943 /// The values for Object must be JSON objects. It can consist of `num`,
3467 * The values for Object must be JSON objects. It can consist of `num`, 2944 /// `String`, `bool` and `null` as well as `Map` and `List` values.
3468 * `String`, `bool` and `null` as well as `Map` and `List` values.
3469 */
3470 core.List<core.Object> endClosed; 2945 core.List<core.Object> endClosed;
3471 /** 2946
3472 * If the end is open, then the range excludes rows whose first 2947 /// If the end is open, then the range excludes rows whose first
3473 * `len(end_open)` key columns exactly match `end_open`. 2948 /// `len(end_open)` key columns exactly match `end_open`.
3474 * 2949 ///
3475 * The values for Object must be JSON objects. It can consist of `num`, 2950 /// The values for Object must be JSON objects. It can consist of `num`,
3476 * `String`, `bool` and `null` as well as `Map` and `List` values. 2951 /// `String`, `bool` and `null` as well as `Map` and `List` values.
3477 */
3478 core.List<core.Object> endOpen; 2952 core.List<core.Object> endOpen;
3479 /** 2953
3480 * If the start is closed, then the range includes all rows whose 2954 /// If the start is closed, then the range includes all rows whose
3481 * first `len(start_closed)` key columns exactly match `start_closed`. 2955 /// first `len(start_closed)` key columns exactly match `start_closed`.
3482 * 2956 ///
3483 * The values for Object must be JSON objects. It can consist of `num`, 2957 /// The values for Object must be JSON objects. It can consist of `num`,
3484 * `String`, `bool` and `null` as well as `Map` and `List` values. 2958 /// `String`, `bool` and `null` as well as `Map` and `List` values.
3485 */
3486 core.List<core.Object> startClosed; 2959 core.List<core.Object> startClosed;
3487 /** 2960
3488 * If the start is open, then the range excludes rows whose first 2961 /// If the start is open, then the range excludes rows whose first
3489 * `len(start_open)` key columns exactly match `start_open`. 2962 /// `len(start_open)` key columns exactly match `start_open`.
3490 * 2963 ///
3491 * The values for Object must be JSON objects. It can consist of `num`, 2964 /// The values for Object must be JSON objects. It can consist of `num`,
3492 * `String`, `bool` and `null` as well as `Map` and `List` values. 2965 /// `String`, `bool` and `null` as well as `Map` and `List` values.
3493 */
3494 core.List<core.Object> startOpen; 2966 core.List<core.Object> startOpen;
3495 2967
3496 KeyRange(); 2968 KeyRange();
3497 2969
3498 KeyRange.fromJson(core.Map _json) { 2970 KeyRange.fromJson(core.Map _json) {
3499 if (_json.containsKey("endClosed")) { 2971 if (_json.containsKey("endClosed")) {
3500 endClosed = _json["endClosed"]; 2972 endClosed = _json["endClosed"];
3501 } 2973 }
3502 if (_json.containsKey("endOpen")) { 2974 if (_json.containsKey("endOpen")) {
3503 endOpen = _json["endOpen"]; 2975 endOpen = _json["endOpen"];
3504 } 2976 }
3505 if (_json.containsKey("startClosed")) { 2977 if (_json.containsKey("startClosed")) {
3506 startClosed = _json["startClosed"]; 2978 startClosed = _json["startClosed"];
3507 } 2979 }
3508 if (_json.containsKey("startOpen")) { 2980 if (_json.containsKey("startOpen")) {
3509 startOpen = _json["startOpen"]; 2981 startOpen = _json["startOpen"];
3510 } 2982 }
3511 } 2983 }
3512 2984
3513 core.Map<core.String, core.Object> toJson() { 2985 core.Map<core.String, core.Object> toJson() {
3514 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 2986 final core.Map<core.String, core.Object> _json =
2987 new core.Map<core.String, core.Object>();
3515 if (endClosed != null) { 2988 if (endClosed != null) {
3516 _json["endClosed"] = endClosed; 2989 _json["endClosed"] = endClosed;
3517 } 2990 }
3518 if (endOpen != null) { 2991 if (endOpen != null) {
3519 _json["endOpen"] = endOpen; 2992 _json["endOpen"] = endOpen;
3520 } 2993 }
3521 if (startClosed != null) { 2994 if (startClosed != null) {
3522 _json["startClosed"] = startClosed; 2995 _json["startClosed"] = startClosed;
3523 } 2996 }
3524 if (startOpen != null) { 2997 if (startOpen != null) {
3525 _json["startOpen"] = startOpen; 2998 _json["startOpen"] = startOpen;
3526 } 2999 }
3527 return _json; 3000 return _json;
3528 } 3001 }
3529 } 3002 }
3530 3003
3531 /** 3004 /// `KeySet` defines a collection of Cloud Spanner keys and/or key ranges. All
3532 * `KeySet` defines a collection of Cloud Spanner keys and/or key ranges. All 3005 /// the keys are expected to be in the same table or index. The keys need
3533 * the keys are expected to be in the same table or index. The keys need 3006 /// not be sorted in any particular way.
3534 * not be sorted in any particular way. 3007 ///
3535 * 3008 /// If the same key is specified multiple times in the set (for example
3536 * If the same key is specified multiple times in the set (for example 3009 /// if two ranges, two keys, or a key and a range overlap), Cloud Spanner
3537 * if two ranges, two keys, or a key and a range overlap), Cloud Spanner 3010 /// behaves as if the key were only specified once.
3538 * behaves as if the key were only specified once.
3539 */
3540 class KeySet { 3011 class KeySet {
3541 /** 3012 /// For convenience `all` can be set to `true` to indicate that this
3542 * For convenience `all` can be set to `true` to indicate that this 3013 /// `KeySet` matches all keys in the table or index. Note that any keys
3543 * `KeySet` matches all keys in the table or index. Note that any keys 3014 /// specified in `keys` or `ranges` are only yielded once.
3544 * specified in `keys` or `ranges` are only yielded once.
3545 */
3546 core.bool all; 3015 core.bool all;
3547 /** 3016
3548 * A list of specific keys. Entries in `keys` should have exactly as 3017 /// A list of specific keys. Entries in `keys` should have exactly as
3549 * many elements as there are columns in the primary or index key 3018 /// many elements as there are columns in the primary or index key
3550 * with which this `KeySet` is used. Individual key values are 3019 /// with which this `KeySet` is used. Individual key values are
3551 * encoded as described here. 3020 /// encoded as described here.
3552 * 3021 ///
3553 * The values for Object must be JSON objects. It can consist of `num`, 3022 /// The values for Object must be JSON objects. It can consist of `num`,
3554 * `String`, `bool` and `null` as well as `Map` and `List` values. 3023 /// `String`, `bool` and `null` as well as `Map` and `List` values.
3555 */
3556 core.List<core.List<core.Object>> keys; 3024 core.List<core.List<core.Object>> keys;
3557 /** 3025
3558 * A list of key ranges. See KeyRange for more information about 3026 /// A list of key ranges. See KeyRange for more information about
3559 * key range specifications. 3027 /// key range specifications.
3560 */
3561 core.List<KeyRange> ranges; 3028 core.List<KeyRange> ranges;
3562 3029
3563 KeySet(); 3030 KeySet();
3564 3031
3565 KeySet.fromJson(core.Map _json) { 3032 KeySet.fromJson(core.Map _json) {
3566 if (_json.containsKey("all")) { 3033 if (_json.containsKey("all")) {
3567 all = _json["all"]; 3034 all = _json["all"];
3568 } 3035 }
3569 if (_json.containsKey("keys")) { 3036 if (_json.containsKey("keys")) {
3570 keys = _json["keys"]; 3037 keys = _json["keys"];
3571 } 3038 }
3572 if (_json.containsKey("ranges")) { 3039 if (_json.containsKey("ranges")) {
3573 ranges = _json["ranges"].map((value) => new KeyRange.fromJson(value)).toLi st(); 3040 ranges =
3041 _json["ranges"].map((value) => new KeyRange.fromJson(value)).toList();
3574 } 3042 }
3575 } 3043 }
3576 3044
3577 core.Map<core.String, core.Object> toJson() { 3045 core.Map<core.String, core.Object> toJson() {
3578 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 3046 final core.Map<core.String, core.Object> _json =
3047 new core.Map<core.String, core.Object>();
3579 if (all != null) { 3048 if (all != null) {
3580 _json["all"] = all; 3049 _json["all"] = all;
3581 } 3050 }
3582 if (keys != null) { 3051 if (keys != null) {
3583 _json["keys"] = keys; 3052 _json["keys"] = keys;
3584 } 3053 }
3585 if (ranges != null) { 3054 if (ranges != null) {
3586 _json["ranges"] = ranges.map((value) => (value).toJson()).toList(); 3055 _json["ranges"] = ranges.map((value) => (value).toJson()).toList();
3587 } 3056 }
3588 return _json; 3057 return _json;
3589 } 3058 }
3590 } 3059 }
3591 3060
3592 /** The response for ListDatabases. */ 3061 /// The response for ListDatabases.
3593 class ListDatabasesResponse { 3062 class ListDatabasesResponse {
3594 /** Databases that matched the request. */ 3063 /// Databases that matched the request.
3595 core.List<Database> databases; 3064 core.List<Database> databases;
3596 /** 3065
3597 * `next_page_token` can be sent in a subsequent 3066 /// `next_page_token` can be sent in a subsequent
3598 * ListDatabases call to fetch more 3067 /// ListDatabases call to fetch more
3599 * of the matching databases. 3068 /// of the matching databases.
3600 */
3601 core.String nextPageToken; 3069 core.String nextPageToken;
3602 3070
3603 ListDatabasesResponse(); 3071 ListDatabasesResponse();
3604 3072
3605 ListDatabasesResponse.fromJson(core.Map _json) { 3073 ListDatabasesResponse.fromJson(core.Map _json) {
3606 if (_json.containsKey("databases")) { 3074 if (_json.containsKey("databases")) {
3607 databases = _json["databases"].map((value) => new Database.fromJson(value) ).toList(); 3075 databases = _json["databases"]
3076 .map((value) => new Database.fromJson(value))
3077 .toList();
3608 } 3078 }
3609 if (_json.containsKey("nextPageToken")) { 3079 if (_json.containsKey("nextPageToken")) {
3610 nextPageToken = _json["nextPageToken"]; 3080 nextPageToken = _json["nextPageToken"];
3611 } 3081 }
3612 } 3082 }
3613 3083
3614 core.Map<core.String, core.Object> toJson() { 3084 core.Map<core.String, core.Object> toJson() {
3615 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 3085 final core.Map<core.String, core.Object> _json =
3086 new core.Map<core.String, core.Object>();
3616 if (databases != null) { 3087 if (databases != null) {
3617 _json["databases"] = databases.map((value) => (value).toJson()).toList(); 3088 _json["databases"] = databases.map((value) => (value).toJson()).toList();
3618 } 3089 }
3619 if (nextPageToken != null) { 3090 if (nextPageToken != null) {
3620 _json["nextPageToken"] = nextPageToken; 3091 _json["nextPageToken"] = nextPageToken;
3621 } 3092 }
3622 return _json; 3093 return _json;
3623 } 3094 }
3624 } 3095 }
3625 3096
3626 /** The response for ListInstanceConfigs. */ 3097 /// The response for ListInstanceConfigs.
3627 class ListInstanceConfigsResponse { 3098 class ListInstanceConfigsResponse {
3628 /** The list of requested instance configurations. */ 3099 /// The list of requested instance configurations.
3629 core.List<InstanceConfig> instanceConfigs; 3100 core.List<InstanceConfig> instanceConfigs;
3630 /** 3101
3631 * `next_page_token` can be sent in a subsequent 3102 /// `next_page_token` can be sent in a subsequent
3632 * ListInstanceConfigs call to 3103 /// ListInstanceConfigs call to
3633 * fetch more of the matching instance configurations. 3104 /// fetch more of the matching instance configurations.
3634 */
3635 core.String nextPageToken; 3105 core.String nextPageToken;
3636 3106
3637 ListInstanceConfigsResponse(); 3107 ListInstanceConfigsResponse();
3638 3108
3639 ListInstanceConfigsResponse.fromJson(core.Map _json) { 3109 ListInstanceConfigsResponse.fromJson(core.Map _json) {
3640 if (_json.containsKey("instanceConfigs")) { 3110 if (_json.containsKey("instanceConfigs")) {
3641 instanceConfigs = _json["instanceConfigs"].map((value) => new InstanceConf ig.fromJson(value)).toList(); 3111 instanceConfigs = _json["instanceConfigs"]
3112 .map((value) => new InstanceConfig.fromJson(value))
3113 .toList();
3642 } 3114 }
3643 if (_json.containsKey("nextPageToken")) { 3115 if (_json.containsKey("nextPageToken")) {
3644 nextPageToken = _json["nextPageToken"]; 3116 nextPageToken = _json["nextPageToken"];
3645 } 3117 }
3646 } 3118 }
3647 3119
3648 core.Map<core.String, core.Object> toJson() { 3120 core.Map<core.String, core.Object> toJson() {
3649 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 3121 final core.Map<core.String, core.Object> _json =
3122 new core.Map<core.String, core.Object>();
3650 if (instanceConfigs != null) { 3123 if (instanceConfigs != null) {
3651 _json["instanceConfigs"] = instanceConfigs.map((value) => (value).toJson() ).toList(); 3124 _json["instanceConfigs"] =
3125 instanceConfigs.map((value) => (value).toJson()).toList();
3652 } 3126 }
3653 if (nextPageToken != null) { 3127 if (nextPageToken != null) {
3654 _json["nextPageToken"] = nextPageToken; 3128 _json["nextPageToken"] = nextPageToken;
3655 } 3129 }
3656 return _json; 3130 return _json;
3657 } 3131 }
3658 } 3132 }
3659 3133
3660 /** The response for ListInstances. */ 3134 /// The response for ListInstances.
3661 class ListInstancesResponse { 3135 class ListInstancesResponse {
3662 /** The list of requested instances. */ 3136 /// The list of requested instances.
3663 core.List<Instance> instances; 3137 core.List<Instance> instances;
3664 /** 3138
3665 * `next_page_token` can be sent in a subsequent 3139 /// `next_page_token` can be sent in a subsequent
3666 * ListInstances call to fetch more 3140 /// ListInstances call to fetch more
3667 * of the matching instances. 3141 /// of the matching instances.
3668 */
3669 core.String nextPageToken; 3142 core.String nextPageToken;
3670 3143
3671 ListInstancesResponse(); 3144 ListInstancesResponse();
3672 3145
3673 ListInstancesResponse.fromJson(core.Map _json) { 3146 ListInstancesResponse.fromJson(core.Map _json) {
3674 if (_json.containsKey("instances")) { 3147 if (_json.containsKey("instances")) {
3675 instances = _json["instances"].map((value) => new Instance.fromJson(value) ).toList(); 3148 instances = _json["instances"]
3149 .map((value) => new Instance.fromJson(value))
3150 .toList();
3676 } 3151 }
3677 if (_json.containsKey("nextPageToken")) { 3152 if (_json.containsKey("nextPageToken")) {
3678 nextPageToken = _json["nextPageToken"]; 3153 nextPageToken = _json["nextPageToken"];
3679 } 3154 }
3680 } 3155 }
3681 3156
3682 core.Map<core.String, core.Object> toJson() { 3157 core.Map<core.String, core.Object> toJson() {
3683 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 3158 final core.Map<core.String, core.Object> _json =
3159 new core.Map<core.String, core.Object>();
3684 if (instances != null) { 3160 if (instances != null) {
3685 _json["instances"] = instances.map((value) => (value).toJson()).toList(); 3161 _json["instances"] = instances.map((value) => (value).toJson()).toList();
3686 } 3162 }
3687 if (nextPageToken != null) { 3163 if (nextPageToken != null) {
3688 _json["nextPageToken"] = nextPageToken; 3164 _json["nextPageToken"] = nextPageToken;
3689 } 3165 }
3690 return _json; 3166 return _json;
3691 } 3167 }
3692 } 3168 }
3693 3169
3694 /** The response message for Operations.ListOperations. */ 3170 /// The response message for Operations.ListOperations.
3695 class ListOperationsResponse { 3171 class ListOperationsResponse {
3696 /** The standard List next-page token. */ 3172 /// The standard List next-page token.
3697 core.String nextPageToken; 3173 core.String nextPageToken;
3698 /** A list of operations that matches the specified filter in the request. */ 3174
3175 /// A list of operations that matches the specified filter in the request.
3699 core.List<Operation> operations; 3176 core.List<Operation> operations;
3700 3177
3701 ListOperationsResponse(); 3178 ListOperationsResponse();
3702 3179
3703 ListOperationsResponse.fromJson(core.Map _json) { 3180 ListOperationsResponse.fromJson(core.Map _json) {
3704 if (_json.containsKey("nextPageToken")) { 3181 if (_json.containsKey("nextPageToken")) {
3705 nextPageToken = _json["nextPageToken"]; 3182 nextPageToken = _json["nextPageToken"];
3706 } 3183 }
3707 if (_json.containsKey("operations")) { 3184 if (_json.containsKey("operations")) {
3708 operations = _json["operations"].map((value) => new Operation.fromJson(val ue)).toList(); 3185 operations = _json["operations"]
3186 .map((value) => new Operation.fromJson(value))
3187 .toList();
3709 } 3188 }
3710 } 3189 }
3711 3190
3712 core.Map<core.String, core.Object> toJson() { 3191 core.Map<core.String, core.Object> toJson() {
3713 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 3192 final core.Map<core.String, core.Object> _json =
3193 new core.Map<core.String, core.Object>();
3714 if (nextPageToken != null) { 3194 if (nextPageToken != null) {
3715 _json["nextPageToken"] = nextPageToken; 3195 _json["nextPageToken"] = nextPageToken;
3716 } 3196 }
3717 if (operations != null) { 3197 if (operations != null) {
3718 _json["operations"] = operations.map((value) => (value).toJson()).toList() ; 3198 _json["operations"] =
3199 operations.map((value) => (value).toJson()).toList();
3719 } 3200 }
3720 return _json; 3201 return _json;
3721 } 3202 }
3722 } 3203 }
3723 3204
3724 /** 3205 /// A modification to one or more Cloud Spanner rows. Mutations can be
3725 * Specifies what kind of log the caller must write 3206 /// applied to a Cloud Spanner database by sending them in a
3726 * Increment a streamz counter with the specified metric and field names. 3207 /// Commit call.
3727 * 3208 class Mutation {
3728 * Metric names should start with a '/', generally be lowercase-only, 3209 /// Delete rows from a table. Succeeds whether or not the named
3729 * and end in "_count". Field names should not contain an initial slash. 3210 /// rows were present.
3730 * The actual exported metric names will have "/iam/policy" prepended. 3211 Delete delete;
3731 *
3732 * Field names correspond to IAM request parameters and field values are
3733 * their respective values.
3734 *
3735 * At present the only supported field names are
3736 * - "iam_principal", corresponding to IAMContext.principal;
3737 * - "" (empty string), resulting in one aggretated counter with no field.
3738 *
3739 * Examples:
3740 * counter { metric: "/debug_access_count" field: "iam_principal" }
3741 * ==> increment counter /iam/policy/backend_debug_access_count
3742 * {iam_principal=[value of IAMContext.principal]}
3743 *
3744 * At this time we do not support:
3745 * * multiple field names (though this may be supported in the future)
3746 * * decrementing the counter
3747 * * incrementing it by anything other than 1
3748 */
3749 class LogConfig {
3750 /** Cloud audit options. */
3751 CloudAuditOptions cloudAudit;
3752 /** Counter options. */
3753 CounterOptions counter;
3754 /** Data access options. */
3755 DataAccessOptions dataAccess;
3756 3212
3757 LogConfig(); 3213 /// Insert new rows in a table. If any of the rows already exist,
3214 /// the write or transaction fails with error `ALREADY_EXISTS`.
3215 Write insert;
3758 3216
3759 LogConfig.fromJson(core.Map _json) { 3217 /// Like insert, except that if the row already exists, then
3760 if (_json.containsKey("cloudAudit")) { 3218 /// its column values are overwritten with the ones provided. Any
3761 cloudAudit = new CloudAuditOptions.fromJson(_json["cloudAudit"]); 3219 /// column values not explicitly written are preserved.
3762 } 3220 Write insertOrUpdate;
3763 if (_json.containsKey("counter")) {
3764 counter = new CounterOptions.fromJson(_json["counter"]);
3765 }
3766 if (_json.containsKey("dataAccess")) {
3767 dataAccess = new DataAccessOptions.fromJson(_json["dataAccess"]);
3768 }
3769 }
3770 3221
3771 core.Map<core.String, core.Object> toJson() { 3222 /// Like insert, except that if the row already exists, it is
3772 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 3223 /// deleted, and the column values provided are inserted
3773 if (cloudAudit != null) { 3224 /// instead. Unlike insert_or_update, this means any values not
3774 _json["cloudAudit"] = (cloudAudit).toJson(); 3225 /// explicitly written become `NULL`.
3775 } 3226 Write replace;
3776 if (counter != null) {
3777 _json["counter"] = (counter).toJson();
3778 }
3779 if (dataAccess != null) {
3780 _json["dataAccess"] = (dataAccess).toJson();
3781 }
3782 return _json;
3783 }
3784 }
3785 3227
3786 /** 3228 /// Update existing rows in a table. If any of the rows does not
3787 * A modification to one or more Cloud Spanner rows. Mutations can be 3229 /// already exist, the transaction fails with error `NOT_FOUND`.
3788 * applied to a Cloud Spanner database by sending them in a
3789 * Commit call.
3790 */
3791 class Mutation {
3792 /**
3793 * Delete rows from a table. Succeeds whether or not the named
3794 * rows were present.
3795 */
3796 Delete delete;
3797 /**
3798 * Insert new rows in a table. If any of the rows already exist,
3799 * the write or transaction fails with error `ALREADY_EXISTS`.
3800 */
3801 Write insert;
3802 /**
3803 * Like insert, except that if the row already exists, then
3804 * its column values are overwritten with the ones provided. Any
3805 * column values not explicitly written are preserved.
3806 */
3807 Write insertOrUpdate;
3808 /**
3809 * Like insert, except that if the row already exists, it is
3810 * deleted, and the column values provided are inserted
3811 * instead. Unlike insert_or_update, this means any values not
3812 * explicitly written become `NULL`.
3813 */
3814 Write replace;
3815 /**
3816 * Update existing rows in a table. If any of the rows does not
3817 * already exist, the transaction fails with error `NOT_FOUND`.
3818 */
3819 Write update; 3230 Write update;
3820 3231
3821 Mutation(); 3232 Mutation();
3822 3233
3823 Mutation.fromJson(core.Map _json) { 3234 Mutation.fromJson(core.Map _json) {
3824 if (_json.containsKey("delete")) { 3235 if (_json.containsKey("delete")) {
3825 delete = new Delete.fromJson(_json["delete"]); 3236 delete = new Delete.fromJson(_json["delete"]);
3826 } 3237 }
3827 if (_json.containsKey("insert")) { 3238 if (_json.containsKey("insert")) {
3828 insert = new Write.fromJson(_json["insert"]); 3239 insert = new Write.fromJson(_json["insert"]);
3829 } 3240 }
3830 if (_json.containsKey("insertOrUpdate")) { 3241 if (_json.containsKey("insertOrUpdate")) {
3831 insertOrUpdate = new Write.fromJson(_json["insertOrUpdate"]); 3242 insertOrUpdate = new Write.fromJson(_json["insertOrUpdate"]);
3832 } 3243 }
3833 if (_json.containsKey("replace")) { 3244 if (_json.containsKey("replace")) {
3834 replace = new Write.fromJson(_json["replace"]); 3245 replace = new Write.fromJson(_json["replace"]);
3835 } 3246 }
3836 if (_json.containsKey("update")) { 3247 if (_json.containsKey("update")) {
3837 update = new Write.fromJson(_json["update"]); 3248 update = new Write.fromJson(_json["update"]);
3838 } 3249 }
3839 } 3250 }
3840 3251
3841 core.Map<core.String, core.Object> toJson() { 3252 core.Map<core.String, core.Object> toJson() {
3842 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 3253 final core.Map<core.String, core.Object> _json =
3254 new core.Map<core.String, core.Object>();
3843 if (delete != null) { 3255 if (delete != null) {
3844 _json["delete"] = (delete).toJson(); 3256 _json["delete"] = (delete).toJson();
3845 } 3257 }
3846 if (insert != null) { 3258 if (insert != null) {
3847 _json["insert"] = (insert).toJson(); 3259 _json["insert"] = (insert).toJson();
3848 } 3260 }
3849 if (insertOrUpdate != null) { 3261 if (insertOrUpdate != null) {
3850 _json["insertOrUpdate"] = (insertOrUpdate).toJson(); 3262 _json["insertOrUpdate"] = (insertOrUpdate).toJson();
3851 } 3263 }
3852 if (replace != null) { 3264 if (replace != null) {
3853 _json["replace"] = (replace).toJson(); 3265 _json["replace"] = (replace).toJson();
3854 } 3266 }
3855 if (update != null) { 3267 if (update != null) {
3856 _json["update"] = (update).toJson(); 3268 _json["update"] = (update).toJson();
3857 } 3269 }
3858 return _json; 3270 return _json;
3859 } 3271 }
3860 } 3272 }
3861 3273
3862 /** 3274 /// This resource represents a long-running operation that is the result of a
3863 * This resource represents a long-running operation that is the result of a 3275 /// network API call.
3864 * network API call.
3865 */
3866 class Operation { 3276 class Operation {
3867 /** 3277 /// If the value is `false`, it means the operation is still in progress.
3868 * If the value is `false`, it means the operation is still in progress. 3278 /// If true, the operation is completed, and either `error` or `response` is
3869 * If true, the operation is completed, and either `error` or `response` is 3279 /// available.
3870 * available.
3871 */
3872 core.bool done; 3280 core.bool done;
3873 /** The error result of the operation in case of failure or cancellation. */ 3281
3282 /// The error result of the operation in case of failure or cancellation.
3874 Status error; 3283 Status error;
3875 /** 3284
3876 * Service-specific metadata associated with the operation. It typically 3285 /// Service-specific metadata associated with the operation. It typically
3877 * contains progress information and common metadata such as create time. 3286 /// contains progress information and common metadata such as create time.
3878 * Some services might not provide such metadata. Any method that returns a 3287 /// Some services might not provide such metadata. Any method that returns a
3879 * long-running operation should document the metadata type, if any. 3288 /// long-running operation should document the metadata type, if any.
3880 * 3289 ///
3881 * The values for Object must be JSON objects. It can consist of `num`, 3290 /// The values for Object must be JSON objects. It can consist of `num`,
3882 * `String`, `bool` and `null` as well as `Map` and `List` values. 3291 /// `String`, `bool` and `null` as well as `Map` and `List` values.
3883 */
3884 core.Map<core.String, core.Object> metadata; 3292 core.Map<core.String, core.Object> metadata;
3885 /** 3293
3886 * The server-assigned name, which is only unique within the same service that 3294 /// The server-assigned name, which is only unique within the same service
3887 * originally returns it. If you use the default HTTP mapping, the 3295 /// that
3888 * `name` should have the format of `operations/some/unique/name`. 3296 /// originally returns it. If you use the default HTTP mapping, the
3889 */ 3297 /// `name` should have the format of `operations/some/unique/name`.
3890 core.String name; 3298 core.String name;
3891 /** 3299
3892 * The normal response of the operation in case of success. If the original 3300 /// The normal response of the operation in case of success. If the original
3893 * method returns no data on success, such as `Delete`, the response is 3301 /// method returns no data on success, such as `Delete`, the response is
3894 * `google.protobuf.Empty`. If the original method is standard 3302 /// `google.protobuf.Empty`. If the original method is standard
3895 * `Get`/`Create`/`Update`, the response should be the resource. For other 3303 /// `Get`/`Create`/`Update`, the response should be the resource. For other
3896 * methods, the response should have the type `XxxResponse`, where `Xxx` 3304 /// methods, the response should have the type `XxxResponse`, where `Xxx`
3897 * is the original method name. For example, if the original method name 3305 /// is the original method name. For example, if the original method name
3898 * is `TakeSnapshot()`, the inferred response type is 3306 /// is `TakeSnapshot()`, the inferred response type is
3899 * `TakeSnapshotResponse`. 3307 /// `TakeSnapshotResponse`.
3900 * 3308 ///
3901 * The values for Object must be JSON objects. It can consist of `num`, 3309 /// The values for Object must be JSON objects. It can consist of `num`,
3902 * `String`, `bool` and `null` as well as `Map` and `List` values. 3310 /// `String`, `bool` and `null` as well as `Map` and `List` values.
3903 */
3904 core.Map<core.String, core.Object> response; 3311 core.Map<core.String, core.Object> response;
3905 3312
3906 Operation(); 3313 Operation();
3907 3314
3908 Operation.fromJson(core.Map _json) { 3315 Operation.fromJson(core.Map _json) {
3909 if (_json.containsKey("done")) { 3316 if (_json.containsKey("done")) {
3910 done = _json["done"]; 3317 done = _json["done"];
3911 } 3318 }
3912 if (_json.containsKey("error")) { 3319 if (_json.containsKey("error")) {
3913 error = new Status.fromJson(_json["error"]); 3320 error = new Status.fromJson(_json["error"]);
3914 } 3321 }
3915 if (_json.containsKey("metadata")) { 3322 if (_json.containsKey("metadata")) {
3916 metadata = _json["metadata"]; 3323 metadata = _json["metadata"];
3917 } 3324 }
3918 if (_json.containsKey("name")) { 3325 if (_json.containsKey("name")) {
3919 name = _json["name"]; 3326 name = _json["name"];
3920 } 3327 }
3921 if (_json.containsKey("response")) { 3328 if (_json.containsKey("response")) {
3922 response = _json["response"]; 3329 response = _json["response"];
3923 } 3330 }
3924 } 3331 }
3925 3332
3926 core.Map<core.String, core.Object> toJson() { 3333 core.Map<core.String, core.Object> toJson() {
3927 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 3334 final core.Map<core.String, core.Object> _json =
3335 new core.Map<core.String, core.Object>();
3928 if (done != null) { 3336 if (done != null) {
3929 _json["done"] = done; 3337 _json["done"] = done;
3930 } 3338 }
3931 if (error != null) { 3339 if (error != null) {
3932 _json["error"] = (error).toJson(); 3340 _json["error"] = (error).toJson();
3933 } 3341 }
3934 if (metadata != null) { 3342 if (metadata != null) {
3935 _json["metadata"] = metadata; 3343 _json["metadata"] = metadata;
3936 } 3344 }
3937 if (name != null) { 3345 if (name != null) {
3938 _json["name"] = name; 3346 _json["name"] = name;
3939 } 3347 }
3940 if (response != null) { 3348 if (response != null) {
3941 _json["response"] = response; 3349 _json["response"] = response;
3942 } 3350 }
3943 return _json; 3351 return _json;
3944 } 3352 }
3945 } 3353 }
3946 3354
3947 /** 3355 /// Partial results from a streaming read or SQL query. Streaming reads and
3948 * Partial results from a streaming read or SQL query. Streaming reads and 3356 /// SQL queries better tolerate large result sets, large rows, and large
3949 * SQL queries better tolerate large result sets, large rows, and large 3357 /// values, but are a little trickier to consume.
3950 * values, but are a little trickier to consume.
3951 */
3952 class PartialResultSet { 3358 class PartialResultSet {
3953 /** 3359 /// If true, then the final value in values is chunked, and must
3954 * If true, then the final value in values is chunked, and must 3360 /// be combined with more values from subsequent `PartialResultSet`s
3955 * be combined with more values from subsequent `PartialResultSet`s 3361 /// to obtain a complete field value.
3956 * to obtain a complete field value.
3957 */
3958 core.bool chunkedValue; 3362 core.bool chunkedValue;
3959 /** 3363
3960 * Metadata about the result set, such as row type information. 3364 /// Metadata about the result set, such as row type information.
3961 * Only present in the first response. 3365 /// Only present in the first response.
3962 */
3963 ResultSetMetadata metadata; 3366 ResultSetMetadata metadata;
3964 /** 3367
3965 * Streaming calls might be interrupted for a variety of reasons, such 3368 /// Streaming calls might be interrupted for a variety of reasons, such
3966 * as TCP connection loss. If this occurs, the stream of results can 3369 /// as TCP connection loss. If this occurs, the stream of results can
3967 * be resumed by re-sending the original request and including 3370 /// be resumed by re-sending the original request and including
3968 * `resume_token`. Note that executing any other transaction in the 3371 /// `resume_token`. Note that executing any other transaction in the
3969 * same session invalidates the token. 3372 /// same session invalidates the token.
3970 */
3971 core.String resumeToken; 3373 core.String resumeToken;
3972 core.List<core.int> get resumeTokenAsBytes { 3374 core.List<core.int> get resumeTokenAsBytes {
3973 return convert.BASE64.decode(resumeToken); 3375 return convert.BASE64.decode(resumeToken);
3974 } 3376 }
3975 3377
3976 void set resumeTokenAsBytes(core.List<core.int> _bytes) { 3378 void set resumeTokenAsBytes(core.List<core.int> _bytes) {
3977 resumeToken = convert.BASE64.encode(_bytes).replaceAll("/", "_").replaceAll( "+", "-"); 3379 resumeToken =
3380 convert.BASE64.encode(_bytes).replaceAll("/", "_").replaceAll("+", "-");
3978 } 3381 }
3979 /** 3382
3980 * Query plan and execution statistics for the query that produced this 3383 /// Query plan and execution statistics for the query that produced this
3981 * streaming result set. These can be requested by setting 3384 /// streaming result set. These can be requested by setting
3982 * ExecuteSqlRequest.query_mode and are sent 3385 /// ExecuteSqlRequest.query_mode and are sent
3983 * only once with the last response in the stream. 3386 /// only once with the last response in the stream.
3984 */
3985 ResultSetStats stats; 3387 ResultSetStats stats;
3986 /** 3388
3987 * A streamed result set consists of a stream of values, which might 3389 /// A streamed result set consists of a stream of values, which might
3988 * be split into many `PartialResultSet` messages to accommodate 3390 /// be split into many `PartialResultSet` messages to accommodate
3989 * large rows and/or large values. Every N complete values defines a 3391 /// large rows and/or large values. Every N complete values defines a
3990 * row, where N is equal to the number of entries in 3392 /// row, where N is equal to the number of entries in
3991 * metadata.row_type.fields. 3393 /// metadata.row_type.fields.
3992 * 3394 ///
3993 * Most values are encoded based on type as described 3395 /// Most values are encoded based on type as described
3994 * here. 3396 /// here.
3995 * 3397 ///
3996 * It is possible that the last value in values is "chunked", 3398 /// It is possible that the last value in values is "chunked",
3997 * meaning that the rest of the value is sent in subsequent 3399 /// meaning that the rest of the value is sent in subsequent
3998 * `PartialResultSet`(s). This is denoted by the chunked_value 3400 /// `PartialResultSet`(s). This is denoted by the chunked_value
3999 * field. Two or more chunked values can be merged to form a 3401 /// field. Two or more chunked values can be merged to form a
4000 * complete value as follows: 3402 /// complete value as follows:
4001 * 3403 ///
4002 * * `bool/number/null`: cannot be chunked 3404 /// * `bool/number/null`: cannot be chunked
4003 * * `string`: concatenate the strings 3405 /// * `string`: concatenate the strings
4004 * * `list`: concatenate the lists. If the last element in a list is a 3406 /// * `list`: concatenate the lists. If the last element in a list is a
4005 * `string`, `list`, or `object`, merge it with the first element in 3407 /// `string`, `list`, or `object`, merge it with the first element in
4006 * the next list by applying these rules recursively. 3408 /// the next list by applying these rules recursively.
4007 * * `object`: concatenate the (field name, field value) pairs. If a 3409 /// * `object`: concatenate the (field name, field value) pairs. If a
4008 * field name is duplicated, then apply these rules recursively 3410 /// field name is duplicated, then apply these rules recursively
4009 * to merge the field values. 3411 /// to merge the field values.
4010 * 3412 ///
4011 * Some examples of merging: 3413 /// Some examples of merging:
4012 * 3414 ///
4013 * # Strings are concatenated. 3415 /// # Strings are concatenated.
4014 * "foo", "bar" => "foobar" 3416 /// "foo", "bar" => "foobar"
4015 * 3417 ///
4016 * # Lists of non-strings are concatenated. 3418 /// # Lists of non-strings are concatenated.
4017 * [2, 3], [4] => [2, 3, 4] 3419 /// [2, 3], [4] => [2, 3, 4]
4018 * 3420 ///
4019 * # Lists are concatenated, but the last and first elements are merged 3421 /// # Lists are concatenated, but the last and first elements are merged
4020 * # because they are strings. 3422 /// # because they are strings.
4021 * ["a", "b"], ["c", "d"] => ["a", "bc", "d"] 3423 /// ["a", "b"], ["c", "d"] => ["a", "bc", "d"]
4022 * 3424 ///
4023 * # Lists are concatenated, but the last and first elements are merged 3425 /// # Lists are concatenated, but the last and first elements are merged
4024 * # because they are lists. Recursively, the last and first elements 3426 /// # because they are lists. Recursively, the last and first elements
4025 * # of the inner lists are merged because they are strings. 3427 /// # of the inner lists are merged because they are strings.
4026 * ["a", ["b", "c"]], [["d"], "e"] => ["a", ["b", "cd"], "e"] 3428 /// ["a", ["b", "c"]], [["d"], "e"] => ["a", ["b", "cd"], "e"]
4027 * 3429 ///
4028 * # Non-overlapping object fields are combined. 3430 /// # Non-overlapping object fields are combined.
4029 * {"a": "1"}, {"b": "2"} => {"a": "1", "b": 2"} 3431 /// {"a": "1"}, {"b": "2"} => {"a": "1", "b": 2"}
4030 * 3432 ///
4031 * # Overlapping object fields are merged. 3433 /// # Overlapping object fields are merged.
4032 * {"a": "1"}, {"a": "2"} => {"a": "12"} 3434 /// {"a": "1"}, {"a": "2"} => {"a": "12"}
4033 * 3435 ///
4034 * # Examples of merging objects containing lists of strings. 3436 /// # Examples of merging objects containing lists of strings.
4035 * {"a": ["1"]}, {"a": ["2"]} => {"a": ["12"]} 3437 /// {"a": ["1"]}, {"a": ["2"]} => {"a": ["12"]}
4036 * 3438 ///
4037 * For a more complete example, suppose a streaming SQL query is 3439 /// For a more complete example, suppose a streaming SQL query is
4038 * yielding a result set whose rows contain a single string 3440 /// yielding a result set whose rows contain a single string
4039 * field. The following `PartialResultSet`s might be yielded: 3441 /// field. The following `PartialResultSet`s might be yielded:
4040 * 3442 ///
4041 * { 3443 /// {
4042 * "metadata": { ... } 3444 /// "metadata": { ... }
4043 * "values": ["Hello", "W"] 3445 /// "values": ["Hello", "W"]
4044 * "chunked_value": true 3446 /// "chunked_value": true
4045 * "resume_token": "Af65..." 3447 /// "resume_token": "Af65..."
4046 * } 3448 /// }
4047 * { 3449 /// {
4048 * "values": ["orl"] 3450 /// "values": ["orl"]
4049 * "chunked_value": true 3451 /// "chunked_value": true
4050 * "resume_token": "Bqp2..." 3452 /// "resume_token": "Bqp2..."
4051 * } 3453 /// }
4052 * { 3454 /// {
4053 * "values": ["d"] 3455 /// "values": ["d"]
4054 * "resume_token": "Zx1B..." 3456 /// "resume_token": "Zx1B..."
4055 * } 3457 /// }
4056 * 3458 ///
4057 * This sequence of `PartialResultSet`s encodes two rows, one 3459 /// This sequence of `PartialResultSet`s encodes two rows, one
4058 * containing the field value `"Hello"`, and a second containing the 3460 /// containing the field value `"Hello"`, and a second containing the
4059 * field value `"World" = "W" + "orl" + "d"`. 3461 /// field value `"World" = "W" + "orl" + "d"`.
4060 * 3462 ///
4061 * The values for Object must be JSON objects. It can consist of `num`, 3463 /// The values for Object must be JSON objects. It can consist of `num`,
4062 * `String`, `bool` and `null` as well as `Map` and `List` values. 3464 /// `String`, `bool` and `null` as well as `Map` and `List` values.
4063 */
4064 core.List<core.Object> values; 3465 core.List<core.Object> values;
4065 3466
4066 PartialResultSet(); 3467 PartialResultSet();
4067 3468
4068 PartialResultSet.fromJson(core.Map _json) { 3469 PartialResultSet.fromJson(core.Map _json) {
4069 if (_json.containsKey("chunkedValue")) { 3470 if (_json.containsKey("chunkedValue")) {
4070 chunkedValue = _json["chunkedValue"]; 3471 chunkedValue = _json["chunkedValue"];
4071 } 3472 }
4072 if (_json.containsKey("metadata")) { 3473 if (_json.containsKey("metadata")) {
4073 metadata = new ResultSetMetadata.fromJson(_json["metadata"]); 3474 metadata = new ResultSetMetadata.fromJson(_json["metadata"]);
4074 } 3475 }
4075 if (_json.containsKey("resumeToken")) { 3476 if (_json.containsKey("resumeToken")) {
4076 resumeToken = _json["resumeToken"]; 3477 resumeToken = _json["resumeToken"];
4077 } 3478 }
4078 if (_json.containsKey("stats")) { 3479 if (_json.containsKey("stats")) {
4079 stats = new ResultSetStats.fromJson(_json["stats"]); 3480 stats = new ResultSetStats.fromJson(_json["stats"]);
4080 } 3481 }
4081 if (_json.containsKey("values")) { 3482 if (_json.containsKey("values")) {
4082 values = _json["values"]; 3483 values = _json["values"];
4083 } 3484 }
4084 } 3485 }
4085 3486
4086 core.Map<core.String, core.Object> toJson() { 3487 core.Map<core.String, core.Object> toJson() {
4087 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 3488 final core.Map<core.String, core.Object> _json =
3489 new core.Map<core.String, core.Object>();
4088 if (chunkedValue != null) { 3490 if (chunkedValue != null) {
4089 _json["chunkedValue"] = chunkedValue; 3491 _json["chunkedValue"] = chunkedValue;
4090 } 3492 }
4091 if (metadata != null) { 3493 if (metadata != null) {
4092 _json["metadata"] = (metadata).toJson(); 3494 _json["metadata"] = (metadata).toJson();
4093 } 3495 }
4094 if (resumeToken != null) { 3496 if (resumeToken != null) {
4095 _json["resumeToken"] = resumeToken; 3497 _json["resumeToken"] = resumeToken;
4096 } 3498 }
4097 if (stats != null) { 3499 if (stats != null) {
4098 _json["stats"] = (stats).toJson(); 3500 _json["stats"] = (stats).toJson();
4099 } 3501 }
4100 if (values != null) { 3502 if (values != null) {
4101 _json["values"] = values; 3503 _json["values"] = values;
4102 } 3504 }
4103 return _json; 3505 return _json;
4104 } 3506 }
4105 } 3507 }
4106 3508
4107 /** Node information for nodes appearing in a QueryPlan.plan_nodes. */ 3509 /// Node information for nodes appearing in a QueryPlan.plan_nodes.
4108 class PlanNode { 3510 class PlanNode {
4109 /** List of child node `index`es and their relationship to this parent. */ 3511 /// List of child node `index`es and their relationship to this parent.
4110 core.List<ChildLink> childLinks; 3512 core.List<ChildLink> childLinks;
4111 /** The display name for the node. */ 3513
3514 /// The display name for the node.
4112 core.String displayName; 3515 core.String displayName;
4113 /** 3516
4114 * The execution statistics associated with the node, contained in a group of 3517 /// The execution statistics associated with the node, contained in a group
4115 * key-value pairs. Only present if the plan was returned as a result of a 3518 /// of
4116 * profile query. For example, number of executions, number of rows/time per 3519 /// key-value pairs. Only present if the plan was returned as a result of a
4117 * execution etc. 3520 /// profile query. For example, number of executions, number of rows/time per
4118 * 3521 /// execution etc.
4119 * The values for Object must be JSON objects. It can consist of `num`, 3522 ///
4120 * `String`, `bool` and `null` as well as `Map` and `List` values. 3523 /// The values for Object must be JSON objects. It can consist of `num`,
4121 */ 3524 /// `String`, `bool` and `null` as well as `Map` and `List` values.
4122 core.Map<core.String, core.Object> executionStats; 3525 core.Map<core.String, core.Object> executionStats;
4123 /** The `PlanNode`'s index in node list. */ 3526
3527 /// The `PlanNode`'s index in node list.
4124 core.int index; 3528 core.int index;
4125 /** 3529
4126 * Used to determine the type of node. May be needed for visualizing 3530 /// Used to determine the type of node. May be needed for visualizing
4127 * different kinds of nodes differently. For example, If the node is a 3531 /// different kinds of nodes differently. For example, If the node is a
4128 * SCALAR node, it will have a condensed representation 3532 /// SCALAR node, it will have a condensed representation
4129 * which can be used to directly embed a description of the node in its 3533 /// which can be used to directly embed a description of the node in its
4130 * parent. 3534 /// parent.
4131 * Possible string values are: 3535 /// Possible string values are:
4132 * - "KIND_UNSPECIFIED" : Not specified. 3536 /// - "KIND_UNSPECIFIED" : Not specified.
4133 * - "RELATIONAL" : Denotes a Relational operator node in the expression tree. 3537 /// - "RELATIONAL" : Denotes a Relational operator node in the expression
4134 * Relational 3538 /// tree. Relational
4135 * operators represent iterative processing of rows during query execution. 3539 /// operators represent iterative processing of rows during query execution.
4136 * For example, a `TableScan` operation that reads rows from a table. 3540 /// For example, a `TableScan` operation that reads rows from a table.
4137 * - "SCALAR" : Denotes a Scalar node in the expression tree. Scalar nodes 3541 /// - "SCALAR" : Denotes a Scalar node in the expression tree. Scalar nodes
4138 * represent 3542 /// represent
4139 * non-iterable entities in the query plan. For example, constants or 3543 /// non-iterable entities in the query plan. For example, constants or
4140 * arithmetic operators appearing inside predicate expressions or references 3544 /// arithmetic operators appearing inside predicate expressions or references
4141 * to column names. 3545 /// to column names.
4142 */
4143 core.String kind; 3546 core.String kind;
4144 /** 3547
4145 * Attributes relevant to the node contained in a group of key-value pairs. 3548 /// Attributes relevant to the node contained in a group of key-value pairs.
4146 * For example, a Parameter Reference node could have the following 3549 /// For example, a Parameter Reference node could have the following
4147 * information in its metadata: 3550 /// information in its metadata:
4148 * 3551 ///
4149 * { 3552 /// {
4150 * "parameter_reference": "param1", 3553 /// "parameter_reference": "param1",
4151 * "parameter_type": "array" 3554 /// "parameter_type": "array"
4152 * } 3555 /// }
4153 * 3556 ///
4154 * The values for Object must be JSON objects. It can consist of `num`, 3557 /// The values for Object must be JSON objects. It can consist of `num`,
4155 * `String`, `bool` and `null` as well as `Map` and `List` values. 3558 /// `String`, `bool` and `null` as well as `Map` and `List` values.
4156 */
4157 core.Map<core.String, core.Object> metadata; 3559 core.Map<core.String, core.Object> metadata;
4158 /** Condensed representation for SCALAR nodes. */ 3560
3561 /// Condensed representation for SCALAR nodes.
4159 ShortRepresentation shortRepresentation; 3562 ShortRepresentation shortRepresentation;
4160 3563
4161 PlanNode(); 3564 PlanNode();
4162 3565
4163 PlanNode.fromJson(core.Map _json) { 3566 PlanNode.fromJson(core.Map _json) {
4164 if (_json.containsKey("childLinks")) { 3567 if (_json.containsKey("childLinks")) {
4165 childLinks = _json["childLinks"].map((value) => new ChildLink.fromJson(val ue)).toList(); 3568 childLinks = _json["childLinks"]
3569 .map((value) => new ChildLink.fromJson(value))
3570 .toList();
4166 } 3571 }
4167 if (_json.containsKey("displayName")) { 3572 if (_json.containsKey("displayName")) {
4168 displayName = _json["displayName"]; 3573 displayName = _json["displayName"];
4169 } 3574 }
4170 if (_json.containsKey("executionStats")) { 3575 if (_json.containsKey("executionStats")) {
4171 executionStats = _json["executionStats"]; 3576 executionStats = _json["executionStats"];
4172 } 3577 }
4173 if (_json.containsKey("index")) { 3578 if (_json.containsKey("index")) {
4174 index = _json["index"]; 3579 index = _json["index"];
4175 } 3580 }
4176 if (_json.containsKey("kind")) { 3581 if (_json.containsKey("kind")) {
4177 kind = _json["kind"]; 3582 kind = _json["kind"];
4178 } 3583 }
4179 if (_json.containsKey("metadata")) { 3584 if (_json.containsKey("metadata")) {
4180 metadata = _json["metadata"]; 3585 metadata = _json["metadata"];
4181 } 3586 }
4182 if (_json.containsKey("shortRepresentation")) { 3587 if (_json.containsKey("shortRepresentation")) {
4183 shortRepresentation = new ShortRepresentation.fromJson(_json["shortReprese ntation"]); 3588 shortRepresentation =
3589 new ShortRepresentation.fromJson(_json["shortRepresentation"]);
4184 } 3590 }
4185 } 3591 }
4186 3592
4187 core.Map<core.String, core.Object> toJson() { 3593 core.Map<core.String, core.Object> toJson() {
4188 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 3594 final core.Map<core.String, core.Object> _json =
3595 new core.Map<core.String, core.Object>();
4189 if (childLinks != null) { 3596 if (childLinks != null) {
4190 _json["childLinks"] = childLinks.map((value) => (value).toJson()).toList() ; 3597 _json["childLinks"] =
3598 childLinks.map((value) => (value).toJson()).toList();
4191 } 3599 }
4192 if (displayName != null) { 3600 if (displayName != null) {
4193 _json["displayName"] = displayName; 3601 _json["displayName"] = displayName;
4194 } 3602 }
4195 if (executionStats != null) { 3603 if (executionStats != null) {
4196 _json["executionStats"] = executionStats; 3604 _json["executionStats"] = executionStats;
4197 } 3605 }
4198 if (index != null) { 3606 if (index != null) {
4199 _json["index"] = index; 3607 _json["index"] = index;
4200 } 3608 }
4201 if (kind != null) { 3609 if (kind != null) {
4202 _json["kind"] = kind; 3610 _json["kind"] = kind;
4203 } 3611 }
4204 if (metadata != null) { 3612 if (metadata != null) {
4205 _json["metadata"] = metadata; 3613 _json["metadata"] = metadata;
4206 } 3614 }
4207 if (shortRepresentation != null) { 3615 if (shortRepresentation != null) {
4208 _json["shortRepresentation"] = (shortRepresentation).toJson(); 3616 _json["shortRepresentation"] = (shortRepresentation).toJson();
4209 } 3617 }
4210 return _json; 3618 return _json;
4211 } 3619 }
4212 } 3620 }
4213 3621
4214 /** 3622 /// Defines an Identity and Access Management (IAM) policy. It is used to
4215 * Defines an Identity and Access Management (IAM) policy. It is used to 3623 /// specify access control policies for Cloud Platform resources.
4216 * specify access control policies for Cloud Platform resources. 3624 ///
4217 * 3625 ///
4218 * 3626 /// A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
4219 * A `Policy` consists of a list of `bindings`. A `Binding` binds a list of 3627 /// `members` to a `role`, where the members can be user accounts, Google
4220 * `members` to a `role`, where the members can be user accounts, Google groups, 3628 /// groups,
4221 * Google domains, and service accounts. A `role` is a named list of permissions 3629 /// Google domains, and service accounts. A `role` is a named list of
4222 * defined by IAM. 3630 /// permissions
4223 * 3631 /// defined by IAM.
4224 * **Example** 3632 ///
4225 * 3633 /// **Example**
4226 * { 3634 ///
4227 * "bindings": [ 3635 /// {
4228 * { 3636 /// "bindings": [
4229 * "role": "roles/owner", 3637 /// {
4230 * "members": [ 3638 /// "role": "roles/owner",
4231 * "user:mike@example.com", 3639 /// "members": [
4232 * "group:admins@example.com", 3640 /// "user:mike@example.com",
4233 * "domain:google.com", 3641 /// "group:admins@example.com",
4234 * "serviceAccount:my-other-app@appspot.gserviceaccount.com", 3642 /// "domain:google.com",
4235 * ] 3643 /// "serviceAccount:my-other-app@appspot.gserviceaccount.com",
4236 * }, 3644 /// ]
4237 * { 3645 /// },
4238 * "role": "roles/viewer", 3646 /// {
4239 * "members": ["user:sean@example.com"] 3647 /// "role": "roles/viewer",
4240 * } 3648 /// "members": ["user:sean@example.com"]
4241 * ] 3649 /// }
4242 * } 3650 /// ]
4243 * 3651 /// }
4244 * For a description of IAM and its features, see the 3652 ///
4245 * [IAM developer's guide](https://cloud.google.com/iam). 3653 /// For a description of IAM and its features, see the
4246 */ 3654 /// [IAM developer's guide](https://cloud.google.com/iam).
4247 class Policy { 3655 class Policy {
4248 /** Specifies cloud audit logging configuration for this policy. */ 3656 /// Associates a list of `members` to a `role`.
4249 core.List<AuditConfig> auditConfigs; 3657 /// `bindings` with no members will result in an error.
4250 /**
4251 * Associates a list of `members` to a `role`.
4252 * `bindings` with no members will result in an error.
4253 */
4254 core.List<Binding> bindings; 3658 core.List<Binding> bindings;
4255 /** 3659
4256 * `etag` is used for optimistic concurrency control as a way to help 3660 /// `etag` is used for optimistic concurrency control as a way to help
4257 * prevent simultaneous updates of a policy from overwriting each other. 3661 /// prevent simultaneous updates of a policy from overwriting each other.
4258 * It is strongly suggested that systems make use of the `etag` in the 3662 /// It is strongly suggested that systems make use of the `etag` in the
4259 * read-modify-write cycle to perform policy updates in order to avoid race 3663 /// read-modify-write cycle to perform policy updates in order to avoid race
4260 * conditions: An `etag` is returned in the response to `getIamPolicy`, and 3664 /// conditions: An `etag` is returned in the response to `getIamPolicy`, and
4261 * systems are expected to put that etag in the request to `setIamPolicy` to 3665 /// systems are expected to put that etag in the request to `setIamPolicy` to
4262 * ensure that their change will be applied to the same version of the policy. 3666 /// ensure that their change will be applied to the same version of the
4263 * 3667 /// policy.
4264 * If no `etag` is provided in the call to `setIamPolicy`, then the existing 3668 ///
4265 * policy is overwritten blindly. 3669 /// If no `etag` is provided in the call to `setIamPolicy`, then the existing
4266 */ 3670 /// policy is overwritten blindly.
4267 core.String etag; 3671 core.String etag;
4268 core.List<core.int> get etagAsBytes { 3672 core.List<core.int> get etagAsBytes {
4269 return convert.BASE64.decode(etag); 3673 return convert.BASE64.decode(etag);
4270 } 3674 }
4271 3675
4272 void set etagAsBytes(core.List<core.int> _bytes) { 3676 void set etagAsBytes(core.List<core.int> _bytes) {
4273 etag = convert.BASE64.encode(_bytes).replaceAll("/", "_").replaceAll("+", "- "); 3677 etag =
3678 convert.BASE64.encode(_bytes).replaceAll("/", "_").replaceAll("+", "-");
4274 } 3679 }
4275 core.bool iamOwned; 3680
4276 /** 3681 /// Version of the `Policy`. The default version is 0.
4277 * If more than one rule is specified, the rules are applied in the following
4278 * manner:
4279 * - All matching LOG rules are always applied.
4280 * - If any DENY/DENY_WITH_LOG rule matches, permission is denied.
4281 * Logging will be applied if one or more matching rule requires logging.
4282 * - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
4283 * granted.
4284 * Logging will be applied if one or more matching rule requires logging.
4285 * - Otherwise, if no rule applies, permission is denied.
4286 */
4287 core.List<Rule> rules;
4288 /** Version of the `Policy`. The default version is 0. */
4289 core.int version; 3682 core.int version;
4290 3683
4291 Policy(); 3684 Policy();
4292 3685
4293 Policy.fromJson(core.Map _json) { 3686 Policy.fromJson(core.Map _json) {
4294 if (_json.containsKey("auditConfigs")) {
4295 auditConfigs = _json["auditConfigs"].map((value) => new AuditConfig.fromJs on(value)).toList();
4296 }
4297 if (_json.containsKey("bindings")) { 3687 if (_json.containsKey("bindings")) {
4298 bindings = _json["bindings"].map((value) => new Binding.fromJson(value)).t oList(); 3688 bindings = _json["bindings"]
3689 .map((value) => new Binding.fromJson(value))
3690 .toList();
4299 } 3691 }
4300 if (_json.containsKey("etag")) { 3692 if (_json.containsKey("etag")) {
4301 etag = _json["etag"]; 3693 etag = _json["etag"];
4302 } 3694 }
4303 if (_json.containsKey("iamOwned")) {
4304 iamOwned = _json["iamOwned"];
4305 }
4306 if (_json.containsKey("rules")) {
4307 rules = _json["rules"].map((value) => new Rule.fromJson(value)).toList();
4308 }
4309 if (_json.containsKey("version")) { 3695 if (_json.containsKey("version")) {
4310 version = _json["version"]; 3696 version = _json["version"];
4311 } 3697 }
4312 } 3698 }
4313 3699
4314 core.Map<core.String, core.Object> toJson() { 3700 core.Map<core.String, core.Object> toJson() {
4315 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 3701 final core.Map<core.String, core.Object> _json =
4316 if (auditConfigs != null) { 3702 new core.Map<core.String, core.Object>();
4317 _json["auditConfigs"] = auditConfigs.map((value) => (value).toJson()).toLi st();
4318 }
4319 if (bindings != null) { 3703 if (bindings != null) {
4320 _json["bindings"] = bindings.map((value) => (value).toJson()).toList(); 3704 _json["bindings"] = bindings.map((value) => (value).toJson()).toList();
4321 } 3705 }
4322 if (etag != null) { 3706 if (etag != null) {
4323 _json["etag"] = etag; 3707 _json["etag"] = etag;
4324 } 3708 }
4325 if (iamOwned != null) {
4326 _json["iamOwned"] = iamOwned;
4327 }
4328 if (rules != null) {
4329 _json["rules"] = rules.map((value) => (value).toJson()).toList();
4330 }
4331 if (version != null) { 3709 if (version != null) {
4332 _json["version"] = version; 3710 _json["version"] = version;
4333 } 3711 }
4334 return _json; 3712 return _json;
4335 } 3713 }
4336 } 3714 }
4337 3715
4338 /** Contains an ordered list of nodes appearing in the query plan. */ 3716 /// Contains an ordered list of nodes appearing in the query plan.
4339 class QueryPlan { 3717 class QueryPlan {
4340 /** 3718 /// The nodes in the query plan. Plan nodes are returned in pre-order
4341 * The nodes in the query plan. Plan nodes are returned in pre-order starting 3719 /// starting
4342 * with the plan root. Each PlanNode's `id` corresponds to its index in 3720 /// with the plan root. Each PlanNode's `id` corresponds to its index in
4343 * `plan_nodes`. 3721 /// `plan_nodes`.
4344 */
4345 core.List<PlanNode> planNodes; 3722 core.List<PlanNode> planNodes;
4346 3723
4347 QueryPlan(); 3724 QueryPlan();
4348 3725
4349 QueryPlan.fromJson(core.Map _json) { 3726 QueryPlan.fromJson(core.Map _json) {
4350 if (_json.containsKey("planNodes")) { 3727 if (_json.containsKey("planNodes")) {
4351 planNodes = _json["planNodes"].map((value) => new PlanNode.fromJson(value) ).toList(); 3728 planNodes = _json["planNodes"]
3729 .map((value) => new PlanNode.fromJson(value))
3730 .toList();
4352 } 3731 }
4353 } 3732 }
4354 3733
4355 core.Map<core.String, core.Object> toJson() { 3734 core.Map<core.String, core.Object> toJson() {
4356 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 3735 final core.Map<core.String, core.Object> _json =
3736 new core.Map<core.String, core.Object>();
4357 if (planNodes != null) { 3737 if (planNodes != null) {
4358 _json["planNodes"] = planNodes.map((value) => (value).toJson()).toList(); 3738 _json["planNodes"] = planNodes.map((value) => (value).toJson()).toList();
4359 } 3739 }
4360 return _json; 3740 return _json;
4361 } 3741 }
4362 } 3742 }
4363 3743
4364 /** Message type to initiate a read-only transaction. */ 3744 /// Message type to initiate a read-only transaction.
4365 class ReadOnly { 3745 class ReadOnly {
4366 /** 3746 /// Executes all reads at a timestamp that is `exact_staleness`
4367 * Executes all reads at a timestamp that is `exact_staleness` 3747 /// old. The timestamp is chosen soon after the read is started.
4368 * old. The timestamp is chosen soon after the read is started. 3748 ///
4369 * 3749 /// Guarantees that all writes that have committed more than the
4370 * Guarantees that all writes that have committed more than the 3750 /// specified number of seconds ago are visible. Because Cloud Spanner
4371 * specified number of seconds ago are visible. Because Cloud Spanner 3751 /// chooses the exact timestamp, this mode works even if the client's
4372 * chooses the exact timestamp, this mode works even if the client's 3752 /// local clock is substantially skewed from Cloud Spanner commit
4373 * local clock is substantially skewed from Cloud Spanner commit 3753 /// timestamps.
4374 * timestamps. 3754 ///
4375 * 3755 /// Useful for reading at nearby replicas without the distributed
4376 * Useful for reading at nearby replicas without the distributed 3756 /// timestamp negotiation overhead of `max_staleness`.
4377 * timestamp negotiation overhead of `max_staleness`.
4378 */
4379 core.String exactStaleness; 3757 core.String exactStaleness;
4380 /** 3758
4381 * Read data at a timestamp >= `NOW - max_staleness` 3759 /// Read data at a timestamp >= `NOW - max_staleness`
4382 * seconds. Guarantees that all writes that have committed more 3760 /// seconds. Guarantees that all writes that have committed more
4383 * than the specified number of seconds ago are visible. Because 3761 /// than the specified number of seconds ago are visible. Because
4384 * Cloud Spanner chooses the exact timestamp, this mode works even if 3762 /// Cloud Spanner chooses the exact timestamp, this mode works even if
4385 * the client's local clock is substantially skewed from Cloud Spanner 3763 /// the client's local clock is substantially skewed from Cloud Spanner
4386 * commit timestamps. 3764 /// commit timestamps.
4387 * 3765 ///
4388 * Useful for reading the freshest data available at a nearby 3766 /// Useful for reading the freshest data available at a nearby
4389 * replica, while bounding the possible staleness if the local 3767 /// replica, while bounding the possible staleness if the local
4390 * replica has fallen behind. 3768 /// replica has fallen behind.
4391 * 3769 ///
4392 * Note that this option can only be used in single-use 3770 /// Note that this option can only be used in single-use
4393 * transactions. 3771 /// transactions.
4394 */
4395 core.String maxStaleness; 3772 core.String maxStaleness;
4396 /** 3773
4397 * Executes all reads at a timestamp >= `min_read_timestamp`. 3774 /// Executes all reads at a timestamp >= `min_read_timestamp`.
4398 * 3775 ///
4399 * This is useful for requesting fresher data than some previous 3776 /// This is useful for requesting fresher data than some previous
4400 * read, or data that is fresh enough to observe the effects of some 3777 /// read, or data that is fresh enough to observe the effects of some
4401 * previously committed transaction whose timestamp is known. 3778 /// previously committed transaction whose timestamp is known.
4402 * 3779 ///
4403 * Note that this option can only be used in single-use transactions. 3780 /// Note that this option can only be used in single-use transactions.
4404 */
4405 core.String minReadTimestamp; 3781 core.String minReadTimestamp;
4406 /** 3782
4407 * Executes all reads at the given timestamp. Unlike other modes, 3783 /// Executes all reads at the given timestamp. Unlike other modes,
4408 * reads at a specific timestamp are repeatable; the same read at 3784 /// reads at a specific timestamp are repeatable; the same read at
4409 * the same timestamp always returns the same data. If the 3785 /// the same timestamp always returns the same data. If the
4410 * timestamp is in the future, the read will block until the 3786 /// timestamp is in the future, the read will block until the
4411 * specified timestamp, modulo the read's deadline. 3787 /// specified timestamp, modulo the read's deadline.
4412 * 3788 ///
4413 * Useful for large scale consistent reads such as mapreduces, or 3789 /// Useful for large scale consistent reads such as mapreduces, or
4414 * for coordinating many reads against a consistent snapshot of the 3790 /// for coordinating many reads against a consistent snapshot of the
4415 * data. 3791 /// data.
4416 */
4417 core.String readTimestamp; 3792 core.String readTimestamp;
4418 /** 3793
4419 * If true, the Cloud Spanner-selected read timestamp is included in 3794 /// If true, the Cloud Spanner-selected read timestamp is included in
4420 * the Transaction message that describes the transaction. 3795 /// the Transaction message that describes the transaction.
4421 */
4422 core.bool returnReadTimestamp; 3796 core.bool returnReadTimestamp;
4423 /** 3797
4424 * Read at a timestamp where all previously committed transactions 3798 /// Read at a timestamp where all previously committed transactions
4425 * are visible. 3799 /// are visible.
4426 */
4427 core.bool strong; 3800 core.bool strong;
4428 3801
4429 ReadOnly(); 3802 ReadOnly();
4430 3803
4431 ReadOnly.fromJson(core.Map _json) { 3804 ReadOnly.fromJson(core.Map _json) {
4432 if (_json.containsKey("exactStaleness")) { 3805 if (_json.containsKey("exactStaleness")) {
4433 exactStaleness = _json["exactStaleness"]; 3806 exactStaleness = _json["exactStaleness"];
4434 } 3807 }
4435 if (_json.containsKey("maxStaleness")) { 3808 if (_json.containsKey("maxStaleness")) {
4436 maxStaleness = _json["maxStaleness"]; 3809 maxStaleness = _json["maxStaleness"];
4437 } 3810 }
4438 if (_json.containsKey("minReadTimestamp")) { 3811 if (_json.containsKey("minReadTimestamp")) {
4439 minReadTimestamp = _json["minReadTimestamp"]; 3812 minReadTimestamp = _json["minReadTimestamp"];
4440 } 3813 }
4441 if (_json.containsKey("readTimestamp")) { 3814 if (_json.containsKey("readTimestamp")) {
4442 readTimestamp = _json["readTimestamp"]; 3815 readTimestamp = _json["readTimestamp"];
4443 } 3816 }
4444 if (_json.containsKey("returnReadTimestamp")) { 3817 if (_json.containsKey("returnReadTimestamp")) {
4445 returnReadTimestamp = _json["returnReadTimestamp"]; 3818 returnReadTimestamp = _json["returnReadTimestamp"];
4446 } 3819 }
4447 if (_json.containsKey("strong")) { 3820 if (_json.containsKey("strong")) {
4448 strong = _json["strong"]; 3821 strong = _json["strong"];
4449 } 3822 }
4450 } 3823 }
4451 3824
4452 core.Map<core.String, core.Object> toJson() { 3825 core.Map<core.String, core.Object> toJson() {
4453 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 3826 final core.Map<core.String, core.Object> _json =
3827 new core.Map<core.String, core.Object>();
4454 if (exactStaleness != null) { 3828 if (exactStaleness != null) {
4455 _json["exactStaleness"] = exactStaleness; 3829 _json["exactStaleness"] = exactStaleness;
4456 } 3830 }
4457 if (maxStaleness != null) { 3831 if (maxStaleness != null) {
4458 _json["maxStaleness"] = maxStaleness; 3832 _json["maxStaleness"] = maxStaleness;
4459 } 3833 }
4460 if (minReadTimestamp != null) { 3834 if (minReadTimestamp != null) {
4461 _json["minReadTimestamp"] = minReadTimestamp; 3835 _json["minReadTimestamp"] = minReadTimestamp;
4462 } 3836 }
4463 if (readTimestamp != null) { 3837 if (readTimestamp != null) {
4464 _json["readTimestamp"] = readTimestamp; 3838 _json["readTimestamp"] = readTimestamp;
4465 } 3839 }
4466 if (returnReadTimestamp != null) { 3840 if (returnReadTimestamp != null) {
4467 _json["returnReadTimestamp"] = returnReadTimestamp; 3841 _json["returnReadTimestamp"] = returnReadTimestamp;
4468 } 3842 }
4469 if (strong != null) { 3843 if (strong != null) {
4470 _json["strong"] = strong; 3844 _json["strong"] = strong;
4471 } 3845 }
4472 return _json; 3846 return _json;
4473 } 3847 }
4474 } 3848 }
4475 3849
4476 /** 3850 /// The request for Read and
4477 * The request for Read and 3851 /// StreamingRead.
4478 * StreamingRead.
4479 */
4480 class ReadRequest { 3852 class ReadRequest {
4481 /** 3853 /// The columns of table to be returned for each row matching
4482 * The columns of table to be returned for each row matching 3854 /// this request.
4483 * this request.
4484 */
4485 core.List<core.String> columns; 3855 core.List<core.String> columns;
4486 /** 3856
4487 * If non-empty, the name of an index on table. This index is 3857 /// If non-empty, the name of an index on table. This index is
4488 * used instead of the table primary key when interpreting key_set 3858 /// used instead of the table primary key when interpreting key_set
4489 * and sorting result rows. See key_set for further information. 3859 /// and sorting result rows. See key_set for further information.
4490 */
4491 core.String index; 3860 core.String index;
4492 /** 3861
4493 * Required. `key_set` identifies the rows to be yielded. `key_set` names the 3862 /// Required. `key_set` identifies the rows to be yielded. `key_set` names
4494 * primary keys of the rows in table to be yielded, unless index 3863 /// the
4495 * is present. If index is present, then key_set instead names 3864 /// primary keys of the rows in table to be yielded, unless index
4496 * index keys in index. 3865 /// is present. If index is present, then key_set instead names
4497 * 3866 /// index keys in index.
4498 * Rows are yielded in table primary key order (if index is empty) 3867 ///
4499 * or index key order (if index is non-empty). 3868 /// Rows are yielded in table primary key order (if index is empty)
4500 * 3869 /// or index key order (if index is non-empty).
4501 * It is not an error for the `key_set` to name rows that do not 3870 ///
4502 * exist in the database. Read yields nothing for nonexistent rows. 3871 /// It is not an error for the `key_set` to name rows that do not
4503 */ 3872 /// exist in the database. Read yields nothing for nonexistent rows.
4504 KeySet keySet; 3873 KeySet keySet;
4505 /** 3874
4506 * If greater than zero, only the first `limit` rows are yielded. If `limit` 3875 /// If greater than zero, only the first `limit` rows are yielded. If `limit`
4507 * is zero, the default is no limit. 3876 /// is zero, the default is no limit.
4508 */
4509 core.String limit; 3877 core.String limit;
4510 /** 3878
4511 * If this request is resuming a previously interrupted read, 3879 /// If this request is resuming a previously interrupted read,
4512 * `resume_token` should be copied from the last 3880 /// `resume_token` should be copied from the last
4513 * PartialResultSet yielded before the interruption. Doing this 3881 /// PartialResultSet yielded before the interruption. Doing this
4514 * enables the new read to resume where the last read left off. The 3882 /// enables the new read to resume where the last read left off. The
4515 * rest of the request parameters must exactly match the request 3883 /// rest of the request parameters must exactly match the request
4516 * that yielded this token. 3884 /// that yielded this token.
4517 */
4518 core.String resumeToken; 3885 core.String resumeToken;
4519 core.List<core.int> get resumeTokenAsBytes { 3886 core.List<core.int> get resumeTokenAsBytes {
4520 return convert.BASE64.decode(resumeToken); 3887 return convert.BASE64.decode(resumeToken);
4521 } 3888 }
4522 3889
4523 void set resumeTokenAsBytes(core.List<core.int> _bytes) { 3890 void set resumeTokenAsBytes(core.List<core.int> _bytes) {
4524 resumeToken = convert.BASE64.encode(_bytes).replaceAll("/", "_").replaceAll( "+", "-"); 3891 resumeToken =
3892 convert.BASE64.encode(_bytes).replaceAll("/", "_").replaceAll("+", "-");
4525 } 3893 }
4526 /** Required. The name of the table in the database to be read. */ 3894
3895 /// Required. The name of the table in the database to be read.
4527 core.String table; 3896 core.String table;
4528 /** 3897
4529 * The transaction to use. If none is provided, the default is a 3898 /// The transaction to use. If none is provided, the default is a
4530 * temporary read-only transaction with strong concurrency. 3899 /// temporary read-only transaction with strong concurrency.
4531 */
4532 TransactionSelector transaction; 3900 TransactionSelector transaction;
4533 3901
4534 ReadRequest(); 3902 ReadRequest();
4535 3903
4536 ReadRequest.fromJson(core.Map _json) { 3904 ReadRequest.fromJson(core.Map _json) {
4537 if (_json.containsKey("columns")) { 3905 if (_json.containsKey("columns")) {
4538 columns = _json["columns"]; 3906 columns = _json["columns"];
4539 } 3907 }
4540 if (_json.containsKey("index")) { 3908 if (_json.containsKey("index")) {
4541 index = _json["index"]; 3909 index = _json["index"];
4542 } 3910 }
4543 if (_json.containsKey("keySet")) { 3911 if (_json.containsKey("keySet")) {
4544 keySet = new KeySet.fromJson(_json["keySet"]); 3912 keySet = new KeySet.fromJson(_json["keySet"]);
4545 } 3913 }
4546 if (_json.containsKey("limit")) { 3914 if (_json.containsKey("limit")) {
4547 limit = _json["limit"]; 3915 limit = _json["limit"];
4548 } 3916 }
4549 if (_json.containsKey("resumeToken")) { 3917 if (_json.containsKey("resumeToken")) {
4550 resumeToken = _json["resumeToken"]; 3918 resumeToken = _json["resumeToken"];
4551 } 3919 }
4552 if (_json.containsKey("table")) { 3920 if (_json.containsKey("table")) {
4553 table = _json["table"]; 3921 table = _json["table"];
4554 } 3922 }
4555 if (_json.containsKey("transaction")) { 3923 if (_json.containsKey("transaction")) {
4556 transaction = new TransactionSelector.fromJson(_json["transaction"]); 3924 transaction = new TransactionSelector.fromJson(_json["transaction"]);
4557 } 3925 }
4558 } 3926 }
4559 3927
4560 core.Map<core.String, core.Object> toJson() { 3928 core.Map<core.String, core.Object> toJson() {
4561 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 3929 final core.Map<core.String, core.Object> _json =
3930 new core.Map<core.String, core.Object>();
4562 if (columns != null) { 3931 if (columns != null) {
4563 _json["columns"] = columns; 3932 _json["columns"] = columns;
4564 } 3933 }
4565 if (index != null) { 3934 if (index != null) {
4566 _json["index"] = index; 3935 _json["index"] = index;
4567 } 3936 }
4568 if (keySet != null) { 3937 if (keySet != null) {
4569 _json["keySet"] = (keySet).toJson(); 3938 _json["keySet"] = (keySet).toJson();
4570 } 3939 }
4571 if (limit != null) { 3940 if (limit != null) {
4572 _json["limit"] = limit; 3941 _json["limit"] = limit;
4573 } 3942 }
4574 if (resumeToken != null) { 3943 if (resumeToken != null) {
4575 _json["resumeToken"] = resumeToken; 3944 _json["resumeToken"] = resumeToken;
4576 } 3945 }
4577 if (table != null) { 3946 if (table != null) {
4578 _json["table"] = table; 3947 _json["table"] = table;
4579 } 3948 }
4580 if (transaction != null) { 3949 if (transaction != null) {
4581 _json["transaction"] = (transaction).toJson(); 3950 _json["transaction"] = (transaction).toJson();
4582 } 3951 }
4583 return _json; 3952 return _json;
4584 } 3953 }
4585 } 3954 }
4586 3955
4587 /** 3956 /// Message type to initiate a read-write transaction. Currently this
4588 * Message type to initiate a read-write transaction. Currently this 3957 /// transaction type has no options.
4589 * transaction type has no options.
4590 */
4591 class ReadWrite { 3958 class ReadWrite {
4592
4593 ReadWrite(); 3959 ReadWrite();
4594 3960
4595 ReadWrite.fromJson(core.Map _json) { 3961 ReadWrite.fromJson(core.Map _json) {}
4596 }
4597 3962
4598 core.Map<core.String, core.Object> toJson() { 3963 core.Map<core.String, core.Object> toJson() {
4599 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 3964 final core.Map<core.String, core.Object> _json =
3965 new core.Map<core.String, core.Object>();
4600 return _json; 3966 return _json;
4601 } 3967 }
4602 } 3968 }
4603 3969
4604 /** 3970 /// Results from Read or
4605 * Results from Read or 3971 /// ExecuteSql.
4606 * ExecuteSql.
4607 */
4608 class ResultSet { 3972 class ResultSet {
4609 /** Metadata about the result set, such as row type information. */ 3973 /// Metadata about the result set, such as row type information.
4610 ResultSetMetadata metadata; 3974 ResultSetMetadata metadata;
4611 /** 3975
4612 * Each element in `rows` is a row whose format is defined by 3976 /// Each element in `rows` is a row whose format is defined by
4613 * metadata.row_type. The ith element 3977 /// metadata.row_type. The ith element
4614 * in each row matches the ith field in 3978 /// in each row matches the ith field in
4615 * metadata.row_type. Elements are 3979 /// metadata.row_type. Elements are
4616 * encoded based on type as described 3980 /// encoded based on type as described
4617 * here. 3981 /// here.
4618 * 3982 ///
4619 * The values for Object must be JSON objects. It can consist of `num`, 3983 /// The values for Object must be JSON objects. It can consist of `num`,
4620 * `String`, `bool` and `null` as well as `Map` and `List` values. 3984 /// `String`, `bool` and `null` as well as `Map` and `List` values.
4621 */
4622 core.List<core.List<core.Object>> rows; 3985 core.List<core.List<core.Object>> rows;
4623 /** 3986
4624 * Query plan and execution statistics for the query that produced this 3987 /// Query plan and execution statistics for the query that produced this
4625 * result set. These can be requested by setting 3988 /// result set. These can be requested by setting
4626 * ExecuteSqlRequest.query_mode. 3989 /// ExecuteSqlRequest.query_mode.
4627 */
4628 ResultSetStats stats; 3990 ResultSetStats stats;
4629 3991
4630 ResultSet(); 3992 ResultSet();
4631 3993
4632 ResultSet.fromJson(core.Map _json) { 3994 ResultSet.fromJson(core.Map _json) {
4633 if (_json.containsKey("metadata")) { 3995 if (_json.containsKey("metadata")) {
4634 metadata = new ResultSetMetadata.fromJson(_json["metadata"]); 3996 metadata = new ResultSetMetadata.fromJson(_json["metadata"]);
4635 } 3997 }
4636 if (_json.containsKey("rows")) { 3998 if (_json.containsKey("rows")) {
4637 rows = _json["rows"]; 3999 rows = _json["rows"];
4638 } 4000 }
4639 if (_json.containsKey("stats")) { 4001 if (_json.containsKey("stats")) {
4640 stats = new ResultSetStats.fromJson(_json["stats"]); 4002 stats = new ResultSetStats.fromJson(_json["stats"]);
4641 } 4003 }
4642 } 4004 }
4643 4005
4644 core.Map<core.String, core.Object> toJson() { 4006 core.Map<core.String, core.Object> toJson() {
4645 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 4007 final core.Map<core.String, core.Object> _json =
4008 new core.Map<core.String, core.Object>();
4646 if (metadata != null) { 4009 if (metadata != null) {
4647 _json["metadata"] = (metadata).toJson(); 4010 _json["metadata"] = (metadata).toJson();
4648 } 4011 }
4649 if (rows != null) { 4012 if (rows != null) {
4650 _json["rows"] = rows; 4013 _json["rows"] = rows;
4651 } 4014 }
4652 if (stats != null) { 4015 if (stats != null) {
4653 _json["stats"] = (stats).toJson(); 4016 _json["stats"] = (stats).toJson();
4654 } 4017 }
4655 return _json; 4018 return _json;
4656 } 4019 }
4657 } 4020 }
4658 4021
4659 /** Metadata about a ResultSet or PartialResultSet. */ 4022 /// Metadata about a ResultSet or PartialResultSet.
4660 class ResultSetMetadata { 4023 class ResultSetMetadata {
4661 /** 4024 /// Indicates the field names and types for the rows in the result
4662 * Indicates the field names and types for the rows in the result 4025 /// set. For example, a SQL query like `"SELECT UserId, UserName FROM
4663 * set. For example, a SQL query like `"SELECT UserId, UserName FROM 4026 /// Users"` could return a `row_type` value like:
4664 * Users"` could return a `row_type` value like: 4027 ///
4665 * 4028 /// "fields": [
4666 * "fields": [ 4029 /// { "name": "UserId", "type": { "code": "INT64" } },
4667 * { "name": "UserId", "type": { "code": "INT64" } }, 4030 /// { "name": "UserName", "type": { "code": "STRING" } },
4668 * { "name": "UserName", "type": { "code": "STRING" } }, 4031 /// ]
4669 * ]
4670 */
4671 StructType rowType; 4032 StructType rowType;
4672 /** 4033
4673 * If the read or SQL query began a transaction as a side-effect, the 4034 /// If the read or SQL query began a transaction as a side-effect, the
4674 * information about the new transaction is yielded here. 4035 /// information about the new transaction is yielded here.
4675 */
4676 Transaction transaction; 4036 Transaction transaction;
4677 4037
4678 ResultSetMetadata(); 4038 ResultSetMetadata();
4679 4039
4680 ResultSetMetadata.fromJson(core.Map _json) { 4040 ResultSetMetadata.fromJson(core.Map _json) {
4681 if (_json.containsKey("rowType")) { 4041 if (_json.containsKey("rowType")) {
4682 rowType = new StructType.fromJson(_json["rowType"]); 4042 rowType = new StructType.fromJson(_json["rowType"]);
4683 } 4043 }
4684 if (_json.containsKey("transaction")) { 4044 if (_json.containsKey("transaction")) {
4685 transaction = new Transaction.fromJson(_json["transaction"]); 4045 transaction = new Transaction.fromJson(_json["transaction"]);
4686 } 4046 }
4687 } 4047 }
4688 4048
4689 core.Map<core.String, core.Object> toJson() { 4049 core.Map<core.String, core.Object> toJson() {
4690 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 4050 final core.Map<core.String, core.Object> _json =
4051 new core.Map<core.String, core.Object>();
4691 if (rowType != null) { 4052 if (rowType != null) {
4692 _json["rowType"] = (rowType).toJson(); 4053 _json["rowType"] = (rowType).toJson();
4693 } 4054 }
4694 if (transaction != null) { 4055 if (transaction != null) {
4695 _json["transaction"] = (transaction).toJson(); 4056 _json["transaction"] = (transaction).toJson();
4696 } 4057 }
4697 return _json; 4058 return _json;
4698 } 4059 }
4699 } 4060 }
4700 4061
4701 /** Additional statistics about a ResultSet or PartialResultSet. */ 4062 /// Additional statistics about a ResultSet or PartialResultSet.
4702 class ResultSetStats { 4063 class ResultSetStats {
4703 /** QueryPlan for the query associated with this result. */ 4064 /// QueryPlan for the query associated with this result.
4704 QueryPlan queryPlan; 4065 QueryPlan queryPlan;
4705 /** 4066
4706 * Aggregated statistics from the execution of the query. Only present when 4067 /// Aggregated statistics from the execution of the query. Only present when
4707 * the query is profiled. For example, a query could return the statistics as 4068 /// the query is profiled. For example, a query could return the statistics
4708 * follows: 4069 /// as
4709 * 4070 /// follows:
4710 * { 4071 ///
4711 * "rows_returned": "3", 4072 /// {
4712 * "elapsed_time": "1.22 secs", 4073 /// "rows_returned": "3",
4713 * "cpu_time": "1.19 secs" 4074 /// "elapsed_time": "1.22 secs",
4714 * } 4075 /// "cpu_time": "1.19 secs"
4715 * 4076 /// }
4716 * The values for Object must be JSON objects. It can consist of `num`, 4077 ///
4717 * `String`, `bool` and `null` as well as `Map` and `List` values. 4078 /// The values for Object must be JSON objects. It can consist of `num`,
4718 */ 4079 /// `String`, `bool` and `null` as well as `Map` and `List` values.
4719 core.Map<core.String, core.Object> queryStats; 4080 core.Map<core.String, core.Object> queryStats;
4720 4081
4721 ResultSetStats(); 4082 ResultSetStats();
4722 4083
4723 ResultSetStats.fromJson(core.Map _json) { 4084 ResultSetStats.fromJson(core.Map _json) {
4724 if (_json.containsKey("queryPlan")) { 4085 if (_json.containsKey("queryPlan")) {
4725 queryPlan = new QueryPlan.fromJson(_json["queryPlan"]); 4086 queryPlan = new QueryPlan.fromJson(_json["queryPlan"]);
4726 } 4087 }
4727 if (_json.containsKey("queryStats")) { 4088 if (_json.containsKey("queryStats")) {
4728 queryStats = _json["queryStats"]; 4089 queryStats = _json["queryStats"];
4729 } 4090 }
4730 } 4091 }
4731 4092
4732 core.Map<core.String, core.Object> toJson() { 4093 core.Map<core.String, core.Object> toJson() {
4733 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 4094 final core.Map<core.String, core.Object> _json =
4095 new core.Map<core.String, core.Object>();
4734 if (queryPlan != null) { 4096 if (queryPlan != null) {
4735 _json["queryPlan"] = (queryPlan).toJson(); 4097 _json["queryPlan"] = (queryPlan).toJson();
4736 } 4098 }
4737 if (queryStats != null) { 4099 if (queryStats != null) {
4738 _json["queryStats"] = queryStats; 4100 _json["queryStats"] = queryStats;
4739 } 4101 }
4740 return _json; 4102 return _json;
4741 } 4103 }
4742 } 4104 }
4743 4105
4744 /** The request for Rollback. */ 4106 /// The request for Rollback.
4745 class RollbackRequest { 4107 class RollbackRequest {
4746 /** Required. The transaction to roll back. */ 4108 /// Required. The transaction to roll back.
4747 core.String transactionId; 4109 core.String transactionId;
4748 core.List<core.int> get transactionIdAsBytes { 4110 core.List<core.int> get transactionIdAsBytes {
4749 return convert.BASE64.decode(transactionId); 4111 return convert.BASE64.decode(transactionId);
4750 } 4112 }
4751 4113
4752 void set transactionIdAsBytes(core.List<core.int> _bytes) { 4114 void set transactionIdAsBytes(core.List<core.int> _bytes) {
4753 transactionId = convert.BASE64.encode(_bytes).replaceAll("/", "_").replaceAl l("+", "-"); 4115 transactionId =
4116 convert.BASE64.encode(_bytes).replaceAll("/", "_").replaceAll("+", "-");
4754 } 4117 }
4755 4118
4756 RollbackRequest(); 4119 RollbackRequest();
4757 4120
4758 RollbackRequest.fromJson(core.Map _json) { 4121 RollbackRequest.fromJson(core.Map _json) {
4759 if (_json.containsKey("transactionId")) { 4122 if (_json.containsKey("transactionId")) {
4760 transactionId = _json["transactionId"]; 4123 transactionId = _json["transactionId"];
4761 } 4124 }
4762 } 4125 }
4763 4126
4764 core.Map<core.String, core.Object> toJson() { 4127 core.Map<core.String, core.Object> toJson() {
4765 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 4128 final core.Map<core.String, core.Object> _json =
4129 new core.Map<core.String, core.Object>();
4766 if (transactionId != null) { 4130 if (transactionId != null) {
4767 _json["transactionId"] = transactionId; 4131 _json["transactionId"] = transactionId;
4768 } 4132 }
4769 return _json; 4133 return _json;
4770 } 4134 }
4771 } 4135 }
4772 4136
4773 /** A rule to be applied in a Policy. */ 4137 /// A session in the Cloud Spanner API.
4774 class Rule {
4775 /**
4776 * Required
4777 * Possible string values are:
4778 * - "NO_ACTION" : Default no action.
4779 * - "ALLOW" : Matching 'Entries' grant access.
4780 * - "ALLOW_WITH_LOG" : Matching 'Entries' grant access and the caller
4781 * promises to log
4782 * the request per the returned log_configs.
4783 * - "DENY" : Matching 'Entries' deny access.
4784 * - "DENY_WITH_LOG" : Matching 'Entries' deny access and the caller promises
4785 * to log
4786 * the request per the returned log_configs.
4787 * - "LOG" : Matching 'Entries' tell IAM.Check callers to generate logs.
4788 */
4789 core.String action;
4790 /** Additional restrictions that must be met */
4791 core.List<Condition> conditions;
4792 /** Human-readable description of the rule. */
4793 core.String description;
4794 /**
4795 * If one or more 'in' clauses are specified, the rule matches if
4796 * the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
4797 */
4798 core.List<core.String> in_;
4799 /**
4800 * The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
4801 * that match the LOG action.
4802 */
4803 core.List<LogConfig> logConfig;
4804 /**
4805 * If one or more 'not_in' clauses are specified, the rule matches
4806 * if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
4807 * The format for in and not_in entries is the same as for members in a
4808 * Binding (see google/iam/v1/policy.proto).
4809 */
4810 core.List<core.String> notIn;
4811 /**
4812 * A permission is a string of form '<service>.<resource type>.<verb>'
4813 * (e.g., 'storage.buckets.list'). A value of '*' matches all permissions,
4814 * and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
4815 */
4816 core.List<core.String> permissions;
4817
4818 Rule();
4819
4820 Rule.fromJson(core.Map _json) {
4821 if (_json.containsKey("action")) {
4822 action = _json["action"];
4823 }
4824 if (_json.containsKey("conditions")) {
4825 conditions = _json["conditions"].map((value) => new Condition.fromJson(val ue)).toList();
4826 }
4827 if (_json.containsKey("description")) {
4828 description = _json["description"];
4829 }
4830 if (_json.containsKey("in")) {
4831 in_ = _json["in"];
4832 }
4833 if (_json.containsKey("logConfig")) {
4834 logConfig = _json["logConfig"].map((value) => new LogConfig.fromJson(value )).toList();
4835 }
4836 if (_json.containsKey("notIn")) {
4837 notIn = _json["notIn"];
4838 }
4839 if (_json.containsKey("permissions")) {
4840 permissions = _json["permissions"];
4841 }
4842 }
4843
4844 core.Map<core.String, core.Object> toJson() {
4845 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>();
4846 if (action != null) {
4847 _json["action"] = action;
4848 }
4849 if (conditions != null) {
4850 _json["conditions"] = conditions.map((value) => (value).toJson()).toList() ;
4851 }
4852 if (description != null) {
4853 _json["description"] = description;
4854 }
4855 if (in_ != null) {
4856 _json["in"] = in_;
4857 }
4858 if (logConfig != null) {
4859 _json["logConfig"] = logConfig.map((value) => (value).toJson()).toList();
4860 }
4861 if (notIn != null) {
4862 _json["notIn"] = notIn;
4863 }
4864 if (permissions != null) {
4865 _json["permissions"] = permissions;
4866 }
4867 return _json;
4868 }
4869 }
4870
4871 /** A session in the Cloud Spanner API. */
4872 class Session { 4138 class Session {
4873 /** Required. The name of the session. */ 4139 /// Required. The name of the session.
4874 core.String name; 4140 core.String name;
4875 4141
4876 Session(); 4142 Session();
4877 4143
4878 Session.fromJson(core.Map _json) { 4144 Session.fromJson(core.Map _json) {
4879 if (_json.containsKey("name")) { 4145 if (_json.containsKey("name")) {
4880 name = _json["name"]; 4146 name = _json["name"];
4881 } 4147 }
4882 } 4148 }
4883 4149
4884 core.Map<core.String, core.Object> toJson() { 4150 core.Map<core.String, core.Object> toJson() {
4885 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 4151 final core.Map<core.String, core.Object> _json =
4152 new core.Map<core.String, core.Object>();
4886 if (name != null) { 4153 if (name != null) {
4887 _json["name"] = name; 4154 _json["name"] = name;
4888 } 4155 }
4889 return _json; 4156 return _json;
4890 } 4157 }
4891 } 4158 }
4892 4159
4893 /** Request message for `SetIamPolicy` method. */ 4160 /// Request message for `SetIamPolicy` method.
4894 class SetIamPolicyRequest { 4161 class SetIamPolicyRequest {
4895 /** 4162 /// REQUIRED: The complete policy to be applied to the `resource`. The size
4896 * REQUIRED: The complete policy to be applied to the `resource`. The size of 4163 /// of
4897 * the policy is limited to a few 10s of KB. An empty policy is a 4164 /// the policy is limited to a few 10s of KB. An empty policy is a
4898 * valid policy but certain Cloud Platform services (such as Projects) 4165 /// valid policy but certain Cloud Platform services (such as Projects)
4899 * might reject them. 4166 /// might reject them.
4900 */
4901 Policy policy; 4167 Policy policy;
4902 /**
4903 * OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
4904 * the fields in the mask will be modified. If no mask is provided, the
4905 * following default mask is used:
4906 * paths: "bindings, etag"
4907 * This field is only used by Cloud IAM.
4908 */
4909 core.String updateMask;
4910 4168
4911 SetIamPolicyRequest(); 4169 SetIamPolicyRequest();
4912 4170
4913 SetIamPolicyRequest.fromJson(core.Map _json) { 4171 SetIamPolicyRequest.fromJson(core.Map _json) {
4914 if (_json.containsKey("policy")) { 4172 if (_json.containsKey("policy")) {
4915 policy = new Policy.fromJson(_json["policy"]); 4173 policy = new Policy.fromJson(_json["policy"]);
4916 } 4174 }
4917 if (_json.containsKey("updateMask")) {
4918 updateMask = _json["updateMask"];
4919 }
4920 } 4175 }
4921 4176
4922 core.Map<core.String, core.Object> toJson() { 4177 core.Map<core.String, core.Object> toJson() {
4923 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 4178 final core.Map<core.String, core.Object> _json =
4179 new core.Map<core.String, core.Object>();
4924 if (policy != null) { 4180 if (policy != null) {
4925 _json["policy"] = (policy).toJson(); 4181 _json["policy"] = (policy).toJson();
4926 } 4182 }
4927 if (updateMask != null) {
4928 _json["updateMask"] = updateMask;
4929 }
4930 return _json; 4183 return _json;
4931 } 4184 }
4932 } 4185 }
4933 4186
4934 /** 4187 /// Condensed representation of a node and its subtree. Only present for
4935 * Condensed representation of a node and its subtree. Only present for 4188 /// `SCALAR` PlanNode(s).
4936 * `SCALAR` PlanNode(s).
4937 */
4938 class ShortRepresentation { 4189 class ShortRepresentation {
4939 /** A string representation of the expression subtree rooted at this node. */ 4190 /// A string representation of the expression subtree rooted at this node.
4940 core.String description; 4191 core.String description;
4941 /** 4192
4942 * A mapping of (subquery variable name) -> (subquery node id) for cases 4193 /// A mapping of (subquery variable name) -> (subquery node id) for cases
4943 * where the `description` string of this node references a `SCALAR` 4194 /// where the `description` string of this node references a `SCALAR`
4944 * subquery contained in the expression subtree rooted at this node. The 4195 /// subquery contained in the expression subtree rooted at this node. The
4945 * referenced `SCALAR` subquery may not necessarily be a direct child of 4196 /// referenced `SCALAR` subquery may not necessarily be a direct child of
4946 * this node. 4197 /// this node.
4947 */
4948 core.Map<core.String, core.int> subqueries; 4198 core.Map<core.String, core.int> subqueries;
4949 4199
4950 ShortRepresentation(); 4200 ShortRepresentation();
4951 4201
4952 ShortRepresentation.fromJson(core.Map _json) { 4202 ShortRepresentation.fromJson(core.Map _json) {
4953 if (_json.containsKey("description")) { 4203 if (_json.containsKey("description")) {
4954 description = _json["description"]; 4204 description = _json["description"];
4955 } 4205 }
4956 if (_json.containsKey("subqueries")) { 4206 if (_json.containsKey("subqueries")) {
4957 subqueries = _json["subqueries"]; 4207 subqueries = _json["subqueries"];
4958 } 4208 }
4959 } 4209 }
4960 4210
4961 core.Map<core.String, core.Object> toJson() { 4211 core.Map<core.String, core.Object> toJson() {
4962 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 4212 final core.Map<core.String, core.Object> _json =
4213 new core.Map<core.String, core.Object>();
4963 if (description != null) { 4214 if (description != null) {
4964 _json["description"] = description; 4215 _json["description"] = description;
4965 } 4216 }
4966 if (subqueries != null) { 4217 if (subqueries != null) {
4967 _json["subqueries"] = subqueries; 4218 _json["subqueries"] = subqueries;
4968 } 4219 }
4969 return _json; 4220 return _json;
4970 } 4221 }
4971 } 4222 }
4972 4223
4973 /** 4224 /// The `Status` type defines a logical error model that is suitable for
4974 * The `Status` type defines a logical error model that is suitable for 4225 /// different
4975 * different 4226 /// programming environments, including REST APIs and RPC APIs. It is used by
4976 * programming environments, including REST APIs and RPC APIs. It is used by 4227 /// [gRPC](https://github.com/grpc). The error model is designed to be:
4977 * [gRPC](https://github.com/grpc). The error model is designed to be: 4228 ///
4978 * 4229 /// - Simple to use and understand for most users
4979 * - Simple to use and understand for most users 4230 /// - Flexible enough to meet unexpected needs
4980 * - Flexible enough to meet unexpected needs 4231 ///
4981 * 4232 /// # Overview
4982 * # Overview 4233 ///
4983 * 4234 /// The `Status` message contains three pieces of data: error code, error
4984 * The `Status` message contains three pieces of data: error code, error 4235 /// message,
4985 * message, 4236 /// and error details. The error code should be an enum value of
4986 * and error details. The error code should be an enum value of 4237 /// google.rpc.Code, but it may accept additional error codes if needed. The
4987 * google.rpc.Code, but it may accept additional error codes if needed. The 4238 /// error message should be a developer-facing English message that helps
4988 * error message should be a developer-facing English message that helps 4239 /// developers *understand* and *resolve* the error. If a localized user-facing
4989 * developers *understand* and *resolve* the error. If a localized user-facing 4240 /// error message is needed, put the localized message in the error details or
4990 * error message is needed, put the localized message in the error details or 4241 /// localize it in the client. The optional error details may contain arbitrary
4991 * localize it in the client. The optional error details may contain arbitrary 4242 /// information about the error. There is a predefined set of error detail
4992 * information about the error. There is a predefined set of error detail types 4243 /// types
4993 * in the package `google.rpc` that can be used for common error conditions. 4244 /// in the package `google.rpc` that can be used for common error conditions.
4994 * 4245 ///
4995 * # Language mapping 4246 /// # Language mapping
4996 * 4247 ///
4997 * The `Status` message is the logical representation of the error model, but it 4248 /// The `Status` message is the logical representation of the error model, but
4998 * is not necessarily the actual wire format. When the `Status` message is 4249 /// it
4999 * exposed in different client libraries and different wire protocols, it can be 4250 /// is not necessarily the actual wire format. When the `Status` message is
5000 * mapped differently. For example, it will likely be mapped to some exceptions 4251 /// exposed in different client libraries and different wire protocols, it can
5001 * in Java, but more likely mapped to some error codes in C. 4252 /// be
5002 * 4253 /// mapped differently. For example, it will likely be mapped to some
5003 * # Other uses 4254 /// exceptions
5004 * 4255 /// in Java, but more likely mapped to some error codes in C.
5005 * The error model and the `Status` message can be used in a variety of 4256 ///
5006 * environments, either with or without APIs, to provide a 4257 /// # Other uses
5007 * consistent developer experience across different environments. 4258 ///
5008 * 4259 /// The error model and the `Status` message can be used in a variety of
5009 * Example uses of this error model include: 4260 /// environments, either with or without APIs, to provide a
5010 * 4261 /// consistent developer experience across different environments.
5011 * - Partial errors. If a service needs to return partial errors to the client, 4262 ///
5012 * it may embed the `Status` in the normal response to indicate the partial 4263 /// Example uses of this error model include:
5013 * errors. 4264 ///
5014 * 4265 /// - Partial errors. If a service needs to return partial errors to the
5015 * - Workflow errors. A typical workflow has multiple steps. Each step may 4266 /// client,
5016 * have a `Status` message for error reporting. 4267 /// it may embed the `Status` in the normal response to indicate the partial
5017 * 4268 /// errors.
5018 * - Batch operations. If a client uses batch request and batch response, the 4269 ///
5019 * `Status` message should be used directly inside batch response, one for 4270 /// - Workflow errors. A typical workflow has multiple steps. Each step may
5020 * each error sub-response. 4271 /// have a `Status` message for error reporting.
5021 * 4272 ///
5022 * - Asynchronous operations. If an API call embeds asynchronous operation 4273 /// - Batch operations. If a client uses batch request and batch response, the
5023 * results in its response, the status of those operations should be 4274 /// `Status` message should be used directly inside batch response, one for
5024 * represented directly using the `Status` message. 4275 /// each error sub-response.
5025 * 4276 ///
5026 * - Logging. If some API errors are stored in logs, the message `Status` could 4277 /// - Asynchronous operations. If an API call embeds asynchronous operation
5027 * be used directly after any stripping needed for security/privacy reasons. 4278 /// results in its response, the status of those operations should be
5028 */ 4279 /// represented directly using the `Status` message.
4280 ///
4281 /// - Logging. If some API errors are stored in logs, the message `Status`
4282 /// could
4283 /// be used directly after any stripping needed for security/privacy reasons.
5029 class Status { 4284 class Status {
5030 /** The status code, which should be an enum value of google.rpc.Code. */ 4285 /// The status code, which should be an enum value of google.rpc.Code.
5031 core.int code; 4286 core.int code;
5032 /** 4287
5033 * A list of messages that carry the error details. There is a common set of 4288 /// A list of messages that carry the error details. There is a common set
5034 * message types for APIs to use. 4289 /// of
5035 * 4290 /// message types for APIs to use.
5036 * The values for Object must be JSON objects. It can consist of `num`, 4291 ///
5037 * `String`, `bool` and `null` as well as `Map` and `List` values. 4292 /// The values for Object must be JSON objects. It can consist of `num`,
5038 */ 4293 /// `String`, `bool` and `null` as well as `Map` and `List` values.
5039 core.List<core.Map<core.String, core.Object>> details; 4294 core.List<core.Map<core.String, core.Object>> details;
5040 /** 4295
5041 * A developer-facing error message, which should be in English. Any 4296 /// A developer-facing error message, which should be in English. Any
5042 * user-facing error message should be localized and sent in the 4297 /// user-facing error message should be localized and sent in the
5043 * google.rpc.Status.details field, or localized by the client. 4298 /// google.rpc.Status.details field, or localized by the client.
5044 */
5045 core.String message; 4299 core.String message;
5046 4300
5047 Status(); 4301 Status();
5048 4302
5049 Status.fromJson(core.Map _json) { 4303 Status.fromJson(core.Map _json) {
5050 if (_json.containsKey("code")) { 4304 if (_json.containsKey("code")) {
5051 code = _json["code"]; 4305 code = _json["code"];
5052 } 4306 }
5053 if (_json.containsKey("details")) { 4307 if (_json.containsKey("details")) {
5054 details = _json["details"]; 4308 details = _json["details"];
5055 } 4309 }
5056 if (_json.containsKey("message")) { 4310 if (_json.containsKey("message")) {
5057 message = _json["message"]; 4311 message = _json["message"];
5058 } 4312 }
5059 } 4313 }
5060 4314
5061 core.Map<core.String, core.Object> toJson() { 4315 core.Map<core.String, core.Object> toJson() {
5062 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 4316 final core.Map<core.String, core.Object> _json =
4317 new core.Map<core.String, core.Object>();
5063 if (code != null) { 4318 if (code != null) {
5064 _json["code"] = code; 4319 _json["code"] = code;
5065 } 4320 }
5066 if (details != null) { 4321 if (details != null) {
5067 _json["details"] = details; 4322 _json["details"] = details;
5068 } 4323 }
5069 if (message != null) { 4324 if (message != null) {
5070 _json["message"] = message; 4325 _json["message"] = message;
5071 } 4326 }
5072 return _json; 4327 return _json;
5073 } 4328 }
5074 } 4329 }
5075 4330
5076 /** `StructType` defines the fields of a STRUCT type. */ 4331 /// `StructType` defines the fields of a STRUCT type.
5077 class StructType { 4332 class StructType {
5078 /** 4333 /// The list of fields that make up this struct. Order is
5079 * The list of fields that make up this struct. Order is 4334 /// significant, because values of this struct type are represented as
5080 * significant, because values of this struct type are represented as 4335 /// lists, where the order of field values matches the order of
5081 * lists, where the order of field values matches the order of 4336 /// fields in the StructType. In turn, the order of fields
5082 * fields in the StructType. In turn, the order of fields 4337 /// matches the order of columns in a read request, or the order of
5083 * matches the order of columns in a read request, or the order of 4338 /// fields in the `SELECT` clause of a query.
5084 * fields in the `SELECT` clause of a query.
5085 */
5086 core.List<Field> fields; 4339 core.List<Field> fields;
5087 4340
5088 StructType(); 4341 StructType();
5089 4342
5090 StructType.fromJson(core.Map _json) { 4343 StructType.fromJson(core.Map _json) {
5091 if (_json.containsKey("fields")) { 4344 if (_json.containsKey("fields")) {
5092 fields = _json["fields"].map((value) => new Field.fromJson(value)).toList( ); 4345 fields =
4346 _json["fields"].map((value) => new Field.fromJson(value)).toList();
5093 } 4347 }
5094 } 4348 }
5095 4349
5096 core.Map<core.String, core.Object> toJson() { 4350 core.Map<core.String, core.Object> toJson() {
5097 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 4351 final core.Map<core.String, core.Object> _json =
4352 new core.Map<core.String, core.Object>();
5098 if (fields != null) { 4353 if (fields != null) {
5099 _json["fields"] = fields.map((value) => (value).toJson()).toList(); 4354 _json["fields"] = fields.map((value) => (value).toJson()).toList();
5100 } 4355 }
5101 return _json; 4356 return _json;
5102 } 4357 }
5103 } 4358 }
5104 4359
5105 /** Request message for `TestIamPermissions` method. */ 4360 /// Request message for `TestIamPermissions` method.
5106 class TestIamPermissionsRequest { 4361 class TestIamPermissionsRequest {
5107 /** 4362 /// REQUIRED: The set of permissions to check for 'resource'.
5108 * REQUIRED: The set of permissions to check for 'resource'. 4363 /// Permissions with wildcards (such as '*', 'spanner.*',
5109 * Permissions with wildcards (such as '*', 'spanner.*', 4364 /// 'spanner.instances.*') are not allowed.
5110 * 'spanner.instances.*') are not allowed.
5111 */
5112 core.List<core.String> permissions; 4365 core.List<core.String> permissions;
5113 4366
5114 TestIamPermissionsRequest(); 4367 TestIamPermissionsRequest();
5115 4368
5116 TestIamPermissionsRequest.fromJson(core.Map _json) { 4369 TestIamPermissionsRequest.fromJson(core.Map _json) {
5117 if (_json.containsKey("permissions")) { 4370 if (_json.containsKey("permissions")) {
5118 permissions = _json["permissions"]; 4371 permissions = _json["permissions"];
5119 } 4372 }
5120 } 4373 }
5121 4374
5122 core.Map<core.String, core.Object> toJson() { 4375 core.Map<core.String, core.Object> toJson() {
5123 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 4376 final core.Map<core.String, core.Object> _json =
4377 new core.Map<core.String, core.Object>();
5124 if (permissions != null) { 4378 if (permissions != null) {
5125 _json["permissions"] = permissions; 4379 _json["permissions"] = permissions;
5126 } 4380 }
5127 return _json; 4381 return _json;
5128 } 4382 }
5129 } 4383 }
5130 4384
5131 /** Response message for `TestIamPermissions` method. */ 4385 /// Response message for `TestIamPermissions` method.
5132 class TestIamPermissionsResponse { 4386 class TestIamPermissionsResponse {
5133 /** 4387 /// A subset of `TestPermissionsRequest.permissions` that the caller is
5134 * A subset of `TestPermissionsRequest.permissions` that the caller is 4388 /// allowed.
5135 * allowed.
5136 */
5137 core.List<core.String> permissions; 4389 core.List<core.String> permissions;
5138 4390
5139 TestIamPermissionsResponse(); 4391 TestIamPermissionsResponse();
5140 4392
5141 TestIamPermissionsResponse.fromJson(core.Map _json) { 4393 TestIamPermissionsResponse.fromJson(core.Map _json) {
5142 if (_json.containsKey("permissions")) { 4394 if (_json.containsKey("permissions")) {
5143 permissions = _json["permissions"]; 4395 permissions = _json["permissions"];
5144 } 4396 }
5145 } 4397 }
5146 4398
5147 core.Map<core.String, core.Object> toJson() { 4399 core.Map<core.String, core.Object> toJson() {
5148 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 4400 final core.Map<core.String, core.Object> _json =
4401 new core.Map<core.String, core.Object>();
5149 if (permissions != null) { 4402 if (permissions != null) {
5150 _json["permissions"] = permissions; 4403 _json["permissions"] = permissions;
5151 } 4404 }
5152 return _json; 4405 return _json;
5153 } 4406 }
5154 } 4407 }
5155 4408
5156 /** A transaction. */ 4409 /// A transaction.
5157 class Transaction { 4410 class Transaction {
5158 /** 4411 /// `id` may be used to identify the transaction in subsequent
5159 * `id` may be used to identify the transaction in subsequent 4412 /// Read,
5160 * Read, 4413 /// ExecuteSql,
5161 * ExecuteSql, 4414 /// Commit, or
5162 * Commit, or 4415 /// Rollback calls.
5163 * Rollback calls. 4416 ///
5164 * 4417 /// Single-use read-only transactions do not have IDs, because
5165 * Single-use read-only transactions do not have IDs, because 4418 /// single-use transactions do not support multiple requests.
5166 * single-use transactions do not support multiple requests.
5167 */
5168 core.String id; 4419 core.String id;
5169 core.List<core.int> get idAsBytes { 4420 core.List<core.int> get idAsBytes {
5170 return convert.BASE64.decode(id); 4421 return convert.BASE64.decode(id);
5171 } 4422 }
5172 4423
5173 void set idAsBytes(core.List<core.int> _bytes) { 4424 void set idAsBytes(core.List<core.int> _bytes) {
5174 id = convert.BASE64.encode(_bytes).replaceAll("/", "_").replaceAll("+", "-") ; 4425 id =
4426 convert.BASE64.encode(_bytes).replaceAll("/", "_").replaceAll("+", "-");
5175 } 4427 }
5176 /** 4428
5177 * For snapshot read-only transactions, the read timestamp chosen 4429 /// For snapshot read-only transactions, the read timestamp chosen
5178 * for the transaction. Not returned by default: see 4430 /// for the transaction. Not returned by default: see
5179 * TransactionOptions.ReadOnly.return_read_timestamp. 4431 /// TransactionOptions.ReadOnly.return_read_timestamp.
5180 */
5181 core.String readTimestamp; 4432 core.String readTimestamp;
5182 4433
5183 Transaction(); 4434 Transaction();
5184 4435
5185 Transaction.fromJson(core.Map _json) { 4436 Transaction.fromJson(core.Map _json) {
5186 if (_json.containsKey("id")) { 4437 if (_json.containsKey("id")) {
5187 id = _json["id"]; 4438 id = _json["id"];
5188 } 4439 }
5189 if (_json.containsKey("readTimestamp")) { 4440 if (_json.containsKey("readTimestamp")) {
5190 readTimestamp = _json["readTimestamp"]; 4441 readTimestamp = _json["readTimestamp"];
5191 } 4442 }
5192 } 4443 }
5193 4444
5194 core.Map<core.String, core.Object> toJson() { 4445 core.Map<core.String, core.Object> toJson() {
5195 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 4446 final core.Map<core.String, core.Object> _json =
4447 new core.Map<core.String, core.Object>();
5196 if (id != null) { 4448 if (id != null) {
5197 _json["id"] = id; 4449 _json["id"] = id;
5198 } 4450 }
5199 if (readTimestamp != null) { 4451 if (readTimestamp != null) {
5200 _json["readTimestamp"] = readTimestamp; 4452 _json["readTimestamp"] = readTimestamp;
5201 } 4453 }
5202 return _json; 4454 return _json;
5203 } 4455 }
5204 } 4456 }
5205 4457
5206 /** 4458 /// # Transactions
5207 * # Transactions 4459 ///
5208 * 4460 ///
5209 * 4461 /// Each session can have at most one active transaction at a time. After the
5210 * Each session can have at most one active transaction at a time. After the 4462 /// active transaction is completed, the session can immediately be
5211 * active transaction is completed, the session can immediately be 4463 /// re-used for the next transaction. It is not necessary to create a
5212 * re-used for the next transaction. It is not necessary to create a 4464 /// new session for each transaction.
5213 * new session for each transaction. 4465 ///
5214 * 4466 /// # Transaction Modes
5215 * # Transaction Modes 4467 ///
5216 * 4468 /// Cloud Spanner supports two transaction modes:
5217 * Cloud Spanner supports two transaction modes: 4469 ///
5218 * 4470 /// 1. Locking read-write. This type of transaction is the only way
5219 * 1. Locking read-write. This type of transaction is the only way 4471 /// to write data into Cloud Spanner. These transactions rely on
5220 * to write data into Cloud Spanner. These transactions rely on 4472 /// pessimistic locking and, if necessary, two-phase commit.
5221 * pessimistic locking and, if necessary, two-phase commit. 4473 /// Locking read-write transactions may abort, requiring the
5222 * Locking read-write transactions may abort, requiring the 4474 /// application to retry.
5223 * application to retry. 4475 ///
5224 * 4476 /// 2. Snapshot read-only. This transaction type provides guaranteed
5225 * 2. Snapshot read-only. This transaction type provides guaranteed 4477 /// consistency across several reads, but does not allow
5226 * consistency across several reads, but does not allow 4478 /// writes. Snapshot read-only transactions can be configured to
5227 * writes. Snapshot read-only transactions can be configured to 4479 /// read at timestamps in the past. Snapshot read-only
5228 * read at timestamps in the past. Snapshot read-only 4480 /// transactions do not need to be committed.
5229 * transactions do not need to be committed. 4481 ///
5230 * 4482 /// For transactions that only read, snapshot read-only transactions
5231 * For transactions that only read, snapshot read-only transactions 4483 /// provide simpler semantics and are almost always faster. In
5232 * provide simpler semantics and are almost always faster. In 4484 /// particular, read-only transactions do not take locks, so they do
5233 * particular, read-only transactions do not take locks, so they do 4485 /// not conflict with read-write transactions. As a consequence of not
5234 * not conflict with read-write transactions. As a consequence of not 4486 /// taking locks, they also do not abort, so retry loops are not needed.
5235 * taking locks, they also do not abort, so retry loops are not needed. 4487 ///
5236 * 4488 /// Transactions may only read/write data in a single database. They
5237 * Transactions may only read/write data in a single database. They 4489 /// may, however, read/write data in different tables within that
5238 * may, however, read/write data in different tables within that 4490 /// database.
5239 * database. 4491 ///
5240 * 4492 /// ## Locking Read-Write Transactions
5241 * ## Locking Read-Write Transactions 4493 ///
5242 * 4494 /// Locking transactions may be used to atomically read-modify-write
5243 * Locking transactions may be used to atomically read-modify-write 4495 /// data anywhere in a database. This type of transaction is externally
5244 * data anywhere in a database. This type of transaction is externally 4496 /// consistent.
5245 * consistent. 4497 ///
5246 * 4498 /// Clients should attempt to minimize the amount of time a transaction
5247 * Clients should attempt to minimize the amount of time a transaction 4499 /// is active. Faster transactions commit with higher probability
5248 * is active. Faster transactions commit with higher probability 4500 /// and cause less contention. Cloud Spanner attempts to keep read locks
5249 * and cause less contention. Cloud Spanner attempts to keep read locks 4501 /// active as long as the transaction continues to do reads, and the
5250 * active as long as the transaction continues to do reads, and the 4502 /// transaction has not been terminated by
5251 * transaction has not been terminated by 4503 /// Commit or
5252 * Commit or 4504 /// Rollback. Long periods of
5253 * Rollback. Long periods of 4505 /// inactivity at the client may cause Cloud Spanner to release a
5254 * inactivity at the client may cause Cloud Spanner to release a 4506 /// transaction's locks and abort it.
5255 * transaction's locks and abort it. 4507 ///
5256 * 4508 /// Reads performed within a transaction acquire locks on the data
5257 * Reads performed within a transaction acquire locks on the data 4509 /// being read. Writes can only be done at commit time, after all reads
5258 * being read. Writes can only be done at commit time, after all reads 4510 /// have been completed.
5259 * have been completed. 4511 /// Conceptually, a read-write transaction consists of zero or more
5260 * Conceptually, a read-write transaction consists of zero or more 4512 /// reads or SQL queries followed by
5261 * reads or SQL queries followed by 4513 /// Commit. At any time before
5262 * Commit. At any time before 4514 /// Commit, the client can send a
5263 * Commit, the client can send a 4515 /// Rollback request to abort the
5264 * Rollback request to abort the 4516 /// transaction.
5265 * transaction. 4517 ///
5266 * 4518 /// ### Semantics
5267 * ### Semantics 4519 ///
5268 * 4520 /// Cloud Spanner can commit the transaction if all read locks it acquired
5269 * Cloud Spanner can commit the transaction if all read locks it acquired 4521 /// are still valid at commit time, and it is able to acquire write
5270 * are still valid at commit time, and it is able to acquire write 4522 /// locks for all writes. Cloud Spanner can abort the transaction for any
5271 * locks for all writes. Cloud Spanner can abort the transaction for any 4523 /// reason. If a commit attempt returns `ABORTED`, Cloud Spanner guarantees
5272 * reason. If a commit attempt returns `ABORTED`, Cloud Spanner guarantees 4524 /// that the transaction has not modified any user data in Cloud Spanner.
5273 * that the transaction has not modified any user data in Cloud Spanner. 4525 ///
5274 * 4526 /// Unless the transaction commits, Cloud Spanner makes no guarantees about
5275 * Unless the transaction commits, Cloud Spanner makes no guarantees about 4527 /// how long the transaction's locks were held for. It is an error to
5276 * how long the transaction's locks were held for. It is an error to 4528 /// use Cloud Spanner locks for any sort of mutual exclusion other than
5277 * use Cloud Spanner locks for any sort of mutual exclusion other than 4529 /// between Cloud Spanner transactions themselves.
5278 * between Cloud Spanner transactions themselves. 4530 ///
5279 * 4531 /// ### Retrying Aborted Transactions
5280 * ### Retrying Aborted Transactions 4532 ///
5281 * 4533 /// When a transaction aborts, the application can choose to retry the
5282 * When a transaction aborts, the application can choose to retry the 4534 /// whole transaction again. To maximize the chances of successfully
5283 * whole transaction again. To maximize the chances of successfully 4535 /// committing the retry, the client should execute the retry in the
5284 * committing the retry, the client should execute the retry in the 4536 /// same session as the original attempt. The original session's lock
5285 * same session as the original attempt. The original session's lock 4537 /// priority increases with each consecutive abort, meaning that each
5286 * priority increases with each consecutive abort, meaning that each 4538 /// attempt has a slightly better chance of success than the previous.
5287 * attempt has a slightly better chance of success than the previous. 4539 ///
5288 * 4540 /// Under some circumstances (e.g., many transactions attempting to
5289 * Under some circumstances (e.g., many transactions attempting to 4541 /// modify the same row(s)), a transaction can abort many times in a
5290 * modify the same row(s)), a transaction can abort many times in a 4542 /// short period before successfully committing. Thus, it is not a good
5291 * short period before successfully committing. Thus, it is not a good 4543 /// idea to cap the number of retries a transaction can attempt;
5292 * idea to cap the number of retries a transaction can attempt; 4544 /// instead, it is better to limit the total amount of wall time spent
5293 * instead, it is better to limit the total amount of wall time spent 4545 /// retrying.
5294 * retrying. 4546 ///
5295 * 4547 /// ### Idle Transactions
5296 * ### Idle Transactions 4548 ///
5297 * 4549 /// A transaction is considered idle if it has no outstanding reads or
5298 * A transaction is considered idle if it has no outstanding reads or 4550 /// SQL queries and has not started a read or SQL query within the last 10
5299 * SQL queries and has not started a read or SQL query within the last 10 4551 /// seconds. Idle transactions can be aborted by Cloud Spanner so that they
5300 * seconds. Idle transactions can be aborted by Cloud Spanner so that they 4552 /// don't hold on to locks indefinitely. In that case, the commit will
5301 * don't hold on to locks indefinitely. In that case, the commit will 4553 /// fail with error `ABORTED`.
5302 * fail with error `ABORTED`. 4554 ///
5303 * 4555 /// If this behavior is undesirable, periodically executing a simple
5304 * If this behavior is undesirable, periodically executing a simple 4556 /// SQL query in the transaction (e.g., `SELECT 1`) prevents the
5305 * SQL query in the transaction (e.g., `SELECT 1`) prevents the 4557 /// transaction from becoming idle.
5306 * transaction from becoming idle. 4558 ///
5307 * 4559 /// ## Snapshot Read-Only Transactions
5308 * ## Snapshot Read-Only Transactions 4560 ///
5309 * 4561 /// Snapshot read-only transactions provides a simpler method than
5310 * Snapshot read-only transactions provides a simpler method than 4562 /// locking read-write transactions for doing several consistent
5311 * locking read-write transactions for doing several consistent 4563 /// reads. However, this type of transaction does not support writes.
5312 * reads. However, this type of transaction does not support writes. 4564 ///
5313 * 4565 /// Snapshot transactions do not take locks. Instead, they work by
5314 * Snapshot transactions do not take locks. Instead, they work by 4566 /// choosing a Cloud Spanner timestamp, then executing all reads at that
5315 * choosing a Cloud Spanner timestamp, then executing all reads at that 4567 /// timestamp. Since they do not acquire locks, they do not block
5316 * timestamp. Since they do not acquire locks, they do not block 4568 /// concurrent read-write transactions.
5317 * concurrent read-write transactions. 4569 ///
5318 * 4570 /// Unlike locking read-write transactions, snapshot read-only
5319 * Unlike locking read-write transactions, snapshot read-only 4571 /// transactions never abort. They can fail if the chosen read
5320 * transactions never abort. They can fail if the chosen read 4572 /// timestamp is garbage collected; however, the default garbage
5321 * timestamp is garbage collected; however, the default garbage 4573 /// collection policy is generous enough that most applications do not
5322 * collection policy is generous enough that most applications do not 4574 /// need to worry about this in practice.
5323 * need to worry about this in practice. 4575 ///
5324 * 4576 /// Snapshot read-only transactions do not need to call
5325 * Snapshot read-only transactions do not need to call 4577 /// Commit or
5326 * Commit or 4578 /// Rollback (and in fact are not
5327 * Rollback (and in fact are not 4579 /// permitted to do so).
5328 * permitted to do so). 4580 ///
5329 * 4581 /// To execute a snapshot transaction, the client specifies a timestamp
5330 * To execute a snapshot transaction, the client specifies a timestamp 4582 /// bound, which tells Cloud Spanner how to choose a read timestamp.
5331 * bound, which tells Cloud Spanner how to choose a read timestamp. 4583 ///
5332 * 4584 /// The types of timestamp bound are:
5333 * The types of timestamp bound are: 4585 ///
5334 * 4586 /// - Strong (the default).
5335 * - Strong (the default). 4587 /// - Bounded staleness.
5336 * - Bounded staleness. 4588 /// - Exact staleness.
5337 * - Exact staleness. 4589 ///
5338 * 4590 /// If the Cloud Spanner database to be read is geographically distributed,
5339 * If the Cloud Spanner database to be read is geographically distributed, 4591 /// stale read-only transactions can execute more quickly than strong
5340 * stale read-only transactions can execute more quickly than strong 4592 /// or read-write transaction, because they are able to execute far
5341 * or read-write transaction, because they are able to execute far 4593 /// from the leader replica.
5342 * from the leader replica. 4594 ///
5343 * 4595 /// Each type of timestamp bound is discussed in detail below.
5344 * Each type of timestamp bound is discussed in detail below. 4596 ///
5345 * 4597 /// ### Strong
5346 * ### Strong 4598 ///
5347 * 4599 /// Strong reads are guaranteed to see the effects of all transactions
5348 * Strong reads are guaranteed to see the effects of all transactions 4600 /// that have committed before the start of the read. Furthermore, all
5349 * that have committed before the start of the read. Furthermore, all 4601 /// rows yielded by a single read are consistent with each other -- if
5350 * rows yielded by a single read are consistent with each other -- if 4602 /// any part of the read observes a transaction, all parts of the read
5351 * any part of the read observes a transaction, all parts of the read 4603 /// see the transaction.
5352 * see the transaction. 4604 ///
5353 * 4605 /// Strong reads are not repeatable: two consecutive strong read-only
5354 * Strong reads are not repeatable: two consecutive strong read-only 4606 /// transactions might return inconsistent results if there are
5355 * transactions might return inconsistent results if there are 4607 /// concurrent writes. If consistency across reads is required, the
5356 * concurrent writes. If consistency across reads is required, the 4608 /// reads should be executed within a transaction or at an exact read
5357 * reads should be executed within a transaction or at an exact read 4609 /// timestamp.
5358 * timestamp. 4610 ///
5359 * 4611 /// See TransactionOptions.ReadOnly.strong.
5360 * See TransactionOptions.ReadOnly.strong. 4612 ///
5361 * 4613 /// ### Exact Staleness
5362 * ### Exact Staleness 4614 ///
5363 * 4615 /// These timestamp bounds execute reads at a user-specified
5364 * These timestamp bounds execute reads at a user-specified 4616 /// timestamp. Reads at a timestamp are guaranteed to see a consistent
5365 * timestamp. Reads at a timestamp are guaranteed to see a consistent 4617 /// prefix of the global transaction history: they observe
5366 * prefix of the global transaction history: they observe 4618 /// modifications done by all transactions with a commit timestamp <=
5367 * modifications done by all transactions with a commit timestamp <= 4619 /// the read timestamp, and observe none of the modifications done by
5368 * the read timestamp, and observe none of the modifications done by 4620 /// transactions with a larger commit timestamp. They will block until
5369 * transactions with a larger commit timestamp. They will block until 4621 /// all conflicting transactions that may be assigned commit timestamps
5370 * all conflicting transactions that may be assigned commit timestamps 4622 /// <= the read timestamp have finished.
5371 * <= the read timestamp have finished. 4623 ///
5372 * 4624 /// The timestamp can either be expressed as an absolute Cloud Spanner commit
5373 * The timestamp can either be expressed as an absolute Cloud Spanner commit 4625 /// timestamp or a staleness relative to the current time.
5374 * timestamp or a staleness relative to the current time. 4626 ///
5375 * 4627 /// These modes do not require a "negotiation phase" to pick a
5376 * These modes do not require a "negotiation phase" to pick a 4628 /// timestamp. As a result, they execute slightly faster than the
5377 * timestamp. As a result, they execute slightly faster than the 4629 /// equivalent boundedly stale concurrency modes. On the other hand,
5378 * equivalent boundedly stale concurrency modes. On the other hand, 4630 /// boundedly stale reads usually return fresher results.
5379 * boundedly stale reads usually return fresher results. 4631 ///
5380 * 4632 /// See TransactionOptions.ReadOnly.read_timestamp and
5381 * See TransactionOptions.ReadOnly.read_timestamp and 4633 /// TransactionOptions.ReadOnly.exact_staleness.
5382 * TransactionOptions.ReadOnly.exact_staleness. 4634 ///
5383 * 4635 /// ### Bounded Staleness
5384 * ### Bounded Staleness 4636 ///
5385 * 4637 /// Bounded staleness modes allow Cloud Spanner to pick the read timestamp,
5386 * Bounded staleness modes allow Cloud Spanner to pick the read timestamp, 4638 /// subject to a user-provided staleness bound. Cloud Spanner chooses the
5387 * subject to a user-provided staleness bound. Cloud Spanner chooses the 4639 /// newest timestamp within the staleness bound that allows execution
5388 * newest timestamp within the staleness bound that allows execution 4640 /// of the reads at the closest available replica without blocking.
5389 * of the reads at the closest available replica without blocking. 4641 ///
5390 * 4642 /// All rows yielded are consistent with each other -- if any part of
5391 * All rows yielded are consistent with each other -- if any part of 4643 /// the read observes a transaction, all parts of the read see the
5392 * the read observes a transaction, all parts of the read see the 4644 /// transaction. Boundedly stale reads are not repeatable: two stale
5393 * transaction. Boundedly stale reads are not repeatable: two stale 4645 /// reads, even if they use the same staleness bound, can execute at
5394 * reads, even if they use the same staleness bound, can execute at 4646 /// different timestamps and thus return inconsistent results.
5395 * different timestamps and thus return inconsistent results. 4647 ///
5396 * 4648 /// Boundedly stale reads execute in two phases: the first phase
5397 * Boundedly stale reads execute in two phases: the first phase 4649 /// negotiates a timestamp among all replicas needed to serve the
5398 * negotiates a timestamp among all replicas needed to serve the 4650 /// read. In the second phase, reads are executed at the negotiated
5399 * read. In the second phase, reads are executed at the negotiated 4651 /// timestamp.
5400 * timestamp. 4652 ///
5401 * 4653 /// As a result of the two phase execution, bounded staleness reads are
5402 * As a result of the two phase execution, bounded staleness reads are 4654 /// usually a little slower than comparable exact staleness
5403 * usually a little slower than comparable exact staleness 4655 /// reads. However, they are typically able to return fresher
5404 * reads. However, they are typically able to return fresher 4656 /// results, and are more likely to execute at the closest replica.
5405 * results, and are more likely to execute at the closest replica. 4657 ///
5406 * 4658 /// Because the timestamp negotiation requires up-front knowledge of
5407 * Because the timestamp negotiation requires up-front knowledge of 4659 /// which rows will be read, it can only be used with single-use
5408 * which rows will be read, it can only be used with single-use 4660 /// read-only transactions.
5409 * read-only transactions. 4661 ///
5410 * 4662 /// See TransactionOptions.ReadOnly.max_staleness and
5411 * See TransactionOptions.ReadOnly.max_staleness and 4663 /// TransactionOptions.ReadOnly.min_read_timestamp.
5412 * TransactionOptions.ReadOnly.min_read_timestamp. 4664 ///
5413 * 4665 /// ### Old Read Timestamps and Garbage Collection
5414 * ### Old Read Timestamps and Garbage Collection 4666 ///
5415 * 4667 /// Cloud Spanner continuously garbage collects deleted and overwritten data
5416 * Cloud Spanner continuously garbage collects deleted and overwritten data 4668 /// in the background to reclaim storage space. This process is known
5417 * in the background to reclaim storage space. This process is known 4669 /// as "version GC". By default, version GC reclaims versions after they
5418 * as "version GC". By default, version GC reclaims versions after they 4670 /// are one hour old. Because of this, Cloud Spanner cannot perform reads
5419 * are one hour old. Because of this, Cloud Spanner cannot perform reads 4671 /// at read timestamps more than one hour in the past. This
5420 * at read timestamps more than one hour in the past. This 4672 /// restriction also applies to in-progress reads and/or SQL queries whose
5421 * restriction also applies to in-progress reads and/or SQL queries whose 4673 /// timestamp become too old while executing. Reads and SQL queries with
5422 * timestamp become too old while executing. Reads and SQL queries with 4674 /// too-old read timestamps fail with the error `FAILED_PRECONDITION`.
5423 * too-old read timestamps fail with the error `FAILED_PRECONDITION`.
5424 */
5425 class TransactionOptions { 4675 class TransactionOptions {
5426 /** 4676 /// Transaction will not write.
5427 * Transaction will not write. 4677 ///
5428 * 4678 /// Authorization to begin a read-only transaction requires
5429 * Authorization to begin a read-only transaction requires 4679 /// `spanner.databases.beginReadOnlyTransaction` permission
5430 * `spanner.databases.beginReadOnlyTransaction` permission 4680 /// on the `session` resource.
5431 * on the `session` resource.
5432 */
5433 ReadOnly readOnly; 4681 ReadOnly readOnly;
5434 /** 4682
5435 * Transaction may write. 4683 /// Transaction may write.
5436 * 4684 ///
5437 * Authorization to begin a read-write transaction requires 4685 /// Authorization to begin a read-write transaction requires
5438 * `spanner.databases.beginOrRollbackReadWriteTransaction` permission 4686 /// `spanner.databases.beginOrRollbackReadWriteTransaction` permission
5439 * on the `session` resource. 4687 /// on the `session` resource.
5440 */
5441 ReadWrite readWrite; 4688 ReadWrite readWrite;
5442 4689
5443 TransactionOptions(); 4690 TransactionOptions();
5444 4691
5445 TransactionOptions.fromJson(core.Map _json) { 4692 TransactionOptions.fromJson(core.Map _json) {
5446 if (_json.containsKey("readOnly")) { 4693 if (_json.containsKey("readOnly")) {
5447 readOnly = new ReadOnly.fromJson(_json["readOnly"]); 4694 readOnly = new ReadOnly.fromJson(_json["readOnly"]);
5448 } 4695 }
5449 if (_json.containsKey("readWrite")) { 4696 if (_json.containsKey("readWrite")) {
5450 readWrite = new ReadWrite.fromJson(_json["readWrite"]); 4697 readWrite = new ReadWrite.fromJson(_json["readWrite"]);
5451 } 4698 }
5452 } 4699 }
5453 4700
5454 core.Map<core.String, core.Object> toJson() { 4701 core.Map<core.String, core.Object> toJson() {
5455 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 4702 final core.Map<core.String, core.Object> _json =
4703 new core.Map<core.String, core.Object>();
5456 if (readOnly != null) { 4704 if (readOnly != null) {
5457 _json["readOnly"] = (readOnly).toJson(); 4705 _json["readOnly"] = (readOnly).toJson();
5458 } 4706 }
5459 if (readWrite != null) { 4707 if (readWrite != null) {
5460 _json["readWrite"] = (readWrite).toJson(); 4708 _json["readWrite"] = (readWrite).toJson();
5461 } 4709 }
5462 return _json; 4710 return _json;
5463 } 4711 }
5464 } 4712 }
5465 4713
5466 /** 4714 /// This message is used to select the transaction in which a
5467 * This message is used to select the transaction in which a 4715 /// Read or
5468 * Read or 4716 /// ExecuteSql call runs.
5469 * ExecuteSql call runs. 4717 ///
5470 * 4718 /// See TransactionOptions for more information about transactions.
5471 * See TransactionOptions for more information about transactions.
5472 */
5473 class TransactionSelector { 4719 class TransactionSelector {
5474 /** 4720 /// Begin a new transaction and execute this read or SQL query in
5475 * Begin a new transaction and execute this read or SQL query in 4721 /// it. The transaction ID of the new transaction is returned in
5476 * it. The transaction ID of the new transaction is returned in 4722 /// ResultSetMetadata.transaction, which is a Transaction.
5477 * ResultSetMetadata.transaction, which is a Transaction.
5478 */
5479 TransactionOptions begin; 4723 TransactionOptions begin;
5480 /** Execute the read or SQL query in a previously-started transaction. */ 4724
4725 /// Execute the read or SQL query in a previously-started transaction.
5481 core.String id; 4726 core.String id;
5482 core.List<core.int> get idAsBytes { 4727 core.List<core.int> get idAsBytes {
5483 return convert.BASE64.decode(id); 4728 return convert.BASE64.decode(id);
5484 } 4729 }
5485 4730
5486 void set idAsBytes(core.List<core.int> _bytes) { 4731 void set idAsBytes(core.List<core.int> _bytes) {
5487 id = convert.BASE64.encode(_bytes).replaceAll("/", "_").replaceAll("+", "-") ; 4732 id =
4733 convert.BASE64.encode(_bytes).replaceAll("/", "_").replaceAll("+", "-");
5488 } 4734 }
5489 /** 4735
5490 * Execute the read or SQL query in a temporary transaction. 4736 /// Execute the read or SQL query in a temporary transaction.
5491 * This is the most efficient way to execute a transaction that 4737 /// This is the most efficient way to execute a transaction that
5492 * consists of a single SQL query. 4738 /// consists of a single SQL query.
5493 */
5494 TransactionOptions singleUse; 4739 TransactionOptions singleUse;
5495 4740
5496 TransactionSelector(); 4741 TransactionSelector();
5497 4742
5498 TransactionSelector.fromJson(core.Map _json) { 4743 TransactionSelector.fromJson(core.Map _json) {
5499 if (_json.containsKey("begin")) { 4744 if (_json.containsKey("begin")) {
5500 begin = new TransactionOptions.fromJson(_json["begin"]); 4745 begin = new TransactionOptions.fromJson(_json["begin"]);
5501 } 4746 }
5502 if (_json.containsKey("id")) { 4747 if (_json.containsKey("id")) {
5503 id = _json["id"]; 4748 id = _json["id"];
5504 } 4749 }
5505 if (_json.containsKey("singleUse")) { 4750 if (_json.containsKey("singleUse")) {
5506 singleUse = new TransactionOptions.fromJson(_json["singleUse"]); 4751 singleUse = new TransactionOptions.fromJson(_json["singleUse"]);
5507 } 4752 }
5508 } 4753 }
5509 4754
5510 core.Map<core.String, core.Object> toJson() { 4755 core.Map<core.String, core.Object> toJson() {
5511 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 4756 final core.Map<core.String, core.Object> _json =
4757 new core.Map<core.String, core.Object>();
5512 if (begin != null) { 4758 if (begin != null) {
5513 _json["begin"] = (begin).toJson(); 4759 _json["begin"] = (begin).toJson();
5514 } 4760 }
5515 if (id != null) { 4761 if (id != null) {
5516 _json["id"] = id; 4762 _json["id"] = id;
5517 } 4763 }
5518 if (singleUse != null) { 4764 if (singleUse != null) {
5519 _json["singleUse"] = (singleUse).toJson(); 4765 _json["singleUse"] = (singleUse).toJson();
5520 } 4766 }
5521 return _json; 4767 return _json;
5522 } 4768 }
5523 } 4769 }
5524 4770
5525 /** 4771 /// `Type` indicates the type of a Cloud Spanner value, as might be stored in a
5526 * `Type` indicates the type of a Cloud Spanner value, as might be stored in a 4772 /// table cell or returned from an SQL query.
5527 * table cell or returned from an SQL query.
5528 */
5529 class Type { 4773 class Type {
5530 /** 4774 /// If code == ARRAY, then `array_element_type`
5531 * If code == ARRAY, then `array_element_type` 4775 /// is the type of the array elements.
5532 * is the type of the array elements.
5533 */
5534 Type arrayElementType; 4776 Type arrayElementType;
5535 /** 4777
5536 * Required. The TypeCode for this type. 4778 /// Required. The TypeCode for this type.
5537 * Possible string values are: 4779 /// Possible string values are:
5538 * - "TYPE_CODE_UNSPECIFIED" : Not specified. 4780 /// - "TYPE_CODE_UNSPECIFIED" : Not specified.
5539 * - "BOOL" : Encoded as JSON `true` or `false`. 4781 /// - "BOOL" : Encoded as JSON `true` or `false`.
5540 * - "INT64" : Encoded as `string`, in decimal format. 4782 /// - "INT64" : Encoded as `string`, in decimal format.
5541 * - "FLOAT64" : Encoded as `number`, or the strings `"NaN"`, `"Infinity"`, or 4783 /// - "FLOAT64" : Encoded as `number`, or the strings `"NaN"`, `"Infinity"`,
5542 * `"-Infinity"`. 4784 /// or
5543 * - "TIMESTAMP" : Encoded as `string` in RFC 3339 timestamp format. The time 4785 /// `"-Infinity"`.
5544 * zone 4786 /// - "TIMESTAMP" : Encoded as `string` in RFC 3339 timestamp format. The
5545 * must be present, and must be `"Z"`. 4787 /// time zone
5546 * - "DATE" : Encoded as `string` in RFC 3339 date format. 4788 /// must be present, and must be `"Z"`.
5547 * - "STRING" : Encoded as `string`. 4789 /// - "DATE" : Encoded as `string` in RFC 3339 date format.
5548 * - "BYTES" : Encoded as a base64-encoded `string`, as described in RFC 4648, 4790 /// - "STRING" : Encoded as `string`.
5549 * section 4. 4791 /// - "BYTES" : Encoded as a base64-encoded `string`, as described in RFC
5550 * - "ARRAY" : Encoded as `list`, where the list elements are represented 4792 /// 4648,
5551 * according to array_element_type. 4793 /// section 4.
5552 * - "STRUCT" : Encoded as `list`, where list element `i` is represented 4794 /// - "ARRAY" : Encoded as `list`, where the list elements are represented
5553 * according 4795 /// according to array_element_type.
5554 * to [struct_type.fields[i]][google.spanner.v1.StructType.fields]. 4796 /// - "STRUCT" : Encoded as `list`, where list element `i` is represented
5555 */ 4797 /// according
4798 /// to [struct_type.fields[i]][google.spanner.v1.StructType.fields].
5556 core.String code; 4799 core.String code;
5557 /** 4800
5558 * If code == STRUCT, then `struct_type` 4801 /// If code == STRUCT, then `struct_type`
5559 * provides type information for the struct's fields. 4802 /// provides type information for the struct's fields.
5560 */
5561 StructType structType; 4803 StructType structType;
5562 4804
5563 Type(); 4805 Type();
5564 4806
5565 Type.fromJson(core.Map _json) { 4807 Type.fromJson(core.Map _json) {
5566 if (_json.containsKey("arrayElementType")) { 4808 if (_json.containsKey("arrayElementType")) {
5567 arrayElementType = new Type.fromJson(_json["arrayElementType"]); 4809 arrayElementType = new Type.fromJson(_json["arrayElementType"]);
5568 } 4810 }
5569 if (_json.containsKey("code")) { 4811 if (_json.containsKey("code")) {
5570 code = _json["code"]; 4812 code = _json["code"];
5571 } 4813 }
5572 if (_json.containsKey("structType")) { 4814 if (_json.containsKey("structType")) {
5573 structType = new StructType.fromJson(_json["structType"]); 4815 structType = new StructType.fromJson(_json["structType"]);
5574 } 4816 }
5575 } 4817 }
5576 4818
5577 core.Map<core.String, core.Object> toJson() { 4819 core.Map<core.String, core.Object> toJson() {
5578 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 4820 final core.Map<core.String, core.Object> _json =
4821 new core.Map<core.String, core.Object>();
5579 if (arrayElementType != null) { 4822 if (arrayElementType != null) {
5580 _json["arrayElementType"] = (arrayElementType).toJson(); 4823 _json["arrayElementType"] = (arrayElementType).toJson();
5581 } 4824 }
5582 if (code != null) { 4825 if (code != null) {
5583 _json["code"] = code; 4826 _json["code"] = code;
5584 } 4827 }
5585 if (structType != null) { 4828 if (structType != null) {
5586 _json["structType"] = (structType).toJson(); 4829 _json["structType"] = (structType).toJson();
5587 } 4830 }
5588 return _json; 4831 return _json;
5589 } 4832 }
5590 } 4833 }
5591 4834
5592 /** 4835 /// Metadata type for the operation returned by
5593 * Metadata type for the operation returned by 4836 /// UpdateDatabaseDdl.
5594 * UpdateDatabaseDdl.
5595 */
5596 class UpdateDatabaseDdlMetadata { 4837 class UpdateDatabaseDdlMetadata {
5597 /** 4838 /// Reports the commit timestamps of all statements that have
5598 * Reports the commit timestamps of all statements that have 4839 /// succeeded so far, where `commit_timestamps[i]` is the commit
5599 * succeeded so far, where `commit_timestamps[i]` is the commit 4840 /// timestamp for the statement `statements[i]`.
5600 * timestamp for the statement `statements[i]`.
5601 */
5602 core.List<core.String> commitTimestamps; 4841 core.List<core.String> commitTimestamps;
5603 /** The database being modified. */ 4842
4843 /// The database being modified.
5604 core.String database; 4844 core.String database;
5605 /** 4845
5606 * For an update this list contains all the statements. For an 4846 /// For an update this list contains all the statements. For an
5607 * individual statement, this list contains only that statement. 4847 /// individual statement, this list contains only that statement.
5608 */
5609 core.List<core.String> statements; 4848 core.List<core.String> statements;
5610 4849
5611 UpdateDatabaseDdlMetadata(); 4850 UpdateDatabaseDdlMetadata();
5612 4851
5613 UpdateDatabaseDdlMetadata.fromJson(core.Map _json) { 4852 UpdateDatabaseDdlMetadata.fromJson(core.Map _json) {
5614 if (_json.containsKey("commitTimestamps")) { 4853 if (_json.containsKey("commitTimestamps")) {
5615 commitTimestamps = _json["commitTimestamps"]; 4854 commitTimestamps = _json["commitTimestamps"];
5616 } 4855 }
5617 if (_json.containsKey("database")) { 4856 if (_json.containsKey("database")) {
5618 database = _json["database"]; 4857 database = _json["database"];
5619 } 4858 }
5620 if (_json.containsKey("statements")) { 4859 if (_json.containsKey("statements")) {
5621 statements = _json["statements"]; 4860 statements = _json["statements"];
5622 } 4861 }
5623 } 4862 }
5624 4863
5625 core.Map<core.String, core.Object> toJson() { 4864 core.Map<core.String, core.Object> toJson() {
5626 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 4865 final core.Map<core.String, core.Object> _json =
4866 new core.Map<core.String, core.Object>();
5627 if (commitTimestamps != null) { 4867 if (commitTimestamps != null) {
5628 _json["commitTimestamps"] = commitTimestamps; 4868 _json["commitTimestamps"] = commitTimestamps;
5629 } 4869 }
5630 if (database != null) { 4870 if (database != null) {
5631 _json["database"] = database; 4871 _json["database"] = database;
5632 } 4872 }
5633 if (statements != null) { 4873 if (statements != null) {
5634 _json["statements"] = statements; 4874 _json["statements"] = statements;
5635 } 4875 }
5636 return _json; 4876 return _json;
5637 } 4877 }
5638 } 4878 }
5639 4879
5640 /** 4880 /// Enqueues the given DDL statements to be applied, in order but not
5641 * Enqueues the given DDL statements to be applied, in order but not 4881 /// necessarily all at once, to the database schema at some point (or
5642 * necessarily all at once, to the database schema at some point (or 4882 /// points) in the future. The server checks that the statements
5643 * points) in the future. The server checks that the statements 4883 /// are executable (syntactically valid, name tables that exist, etc.)
5644 * are executable (syntactically valid, name tables that exist, etc.) 4884 /// before enqueueing them, but they may still fail upon
5645 * before enqueueing them, but they may still fail upon 4885 /// later execution (e.g., if a statement from another batch of
5646 * later execution (e.g., if a statement from another batch of 4886 /// statements is applied first and it conflicts in some way, or if
5647 * statements is applied first and it conflicts in some way, or if 4887 /// there is some data-related problem like a `NULL` value in a column to
5648 * there is some data-related problem like a `NULL` value in a column to 4888 /// which `NOT NULL` would be added). If a statement fails, all
5649 * which `NOT NULL` would be added). If a statement fails, all 4889 /// subsequent statements in the batch are automatically cancelled.
5650 * subsequent statements in the batch are automatically cancelled. 4890 ///
5651 * 4891 /// Each batch of statements is assigned a name which can be used with
5652 * Each batch of statements is assigned a name which can be used with 4892 /// the Operations API to monitor
5653 * the Operations API to monitor 4893 /// progress. See the
5654 * progress. See the 4894 /// operation_id field for more
5655 * operation_id field for more 4895 /// details.
5656 * details.
5657 */
5658 class UpdateDatabaseDdlRequest { 4896 class UpdateDatabaseDdlRequest {
5659 /** 4897 /// If empty, the new update request is assigned an
5660 * If empty, the new update request is assigned an 4898 /// automatically-generated operation ID. Otherwise, `operation_id`
5661 * automatically-generated operation ID. Otherwise, `operation_id` 4899 /// is used to construct the name of the resulting
5662 * is used to construct the name of the resulting 4900 /// Operation.
5663 * Operation. 4901 ///
5664 * 4902 /// Specifying an explicit operation ID simplifies determining
5665 * Specifying an explicit operation ID simplifies determining 4903 /// whether the statements were executed in the event that the
5666 * whether the statements were executed in the event that the 4904 /// UpdateDatabaseDdl call is replayed,
5667 * UpdateDatabaseDdl call is replayed, 4905 /// or the return value is otherwise lost: the database and
5668 * or the return value is otherwise lost: the database and 4906 /// `operation_id` fields can be combined to form the
5669 * `operation_id` fields can be combined to form the 4907 /// name of the resulting
5670 * name of the resulting 4908 /// longrunning.Operation: `<database>/operations/<operation_id>`.
5671 * longrunning.Operation: `<database>/operations/<operation_id>`. 4909 ///
5672 * 4910 /// `operation_id` should be unique within the database, and must be
5673 * `operation_id` should be unique within the database, and must be 4911 /// a valid identifier: `a-z*`. Note that
5674 * a valid identifier: `a-z*`. Note that 4912 /// automatically-generated operation IDs always begin with an
5675 * automatically-generated operation IDs always begin with an 4913 /// underscore. If the named operation already exists,
5676 * underscore. If the named operation already exists, 4914 /// UpdateDatabaseDdl returns
5677 * UpdateDatabaseDdl returns 4915 /// `ALREADY_EXISTS`.
5678 * `ALREADY_EXISTS`.
5679 */
5680 core.String operationId; 4916 core.String operationId;
5681 /** DDL statements to be applied to the database. */ 4917
4918 /// DDL statements to be applied to the database.
5682 core.List<core.String> statements; 4919 core.List<core.String> statements;
5683 4920
5684 UpdateDatabaseDdlRequest(); 4921 UpdateDatabaseDdlRequest();
5685 4922
5686 UpdateDatabaseDdlRequest.fromJson(core.Map _json) { 4923 UpdateDatabaseDdlRequest.fromJson(core.Map _json) {
5687 if (_json.containsKey("operationId")) { 4924 if (_json.containsKey("operationId")) {
5688 operationId = _json["operationId"]; 4925 operationId = _json["operationId"];
5689 } 4926 }
5690 if (_json.containsKey("statements")) { 4927 if (_json.containsKey("statements")) {
5691 statements = _json["statements"]; 4928 statements = _json["statements"];
5692 } 4929 }
5693 } 4930 }
5694 4931
5695 core.Map<core.String, core.Object> toJson() { 4932 core.Map<core.String, core.Object> toJson() {
5696 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 4933 final core.Map<core.String, core.Object> _json =
4934 new core.Map<core.String, core.Object>();
5697 if (operationId != null) { 4935 if (operationId != null) {
5698 _json["operationId"] = operationId; 4936 _json["operationId"] = operationId;
5699 } 4937 }
5700 if (statements != null) { 4938 if (statements != null) {
5701 _json["statements"] = statements; 4939 _json["statements"] = statements;
5702 } 4940 }
5703 return _json; 4941 return _json;
5704 } 4942 }
5705 } 4943 }
5706 4944
5707 /** 4945 /// Metadata type for the operation returned by
5708 * Metadata type for the operation returned by 4946 /// UpdateInstance.
5709 * UpdateInstance.
5710 */
5711 class UpdateInstanceMetadata { 4947 class UpdateInstanceMetadata {
5712 /** 4948 /// The time at which this operation was cancelled. If set, this operation is
5713 * The time at which this operation was cancelled. If set, this operation is 4949 /// in the process of undoing itself (which is guaranteed to succeed) and
5714 * in the process of undoing itself (which is guaranteed to succeed) and 4950 /// cannot be cancelled again.
5715 * cannot be cancelled again.
5716 */
5717 core.String cancelTime; 4951 core.String cancelTime;
5718 /** The time at which this operation failed or was completed successfully. */ 4952
4953 /// The time at which this operation failed or was completed successfully.
5719 core.String endTime; 4954 core.String endTime;
5720 /** The desired end state of the update. */ 4955
4956 /// The desired end state of the update.
5721 Instance instance; 4957 Instance instance;
5722 /** 4958
5723 * The time at which UpdateInstance 4959 /// The time at which UpdateInstance
5724 * request was received. 4960 /// request was received.
5725 */
5726 core.String startTime; 4961 core.String startTime;
5727 4962
5728 UpdateInstanceMetadata(); 4963 UpdateInstanceMetadata();
5729 4964
5730 UpdateInstanceMetadata.fromJson(core.Map _json) { 4965 UpdateInstanceMetadata.fromJson(core.Map _json) {
5731 if (_json.containsKey("cancelTime")) { 4966 if (_json.containsKey("cancelTime")) {
5732 cancelTime = _json["cancelTime"]; 4967 cancelTime = _json["cancelTime"];
5733 } 4968 }
5734 if (_json.containsKey("endTime")) { 4969 if (_json.containsKey("endTime")) {
5735 endTime = _json["endTime"]; 4970 endTime = _json["endTime"];
5736 } 4971 }
5737 if (_json.containsKey("instance")) { 4972 if (_json.containsKey("instance")) {
5738 instance = new Instance.fromJson(_json["instance"]); 4973 instance = new Instance.fromJson(_json["instance"]);
5739 } 4974 }
5740 if (_json.containsKey("startTime")) { 4975 if (_json.containsKey("startTime")) {
5741 startTime = _json["startTime"]; 4976 startTime = _json["startTime"];
5742 } 4977 }
5743 } 4978 }
5744 4979
5745 core.Map<core.String, core.Object> toJson() { 4980 core.Map<core.String, core.Object> toJson() {
5746 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 4981 final core.Map<core.String, core.Object> _json =
4982 new core.Map<core.String, core.Object>();
5747 if (cancelTime != null) { 4983 if (cancelTime != null) {
5748 _json["cancelTime"] = cancelTime; 4984 _json["cancelTime"] = cancelTime;
5749 } 4985 }
5750 if (endTime != null) { 4986 if (endTime != null) {
5751 _json["endTime"] = endTime; 4987 _json["endTime"] = endTime;
5752 } 4988 }
5753 if (instance != null) { 4989 if (instance != null) {
5754 _json["instance"] = (instance).toJson(); 4990 _json["instance"] = (instance).toJson();
5755 } 4991 }
5756 if (startTime != null) { 4992 if (startTime != null) {
5757 _json["startTime"] = startTime; 4993 _json["startTime"] = startTime;
5758 } 4994 }
5759 return _json; 4995 return _json;
5760 } 4996 }
5761 } 4997 }
5762 4998
5763 /** The request for UpdateInstance. */ 4999 /// The request for UpdateInstance.
5764 class UpdateInstanceRequest { 5000 class UpdateInstanceRequest {
5765 /** 5001 /// Required. A mask specifying which fields in
5766 * Required. A mask specifying which fields in 5002 /// [][google.spanner.admin.instance.v1.UpdateInstanceRequest.instance]
5767 * [][google.spanner.admin.instance.v1.UpdateInstanceRequest.instance] should 5003 /// should be updated.
5768 * be updated. 5004 /// The field mask must always be specified; this prevents any future fields
5769 * The field mask must always be specified; this prevents any future fields in 5005 /// in
5770 * [][google.spanner.admin.instance.v1.Instance] from being erased 5006 /// [][google.spanner.admin.instance.v1.Instance] from being erased
5771 * accidentally by clients that do not know 5007 /// accidentally by clients that do not know
5772 * about them. 5008 /// about them.
5773 */
5774 core.String fieldMask; 5009 core.String fieldMask;
5775 /** 5010
5776 * Required. The instance to update, which must always include the instance 5011 /// Required. The instance to update, which must always include the instance
5777 * name. Otherwise, only fields mentioned in 5012 /// name. Otherwise, only fields mentioned in
5778 * [][google.spanner.admin.instance.v1.UpdateInstanceRequest.field_mask] need 5013 /// [][google.spanner.admin.instance.v1.UpdateInstanceRequest.field_mask]
5779 * be included. 5014 /// need be included.
5780 */
5781 Instance instance; 5015 Instance instance;
5782 5016
5783 UpdateInstanceRequest(); 5017 UpdateInstanceRequest();
5784 5018
5785 UpdateInstanceRequest.fromJson(core.Map _json) { 5019 UpdateInstanceRequest.fromJson(core.Map _json) {
5786 if (_json.containsKey("fieldMask")) { 5020 if (_json.containsKey("fieldMask")) {
5787 fieldMask = _json["fieldMask"]; 5021 fieldMask = _json["fieldMask"];
5788 } 5022 }
5789 if (_json.containsKey("instance")) { 5023 if (_json.containsKey("instance")) {
5790 instance = new Instance.fromJson(_json["instance"]); 5024 instance = new Instance.fromJson(_json["instance"]);
5791 } 5025 }
5792 } 5026 }
5793 5027
5794 core.Map<core.String, core.Object> toJson() { 5028 core.Map<core.String, core.Object> toJson() {
5795 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 5029 final core.Map<core.String, core.Object> _json =
5030 new core.Map<core.String, core.Object>();
5796 if (fieldMask != null) { 5031 if (fieldMask != null) {
5797 _json["fieldMask"] = fieldMask; 5032 _json["fieldMask"] = fieldMask;
5798 } 5033 }
5799 if (instance != null) { 5034 if (instance != null) {
5800 _json["instance"] = (instance).toJson(); 5035 _json["instance"] = (instance).toJson();
5801 } 5036 }
5802 return _json; 5037 return _json;
5803 } 5038 }
5804 } 5039 }
5805 5040
5806 /** 5041 /// Arguments to insert, update, insert_or_update, and
5807 * Arguments to insert, update, insert_or_update, and 5042 /// replace operations.
5808 * replace operations.
5809 */
5810 class Write { 5043 class Write {
5811 /** 5044 /// The names of the columns in table to be written.
5812 * The names of the columns in table to be written. 5045 ///
5813 * 5046 /// The list of columns must contain enough columns to allow
5814 * The list of columns must contain enough columns to allow 5047 /// Cloud Spanner to derive values for all primary key columns in the
5815 * Cloud Spanner to derive values for all primary key columns in the 5048 /// row(s) to be modified.
5816 * row(s) to be modified.
5817 */
5818 core.List<core.String> columns; 5049 core.List<core.String> columns;
5819 /** Required. The table whose rows will be written. */ 5050
5051 /// Required. The table whose rows will be written.
5820 core.String table; 5052 core.String table;
5821 /** 5053
5822 * The values to be written. `values` can contain more than one 5054 /// The values to be written. `values` can contain more than one
5823 * list of values. If it does, then multiple rows are written, one 5055 /// list of values. If it does, then multiple rows are written, one
5824 * for each entry in `values`. Each list in `values` must have 5056 /// for each entry in `values`. Each list in `values` must have
5825 * exactly as many entries as there are entries in columns 5057 /// exactly as many entries as there are entries in columns
5826 * above. Sending multiple lists is equivalent to sending multiple 5058 /// above. Sending multiple lists is equivalent to sending multiple
5827 * `Mutation`s, each containing one `values` entry and repeating 5059 /// `Mutation`s, each containing one `values` entry and repeating
5828 * table and columns. Individual values in each list are 5060 /// table and columns. Individual values in each list are
5829 * encoded as described here. 5061 /// encoded as described here.
5830 * 5062 ///
5831 * The values for Object must be JSON objects. It can consist of `num`, 5063 /// The values for Object must be JSON objects. It can consist of `num`,
5832 * `String`, `bool` and `null` as well as `Map` and `List` values. 5064 /// `String`, `bool` and `null` as well as `Map` and `List` values.
5833 */
5834 core.List<core.List<core.Object>> values; 5065 core.List<core.List<core.Object>> values;
5835 5066
5836 Write(); 5067 Write();
5837 5068
5838 Write.fromJson(core.Map _json) { 5069 Write.fromJson(core.Map _json) {
5839 if (_json.containsKey("columns")) { 5070 if (_json.containsKey("columns")) {
5840 columns = _json["columns"]; 5071 columns = _json["columns"];
5841 } 5072 }
5842 if (_json.containsKey("table")) { 5073 if (_json.containsKey("table")) {
5843 table = _json["table"]; 5074 table = _json["table"];
5844 } 5075 }
5845 if (_json.containsKey("values")) { 5076 if (_json.containsKey("values")) {
5846 values = _json["values"]; 5077 values = _json["values"];
5847 } 5078 }
5848 } 5079 }
5849 5080
5850 core.Map<core.String, core.Object> toJson() { 5081 core.Map<core.String, core.Object> toJson() {
5851 final core.Map<core.String, core.Object> _json = new core.Map<core.String, c ore.Object>(); 5082 final core.Map<core.String, core.Object> _json =
5083 new core.Map<core.String, core.Object>();
5852 if (columns != null) { 5084 if (columns != null) {
5853 _json["columns"] = columns; 5085 _json["columns"] = columns;
5854 } 5086 }
5855 if (table != null) { 5087 if (table != null) {
5856 _json["table"] = table; 5088 _json["table"] = table;
5857 } 5089 }
5858 if (values != null) { 5090 if (values != null) {
5859 _json["values"] = values; 5091 _json["values"] = values;
5860 } 5092 }
5861 return _json; 5093 return _json;
5862 } 5094 }
5863 } 5095 }
OLDNEW
« no previous file with comments | « generated/googleapis/lib/sourcerepo/v1.dart ('k') | generated/googleapis/lib/speech/v1.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698