OLD | NEW |
1 { | 1 { |
2 "auth": { | 2 "auth": { |
3 "oauth2": { | 3 "oauth2": { |
4 "scopes": { | 4 "scopes": { |
5 "https://www.googleapis.com/auth/spanner.admin": { | 5 "https://www.googleapis.com/auth/spanner.admin": { |
6 "description": "Administer your Spanner databases" | 6 "description": "Administer your Spanner databases" |
7 }, | 7 }, |
8 "https://www.googleapis.com/auth/cloud-platform": { | 8 "https://www.googleapis.com/auth/cloud-platform": { |
9 "description": "View and manage your data across Google Clou
d Platform services" | 9 "description": "View and manage your data across Google Clou
d Platform services" |
10 }, | 10 }, |
(...skipping 13 matching lines...) Expand all Loading... |
24 "icons": { | 24 "icons": { |
25 "x16": "http://www.google.com/images/icons/product/search-16.gif", | 25 "x16": "http://www.google.com/images/icons/product/search-16.gif", |
26 "x32": "http://www.google.com/images/icons/product/search-32.gif" | 26 "x32": "http://www.google.com/images/icons/product/search-32.gif" |
27 }, | 27 }, |
28 "id": "spanner:v1", | 28 "id": "spanner:v1", |
29 "kind": "discovery#restDescription", | 29 "kind": "discovery#restDescription", |
30 "name": "spanner", | 30 "name": "spanner", |
31 "ownerDomain": "google.com", | 31 "ownerDomain": "google.com", |
32 "ownerName": "Google", | 32 "ownerName": "Google", |
33 "parameters": { | 33 "parameters": { |
34 "access_token": { | |
35 "description": "OAuth access token.", | |
36 "location": "query", | |
37 "type": "string" | |
38 }, | |
39 "key": { | |
40 "description": "API key. Your API key identifies your project and pr
ovides you with API access, quota, and reports. Required unless you provide an O
Auth 2.0 token.", | |
41 "location": "query", | |
42 "type": "string" | |
43 }, | |
44 "quotaUser": { | |
45 "description": "Available to use for quota purposes for server-side
applications. Can be any arbitrary string assigned to a user, but should not exc
eed 40 characters.", | |
46 "location": "query", | |
47 "type": "string" | |
48 }, | |
49 "pp": { | |
50 "default": "true", | |
51 "description": "Pretty-print response.", | |
52 "location": "query", | |
53 "type": "boolean" | |
54 }, | |
55 "bearer_token": { | |
56 "description": "OAuth bearer token.", | |
57 "location": "query", | |
58 "type": "string" | |
59 }, | |
60 "oauth_token": { | |
61 "description": "OAuth 2.0 token for the current user.", | |
62 "location": "query", | |
63 "type": "string" | |
64 }, | |
65 "upload_protocol": { | 34 "upload_protocol": { |
66 "description": "Upload protocol for media (e.g. \"raw\", \"multipart
\").", | 35 "description": "Upload protocol for media (e.g. \"raw\", \"multipart
\").", |
67 "location": "query", | 36 "location": "query", |
68 "type": "string" | 37 "type": "string" |
69 }, | 38 }, |
70 "prettyPrint": { | 39 "prettyPrint": { |
71 "default": "true", | 40 "default": "true", |
72 "description": "Returns response with indentations and line breaks."
, | 41 "description": "Returns response with indentations and line breaks."
, |
73 "location": "query", | 42 "location": "query", |
74 "type": "boolean" | 43 "type": "boolean" |
75 }, | 44 }, |
76 "uploadType": { | 45 "uploadType": { |
77 "description": "Legacy upload protocol for media (e.g. \"media\", \"
multipart\").", | 46 "description": "Legacy upload protocol for media (e.g. \"media\", \"
multipart\").", |
78 "location": "query", | 47 "location": "query", |
79 "type": "string" | 48 "type": "string" |
80 }, | 49 }, |
81 "fields": { | 50 "fields": { |
82 "description": "Selector specifying which fields to include in a par
tial response.", | 51 "description": "Selector specifying which fields to include in a par
tial response.", |
83 "location": "query", | 52 "location": "query", |
84 "type": "string" | 53 "type": "string" |
85 }, | 54 }, |
| 55 "callback": { |
| 56 "description": "JSONP", |
| 57 "location": "query", |
| 58 "type": "string" |
| 59 }, |
86 "$.xgafv": { | 60 "$.xgafv": { |
87 "description": "V1 error format.", | 61 "description": "V1 error format.", |
88 "enum": [ | 62 "enum": [ |
89 "1", | 63 "1", |
90 "2" | 64 "2" |
91 ], | 65 ], |
92 "enumDescriptions": [ | 66 "enumDescriptions": [ |
93 "v1 error format", | 67 "v1 error format", |
94 "v2 error format" | 68 "v2 error format" |
95 ], | 69 ], |
96 "location": "query", | 70 "location": "query", |
97 "type": "string" | 71 "type": "string" |
98 }, | 72 }, |
99 "callback": { | |
100 "description": "JSONP", | |
101 "location": "query", | |
102 "type": "string" | |
103 }, | |
104 "alt": { | 73 "alt": { |
105 "default": "json", | 74 "default": "json", |
106 "description": "Data format for response.", | 75 "description": "Data format for response.", |
107 "enum": [ | 76 "enum": [ |
108 "json", | 77 "json", |
109 "media", | 78 "media", |
110 "proto" | 79 "proto" |
111 ], | 80 ], |
112 "enumDescriptions": [ | 81 "enumDescriptions": [ |
113 "Responses with Content-Type of application/json", | 82 "Responses with Content-Type of application/json", |
114 "Media download with context-dependent Content-Type", | 83 "Media download with context-dependent Content-Type", |
115 "Responses with Content-Type of application/x-protobuf" | 84 "Responses with Content-Type of application/x-protobuf" |
116 ], | 85 ], |
117 "location": "query", | 86 "location": "query", |
118 "type": "string" | 87 "type": "string" |
| 88 }, |
| 89 "access_token": { |
| 90 "description": "OAuth access token.", |
| 91 "location": "query", |
| 92 "type": "string" |
| 93 }, |
| 94 "key": { |
| 95 "description": "API key. Your API key identifies your project and pr
ovides you with API access, quota, and reports. Required unless you provide an O
Auth 2.0 token.", |
| 96 "location": "query", |
| 97 "type": "string" |
| 98 }, |
| 99 "quotaUser": { |
| 100 "description": "Available to use for quota purposes for server-side
applications. Can be any arbitrary string assigned to a user, but should not exc
eed 40 characters.", |
| 101 "location": "query", |
| 102 "type": "string" |
| 103 }, |
| 104 "pp": { |
| 105 "default": "true", |
| 106 "description": "Pretty-print response.", |
| 107 "location": "query", |
| 108 "type": "boolean" |
| 109 }, |
| 110 "oauth_token": { |
| 111 "description": "OAuth 2.0 token for the current user.", |
| 112 "location": "query", |
| 113 "type": "string" |
| 114 }, |
| 115 "bearer_token": { |
| 116 "description": "OAuth bearer token.", |
| 117 "location": "query", |
| 118 "type": "string" |
119 } | 119 } |
120 }, | 120 }, |
121 "protocol": "rest", | 121 "protocol": "rest", |
122 "resources": { | 122 "resources": { |
123 "projects": { | 123 "projects": { |
124 "resources": { | 124 "resources": { |
125 "instances": { | 125 "instances": { |
126 "methods": { | 126 "methods": { |
127 "get": { | 127 "create": { |
128 "description": "Gets information about a particular
instance.", | 128 "description": "Creates an instance and begins prepa
ring it to begin serving. The\nreturned long-running operation\ncan be used to t
rack the progress of preparing the new\ninstance. The instance name is assigned
by the caller. If the\nnamed instance already exists, `CreateInstance` returns\n
`ALREADY_EXISTS`.\n\nImmediately upon completion of this request:\n\n * The ins
tance is readable via the API, with all requested attributes\n but no allocat
ed resources. Its state is `CREATING`.\n\nUntil completion of the returned opera
tion:\n\n * Cancelling the operation renders the instance immediately unreadabl
e\n via the API.\n * The instance can be deleted.\n * All other attempts to
modify the instance are rejected.\n\nUpon completion of the returned operation:
\n\n * Billing for all successfully-allocated resources begins (some types\n
may have lower than the requested levels).\n * Databases can be created in the
instance.\n * The instance's allocated resource levels are readable via the AP
I.\n * The instance's state becomes `READY`.\n\nThe returned long-running opera
tion will\nhave a name of the format `<instance_name>/operations/<operation_id>`
and\ncan be used to track creation of the instance. The\nmetadata field type i
s\nCreateInstanceMetadata.\nThe response field type is\nInstance, if successful.
", |
129 "httpMethod": "GET", | 129 "httpMethod": "POST", |
130 "id": "spanner.projects.instances.get", | 130 "id": "spanner.projects.instances.create", |
131 "parameterOrder": [ | 131 "parameterOrder": [ |
132 "name" | 132 "parent" |
133 ], | 133 ], |
134 "parameters": { | 134 "parameters": { |
135 "name": { | 135 "parent": { |
136 "description": "Required. The name of the re
quested instance. Values are of the form\n`projects/<project>/instances/<instanc
e>`.", | 136 "description": "Required. The name of the pr
oject in which to create the instance. Values\nare of the form `projects/<projec
t>`.", |
| 137 "location": "path", |
| 138 "pattern": "^projects/[^/]+$", |
| 139 "required": true, |
| 140 "type": "string" |
| 141 } |
| 142 }, |
| 143 "path": "v1/{+parent}/instances", |
| 144 "request": { |
| 145 "$ref": "CreateInstanceRequest" |
| 146 }, |
| 147 "response": { |
| 148 "$ref": "Operation" |
| 149 }, |
| 150 "scopes": [ |
| 151 "https://www.googleapis.com/auth/cloud-platform"
, |
| 152 "https://www.googleapis.com/auth/spanner.admin" |
| 153 ] |
| 154 }, |
| 155 "setIamPolicy": { |
| 156 "description": "Sets the access control policy on an
instance resource. Replaces any\nexisting policy.\n\nAuthorization requires `sp
anner.instances.setIamPolicy` on\nresource.", |
| 157 "httpMethod": "POST", |
| 158 "id": "spanner.projects.instances.setIamPolicy", |
| 159 "parameterOrder": [ |
| 160 "resource" |
| 161 ], |
| 162 "parameters": { |
| 163 "resource": { |
| 164 "description": "REQUIRED: The Cloud Spanner
resource for which the policy is being set. The format is `projects/<project ID>
/instances/<instance ID>` for instance resources and `projects/<project ID>/inst
ances/<instance ID>/databases/<database ID>` for databases resources.", |
137 "location": "path", | 165 "location": "path", |
138 "pattern": "^projects/[^/]+/instances/[^/]+$
", | 166 "pattern": "^projects/[^/]+/instances/[^/]+$
", |
139 "required": true, | 167 "required": true, |
140 "type": "string" | 168 "type": "string" |
141 } | 169 } |
142 }, | 170 }, |
143 "path": "v1/{+name}", | 171 "path": "v1/{+resource}:setIamPolicy", |
| 172 "request": { |
| 173 "$ref": "SetIamPolicyRequest" |
| 174 }, |
144 "response": { | 175 "response": { |
145 "$ref": "Instance" | 176 "$ref": "Policy" |
146 }, | 177 }, |
147 "scopes": [ | 178 "scopes": [ |
148 "https://www.googleapis.com/auth/cloud-platform"
, | 179 "https://www.googleapis.com/auth/cloud-platform"
, |
| 180 "https://www.googleapis.com/auth/spanner.admin" |
| 181 ] |
| 182 }, |
| 183 "getIamPolicy": { |
| 184 "description": "Gets the access control policy for a
n instance resource. Returns an empty\npolicy if an instance exists but does not
have a policy set.\n\nAuthorization requires `spanner.instances.getIamPolicy` o
n\nresource.", |
| 185 "httpMethod": "POST", |
| 186 "id": "spanner.projects.instances.getIamPolicy", |
| 187 "parameterOrder": [ |
| 188 "resource" |
| 189 ], |
| 190 "parameters": { |
| 191 "resource": { |
| 192 "description": "REQUIRED: The Cloud Spanner
resource for which the policy is being retrieved. The format is `projects/<proje
ct ID>/instances/<instance ID>` for instance resources and `projects/<project ID
>/instances/<instance ID>/databases/<database ID>` for database resources.", |
| 193 "location": "path", |
| 194 "pattern": "^projects/[^/]+/instances/[^/]+$
", |
| 195 "required": true, |
| 196 "type": "string" |
| 197 } |
| 198 }, |
| 199 "path": "v1/{+resource}:getIamPolicy", |
| 200 "request": { |
| 201 "$ref": "GetIamPolicyRequest" |
| 202 }, |
| 203 "response": { |
| 204 "$ref": "Policy" |
| 205 }, |
| 206 "scopes": [ |
| 207 "https://www.googleapis.com/auth/cloud-platform"
, |
149 "https://www.googleapis.com/auth/spanner.admin" | 208 "https://www.googleapis.com/auth/spanner.admin" |
150 ] | 209 ] |
151 }, | 210 }, |
152 "patch": { | 211 "patch": { |
153 "description": "Updates an instance, and begins allo
cating or releasing resources\nas requested. The returned long-running\noperatio
n can be used to track the\nprogress of updating the instance. If the named inst
ance does not\nexist, returns `NOT_FOUND`.\n\nImmediately upon completion of thi
s request:\n\n * For resource types for which a decrease in the instance's allo
cation\n has been requested, billing is based on the newly-requested level.\n
\nUntil completion of the returned operation:\n\n * Cancelling the operation se
ts its metadata's\n cancel_time, and begins\n restoring resources to their
pre-request values. The operation\n is guaranteed to succeed at undoing all
resource changes,\n after which point it terminates with a `CANCELLED` status
.\n * All other attempts to modify the instance are rejected.\n * Reading the
instance via the API continues to give the pre-request\n resource levels.\n\n
Upon completion of the returned operation:\n\n * Billing begins for all success
fully-allocated resources (some types\n may have lower than the requested lev
els).\n * All newly-reserved resources are available for serving the instance's
\n tables.\n * The instance's new resource levels are readable via the API.\
n\nThe returned long-running operation will\nhave a name of the format `<instanc
e_name>/operations/<operation_id>` and\ncan be used to track the instance modifi
cation. The\nmetadata field type is\nUpdateInstanceMetadata.\nThe response fiel
d type is\nInstance, if successful.\n\nAuthorization requires `spanner.instances
.update` permission on\nresource name.", | 212 "description": "Updates an instance, and begins allo
cating or releasing resources\nas requested. The returned long-running\noperatio
n can be used to track the\nprogress of updating the instance. If the named inst
ance does not\nexist, returns `NOT_FOUND`.\n\nImmediately upon completion of thi
s request:\n\n * For resource types for which a decrease in the instance's allo
cation\n has been requested, billing is based on the newly-requested level.\n
\nUntil completion of the returned operation:\n\n * Cancelling the operation se
ts its metadata's\n cancel_time, and begins\n restoring resources to their
pre-request values. The operation\n is guaranteed to succeed at undoing all
resource changes,\n after which point it terminates with a `CANCELLED` status
.\n * All other attempts to modify the instance are rejected.\n * Reading the
instance via the API continues to give the pre-request\n resource levels.\n\n
Upon completion of the returned operation:\n\n * Billing begins for all success
fully-allocated resources (some types\n may have lower than the requested lev
els).\n * All newly-reserved resources are available for serving the instance's
\n tables.\n * The instance's new resource levels are readable via the API.\
n\nThe returned long-running operation will\nhave a name of the format `<instanc
e_name>/operations/<operation_id>` and\ncan be used to track the instance modifi
cation. The\nmetadata field type is\nUpdateInstanceMetadata.\nThe response fiel
d type is\nInstance, if successful.\n\nAuthorization requires `spanner.instances
.update` permission on\nresource name.", |
154 "httpMethod": "PATCH", | 213 "httpMethod": "PATCH", |
155 "id": "spanner.projects.instances.patch", | 214 "id": "spanner.projects.instances.patch", |
156 "parameterOrder": [ | 215 "parameterOrder": [ |
157 "name" | 216 "name" |
158 ], | 217 ], |
(...skipping 11 matching lines...) Expand all Loading... |
170 "$ref": "UpdateInstanceRequest" | 229 "$ref": "UpdateInstanceRequest" |
171 }, | 230 }, |
172 "response": { | 231 "response": { |
173 "$ref": "Operation" | 232 "$ref": "Operation" |
174 }, | 233 }, |
175 "scopes": [ | 234 "scopes": [ |
176 "https://www.googleapis.com/auth/cloud-platform"
, | 235 "https://www.googleapis.com/auth/cloud-platform"
, |
177 "https://www.googleapis.com/auth/spanner.admin" | 236 "https://www.googleapis.com/auth/spanner.admin" |
178 ] | 237 ] |
179 }, | 238 }, |
| 239 "get": { |
| 240 "description": "Gets information about a particular
instance.", |
| 241 "httpMethod": "GET", |
| 242 "id": "spanner.projects.instances.get", |
| 243 "parameterOrder": [ |
| 244 "name" |
| 245 ], |
| 246 "parameters": { |
| 247 "name": { |
| 248 "description": "Required. The name of the re
quested instance. Values are of the form\n`projects/<project>/instances/<instanc
e>`.", |
| 249 "location": "path", |
| 250 "pattern": "^projects/[^/]+/instances/[^/]+$
", |
| 251 "required": true, |
| 252 "type": "string" |
| 253 } |
| 254 }, |
| 255 "path": "v1/{+name}", |
| 256 "response": { |
| 257 "$ref": "Instance" |
| 258 }, |
| 259 "scopes": [ |
| 260 "https://www.googleapis.com/auth/cloud-platform"
, |
| 261 "https://www.googleapis.com/auth/spanner.admin" |
| 262 ] |
| 263 }, |
180 "testIamPermissions": { | 264 "testIamPermissions": { |
181 "description": "Returns permissions that the caller
has on the specified instance resource.\n\nAttempting this RPC on a non-existent
Cloud Spanner instance resource will\nresult in a NOT_FOUND error if the user h
as `spanner.instances.list`\npermission on the containing Google Cloud Project.
Otherwise returns an\nempty set of permissions.", | 265 "description": "Returns permissions that the caller
has on the specified instance resource.\n\nAttempting this RPC on a non-existent
Cloud Spanner instance resource will\nresult in a NOT_FOUND error if the user h
as `spanner.instances.list`\npermission on the containing Google Cloud Project.
Otherwise returns an\nempty set of permissions.", |
182 "httpMethod": "POST", | 266 "httpMethod": "POST", |
183 "id": "spanner.projects.instances.testIamPermissions
", | 267 "id": "spanner.projects.instances.testIamPermissions
", |
184 "parameterOrder": [ | 268 "parameterOrder": [ |
185 "resource" | 269 "resource" |
186 ], | 270 ], |
187 "parameters": { | 271 "parameters": { |
188 "resource": { | 272 "resource": { |
189 "description": "REQUIRED: The Cloud Spanner
resource for which permissions are being tested. The format is `projects/<projec
t ID>/instances/<instance ID>` for instance resources and `projects/<project ID>
/instances/<instance ID>/databases/<database ID>` for database resources.", | 273 "description": "REQUIRED: The Cloud Spanner
resource for which permissions are being tested. The format is `projects/<projec
t ID>/instances/<instance ID>` for instance resources and `projects/<project ID>
/instances/<instance ID>/databases/<database ID>` for database resources.", |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
263 } | 347 } |
264 }, | 348 }, |
265 "path": "v1/{+parent}/instances", | 349 "path": "v1/{+parent}/instances", |
266 "response": { | 350 "response": { |
267 "$ref": "ListInstancesResponse" | 351 "$ref": "ListInstancesResponse" |
268 }, | 352 }, |
269 "scopes": [ | 353 "scopes": [ |
270 "https://www.googleapis.com/auth/cloud-platform"
, | 354 "https://www.googleapis.com/auth/cloud-platform"
, |
271 "https://www.googleapis.com/auth/spanner.admin" | 355 "https://www.googleapis.com/auth/spanner.admin" |
272 ] | 356 ] |
273 }, | |
274 "create": { | |
275 "description": "Creates an instance and begins prepa
ring it to begin serving. The\nreturned long-running operation\ncan be used to t
rack the progress of preparing the new\ninstance. The instance name is assigned
by the caller. If the\nnamed instance already exists, `CreateInstance` returns\n
`ALREADY_EXISTS`.\n\nImmediately upon completion of this request:\n\n * The ins
tance is readable via the API, with all requested attributes\n but no allocat
ed resources. Its state is `CREATING`.\n\nUntil completion of the returned opera
tion:\n\n * Cancelling the operation renders the instance immediately unreadabl
e\n via the API.\n * The instance can be deleted.\n * All other attempts to
modify the instance are rejected.\n\nUpon completion of the returned operation:
\n\n * Billing for all successfully-allocated resources begins (some types\n
may have lower than the requested levels).\n * Databases can be created in the
instance.\n * The instance's allocated resource levels are readable via the AP
I.\n * The instance's state becomes `READY`.\n\nThe returned long-running opera
tion will\nhave a name of the format `<instance_name>/operations/<operation_id>`
and\ncan be used to track creation of the instance. The\nmetadata field type i
s\nCreateInstanceMetadata.\nThe response field type is\nInstance, if successful.
", | |
276 "httpMethod": "POST", | |
277 "id": "spanner.projects.instances.create", | |
278 "parameterOrder": [ | |
279 "parent" | |
280 ], | |
281 "parameters": { | |
282 "parent": { | |
283 "description": "Required. The name of the pr
oject in which to create the instance. Values\nare of the form `projects/<projec
t>`.", | |
284 "location": "path", | |
285 "pattern": "^projects/[^/]+$", | |
286 "required": true, | |
287 "type": "string" | |
288 } | |
289 }, | |
290 "path": "v1/{+parent}/instances", | |
291 "request": { | |
292 "$ref": "CreateInstanceRequest" | |
293 }, | |
294 "response": { | |
295 "$ref": "Operation" | |
296 }, | |
297 "scopes": [ | |
298 "https://www.googleapis.com/auth/cloud-platform"
, | |
299 "https://www.googleapis.com/auth/spanner.admin" | |
300 ] | |
301 }, | |
302 "setIamPolicy": { | |
303 "description": "Sets the access control policy on an
instance resource. Replaces any\nexisting policy.\n\nAuthorization requires `sp
anner.instances.setIamPolicy` on\nresource.", | |
304 "httpMethod": "POST", | |
305 "id": "spanner.projects.instances.setIamPolicy", | |
306 "parameterOrder": [ | |
307 "resource" | |
308 ], | |
309 "parameters": { | |
310 "resource": { | |
311 "description": "REQUIRED: The Cloud Spanner
resource for which the policy is being set. The format is `projects/<project ID>
/instances/<instance ID>` for instance resources and `projects/<project ID>/inst
ances/<instance ID>/databases/<database ID>` for databases resources.", | |
312 "location": "path", | |
313 "pattern": "^projects/[^/]+/instances/[^/]+$
", | |
314 "required": true, | |
315 "type": "string" | |
316 } | |
317 }, | |
318 "path": "v1/{+resource}:setIamPolicy", | |
319 "request": { | |
320 "$ref": "SetIamPolicyRequest" | |
321 }, | |
322 "response": { | |
323 "$ref": "Policy" | |
324 }, | |
325 "scopes": [ | |
326 "https://www.googleapis.com/auth/cloud-platform"
, | |
327 "https://www.googleapis.com/auth/spanner.admin" | |
328 ] | |
329 }, | |
330 "getIamPolicy": { | |
331 "description": "Gets the access control policy for a
n instance resource. Returns an empty\npolicy if an instance exists but does not
have a policy set.\n\nAuthorization requires `spanner.instances.getIamPolicy` o
n\nresource.", | |
332 "httpMethod": "POST", | |
333 "id": "spanner.projects.instances.getIamPolicy", | |
334 "parameterOrder": [ | |
335 "resource" | |
336 ], | |
337 "parameters": { | |
338 "resource": { | |
339 "description": "REQUIRED: The Cloud Spanner
resource for which the policy is being retrieved. The format is `projects/<proje
ct ID>/instances/<instance ID>` for instance resources and `projects/<project ID
>/instances/<instance ID>/databases/<database ID>` for database resources.", | |
340 "location": "path", | |
341 "pattern": "^projects/[^/]+/instances/[^/]+$
", | |
342 "required": true, | |
343 "type": "string" | |
344 } | |
345 }, | |
346 "path": "v1/{+resource}:getIamPolicy", | |
347 "request": { | |
348 "$ref": "GetIamPolicyRequest" | |
349 }, | |
350 "response": { | |
351 "$ref": "Policy" | |
352 }, | |
353 "scopes": [ | |
354 "https://www.googleapis.com/auth/cloud-platform"
, | |
355 "https://www.googleapis.com/auth/spanner.admin" | |
356 ] | |
357 } | 357 } |
358 }, | 358 }, |
359 "resources": { | 359 "resources": { |
360 "operations": { | 360 "databases": { |
361 "methods": { | 361 "methods": { |
362 "get": { | 362 "getIamPolicy": { |
363 "description": "Gets the latest state of a l
ong-running operation. Clients can use this\nmethod to poll the operation resul
t at intervals as recommended by the API\nservice.", | 363 "description": "Gets the access control poli
cy for a database resource. Returns an empty\npolicy if a database exists but do
es not have a policy set.\n\nAuthorization requires `spanner.databases.getIamPol
icy` permission on\nresource.", |
364 "httpMethod": "GET", | 364 "httpMethod": "POST", |
365 "id": "spanner.projects.instances.operations
.get", | 365 "id": "spanner.projects.instances.databases.
getIamPolicy", |
366 "parameterOrder": [ | 366 "parameterOrder": [ |
367 "name" | 367 "resource" |
368 ], | 368 ], |
369 "parameters": { | 369 "parameters": { |
370 "name": { | 370 "resource": { |
371 "description": "The name of the oper
ation resource.", | 371 "description": "REQUIRED: The Cloud
Spanner resource for which the policy is being retrieved. The format is `project
s/<project ID>/instances/<instance ID>` for instance resources and `projects/<pr
oject ID>/instances/<instance ID>/databases/<database ID>` for database resource
s.", |
372 "location": "path", | 372 "location": "path", |
373 "pattern": "^projects/[^/]+/instance
s/[^/]+/operations/[^/]+$", | 373 "pattern": "^projects/[^/]+/instance
s/[^/]+/databases/[^/]+$", |
374 "required": true, | 374 "required": true, |
375 "type": "string" | 375 "type": "string" |
376 } | 376 } |
377 }, | 377 }, |
378 "path": "v1/{+name}", | 378 "path": "v1/{+resource}:getIamPolicy", |
| 379 "request": { |
| 380 "$ref": "GetIamPolicyRequest" |
| 381 }, |
379 "response": { | 382 "response": { |
380 "$ref": "Operation" | 383 "$ref": "Policy" |
381 }, | 384 }, |
382 "scopes": [ | 385 "scopes": [ |
383 "https://www.googleapis.com/auth/cloud-p
latform", | 386 "https://www.googleapis.com/auth/cloud-p
latform", |
384 "https://www.googleapis.com/auth/spanner
.admin" | 387 "https://www.googleapis.com/auth/spanner
.admin" |
385 ] | 388 ] |
386 }, | 389 }, |
387 "list": { | |
388 "description": "Lists operations that match
the specified filter in the request. If the\nserver doesn't support this method,
it returns `UNIMPLEMENTED`.\n\nNOTE: the `name` binding allows API services to
override the binding\nto use different resource name schemes, such as `users/*/o
perations`. To\noverride the binding, API services can add a binding such as\n`\
"/v1/{name=users/*}/operations\"` to their service configuration.\nFor backwards
compatibility, the default name includes the operations\ncollection id, however
overriding users must ensure the name binding\nis the parent resource, without
the operations collection id.", | |
389 "httpMethod": "GET", | |
390 "id": "spanner.projects.instances.operations
.list", | |
391 "parameterOrder": [ | |
392 "name" | |
393 ], | |
394 "parameters": { | |
395 "filter": { | |
396 "description": "The standard list fi
lter.", | |
397 "location": "query", | |
398 "type": "string" | |
399 }, | |
400 "pageToken": { | |
401 "description": "The standard list pa
ge token.", | |
402 "location": "query", | |
403 "type": "string" | |
404 }, | |
405 "name": { | |
406 "description": "The name of the oper
ation's parent resource.", | |
407 "location": "path", | |
408 "pattern": "^projects/[^/]+/instance
s/[^/]+/operations$", | |
409 "required": true, | |
410 "type": "string" | |
411 }, | |
412 "pageSize": { | |
413 "description": "The standard list pa
ge size.", | |
414 "format": "int32", | |
415 "location": "query", | |
416 "type": "integer" | |
417 } | |
418 }, | |
419 "path": "v1/{+name}", | |
420 "response": { | |
421 "$ref": "ListOperationsResponse" | |
422 }, | |
423 "scopes": [ | |
424 "https://www.googleapis.com/auth/cloud-p
latform", | |
425 "https://www.googleapis.com/auth/spanner
.admin" | |
426 ] | |
427 }, | |
428 "cancel": { | |
429 "description": "Starts asynchronous cancella
tion on a long-running operation. The server\nmakes a best effort to cancel the
operation, but success is not\nguaranteed. If the server doesn't support this
method, it returns\n`google.rpc.Code.UNIMPLEMENTED`. Clients can use\nOperation
s.GetOperation or\nother methods to check whether the cancellation succeeded or
whether the\noperation completed despite cancellation. On successful cancellatio
n,\nthe operation is not deleted; instead, it becomes an operation with\nan Oper
ation.error value with a google.rpc.Status.code of 1,\ncorresponding to `Code.CA
NCELLED`.", | |
430 "httpMethod": "POST", | |
431 "id": "spanner.projects.instances.operations
.cancel", | |
432 "parameterOrder": [ | |
433 "name" | |
434 ], | |
435 "parameters": { | |
436 "name": { | |
437 "description": "The name of the oper
ation resource to be cancelled.", | |
438 "location": "path", | |
439 "pattern": "^projects/[^/]+/instance
s/[^/]+/operations/[^/]+$", | |
440 "required": true, | |
441 "type": "string" | |
442 } | |
443 }, | |
444 "path": "v1/{+name}:cancel", | |
445 "response": { | |
446 "$ref": "Empty" | |
447 }, | |
448 "scopes": [ | |
449 "https://www.googleapis.com/auth/cloud-p
latform", | |
450 "https://www.googleapis.com/auth/spanner
.admin" | |
451 ] | |
452 }, | |
453 "delete": { | |
454 "description": "Deletes a long-running opera
tion. This method indicates that the client is\nno longer interested in the oper
ation result. It does not cancel the\noperation. If the server doesn't support t
his method, it returns\n`google.rpc.Code.UNIMPLEMENTED`.", | |
455 "httpMethod": "DELETE", | |
456 "id": "spanner.projects.instances.operations
.delete", | |
457 "parameterOrder": [ | |
458 "name" | |
459 ], | |
460 "parameters": { | |
461 "name": { | |
462 "description": "The name of the oper
ation resource to be deleted.", | |
463 "location": "path", | |
464 "pattern": "^projects/[^/]+/instance
s/[^/]+/operations/[^/]+$", | |
465 "required": true, | |
466 "type": "string" | |
467 } | |
468 }, | |
469 "path": "v1/{+name}", | |
470 "response": { | |
471 "$ref": "Empty" | |
472 }, | |
473 "scopes": [ | |
474 "https://www.googleapis.com/auth/cloud-p
latform", | |
475 "https://www.googleapis.com/auth/spanner
.admin" | |
476 ] | |
477 } | |
478 } | |
479 }, | |
480 "databases": { | |
481 "methods": { | |
482 "get": { | 390 "get": { |
483 "description": "Gets the state of a Cloud Sp
anner database.", | 391 "description": "Gets the state of a Cloud Sp
anner database.", |
484 "httpMethod": "GET", | 392 "httpMethod": "GET", |
485 "id": "spanner.projects.instances.databases.
get", | 393 "id": "spanner.projects.instances.databases.
get", |
486 "parameterOrder": [ | 394 "parameterOrder": [ |
487 "name" | 395 "name" |
488 ], | 396 ], |
489 "parameters": { | 397 "parameters": { |
490 "name": { | 398 "name": { |
491 "description": "Required. The name o
f the requested database. Values are of the form\n`projects/<project>/instances/
<instance>/databases/<database>`.", | 399 "description": "Required. The name o
f the requested database. Values are of the form\n`projects/<project>/instances/
<instance>/databases/<database>`.", |
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
639 }, | 547 }, |
640 "path": "v1/{+parent}/databases", | 548 "path": "v1/{+parent}/databases", |
641 "response": { | 549 "response": { |
642 "$ref": "ListDatabasesResponse" | 550 "$ref": "ListDatabasesResponse" |
643 }, | 551 }, |
644 "scopes": [ | 552 "scopes": [ |
645 "https://www.googleapis.com/auth/cloud-p
latform", | 553 "https://www.googleapis.com/auth/cloud-p
latform", |
646 "https://www.googleapis.com/auth/spanner
.admin" | 554 "https://www.googleapis.com/auth/spanner
.admin" |
647 ] | 555 ] |
648 }, | 556 }, |
649 "create": { | |
650 "description": "Creates a new Cloud Spanner
database and starts to prepare it for serving.\nThe returned long-running operat
ion will\nhave a name of the format `<database_name>/operations/<operation_id>`
and\ncan be used to track preparation of the database. The\nmetadata field type
is\nCreateDatabaseMetadata. The\nresponse field type is\nDatabase, if successful
.", | |
651 "httpMethod": "POST", | |
652 "id": "spanner.projects.instances.databases.
create", | |
653 "parameterOrder": [ | |
654 "parent" | |
655 ], | |
656 "parameters": { | |
657 "parent": { | |
658 "description": "Required. The name o
f the instance that will serve the new database.\nValues are of the form `projec
ts/<project>/instances/<instance>`.", | |
659 "location": "path", | |
660 "pattern": "^projects/[^/]+/instance
s/[^/]+$", | |
661 "required": true, | |
662 "type": "string" | |
663 } | |
664 }, | |
665 "path": "v1/{+parent}/databases", | |
666 "request": { | |
667 "$ref": "CreateDatabaseRequest" | |
668 }, | |
669 "response": { | |
670 "$ref": "Operation" | |
671 }, | |
672 "scopes": [ | |
673 "https://www.googleapis.com/auth/cloud-p
latform", | |
674 "https://www.googleapis.com/auth/spanner
.admin" | |
675 ] | |
676 }, | |
677 "setIamPolicy": { | 557 "setIamPolicy": { |
678 "description": "Sets the access control poli
cy on a database resource. Replaces any\nexisting policy.\n\nAuthorization requi
res `spanner.databases.setIamPolicy` permission on\nresource.", | 558 "description": "Sets the access control poli
cy on a database resource. Replaces any\nexisting policy.\n\nAuthorization requi
res `spanner.databases.setIamPolicy` permission on\nresource.", |
679 "httpMethod": "POST", | 559 "httpMethod": "POST", |
680 "id": "spanner.projects.instances.databases.
setIamPolicy", | 560 "id": "spanner.projects.instances.databases.
setIamPolicy", |
681 "parameterOrder": [ | 561 "parameterOrder": [ |
682 "resource" | 562 "resource" |
683 ], | 563 ], |
684 "parameters": { | 564 "parameters": { |
685 "resource": { | 565 "resource": { |
686 "description": "REQUIRED: The Cloud
Spanner resource for which the policy is being set. The format is `projects/<pro
ject ID>/instances/<instance ID>` for instance resources and `projects/<project
ID>/instances/<instance ID>/databases/<database ID>` for databases resources.", | 566 "description": "REQUIRED: The Cloud
Spanner resource for which the policy is being set. The format is `projects/<pro
ject ID>/instances/<instance ID>` for instance resources and `projects/<project
ID>/instances/<instance ID>/databases/<database ID>` for databases resources.", |
687 "location": "path", | 567 "location": "path", |
688 "pattern": "^projects/[^/]+/instance
s/[^/]+/databases/[^/]+$", | 568 "pattern": "^projects/[^/]+/instance
s/[^/]+/databases/[^/]+$", |
689 "required": true, | 569 "required": true, |
690 "type": "string" | 570 "type": "string" |
691 } | 571 } |
692 }, | 572 }, |
693 "path": "v1/{+resource}:setIamPolicy", | 573 "path": "v1/{+resource}:setIamPolicy", |
694 "request": { | 574 "request": { |
695 "$ref": "SetIamPolicyRequest" | 575 "$ref": "SetIamPolicyRequest" |
696 }, | 576 }, |
697 "response": { | 577 "response": { |
698 "$ref": "Policy" | 578 "$ref": "Policy" |
699 }, | 579 }, |
700 "scopes": [ | 580 "scopes": [ |
701 "https://www.googleapis.com/auth/cloud-p
latform", | 581 "https://www.googleapis.com/auth/cloud-p
latform", |
702 "https://www.googleapis.com/auth/spanner
.admin" | 582 "https://www.googleapis.com/auth/spanner
.admin" |
703 ] | 583 ] |
704 }, | 584 }, |
705 "getIamPolicy": { | 585 "create": { |
706 "description": "Gets the access control poli
cy for a database resource. Returns an empty\npolicy if a database exists but do
es not have a policy set.\n\nAuthorization requires `spanner.databases.getIamPol
icy` permission on\nresource.", | 586 "description": "Creates a new Cloud Spanner
database and starts to prepare it for serving.\nThe returned long-running operat
ion will\nhave a name of the format `<database_name>/operations/<operation_id>`
and\ncan be used to track preparation of the database. The\nmetadata field type
is\nCreateDatabaseMetadata. The\nresponse field type is\nDatabase, if successful
.", |
707 "httpMethod": "POST", | 587 "httpMethod": "POST", |
708 "id": "spanner.projects.instances.databases.
getIamPolicy", | 588 "id": "spanner.projects.instances.databases.
create", |
709 "parameterOrder": [ | 589 "parameterOrder": [ |
710 "resource" | 590 "parent" |
711 ], | 591 ], |
712 "parameters": { | 592 "parameters": { |
713 "resource": { | 593 "parent": { |
714 "description": "REQUIRED: The Cloud
Spanner resource for which the policy is being retrieved. The format is `project
s/<project ID>/instances/<instance ID>` for instance resources and `projects/<pr
oject ID>/instances/<instance ID>/databases/<database ID>` for database resource
s.", | 594 "description": "Required. The name o
f the instance that will serve the new database.\nValues are of the form `projec
ts/<project>/instances/<instance>`.", |
715 "location": "path", | 595 "location": "path", |
716 "pattern": "^projects/[^/]+/instance
s/[^/]+/databases/[^/]+$", | 596 "pattern": "^projects/[^/]+/instance
s/[^/]+$", |
717 "required": true, | 597 "required": true, |
718 "type": "string" | 598 "type": "string" |
719 } | 599 } |
720 }, | 600 }, |
721 "path": "v1/{+resource}:getIamPolicy", | 601 "path": "v1/{+parent}/databases", |
722 "request": { | 602 "request": { |
723 "$ref": "GetIamPolicyRequest" | 603 "$ref": "CreateDatabaseRequest" |
724 }, | 604 }, |
725 "response": { | 605 "response": { |
726 "$ref": "Policy" | 606 "$ref": "Operation" |
727 }, | 607 }, |
728 "scopes": [ | 608 "scopes": [ |
729 "https://www.googleapis.com/auth/cloud-p
latform", | 609 "https://www.googleapis.com/auth/cloud-p
latform", |
730 "https://www.googleapis.com/auth/spanner
.admin" | 610 "https://www.googleapis.com/auth/spanner
.admin" |
731 ] | 611 ] |
732 } | 612 } |
733 }, | 613 }, |
734 "resources": { | 614 "resources": { |
735 "sessions": { | 615 "sessions": { |
736 "methods": { | 616 "methods": { |
| 617 "read": { |
| 618 "description": "Reads rows from the
database using key lookups and scans, as a\nsimple key/value style alternative t
o\nExecuteSql. This method cannot be used to\nreturn a result set larger than 1
0 MiB; if the read matches more\ndata than that, the read fails with a `FAILED_P
RECONDITION`\nerror.\n\nReads inside read-write transactions might return `ABORT
ED`. If\nthis occurs, the application should restart the transaction from\nthe b
eginning. See Transaction for more details.\n\nLarger result sets can be yielded
in streaming fashion by calling\nStreamingRead instead.", |
| 619 "httpMethod": "POST", |
| 620 "id": "spanner.projects.instances.da
tabases.sessions.read", |
| 621 "parameterOrder": [ |
| 622 "session" |
| 623 ], |
| 624 "parameters": { |
| 625 "session": { |
| 626 "description": "Required. Th
e session in which the read should be performed.", |
| 627 "location": "path", |
| 628 "pattern": "^projects/[^/]+/
instances/[^/]+/databases/[^/]+/sessions/[^/]+$", |
| 629 "required": true, |
| 630 "type": "string" |
| 631 } |
| 632 }, |
| 633 "path": "v1/{+session}:read", |
| 634 "request": { |
| 635 "$ref": "ReadRequest" |
| 636 }, |
| 637 "response": { |
| 638 "$ref": "ResultSet" |
| 639 }, |
| 640 "scopes": [ |
| 641 "https://www.googleapis.com/auth
/cloud-platform", |
| 642 "https://www.googleapis.com/auth
/spanner.data" |
| 643 ] |
| 644 }, |
737 "get": { | 645 "get": { |
738 "description": "Gets a session. Retu
rns `NOT_FOUND` if the session does not exist.\nThis is mainly useful for determ
ining whether a session is still\nalive.", | 646 "description": "Gets a session. Retu
rns `NOT_FOUND` if the session does not exist.\nThis is mainly useful for determ
ining whether a session is still\nalive.", |
739 "httpMethod": "GET", | 647 "httpMethod": "GET", |
740 "id": "spanner.projects.instances.da
tabases.sessions.get", | 648 "id": "spanner.projects.instances.da
tabases.sessions.get", |
741 "parameterOrder": [ | 649 "parameterOrder": [ |
742 "name" | 650 "name" |
743 ], | 651 ], |
744 "parameters": { | 652 "parameters": { |
745 "name": { | 653 "name": { |
746 "description": "Required. Th
e name of the session to retrieve.", | 654 "description": "Required. Th
e name of the session to retrieve.", |
747 "location": "path", | 655 "location": "path", |
748 "pattern": "^projects/[^/]+/
instances/[^/]+/databases/[^/]+/sessions/[^/]+$", | 656 "pattern": "^projects/[^/]+/
instances/[^/]+/databases/[^/]+/sessions/[^/]+$", |
749 "required": true, | 657 "required": true, |
750 "type": "string" | 658 "type": "string" |
751 } | 659 } |
752 }, | 660 }, |
753 "path": "v1/{+name}", | 661 "path": "v1/{+name}", |
754 "response": { | 662 "response": { |
755 "$ref": "Session" | 663 "$ref": "Session" |
756 }, | 664 }, |
757 "scopes": [ | 665 "scopes": [ |
758 "https://www.googleapis.com/auth
/cloud-platform", | 666 "https://www.googleapis.com/auth
/cloud-platform", |
759 "https://www.googleapis.com/auth
/spanner.data" | 667 "https://www.googleapis.com/auth
/spanner.data" |
760 ] | 668 ] |
761 }, | 669 }, |
| 670 "executeStreamingSql": { |
| 671 "description": "Like ExecuteSql, exc
ept returns the result\nset as a stream. Unlike ExecuteSql, there\nis no limit o
n the size of the returned result set. However, no\nindividual row in the result
set can exceed 100 MiB, and no\ncolumn value can exceed 10 MiB.", |
| 672 "httpMethod": "POST", |
| 673 "id": "spanner.projects.instances.da
tabases.sessions.executeStreamingSql", |
| 674 "parameterOrder": [ |
| 675 "session" |
| 676 ], |
| 677 "parameters": { |
| 678 "session": { |
| 679 "description": "Required. Th
e session in which the SQL query should be performed.", |
| 680 "location": "path", |
| 681 "pattern": "^projects/[^/]+/
instances/[^/]+/databases/[^/]+/sessions/[^/]+$", |
| 682 "required": true, |
| 683 "type": "string" |
| 684 } |
| 685 }, |
| 686 "path": "v1/{+session}:executeStream
ingSql", |
| 687 "request": { |
| 688 "$ref": "ExecuteSqlRequest" |
| 689 }, |
| 690 "response": { |
| 691 "$ref": "PartialResultSet" |
| 692 }, |
| 693 "scopes": [ |
| 694 "https://www.googleapis.com/auth
/cloud-platform", |
| 695 "https://www.googleapis.com/auth
/spanner.data" |
| 696 ] |
| 697 }, |
762 "commit": { | 698 "commit": { |
763 "description": "Commits a transactio
n. The request includes the mutations to be\napplied to rows in the database.\n\
n`Commit` might return an `ABORTED` error. This can occur at any time;\ncommonly
, the cause is conflicts with concurrent\ntransactions. However, it can also hap
pen for a variety of other\nreasons. If `Commit` returns `ABORTED`, the caller s
hould re-attempt\nthe transaction from the beginning, re-using the same session.
", | 699 "description": "Commits a transactio
n. The request includes the mutations to be\napplied to rows in the database.\n\
n`Commit` might return an `ABORTED` error. This can occur at any time;\ncommonly
, the cause is conflicts with concurrent\ntransactions. However, it can also hap
pen for a variety of other\nreasons. If `Commit` returns `ABORTED`, the caller s
hould re-attempt\nthe transaction from the beginning, re-using the same session.
", |
764 "httpMethod": "POST", | 700 "httpMethod": "POST", |
765 "id": "spanner.projects.instances.da
tabases.sessions.commit", | 701 "id": "spanner.projects.instances.da
tabases.sessions.commit", |
766 "parameterOrder": [ | 702 "parameterOrder": [ |
767 "session" | 703 "session" |
768 ], | 704 ], |
769 "parameters": { | 705 "parameters": { |
770 "session": { | 706 "session": { |
771 "description": "Required. Th
e session in which the transaction to be committed is running.", | 707 "description": "Required. Th
e session in which the transaction to be committed is running.", |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
833 }, | 769 }, |
834 "path": "v1/{+name}", | 770 "path": "v1/{+name}", |
835 "response": { | 771 "response": { |
836 "$ref": "Empty" | 772 "$ref": "Empty" |
837 }, | 773 }, |
838 "scopes": [ | 774 "scopes": [ |
839 "https://www.googleapis.com/auth
/cloud-platform", | 775 "https://www.googleapis.com/auth
/cloud-platform", |
840 "https://www.googleapis.com/auth
/spanner.data" | 776 "https://www.googleapis.com/auth
/spanner.data" |
841 ] | 777 ] |
842 }, | 778 }, |
843 "executeStreamingSql": { | |
844 "description": "Like ExecuteSql, exc
ept returns the result\nset as a stream. Unlike ExecuteSql, there\nis no limit o
n the size of the returned result set. However, no\nindividual row in the result
set can exceed 100 MiB, and no\ncolumn value can exceed 10 MiB.", | |
845 "httpMethod": "POST", | |
846 "id": "spanner.projects.instances.da
tabases.sessions.executeStreamingSql", | |
847 "parameterOrder": [ | |
848 "session" | |
849 ], | |
850 "parameters": { | |
851 "session": { | |
852 "description": "Required. Th
e session in which the SQL query should be performed.", | |
853 "location": "path", | |
854 "pattern": "^projects/[^/]+/
instances/[^/]+/databases/[^/]+/sessions/[^/]+$", | |
855 "required": true, | |
856 "type": "string" | |
857 } | |
858 }, | |
859 "path": "v1/{+session}:executeStream
ingSql", | |
860 "request": { | |
861 "$ref": "ExecuteSqlRequest" | |
862 }, | |
863 "response": { | |
864 "$ref": "PartialResultSet" | |
865 }, | |
866 "scopes": [ | |
867 "https://www.googleapis.com/auth
/cloud-platform", | |
868 "https://www.googleapis.com/auth
/spanner.data" | |
869 ] | |
870 }, | |
871 "executeSql": { | 779 "executeSql": { |
872 "description": "Executes an SQL quer
y, returning all rows in a single reply. This\nmethod cannot be used to return a
result set larger than 10 MiB;\nif the query yields more data than that, the qu
ery fails with\na `FAILED_PRECONDITION` error.\n\nQueries inside read-write tran
sactions might return `ABORTED`. If\nthis occurs, the application should restart
the transaction from\nthe beginning. See Transaction for more details.\n\nLarge
r result sets can be fetched in streaming fashion by calling\nExecuteStreamingSq
l instead.", | 780 "description": "Executes an SQL quer
y, returning all rows in a single reply. This\nmethod cannot be used to return a
result set larger than 10 MiB;\nif the query yields more data than that, the qu
ery fails with\na `FAILED_PRECONDITION` error.\n\nQueries inside read-write tran
sactions might return `ABORTED`. If\nthis occurs, the application should restart
the transaction from\nthe beginning. See Transaction for more details.\n\nLarge
r result sets can be fetched in streaming fashion by calling\nExecuteStreamingSq
l instead.", |
873 "httpMethod": "POST", | 781 "httpMethod": "POST", |
874 "id": "spanner.projects.instances.da
tabases.sessions.executeSql", | 782 "id": "spanner.projects.instances.da
tabases.sessions.executeSql", |
875 "parameterOrder": [ | 783 "parameterOrder": [ |
876 "session" | 784 "session" |
877 ], | 785 ], |
878 "parameters": { | 786 "parameters": { |
879 "session": { | 787 "session": { |
880 "description": "Required. Th
e session in which the SQL query should be performed.", | 788 "description": "Required. Th
e session in which the SQL query should be performed.", |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
969 } | 877 } |
970 }, | 878 }, |
971 "path": "v1/{+database}/sessions", | 879 "path": "v1/{+database}/sessions", |
972 "response": { | 880 "response": { |
973 "$ref": "Session" | 881 "$ref": "Session" |
974 }, | 882 }, |
975 "scopes": [ | 883 "scopes": [ |
976 "https://www.googleapis.com/auth
/cloud-platform", | 884 "https://www.googleapis.com/auth
/cloud-platform", |
977 "https://www.googleapis.com/auth
/spanner.data" | 885 "https://www.googleapis.com/auth
/spanner.data" |
978 ] | 886 ] |
979 }, | |
980 "read": { | |
981 "description": "Reads rows from the
database using key lookups and scans, as a\nsimple key/value style alternative t
o\nExecuteSql. This method cannot be used to\nreturn a result set larger than 1
0 MiB; if the read matches more\ndata than that, the read fails with a `FAILED_P
RECONDITION`\nerror.\n\nReads inside read-write transactions might return `ABORT
ED`. If\nthis occurs, the application should restart the transaction from\nthe b
eginning. See Transaction for more details.\n\nLarger result sets can be yielded
in streaming fashion by calling\nStreamingRead instead.", | |
982 "httpMethod": "POST", | |
983 "id": "spanner.projects.instances.da
tabases.sessions.read", | |
984 "parameterOrder": [ | |
985 "session" | |
986 ], | |
987 "parameters": { | |
988 "session": { | |
989 "description": "Required. Th
e session in which the read should be performed.", | |
990 "location": "path", | |
991 "pattern": "^projects/[^/]+/
instances/[^/]+/databases/[^/]+/sessions/[^/]+$", | |
992 "required": true, | |
993 "type": "string" | |
994 } | |
995 }, | |
996 "path": "v1/{+session}:read", | |
997 "request": { | |
998 "$ref": "ReadRequest" | |
999 }, | |
1000 "response": { | |
1001 "$ref": "ResultSet" | |
1002 }, | |
1003 "scopes": [ | |
1004 "https://www.googleapis.com/auth
/cloud-platform", | |
1005 "https://www.googleapis.com/auth
/spanner.data" | |
1006 ] | |
1007 } | 887 } |
1008 } | 888 } |
1009 }, | 889 }, |
1010 "operations": { | 890 "operations": { |
1011 "methods": { | 891 "methods": { |
1012 "cancel": { | 892 "cancel": { |
1013 "description": "Starts asynchronous
cancellation on a long-running operation. The server\nmakes a best effort to ca
ncel the operation, but success is not\nguaranteed. If the server doesn't suppo
rt this method, it returns\n`google.rpc.Code.UNIMPLEMENTED`. Clients can use\nO
perations.GetOperation or\nother methods to check whether the cancellation succe
eded or whether the\noperation completed despite cancellation. On successful can
cellation,\nthe operation is not deleted; instead, it becomes an operation with\
nan Operation.error value with a google.rpc.Status.code of 1,\ncorresponding to
`Code.CANCELLED`.", | 893 "description": "Starts asynchronous
cancellation on a long-running operation. The server\nmakes a best effort to ca
ncel the operation, but success is not\nguaranteed. If the server doesn't suppo
rt this method, it returns\n`google.rpc.Code.UNIMPLEMENTED`. Clients can use\nO
perations.GetOperation or\nother methods to check whether the cancellation succe
eded or whether the\noperation completed despite cancellation. On successful can
cellation,\nthe operation is not deleted; instead, it becomes an operation with\
nan Operation.error value with a google.rpc.Status.code of 1,\ncorresponding to
`Code.CANCELLED`.", |
1014 "httpMethod": "POST", | 894 "httpMethod": "POST", |
1015 "id": "spanner.projects.instances.da
tabases.operations.cancel", | 895 "id": "spanner.projects.instances.da
tabases.operations.cancel", |
1016 "parameterOrder": [ | 896 "parameterOrder": [ |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1085 ] | 965 ] |
1086 }, | 966 }, |
1087 "list": { | 967 "list": { |
1088 "description": "Lists operations tha
t match the specified filter in the request. If the\nserver doesn't support this
method, it returns `UNIMPLEMENTED`.\n\nNOTE: the `name` binding allows API serv
ices to override the binding\nto use different resource name schemes, such as `u
sers/*/operations`. To\noverride the binding, API services can add a binding suc
h as\n`\"/v1/{name=users/*}/operations\"` to their service configuration.\nFor b
ackwards compatibility, the default name includes the operations\ncollection id,
however overriding users must ensure the name binding\nis the parent resource,
without the operations collection id.", | 968 "description": "Lists operations tha
t match the specified filter in the request. If the\nserver doesn't support this
method, it returns `UNIMPLEMENTED`.\n\nNOTE: the `name` binding allows API serv
ices to override the binding\nto use different resource name schemes, such as `u
sers/*/operations`. To\noverride the binding, API services can add a binding suc
h as\n`\"/v1/{name=users/*}/operations\"` to their service configuration.\nFor b
ackwards compatibility, the default name includes the operations\ncollection id,
however overriding users must ensure the name binding\nis the parent resource,
without the operations collection id.", |
1089 "httpMethod": "GET", | 969 "httpMethod": "GET", |
1090 "id": "spanner.projects.instances.da
tabases.operations.list", | 970 "id": "spanner.projects.instances.da
tabases.operations.list", |
1091 "parameterOrder": [ | 971 "parameterOrder": [ |
1092 "name" | 972 "name" |
1093 ], | 973 ], |
1094 "parameters": { | 974 "parameters": { |
| 975 "filter": { |
| 976 "description": "The standard
list filter.", |
| 977 "location": "query", |
| 978 "type": "string" |
| 979 }, |
1095 "pageToken": { | 980 "pageToken": { |
1096 "description": "The standard
list page token.", | 981 "description": "The standard
list page token.", |
1097 "location": "query", | 982 "location": "query", |
1098 "type": "string" | 983 "type": "string" |
1099 }, | 984 }, |
1100 "name": { | 985 "name": { |
1101 "description": "The name of
the operation's parent resource.", | 986 "description": "The name of
the operation's parent resource.", |
1102 "location": "path", | 987 "location": "path", |
1103 "pattern": "^projects/[^/]+/
instances/[^/]+/databases/[^/]+/operations$", | 988 "pattern": "^projects/[^/]+/
instances/[^/]+/databases/[^/]+/operations$", |
1104 "required": true, | 989 "required": true, |
1105 "type": "string" | 990 "type": "string" |
1106 }, | 991 }, |
1107 "pageSize": { | 992 "pageSize": { |
1108 "description": "The standard
list page size.", | 993 "description": "The standard
list page size.", |
1109 "format": "int32", | 994 "format": "int32", |
1110 "location": "query", | 995 "location": "query", |
1111 "type": "integer" | 996 "type": "integer" |
1112 }, | |
1113 "filter": { | |
1114 "description": "The standard
list filter.", | |
1115 "location": "query", | |
1116 "type": "string" | |
1117 } | 997 } |
1118 }, | 998 }, |
1119 "path": "v1/{+name}", | 999 "path": "v1/{+name}", |
1120 "response": { | 1000 "response": { |
1121 "$ref": "ListOperationsResponse" | 1001 "$ref": "ListOperationsResponse" |
1122 }, | 1002 }, |
1123 "scopes": [ | 1003 "scopes": [ |
1124 "https://www.googleapis.com/auth
/cloud-platform", | 1004 "https://www.googleapis.com/auth
/cloud-platform", |
1125 "https://www.googleapis.com/auth
/spanner.admin" | 1005 "https://www.googleapis.com/auth
/spanner.admin" |
1126 ] | 1006 ] |
1127 } | 1007 } |
1128 } | 1008 } |
1129 } | 1009 } |
1130 } | 1010 } |
| 1011 }, |
| 1012 "operations": { |
| 1013 "methods": { |
| 1014 "cancel": { |
| 1015 "description": "Starts asynchronous cancella
tion on a long-running operation. The server\nmakes a best effort to cancel the
operation, but success is not\nguaranteed. If the server doesn't support this
method, it returns\n`google.rpc.Code.UNIMPLEMENTED`. Clients can use\nOperation
s.GetOperation or\nother methods to check whether the cancellation succeeded or
whether the\noperation completed despite cancellation. On successful cancellatio
n,\nthe operation is not deleted; instead, it becomes an operation with\nan Oper
ation.error value with a google.rpc.Status.code of 1,\ncorresponding to `Code.CA
NCELLED`.", |
| 1016 "httpMethod": "POST", |
| 1017 "id": "spanner.projects.instances.operations
.cancel", |
| 1018 "parameterOrder": [ |
| 1019 "name" |
| 1020 ], |
| 1021 "parameters": { |
| 1022 "name": { |
| 1023 "description": "The name of the oper
ation resource to be cancelled.", |
| 1024 "location": "path", |
| 1025 "pattern": "^projects/[^/]+/instance
s/[^/]+/operations/[^/]+$", |
| 1026 "required": true, |
| 1027 "type": "string" |
| 1028 } |
| 1029 }, |
| 1030 "path": "v1/{+name}:cancel", |
| 1031 "response": { |
| 1032 "$ref": "Empty" |
| 1033 }, |
| 1034 "scopes": [ |
| 1035 "https://www.googleapis.com/auth/cloud-p
latform", |
| 1036 "https://www.googleapis.com/auth/spanner
.admin" |
| 1037 ] |
| 1038 }, |
| 1039 "delete": { |
| 1040 "description": "Deletes a long-running opera
tion. This method indicates that the client is\nno longer interested in the oper
ation result. It does not cancel the\noperation. If the server doesn't support t
his method, it returns\n`google.rpc.Code.UNIMPLEMENTED`.", |
| 1041 "httpMethod": "DELETE", |
| 1042 "id": "spanner.projects.instances.operations
.delete", |
| 1043 "parameterOrder": [ |
| 1044 "name" |
| 1045 ], |
| 1046 "parameters": { |
| 1047 "name": { |
| 1048 "description": "The name of the oper
ation resource to be deleted.", |
| 1049 "location": "path", |
| 1050 "pattern": "^projects/[^/]+/instance
s/[^/]+/operations/[^/]+$", |
| 1051 "required": true, |
| 1052 "type": "string" |
| 1053 } |
| 1054 }, |
| 1055 "path": "v1/{+name}", |
| 1056 "response": { |
| 1057 "$ref": "Empty" |
| 1058 }, |
| 1059 "scopes": [ |
| 1060 "https://www.googleapis.com/auth/cloud-p
latform", |
| 1061 "https://www.googleapis.com/auth/spanner
.admin" |
| 1062 ] |
| 1063 }, |
| 1064 "get": { |
| 1065 "description": "Gets the latest state of a l
ong-running operation. Clients can use this\nmethod to poll the operation resul
t at intervals as recommended by the API\nservice.", |
| 1066 "httpMethod": "GET", |
| 1067 "id": "spanner.projects.instances.operations
.get", |
| 1068 "parameterOrder": [ |
| 1069 "name" |
| 1070 ], |
| 1071 "parameters": { |
| 1072 "name": { |
| 1073 "description": "The name of the oper
ation resource.", |
| 1074 "location": "path", |
| 1075 "pattern": "^projects/[^/]+/instance
s/[^/]+/operations/[^/]+$", |
| 1076 "required": true, |
| 1077 "type": "string" |
| 1078 } |
| 1079 }, |
| 1080 "path": "v1/{+name}", |
| 1081 "response": { |
| 1082 "$ref": "Operation" |
| 1083 }, |
| 1084 "scopes": [ |
| 1085 "https://www.googleapis.com/auth/cloud-p
latform", |
| 1086 "https://www.googleapis.com/auth/spanner
.admin" |
| 1087 ] |
| 1088 }, |
| 1089 "list": { |
| 1090 "description": "Lists operations that match
the specified filter in the request. If the\nserver doesn't support this method,
it returns `UNIMPLEMENTED`.\n\nNOTE: the `name` binding allows API services to
override the binding\nto use different resource name schemes, such as `users/*/o
perations`. To\noverride the binding, API services can add a binding such as\n`\
"/v1/{name=users/*}/operations\"` to their service configuration.\nFor backwards
compatibility, the default name includes the operations\ncollection id, however
overriding users must ensure the name binding\nis the parent resource, without
the operations collection id.", |
| 1091 "httpMethod": "GET", |
| 1092 "id": "spanner.projects.instances.operations
.list", |
| 1093 "parameterOrder": [ |
| 1094 "name" |
| 1095 ], |
| 1096 "parameters": { |
| 1097 "filter": { |
| 1098 "description": "The standard list fi
lter.", |
| 1099 "location": "query", |
| 1100 "type": "string" |
| 1101 }, |
| 1102 "pageToken": { |
| 1103 "description": "The standard list pa
ge token.", |
| 1104 "location": "query", |
| 1105 "type": "string" |
| 1106 }, |
| 1107 "name": { |
| 1108 "description": "The name of the oper
ation's parent resource.", |
| 1109 "location": "path", |
| 1110 "pattern": "^projects/[^/]+/instance
s/[^/]+/operations$", |
| 1111 "required": true, |
| 1112 "type": "string" |
| 1113 }, |
| 1114 "pageSize": { |
| 1115 "description": "The standard list pa
ge size.", |
| 1116 "format": "int32", |
| 1117 "location": "query", |
| 1118 "type": "integer" |
| 1119 } |
| 1120 }, |
| 1121 "path": "v1/{+name}", |
| 1122 "response": { |
| 1123 "$ref": "ListOperationsResponse" |
| 1124 }, |
| 1125 "scopes": [ |
| 1126 "https://www.googleapis.com/auth/cloud-p
latform", |
| 1127 "https://www.googleapis.com/auth/spanner
.admin" |
| 1128 ] |
| 1129 } |
| 1130 } |
1131 } | 1131 } |
1132 } | 1132 } |
1133 }, | 1133 }, |
1134 "instanceConfigs": { | 1134 "instanceConfigs": { |
1135 "methods": { | 1135 "methods": { |
1136 "get": { | 1136 "get": { |
1137 "description": "Gets information about a particular
instance configuration.", | 1137 "description": "Gets information about a particular
instance configuration.", |
1138 "httpMethod": "GET", | 1138 "httpMethod": "GET", |
1139 "id": "spanner.projects.instanceConfigs.get", | 1139 "id": "spanner.projects.instanceConfigs.get", |
1140 "parameterOrder": [ | 1140 "parameterOrder": [ |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1192 "scopes": [ | 1192 "scopes": [ |
1193 "https://www.googleapis.com/auth/cloud-platform"
, | 1193 "https://www.googleapis.com/auth/cloud-platform"
, |
1194 "https://www.googleapis.com/auth/spanner.admin" | 1194 "https://www.googleapis.com/auth/spanner.admin" |
1195 ] | 1195 ] |
1196 } | 1196 } |
1197 } | 1197 } |
1198 } | 1198 } |
1199 } | 1199 } |
1200 } | 1200 } |
1201 }, | 1201 }, |
1202 "revision": "20170726", | 1202 "revision": "20170825", |
1203 "rootUrl": "https://spanner.googleapis.com/", | 1203 "rootUrl": "https://spanner.googleapis.com/", |
1204 "schemas": { | 1204 "schemas": { |
1205 "UpdateInstanceMetadata": { | 1205 "InstanceConfig": { |
1206 "description": "Metadata type for the operation returned by\nUpdateI
nstance.", | 1206 "description": "A possible configuration for a Cloud Spanner instanc
e. Configurations\ndefine the geographic placement of nodes and their replicatio
n.", |
1207 "id": "UpdateInstanceMetadata", | 1207 "id": "InstanceConfig", |
1208 "properties": { | 1208 "properties": { |
1209 "endTime": { | 1209 "name": { |
1210 "description": "The time at which this operation failed or w
as completed successfully.", | 1210 "description": "A unique identifier for the instance configu
ration. Values\nare of the form\n`projects/<project>/instanceConfigs/a-z*`", |
1211 "format": "google-datetime", | 1211 "type": "string" |
1212 "type": "string" | 1212 }, |
1213 }, | 1213 "displayName": { |
1214 "cancelTime": { | 1214 "description": "The name of this instance configuration as i
t appears in UIs.", |
1215 "description": "The time at which this operation was cancell
ed. If set, this operation is\nin the process of undoing itself (which is guaran
teed to succeed) and\ncannot be cancelled again.", | 1215 "type": "string" |
1216 "format": "google-datetime", | 1216 } |
1217 "type": "string" | 1217 }, |
1218 }, | 1218 "type": "object" |
1219 "startTime": { | 1219 }, |
1220 "description": "The time at which UpdateInstance\nrequest wa
s received.", | 1220 "UpdateInstanceRequest": { |
1221 "format": "google-datetime", | 1221 "description": "The request for UpdateInstance.", |
| 1222 "id": "UpdateInstanceRequest", |
| 1223 "properties": { |
| 1224 "fieldMask": { |
| 1225 "description": "Required. A mask specifying which fields in
[][google.spanner.admin.instance.v1.UpdateInstanceRequest.instance] should be up
dated.\nThe field mask must always be specified; this prevents any future fields
in\n[][google.spanner.admin.instance.v1.Instance] from being erased accidentall
y by clients that do not know\nabout them.", |
| 1226 "format": "google-fieldmask", |
1222 "type": "string" | 1227 "type": "string" |
1223 }, | 1228 }, |
1224 "instance": { | 1229 "instance": { |
1225 "$ref": "Instance", | 1230 "$ref": "Instance", |
1226 "description": "The desired end state of the update." | 1231 "description": "Required. The instance to update, which must
always include the instance\nname. Otherwise, only fields mentioned in [][goog
le.spanner.admin.instance.v1.UpdateInstanceRequest.field_mask] need be included.
" |
1227 } | 1232 } |
1228 }, | 1233 }, |
1229 "type": "object" | 1234 "type": "object" |
1230 }, | 1235 }, |
1231 "ListOperationsResponse": { | 1236 "Empty": { |
1232 "description": "The response message for Operations.ListOperations."
, | 1237 "description": "A generic empty message that you can re-use to avoid
defining duplicated\nempty messages in your APIs. A typical example is to use i
t as the request\nor the response type of an API method. For instance:\n\n se
rvice Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty
);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", |
1233 "id": "ListOperationsResponse", | 1238 "id": "Empty", |
1234 "properties": { | 1239 "properties": {}, |
1235 "nextPageToken": { | 1240 "type": "object" |
1236 "description": "The standard List next-page token.", | 1241 }, |
1237 "type": "string" | 1242 "TransactionOptions": { |
1238 }, | 1243 "description": "# Transactions\n\n\nEach session can have at most on
e active transaction at a time. After the\nactive transaction is completed, the
session can immediately be\nre-used for the next transaction. It is not necessar
y to create a\nnew session for each transaction.\n\n# Transaction Modes\n\nCloud
Spanner supports two transaction modes:\n\n 1. Locking read-write. This type o
f transaction is the only way\n to write data into Cloud Spanner. These tran
sactions rely on\n pessimistic locking and, if necessary, two-phase commit.\
n Locking read-write transactions may abort, requiring the\n application
to retry.\n\n 2. Snapshot read-only. This transaction type provides guaranteed
\n consistency across several reads, but does not allow\n writes. Snapsh
ot read-only transactions can be configured to\n read at timestamps in the p
ast. Snapshot read-only\n transactions do not need to be committed.\n\nFor t
ransactions that only read, snapshot read-only transactions\nprovide simpler sem
antics and are almost always faster. In\nparticular, read-only transactions do n
ot take locks, so they do\nnot conflict with read-write transactions. As a conse
quence of not\ntaking locks, they also do not abort, so retry loops are not need
ed.\n\nTransactions may only read/write data in a single database. They\nmay, ho
wever, read/write data in different tables within that\ndatabase.\n\n## Locking
Read-Write Transactions\n\nLocking transactions may be used to atomically read-m
odify-write\ndata anywhere in a database. This type of transaction is externally
\nconsistent.\n\nClients should attempt to minimize the amount of time a transac
tion\nis active. Faster transactions commit with higher probability\nand cause l
ess contention. Cloud Spanner attempts to keep read locks\nactive as long as the
transaction continues to do reads, and the\ntransaction has not been terminated
by\nCommit or\nRollback. Long periods of\ninactivity at the client may cause C
loud Spanner to release a\ntransaction's locks and abort it.\n\nReads performed
within a transaction acquire locks on the data\nbeing read. Writes can only be d
one at commit time, after all reads\nhave been completed.\nConceptually, a read-
write transaction consists of zero or more\nreads or SQL queries followed by\nCo
mmit. At any time before\nCommit, the client can send a\nRollback request to abo
rt the\ntransaction.\n\n### Semantics\n\nCloud Spanner can commit the transactio
n if all read locks it acquired\nare still valid at commit time, and it is able
to acquire write\nlocks for all writes. Cloud Spanner can abort the transaction
for any\nreason. If a commit attempt returns `ABORTED`, Cloud Spanner guarantees
\nthat the transaction has not modified any user data in Cloud Spanner.\n\nUnles
s the transaction commits, Cloud Spanner makes no guarantees about\nhow long the
transaction's locks were held for. It is an error to\nuse Cloud Spanner locks f
or any sort of mutual exclusion other than\nbetween Cloud Spanner transactions t
hemselves.\n\n### Retrying Aborted Transactions\n\nWhen a transaction aborts, th
e application can choose to retry the\nwhole transaction again. To maximize the
chances of successfully\ncommitting the retry, the client should execute the ret
ry in the\nsame session as the original attempt. The original session's lock\npr
iority increases with each consecutive abort, meaning that each\nattempt has a s
lightly better chance of success than the previous.\n\nUnder some circumstances
(e.g., many transactions attempting to\nmodify the same row(s)), a transaction c
an abort many times in a\nshort period before successfully committing. Thus, it
is not a good\nidea to cap the number of retries a transaction can attempt;\nins
tead, it is better to limit the total amount of wall time spent\nretrying.\n\n##
# Idle Transactions\n\nA transaction is considered idle if it has no outstanding
reads or\nSQL queries and has not started a read or SQL query within the last 1
0\nseconds. Idle transactions can be aborted by Cloud Spanner so that they\ndon'
t hold on to locks indefinitely. In that case, the commit will\nfail with error
`ABORTED`.\n\nIf this behavior is undesirable, periodically executing a simple\n
SQL query in the transaction (e.g., `SELECT 1`) prevents the\ntransaction from b
ecoming idle.\n\n## Snapshot Read-Only Transactions\n\nSnapshot read-only transa
ctions provides a simpler method than\nlocking read-write transactions for doing
several consistent\nreads. However, this type of transaction does not support w
rites.\n\nSnapshot transactions do not take locks. Instead, they work by\nchoosi
ng a Cloud Spanner timestamp, then executing all reads at that\ntimestamp. Since
they do not acquire locks, they do not block\nconcurrent read-write transaction
s.\n\nUnlike locking read-write transactions, snapshot read-only\ntransactions n
ever abort. They can fail if the chosen read\ntimestamp is garbage collected; ho
wever, the default garbage\ncollection policy is generous enough that most appli
cations do not\nneed to worry about this in practice.\n\nSnapshot read-only tran
sactions do not need to call\nCommit or\nRollback (and in fact are not\npermitte
d to do so).\n\nTo execute a snapshot transaction, the client specifies a timest
amp\nbound, which tells Cloud Spanner how to choose a read timestamp.\n\nThe typ
es of timestamp bound are:\n\n - Strong (the default).\n - Bounded staleness.\
n - Exact staleness.\n\nIf the Cloud Spanner database to be read is geographica
lly distributed,\nstale read-only transactions can execute more quickly than str
ong\nor read-write transaction, because they are able to execute far\nfrom the l
eader replica.\n\nEach type of timestamp bound is discussed in detail below.\n\n
### Strong\n\nStrong reads are guaranteed to see the effects of all transactions
\nthat have committed before the start of the read. Furthermore, all\nrows yield
ed by a single read are consistent with each other -- if\nany part of the read o
bserves a transaction, all parts of the read\nsee the transaction.\n\nStrong rea
ds are not repeatable: two consecutive strong read-only\ntransactions might retu
rn inconsistent results if there are\nconcurrent writes. If consistency across r
eads is required, the\nreads should be executed within a transaction or at an ex
act read\ntimestamp.\n\nSee TransactionOptions.ReadOnly.strong.\n\n### Exact Sta
leness\n\nThese timestamp bounds execute reads at a user-specified\ntimestamp. R
eads at a timestamp are guaranteed to see a consistent\nprefix of the global tra
nsaction history: they observe\nmodifications done by all transactions with a co
mmit timestamp <=\nthe read timestamp, and observe none of the modifications don
e by\ntransactions with a larger commit timestamp. They will block until\nall co
nflicting transactions that may be assigned commit timestamps\n<= the read times
tamp have finished.\n\nThe timestamp can either be expressed as an absolute Clou
d Spanner commit\ntimestamp or a staleness relative to the current time.\n\nThes
e modes do not require a \"negotiation phase\" to pick a\ntimestamp. As a result
, they execute slightly faster than the\nequivalent boundedly stale concurrency
modes. On the other hand,\nboundedly stale reads usually return fresher results.
\n\nSee TransactionOptions.ReadOnly.read_timestamp and\nTransactionOptions.ReadO
nly.exact_staleness.\n\n### Bounded Staleness\n\nBounded staleness modes allow C
loud Spanner to pick the read timestamp,\nsubject to a user-provided staleness b
ound. Cloud Spanner chooses the\nnewest timestamp within the staleness bound tha
t allows execution\nof the reads at the closest available replica without blocki
ng.\n\nAll rows yielded are consistent with each other -- if any part of\nthe re
ad observes a transaction, all parts of the read see the\ntransaction. Boundedly
stale reads are not repeatable: two stale\nreads, even if they use the same sta
leness bound, can execute at\ndifferent timestamps and thus return inconsistent
results.\n\nBoundedly stale reads execute in two phases: the first phase\nnegoti
ates a timestamp among all replicas needed to serve the\nread. In the second pha
se, reads are executed at the negotiated\ntimestamp.\n\nAs a result of the two p
hase execution, bounded staleness reads are\nusually a little slower than compar
able exact staleness\nreads. However, they are typically able to return fresher\
nresults, and are more likely to execute at the closest replica.\n\nBecause the
timestamp negotiation requires up-front knowledge of\nwhich rows will be read, i
t can only be used with single-use\nread-only transactions.\n\nSee TransactionOp
tions.ReadOnly.max_staleness and\nTransactionOptions.ReadOnly.min_read_timestamp
.\n\n### Old Read Timestamps and Garbage Collection\n\nCloud Spanner continuousl
y garbage collects deleted and overwritten data\nin the background to reclaim st
orage space. This process is known\nas \"version GC\". By default, version GC re
claims versions after they\nare one hour old. Because of this, Cloud Spanner can
not perform reads\nat read timestamps more than one hour in the past. This\nrest
riction also applies to in-progress reads and/or SQL queries whose\ntimestamp be
come too old while executing. Reads and SQL queries with\ntoo-old read timestamp
s fail with the error `FAILED_PRECONDITION`.", |
1239 "operations": { | 1244 "id": "TransactionOptions", |
1240 "description": "A list of operations that matches the specif
ied filter in the request.", | 1245 "properties": { |
1241 "items": { | 1246 "readOnly": { |
1242 "$ref": "Operation" | 1247 "$ref": "ReadOnly", |
1243 }, | 1248 "description": "Transaction will not write.\n\nAuthorization
to begin a read-only transaction requires\n`spanner.databases.beginReadOnlyTran
saction` permission\non the `session` resource." |
1244 "type": "array" | 1249 }, |
1245 } | 1250 "readWrite": { |
1246 }, | 1251 "$ref": "ReadWrite", |
1247 "type": "object" | 1252 "description": "Transaction may write.\n\nAuthorization to b
egin a read-write transaction requires\n`spanner.databases.beginOrRollbackReadWr
iteTransaction` permission\non the `session` resource." |
1248 }, | 1253 } |
1249 "ResultSetMetadata": { | 1254 }, |
1250 "description": "Metadata about a ResultSet or PartialResultSet.", | 1255 "type": "object" |
1251 "id": "ResultSetMetadata", | 1256 }, |
1252 "properties": { | 1257 "CreateDatabaseRequest": { |
1253 "rowType": { | 1258 "description": "The request for CreateDatabase.", |
1254 "$ref": "StructType", | 1259 "id": "CreateDatabaseRequest", |
1255 "description": "Indicates the field names and types for the
rows in the result\nset. For example, a SQL query like `\"SELECT UserId, UserNa
me FROM\nUsers\"` could return a `row_type` value like:\n\n \"fields\": [\n
{ \"name\": \"UserId\", \"type\": { \"code\": \"INT64\" } },\n { \"name
\": \"UserName\", \"type\": { \"code\": \"STRING\" } },\n ]" | 1260 "properties": { |
| 1261 "extraStatements": { |
| 1262 "description": "An optional list of DDL statements to run in
side the newly created\ndatabase. Statements can create tables, indexes, etc. Th
ese\nstatements execute atomically with the creation of the database:\nif there
is an error in any statement, the database is not created.", |
| 1263 "items": { |
| 1264 "type": "string" |
| 1265 }, |
| 1266 "type": "array" |
| 1267 }, |
| 1268 "createStatement": { |
| 1269 "description": "Required. A `CREATE DATABASE` statement, whi
ch specifies the ID of the\nnew database. The database ID must conform to the r
egular expression\n`a-z*[a-z0-9]` and be between 2 and 30 characters in length.\
nIf the database ID is a reserved word or if it contains a hyphen, the\ndatabase
ID must be enclosed in backticks (`` ` ``).", |
| 1270 "type": "string" |
| 1271 } |
| 1272 }, |
| 1273 "type": "object" |
| 1274 }, |
| 1275 "CreateInstanceRequest": { |
| 1276 "description": "The request for CreateInstance.", |
| 1277 "id": "CreateInstanceRequest", |
| 1278 "properties": { |
| 1279 "instance": { |
| 1280 "$ref": "Instance", |
| 1281 "description": "Required. The instance to create. The name
may be omitted, but if\nspecified must be `<parent>/instances/<instance_id>`." |
| 1282 }, |
| 1283 "instanceId": { |
| 1284 "description": "Required. The ID of the instance to create.
Valid identifiers are of the\nform `a-z*[a-z0-9]` and must be between 6 and 30
characters in\nlength.", |
| 1285 "type": "string" |
| 1286 } |
| 1287 }, |
| 1288 "type": "object" |
| 1289 }, |
| 1290 "ReadOnly": { |
| 1291 "description": "Message type to initiate a read-only transaction.", |
| 1292 "id": "ReadOnly", |
| 1293 "properties": { |
| 1294 "minReadTimestamp": { |
| 1295 "description": "Executes all reads at a timestamp >= `min_re
ad_timestamp`.\n\nThis is useful for requesting fresher data than some previous\
nread, or data that is fresh enough to observe the effects of some\npreviously c
ommitted transaction whose timestamp is known.\n\nNote that this option can only
be used in single-use transactions.", |
| 1296 "format": "google-datetime", |
| 1297 "type": "string" |
| 1298 }, |
| 1299 "maxStaleness": { |
| 1300 "description": "Read data at a timestamp >= `NOW - max_stale
ness`\nseconds. Guarantees that all writes that have committed more\nthan the sp
ecified number of seconds ago are visible. Because\nCloud Spanner chooses the ex
act timestamp, this mode works even if\nthe client's local clock is substantiall
y skewed from Cloud Spanner\ncommit timestamps.\n\nUseful for reading the freshe
st data available at a nearby\nreplica, while bounding the possible staleness if
the local\nreplica has fallen behind.\n\nNote that this option can only be used
in single-use\ntransactions.", |
| 1301 "format": "google-duration", |
| 1302 "type": "string" |
| 1303 }, |
| 1304 "readTimestamp": { |
| 1305 "description": "Executes all reads at the given timestamp. U
nlike other modes,\nreads at a specific timestamp are repeatable; the same read
at\nthe same timestamp always returns the same data. If the\ntimestamp is in the
future, the read will block until the\nspecified timestamp, modulo the read's d
eadline.\n\nUseful for large scale consistent reads such as mapreduces, or\nfor
coordinating many reads against a consistent snapshot of the\ndata.", |
| 1306 "format": "google-datetime", |
| 1307 "type": "string" |
| 1308 }, |
| 1309 "returnReadTimestamp": { |
| 1310 "description": "If true, the Cloud Spanner-selected read tim
estamp is included in\nthe Transaction message that describes the transaction.", |
| 1311 "type": "boolean" |
| 1312 }, |
| 1313 "exactStaleness": { |
| 1314 "description": "Executes all reads at a timestamp that is `e
xact_staleness`\nold. The timestamp is chosen soon after the read is started.\n\
nGuarantees that all writes that have committed more than the\nspecified number
of seconds ago are visible. Because Cloud Spanner\nchooses the exact timestamp,
this mode works even if the client's\nlocal clock is substantially skewed from C
loud Spanner commit\ntimestamps.\n\nUseful for reading at nearby replicas withou
t the distributed\ntimestamp negotiation overhead of `max_staleness`.", |
| 1315 "format": "google-duration", |
| 1316 "type": "string" |
| 1317 }, |
| 1318 "strong": { |
| 1319 "description": "Read at a timestamp where all previously com
mitted transactions\nare visible.", |
| 1320 "type": "boolean" |
| 1321 } |
| 1322 }, |
| 1323 "type": "object" |
| 1324 }, |
| 1325 "ExecuteSqlRequest": { |
| 1326 "description": "The request for ExecuteSql and\nExecuteStreamingSql.
", |
| 1327 "id": "ExecuteSqlRequest", |
| 1328 "properties": { |
| 1329 "queryMode": { |
| 1330 "description": "Used to control the amount of debugging info
rmation returned in\nResultSetStats.", |
| 1331 "enum": [ |
| 1332 "NORMAL", |
| 1333 "PLAN", |
| 1334 "PROFILE" |
| 1335 ], |
| 1336 "enumDescriptions": [ |
| 1337 "The default mode where only the query result, without a
ny information\nabout the query plan is returned.", |
| 1338 "This mode returns only the query plan, without any resu
lt rows or\nexecution statistics information.", |
| 1339 "This mode returns both the query plan and the execution
statistics along\nwith the result rows." |
| 1340 ], |
| 1341 "type": "string" |
1256 }, | 1342 }, |
1257 "transaction": { | 1343 "transaction": { |
1258 "$ref": "Transaction", | 1344 "$ref": "TransactionSelector", |
1259 "description": "If the read or SQL query began a transaction
as a side-effect, the\ninformation about the new transaction is yielded here." | 1345 "description": "The transaction to use. If none is provided,
the default is a\ntemporary read-only transaction with strong concurrency." |
1260 } | 1346 }, |
1261 }, | 1347 "resumeToken": { |
1262 "type": "object" | 1348 "description": "If this request is resuming a previously int
errupted SQL query\nexecution, `resume_token` should be copied from the last\nPa
rtialResultSet yielded before the interruption. Doing this\nenables the new SQL
query execution to resume where the last one left\noff. The rest of the request
parameters must exactly match the\nrequest that yielded this token.", |
1263 }, | |
1264 "TransactionSelector": { | |
1265 "description": "This message is used to select the transaction in wh
ich a\nRead or\nExecuteSql call runs.\n\nSee TransactionOptions for more informa
tion about transactions.", | |
1266 "id": "TransactionSelector", | |
1267 "properties": { | |
1268 "begin": { | |
1269 "$ref": "TransactionOptions", | |
1270 "description": "Begin a new transaction and execute this rea
d or SQL query in\nit. The transaction ID of the new transaction is returned in\
nResultSetMetadata.transaction, which is a Transaction." | |
1271 }, | |
1272 "id": { | |
1273 "description": "Execute the read or SQL query in a previousl
y-started transaction.", | |
1274 "format": "byte", | 1349 "format": "byte", |
1275 "type": "string" | 1350 "type": "string" |
1276 }, | 1351 }, |
1277 "singleUse": { | 1352 "paramTypes": { |
1278 "$ref": "TransactionOptions", | 1353 "additionalProperties": { |
1279 "description": "Execute the read or SQL query in a temporary
transaction.\nThis is the most efficient way to execute a transaction that\ncon
sists of a single SQL query." | 1354 "$ref": "Type" |
1280 } | 1355 }, |
1281 }, | 1356 "description": "It is not always possible for Cloud Spanner
to infer the right SQL type\nfrom a JSON value. For example, values of type `BY
TES` and values\nof type `STRING` both appear in params as JSON strings.\n\nIn t
hese cases, `param_types` can be used to specify the exact\nSQL type for some or
all of the SQL query parameters. See the\ndefinition of Type for more informati
on\nabout SQL types.", |
1282 "type": "object" | 1357 "type": "object" |
1283 }, | 1358 }, |
1284 "Mutation": { | 1359 "sql": { |
1285 "description": "A modification to one or more Cloud Spanner rows. M
utations can be\napplied to a Cloud Spanner database by sending them in a\nCommi
t call.", | 1360 "description": "Required. The SQL query string.", |
1286 "id": "Mutation", | 1361 "type": "string" |
1287 "properties": { | 1362 }, |
1288 "delete": { | 1363 "params": { |
1289 "$ref": "Delete", | 1364 "additionalProperties": { |
1290 "description": "Delete rows from a table. Succeeds whether o
r not the named\nrows were present." | 1365 "description": "Properties of the object.", |
1291 }, | 1366 "type": "any" |
1292 "insertOrUpdate": { | 1367 }, |
1293 "$ref": "Write", | 1368 "description": "The SQL query string can contain parameter p
laceholders. A parameter\nplaceholder consists of `'@'` followed by the paramete
r\nname. Parameter names consist of any combination of letters,\nnumbers, and un
derscores.\n\nParameters can appear anywhere that a literal value is expected.
The same\nparameter name can be used more than once, for example:\n `\"WHERE id
> @msg_id AND id < @msg_id + 100\"`\n\nIt is an error to execute an SQL query w
ith unbound parameters.\n\nParameter values are specified using `params`, which
is a JSON\nobject whose keys are parameter names, and whose values are the\ncorr
esponding parameter values.", |
1294 "description": "Like insert, except that if the row already
exists, then\nits column values are overwritten with the ones provided. Any\ncol
umn values not explicitly written are preserved." | 1369 "type": "object" |
1295 }, | 1370 } |
1296 "insert": { | 1371 }, |
1297 "$ref": "Write", | 1372 "type": "object" |
1298 "description": "Insert new rows in a table. If any of the ro
ws already exist,\nthe write or transaction fails with error `ALREADY_EXISTS`." | 1373 }, |
1299 }, | 1374 "Policy": { |
1300 "update": { | 1375 "description": "Defines an Identity and Access Management (IAM) poli
cy. It is used to\nspecify access control policies for Cloud Platform resources.
\n\n\nA `Policy` consists of a list of `bindings`. A `Binding` binds a list of\n
`members` to a `role`, where the members can be user accounts, Google groups,\nG
oogle domains, and service accounts. A `role` is a named list of permissions\nde
fined by IAM.\n\n**Example**\n\n {\n \"bindings\": [\n {\n
\"role\": \"roles/owner\",\n \"members\": [\n \"user:mike
@example.com\",\n \"group:admins@example.com\",\n \"domain
:google.com\",\n \"serviceAccount:my-other-app@appspot.gserviceaccoun
t.com\",\n ]\n },\n {\n \"role\": \"roles/viewer
\",\n \"members\": [\"user:sean@example.com\"]\n }\n ]\n
}\n\nFor a description of IAM and its features, see the\n[IAM developer's guide
](https://cloud.google.com/iam).", |
1301 "$ref": "Write", | 1376 "id": "Policy", |
1302 "description": "Update existing rows in a table. If any of t
he rows does not\nalready exist, the transaction fails with error `NOT_FOUND`." | 1377 "properties": { |
1303 }, | 1378 "etag": { |
1304 "replace": { | 1379 "description": "`etag` is used for optimistic concurrency co
ntrol as a way to help\nprevent simultaneous updates of a policy from overwritin
g each other.\nIt is strongly suggested that systems make use of the `etag` in t
he\nread-modify-write cycle to perform policy updates in order to avoid race\nco
nditions: An `etag` is returned in the response to `getIamPolicy`, and\nsystems
are expected to put that etag in the request to `setIamPolicy` to\nensure that t
heir change will be applied to the same version of the policy.\n\nIf no `etag` i
s provided in the call to `setIamPolicy`, then the existing\npolicy is overwritt
en blindly.", |
1305 "$ref": "Write", | 1380 "format": "byte", |
1306 "description": "Like insert, except that if the row already
exists, it is\ndeleted, and the column values provided are inserted\ninstead. Un
like insert_or_update, this means any values not\nexplicitly written become `NUL
L`." | 1381 "type": "string" |
1307 } | 1382 }, |
1308 }, | 1383 "version": { |
1309 "type": "object" | 1384 "description": "Version of the `Policy`. The default version
is 0.", |
1310 }, | 1385 "format": "int32", |
1311 "KeySet": { | 1386 "type": "integer" |
1312 "description": "`KeySet` defines a collection of Cloud Spanner keys
and/or key ranges. All\nthe keys are expected to be in the same table or index.
The keys need\nnot be sorted in any particular way.\n\nIf the same key is specif
ied multiple times in the set (for example\nif two ranges, two keys, or a key an
d a range overlap), Cloud Spanner\nbehaves as if the key were only specified onc
e.", | 1387 }, |
1313 "id": "KeySet", | 1388 "bindings": { |
1314 "properties": { | 1389 "description": "Associates a list of `members` to a `role`.\
n`bindings` with no members will result in an error.", |
1315 "ranges": { | 1390 "items": { |
1316 "description": "A list of key ranges. See KeyRange for more
information about\nkey range specifications.", | 1391 "$ref": "Binding" |
1317 "items": { | 1392 }, |
1318 "$ref": "KeyRange" | 1393 "type": "array" |
1319 }, | 1394 } |
1320 "type": "array" | 1395 }, |
1321 }, | 1396 "type": "object" |
1322 "all": { | 1397 }, |
1323 "description": "For convenience `all` can be set to `true` t
o indicate that this\n`KeySet` matches all keys in the table or index. Note that
any keys\nspecified in `keys` or `ranges` are only yielded once.", | 1398 "ReadRequest": { |
1324 "type": "boolean" | 1399 "description": "The request for Read and\nStreamingRead.", |
1325 }, | 1400 "id": "ReadRequest", |
1326 "keys": { | 1401 "properties": { |
1327 "description": "A list of specific keys. Entries in `keys` s
hould have exactly as\nmany elements as there are columns in the primary or inde
x key\nwith which this `KeySet` is used. Individual key values are\nencoded as
described here.", | 1402 "transaction": { |
| 1403 "$ref": "TransactionSelector", |
| 1404 "description": "The transaction to use. If none is provided,
the default is a\ntemporary read-only transaction with strong concurrency." |
| 1405 }, |
| 1406 "resumeToken": { |
| 1407 "description": "If this request is resuming a previously int
errupted read,\n`resume_token` should be copied from the last\nPartialResultSet
yielded before the interruption. Doing this\nenables the new read to resume wher
e the last read left off. The\nrest of the request parameters must exactly match
the request\nthat yielded this token.", |
| 1408 "format": "byte", |
| 1409 "type": "string" |
| 1410 }, |
| 1411 "table": { |
| 1412 "description": "Required. The name of the table in the datab
ase to be read.", |
| 1413 "type": "string" |
| 1414 }, |
| 1415 "limit": { |
| 1416 "description": "If greater than zero, only the first `limit`
rows are yielded. If `limit`\nis zero, the default is no limit.", |
| 1417 "format": "int64", |
| 1418 "type": "string" |
| 1419 }, |
| 1420 "index": { |
| 1421 "description": "If non-empty, the name of an index on table.
This index is\nused instead of the table primary key when interpreting key_set\
nand sorting result rows. See key_set for further information.", |
| 1422 "type": "string" |
| 1423 }, |
| 1424 "keySet": { |
| 1425 "$ref": "KeySet", |
| 1426 "description": "Required. `key_set` identifies the rows to b
e yielded. `key_set` names the\nprimary keys of the rows in table to be yielded,
unless index\nis present. If index is present, then key_set instead names\ninde
x keys in index.\n\nRows are yielded in table primary key order (if index is emp
ty)\nor index key order (if index is non-empty).\n\nIt is not an error for the `
key_set` to name rows that do not\nexist in the database. Read yields nothing fo
r nonexistent rows." |
| 1427 }, |
| 1428 "columns": { |
| 1429 "description": "The columns of table to be returned for each
row matching\nthis request.", |
| 1430 "items": { |
| 1431 "type": "string" |
| 1432 }, |
| 1433 "type": "array" |
| 1434 } |
| 1435 }, |
| 1436 "type": "object" |
| 1437 }, |
| 1438 "Write": { |
| 1439 "description": "Arguments to insert, update, insert_or_update, and\n
replace operations.", |
| 1440 "id": "Write", |
| 1441 "properties": { |
| 1442 "values": { |
| 1443 "description": "The values to be written. `values` can conta
in more than one\nlist of values. If it does, then multiple rows are written, on
e\nfor each entry in `values`. Each list in `values` must have\nexactly as many
entries as there are entries in columns\nabove. Sending multiple lists is equiva
lent to sending multiple\n`Mutation`s, each containing one `values` entry and re
peating\ntable and columns. Individual values in each list are\nencoded as descr
ibed here.", |
1328 "items": { | 1444 "items": { |
1329 "items": { | 1445 "items": { |
1330 "type": "any" | 1446 "type": "any" |
1331 }, | 1447 }, |
1332 "type": "array" | 1448 "type": "array" |
1333 }, | 1449 }, |
1334 "type": "array" | 1450 "type": "array" |
1335 } | 1451 }, |
1336 }, | 1452 "columns": { |
1337 "type": "object" | 1453 "description": "The names of the columns in table to be writ
ten.\n\nThe list of columns must contain enough columns to allow\nCloud Spanner
to derive values for all primary key columns in the\nrow(s) to be modified.", |
1338 }, | |
1339 "GetDatabaseDdlResponse": { | |
1340 "description": "The response for GetDatabaseDdl.", | |
1341 "id": "GetDatabaseDdlResponse", | |
1342 "properties": { | |
1343 "statements": { | |
1344 "description": "A list of formatted DDL statements defining
the schema of the database\nspecified in the request.", | |
1345 "items": { | 1454 "items": { |
1346 "type": "string" | 1455 "type": "string" |
1347 }, | 1456 }, |
1348 "type": "array" | 1457 "type": "array" |
1349 } | 1458 }, |
1350 }, | 1459 "table": { |
1351 "type": "object" | 1460 "description": "Required. The table whose rows will be writt
en.", |
1352 }, | 1461 "type": "string" |
1353 "Database": { | 1462 } |
1354 "description": "A Cloud Spanner database.", | 1463 }, |
1355 "id": "Database", | 1464 "type": "object" |
1356 "properties": { | 1465 }, |
1357 "state": { | 1466 "ReadWrite": { |
1358 "description": "Output only. The current database state.", | 1467 "description": "Message type to initiate a read-write transaction. C
urrently this\ntransaction type has no options.", |
1359 "enum": [ | 1468 "id": "ReadWrite", |
1360 "STATE_UNSPECIFIED", | 1469 "properties": {}, |
1361 "CREATING", | 1470 "type": "object" |
1362 "READY" | 1471 }, |
1363 ], | 1472 "Operation": { |
1364 "enumDescriptions": [ | 1473 "description": "This resource represents a long-running operation th
at is the result of a\nnetwork API call.", |
1365 "Not specified.", | 1474 "id": "Operation", |
1366 "The database is still being created. Operations on the
database may fail\nwith `FAILED_PRECONDITION` in this state.", | 1475 "properties": { |
1367 "The database is fully created and ready for use." | 1476 "done": { |
1368 ], | 1477 "description": "If the value is `false`, it means the operat
ion is still in progress.\nIf true, the operation is completed, and either `erro
r` or `response` is\navailable.", |
1369 "type": "string" | 1478 "type": "boolean" |
| 1479 }, |
| 1480 "response": { |
| 1481 "additionalProperties": { |
| 1482 "description": "Properties of the object. Contains field
@type with type URL.", |
| 1483 "type": "any" |
| 1484 }, |
| 1485 "description": "The normal response of the operation in case
of success. If the original\nmethod returns no data on success, such as `Delet
e`, the response is\n`google.protobuf.Empty`. If the original method is standar
d\n`Get`/`Create`/`Update`, the response should be the resource. For other\nmet
hods, the response should have the type `XxxResponse`, where `Xxx`\nis the origi
nal method name. For example, if the original method name\nis `TakeSnapshot()`,
the inferred response type is\n`TakeSnapshotResponse`.", |
| 1486 "type": "object" |
1370 }, | 1487 }, |
1371 "name": { | 1488 "name": { |
1372 "description": "Required. The name of the database. Values a
re of the form\n`projects/<project>/instances/<instance>/databases/<database>`,\
nwhere `<database>` is as specified in the `CREATE DATABASE`\nstatement. This na
me can be passed to other API methods to\nidentify the database.", | 1489 "description": "The server-assigned name, which is only uniq
ue within the same service that\noriginally returns it. If you use the default H
TTP mapping, the\n`name` should have the format of `operations/some/unique/name`
.", |
1373 "type": "string" | 1490 "type": "string" |
1374 } | 1491 }, |
1375 }, | 1492 "error": { |
1376 "type": "object" | 1493 "$ref": "Status", |
1377 }, | 1494 "description": "The error result of the operation in case of
failure or cancellation." |
1378 "Instance": { | 1495 }, |
1379 "description": "An isolated set of Cloud Spanner resources on which
databases can be hosted.", | 1496 "metadata": { |
1380 "id": "Instance", | 1497 "additionalProperties": { |
1381 "properties": { | 1498 "description": "Properties of the object. Contains field
@type with type URL.", |
1382 "displayName": { | 1499 "type": "any" |
1383 "description": "Required. The descriptive name for this inst
ance as it appears in UIs.\nMust be unique per project and between 4 and 30 char
acters in length.", | 1500 }, |
1384 "type": "string" | 1501 "description": "Service-specific metadata associated with th
e operation. It typically\ncontains progress information and common metadata su
ch as create time.\nSome services might not provide such metadata. Any method t
hat returns a\nlong-running operation should document the metadata type, if any.
", |
1385 }, | 1502 "type": "object" |
1386 "nodeCount": { | 1503 } |
1387 "description": "Required. The number of nodes allocated to t
his instance. This may be zero\nin API responses for instances that are not yet
in state `READY`.\n\nEach Spanner node can provide up to 10,000 QPS of reads or
2000 QPS of\nwrites (writing single rows at 1KB data per row), and 2 TiB storage
.\n\nFor optimal performance, we recommend provisioning enough nodes to keep\nov
erall CPU utilization under 75%.\n\nA minimum of 3 nodes is recommended for prod
uction environments. This\nminimum is required for SLAs to apply to your instan
ce.\n\nNote that Cloud Spanner performance is highly dependent on workload, sche
ma\ndesign, and dataset characteristics. The performance numbers above are\nesti
mates, and assume [best practices](https://cloud.google.com/spanner/docs/bulk-lo
ading)\nare followed.", | 1504 }, |
| 1505 "type": "object" |
| 1506 }, |
| 1507 "ResultSet": { |
| 1508 "description": "Results from Read or\nExecuteSql.", |
| 1509 "id": "ResultSet", |
| 1510 "properties": { |
| 1511 "rows": { |
| 1512 "description": "Each element in `rows` is a row whose format
is defined by\nmetadata.row_type. The ith element\nin each row matches the ith
field in\nmetadata.row_type. Elements are\nencoded based on type as described\nh
ere.", |
| 1513 "items": { |
| 1514 "items": { |
| 1515 "type": "any" |
| 1516 }, |
| 1517 "type": "array" |
| 1518 }, |
| 1519 "type": "array" |
| 1520 }, |
| 1521 "metadata": { |
| 1522 "$ref": "ResultSetMetadata", |
| 1523 "description": "Metadata about the result set, such as row t
ype information." |
| 1524 }, |
| 1525 "stats": { |
| 1526 "$ref": "ResultSetStats", |
| 1527 "description": "Query plan and execution statistics for the
query that produced this\nresult set. These can be requested by setting\nExecute
SqlRequest.query_mode." |
| 1528 } |
| 1529 }, |
| 1530 "type": "object" |
| 1531 }, |
| 1532 "Status": { |
| 1533 "description": "The `Status` type defines a logical error model that
is suitable for different\nprogramming environments, including REST APIs and RP
C APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is desig
ned to be:\n\n- Simple to use and understand for most users\n- Flexible enough t
o meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pie
ces of data: error code, error message,\nand error details. The error code shoul
d be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes
if needed. The\nerror message should be a developer-facing English message tha
t helps\ndevelopers *understand* and *resolve* the error. If a localized user-fa
cing\nerror message is needed, put the localized message in the error details or
\nlocalize it in the client. The optional error details may contain arbitrary\ni
nformation about the error. There is a predefined set of error detail types\nin
the package `google.rpc` that can be used for common error conditions.\n\n# Lang
uage mapping\n\nThe `Status` message is the logical representation of the error
model, but it\nis not necessarily the actual wire format. When the `Status` mess
age is\nexposed in different client libraries and different wire protocols, it c
an be\nmapped differently. For example, it will likely be mapped to some excepti
ons\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n
\nThe error model and the `Status` message can be used in a variety of\nenvironm
ents, either with or without APIs, to provide a\nconsistent developer experience
across different environments.\n\nExample uses of this error model include:\n\n
- Partial errors. If a service needs to return partial errors to the client,\n
it may embed the `Status` in the normal response to indicate the partial\n
errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step m
ay\n have a `Status` message for error reporting.\n\n- Batch operations. If a
client uses batch request and batch response, the\n `Status` message should
be used directly inside batch response, one for\n each error sub-response.\n\
n- Asynchronous operations. If an API call embeds asynchronous operation\n re
sults in its response, the status of those operations should be\n represented
directly using the `Status` message.\n\n- Logging. If some API errors are store
d in logs, the message `Status` could\n be used directly after any stripping
needed for security/privacy reasons.", |
| 1534 "id": "Status", |
| 1535 "properties": { |
| 1536 "details": { |
| 1537 "description": "A list of messages that carry the error deta
ils. There is a common set of\nmessage types for APIs to use.", |
| 1538 "items": { |
| 1539 "additionalProperties": { |
| 1540 "description": "Properties of the object. Contains f
ield @type with type URL.", |
| 1541 "type": "any" |
| 1542 }, |
| 1543 "type": "object" |
| 1544 }, |
| 1545 "type": "array" |
| 1546 }, |
| 1547 "code": { |
| 1548 "description": "The status code, which should be an enum val
ue of google.rpc.Code.", |
1388 "format": "int32", | 1549 "format": "int32", |
1389 "type": "integer" | 1550 "type": "integer" |
1390 }, | 1551 }, |
1391 "labels": { | 1552 "message": { |
1392 "additionalProperties": { | 1553 "description": "A developer-facing error message, which shou
ld be in English. Any\nuser-facing error message should be localized and sent in
the\ngoogle.rpc.Status.details field, or localized by the client.", |
| 1554 "type": "string" |
| 1555 } |
| 1556 }, |
| 1557 "type": "object" |
| 1558 }, |
| 1559 "UpdateDatabaseDdlRequest": { |
| 1560 "description": "Enqueues the given DDL statements to be applied, in
order but not\nnecessarily all at once, to the database schema at some point (or
\npoints) in the future. The server checks that the statements\nare executable (
syntactically valid, name tables that exist, etc.)\nbefore enqueueing them, but
they may still fail upon\nlater execution (e.g., if a statement from another bat
ch of\nstatements is applied first and it conflicts in some way, or if\nthere is
some data-related problem like a `NULL` value in a column to\nwhich `NOT NULL`
would be added). If a statement fails, all\nsubsequent statements in the batch a
re automatically cancelled.\n\nEach batch of statements is assigned a name which
can be used with\nthe Operations API to monitor\nprogress. See the\noperation_i
d field for more\ndetails.", |
| 1561 "id": "UpdateDatabaseDdlRequest", |
| 1562 "properties": { |
| 1563 "statements": { |
| 1564 "description": "DDL statements to be applied to the database
.", |
| 1565 "items": { |
1393 "type": "string" | 1566 "type": "string" |
1394 }, | 1567 }, |
1395 "description": "Cloud Labels are a flexible and lightweight
mechanism for organizing cloud\nresources into groups that reflect a customer's
organizational needs and\ndeployment strategies. Cloud Labels can be used to fil
ter collections of\nresources. They can be used to control how resource metrics
are aggregated.\nAnd they can be used as arguments to policy management rules (e
.g. route,\nfirewall, load balancing, etc.).\n\n * Label keys must be between 1
and 63 characters long and must conform to\n the following regular expression:
`[a-z]([-a-z0-9]*[a-z0-9])?`.\n * Label values must be between 0 and 63 charact
ers long and must conform\n to the regular expression `([a-z]([-a-z0-9]*[a-z0-
9])?)?`.\n * No more than 64 labels can be associated with a given resource.\n\n
See https://goo.gl/xmQnxf for more information on and examples of labels.\n\nIf
you plan to use labels in your own code, please note that additional\ncharacters
may be allowed in the future. And so you are advised to use an\ninternal label
representation, such as JSON, which doesn't rely upon\nspecific characters being
disallowed. For example, representing labels\nas the string: name + \"_\" + v
alue would prove problematic if we were to\nallow \"_\" in a future release.", | 1568 "type": "array" |
1396 "type": "object" | 1569 }, |
1397 }, | 1570 "operationId": { |
1398 "config": { | 1571 "description": "If empty, the new update request is assigned
an\nautomatically-generated operation ID. Otherwise, `operation_id`\nis used to
construct the name of the resulting\nOperation.\n\nSpecifying an explicit opera
tion ID simplifies determining\nwhether the statements were executed in the even
t that the\nUpdateDatabaseDdl call is replayed,\nor the return value is otherwis
e lost: the database and\n`operation_id` fields can be combined to form the\nnam
e of the resulting\nlongrunning.Operation: `<database>/operations/<operation_id>
`.\n\n`operation_id` should be unique within the database, and must be\na valid
identifier: `a-z*`. Note that\nautomatically-generated operation IDs always begi
n with an\nunderscore. If the named operation already exists,\nUpdateDatabaseDdl
returns\n`ALREADY_EXISTS`.", |
1399 "description": "Required. The name of the instance's configu
ration. Values are of the form\n`projects/<project>/instanceConfigs/<configurati
on>`. See\nalso InstanceConfig and\nListInstanceConfigs.", | 1572 "type": "string" |
1400 "type": "string" | 1573 } |
1401 }, | 1574 }, |
1402 "state": { | 1575 "type": "object" |
1403 "description": "Output only. The current instance state. For
\nCreateInstance, the state must be\neither omitted or set to `CREATING`. For\nU
pdateInstance, the state must be\neither omitted or set to `READY`.", | 1576 }, |
1404 "enum": [ | 1577 "Binding": { |
1405 "STATE_UNSPECIFIED", | 1578 "description": "Associates `members` with a `role`.", |
1406 "CREATING", | 1579 "id": "Binding", |
1407 "READY" | 1580 "properties": { |
1408 ], | 1581 "members": { |
1409 "enumDescriptions": [ | 1582 "description": "Specifies the identities requesting access f
or a Cloud Platform resource.\n`members` can have the following values:\n\n* `al
lUsers`: A special identifier that represents anyone who is\n on the internet;
with or without a Google account.\n\n* `allAuthenticatedUsers`: A special ident
ifier that represents anyone\n who is authenticated with a Google account or a
service account.\n\n* `user:{emailid}`: An email address that represents a spec
ific Google\n account. For example, `alice@gmail.com` or `joe@example.com`.\n\
n\n* `serviceAccount:{emailid}`: An email address that represents a service\n
account. For example, `my-other-app@appspot.gserviceaccount.com`.\n\n* `group:{e
mailid}`: An email address that represents a Google group.\n For example, `adm
ins@example.com`.\n\n\n* `domain:{domain}`: A Google Apps domain name that repre
sents all the\n users of that domain. For example, `google.com` or `example.co
m`.\n\n", |
1410 "Not specified.", | 1583 "items": { |
1411 "The instance is still being created. Resources may not
be\navailable yet, and operations such as database creation may not\nwork.", | 1584 "type": "string" |
1412 "The instance is fully created and ready to do work such
as\ncreating databases." | 1585 }, |
1413 ], | 1586 "type": "array" |
1414 "type": "string" | 1587 }, |
1415 }, | 1588 "role": { |
1416 "name": { | 1589 "description": "Role that is assigned to `members`.\nFor exa
mple, `roles/viewer`, `roles/editor`, or `roles/owner`.\nRequired", |
1417 "description": "Required. A unique identifier for the instan
ce, which cannot be changed\nafter the instance is created. Values are of the fo
rm\n`projects/<project>/instances/a-z*[a-z0-9]`. The final\nsegment of the name
must be between 6 and 30 characters in length.", | 1590 "type": "string" |
1418 "type": "string" | 1591 } |
1419 } | 1592 }, |
1420 }, | 1593 "type": "object" |
1421 "type": "object" | 1594 }, |
1422 }, | 1595 "PartialResultSet": { |
1423 "ListDatabasesResponse": { | 1596 "description": "Partial results from a streaming read or SQL query.
Streaming reads and\nSQL queries better tolerate large result sets, large rows,
and large\nvalues, but are a little trickier to consume.", |
1424 "description": "The response for ListDatabases.", | 1597 "id": "PartialResultSet", |
1425 "id": "ListDatabasesResponse", | 1598 "properties": { |
| 1599 "resumeToken": { |
| 1600 "description": "Streaming calls might be interrupted for a v
ariety of reasons, such\nas TCP connection loss. If this occurs, the stream of r
esults can\nbe resumed by re-sending the original request and including\n`resume
_token`. Note that executing any other transaction in the\nsame session invalida
tes the token.", |
| 1601 "format": "byte", |
| 1602 "type": "string" |
| 1603 }, |
| 1604 "stats": { |
| 1605 "$ref": "ResultSetStats", |
| 1606 "description": "Query plan and execution statistics for the
query that produced this\nstreaming result set. These can be requested by settin
g\nExecuteSqlRequest.query_mode and are sent\nonly once with the last response i
n the stream." |
| 1607 }, |
| 1608 "chunkedValue": { |
| 1609 "description": "If true, then the final value in values is c
hunked, and must\nbe combined with more values from subsequent `PartialResultSet
`s\nto obtain a complete field value.", |
| 1610 "type": "boolean" |
| 1611 }, |
| 1612 "values": { |
| 1613 "description": "A streamed result set consists of a stream o
f values, which might\nbe split into many `PartialResultSet` messages to accommo
date\nlarge rows and/or large values. Every N complete values defines a\nrow, wh
ere N is equal to the number of entries in\nmetadata.row_type.fields.\n\nMost va
lues are encoded based on type as described\nhere.\n\nIt is possible that the la
st value in values is \"chunked\",\nmeaning that the rest of the value is sent i
n subsequent\n`PartialResultSet`(s). This is denoted by the chunked_value\nfield
. Two or more chunked values can be merged to form a\ncomplete value as follows:
\n\n * `bool/number/null`: cannot be chunked\n * `string`: concatenate the str
ings\n * `list`: concatenate the lists. If the last element in a list is a\n
`string`, `list`, or `object`, merge it with the first element in\n the next
list by applying these rules recursively.\n * `object`: concatenate the (field
name, field value) pairs. If a\n field name is duplicated, then apply these
rules recursively\n to merge the field values.\n\nSome examples of merging:\n
\n # Strings are concatenated.\n \"foo\", \"bar\" => \"foobar\"\n\n # L
ists of non-strings are concatenated.\n [2, 3], [4] => [2, 3, 4]\n\n # Lis
ts are concatenated, but the last and first elements are merged\n # because t
hey are strings.\n [\"a\", \"b\"], [\"c\", \"d\"] => [\"a\", \"bc\", \"d\"]\n
\n # Lists are concatenated, but the last and first elements are merged\n
# because they are lists. Recursively, the last and first elements\n # of the
inner lists are merged because they are strings.\n [\"a\", [\"b\", \"c\"]],
[[\"d\"], \"e\"] => [\"a\", [\"b\", \"cd\"], \"e\"]\n\n # Non-overlapping obj
ect fields are combined.\n {\"a\": \"1\"}, {\"b\": \"2\"} => {\"a\": \"1\", \
"b\": 2\"}\n\n # Overlapping object fields are merged.\n {\"a\": \"1\"}, {
\"a\": \"2\"} => {\"a\": \"12\"}\n\n # Examples of merging objects containing
lists of strings.\n {\"a\": [\"1\"]}, {\"a\": [\"2\"]} => {\"a\": [\"12\"]}\
n\nFor a more complete example, suppose a streaming SQL query is\nyielding a res
ult set whose rows contain a single string\nfield. The following `PartialResultS
et`s might be yielded:\n\n {\n \"metadata\": { ... }\n \"values\":
[\"Hello\", \"W\"]\n \"chunked_value\": true\n \"resume_token\": \"Af6
5...\"\n }\n {\n \"values\": [\"orl\"]\n \"chunked_value\": true
\n \"resume_token\": \"Bqp2...\"\n }\n {\n \"values\": [\"d\"]\n
\"resume_token\": \"Zx1B...\"\n }\n\nThis sequence of `PartialResultSet
`s encodes two rows, one\ncontaining the field value `\"Hello\"`, and a second c
ontaining the\nfield value `\"World\" = \"W\" + \"orl\" + \"d\"`.", |
| 1614 "items": { |
| 1615 "type": "any" |
| 1616 }, |
| 1617 "type": "array" |
| 1618 }, |
| 1619 "metadata": { |
| 1620 "$ref": "ResultSetMetadata", |
| 1621 "description": "Metadata about the result set, such as row t
ype information.\nOnly present in the first response." |
| 1622 } |
| 1623 }, |
| 1624 "type": "object" |
| 1625 }, |
| 1626 "ListOperationsResponse": { |
| 1627 "description": "The response message for Operations.ListOperations."
, |
| 1628 "id": "ListOperationsResponse", |
1426 "properties": { | 1629 "properties": { |
1427 "nextPageToken": { | 1630 "nextPageToken": { |
1428 "description": "`next_page_token` can be sent in a subsequen
t\nListDatabases call to fetch more\nof the matching databases.", | 1631 "description": "The standard List next-page token.", |
1429 "type": "string" | 1632 "type": "string" |
1430 }, | 1633 }, |
1431 "databases": { | 1634 "operations": { |
1432 "description": "Databases that matched the request.", | 1635 "description": "A list of operations that matches the specif
ied filter in the request.", |
1433 "items": { | 1636 "items": { |
1434 "$ref": "Database" | 1637 "$ref": "Operation" |
1435 }, | 1638 }, |
1436 "type": "array" | 1639 "type": "array" |
1437 } | 1640 } |
1438 }, | 1641 }, |
1439 "type": "object" | 1642 "type": "object" |
1440 }, | 1643 }, |
1441 "SetIamPolicyRequest": { | 1644 "UpdateInstanceMetadata": { |
1442 "description": "Request message for `SetIamPolicy` method.", | 1645 "description": "Metadata type for the operation returned by\nUpdateI
nstance.", |
1443 "id": "SetIamPolicyRequest", | 1646 "id": "UpdateInstanceMetadata", |
1444 "properties": { | |
1445 "policy": { | |
1446 "$ref": "Policy", | |
1447 "description": "REQUIRED: The complete policy to be applied
to the `resource`. The size of\nthe policy is limited to a few 10s of KB. An emp
ty policy is a\nvalid policy but certain Cloud Platform services (such as Projec
ts)\nmight reject them." | |
1448 }, | |
1449 "updateMask": { | |
1450 "description": "OPTIONAL: A FieldMask specifying which field
s of the policy to modify. Only\nthe fields in the mask will be modified. If no
mask is provided, the\nfollowing default mask is used:\npaths: \"bindings, etag\
"\nThis field is only used by Cloud IAM.", | |
1451 "format": "google-fieldmask", | |
1452 "type": "string" | |
1453 } | |
1454 }, | |
1455 "type": "object" | |
1456 }, | |
1457 "RollbackRequest": { | |
1458 "description": "The request for Rollback.", | |
1459 "id": "RollbackRequest", | |
1460 "properties": { | |
1461 "transactionId": { | |
1462 "description": "Required. The transaction to roll back.", | |
1463 "format": "byte", | |
1464 "type": "string" | |
1465 } | |
1466 }, | |
1467 "type": "object" | |
1468 }, | |
1469 "Transaction": { | |
1470 "description": "A transaction.", | |
1471 "id": "Transaction", | |
1472 "properties": { | |
1473 "id": { | |
1474 "description": "`id` may be used to identify the transaction
in subsequent\nRead,\nExecuteSql,\nCommit, or\nRollback calls.\n\nSingle-use re
ad-only transactions do not have IDs, because\nsingle-use transactions do not su
pport multiple requests.", | |
1475 "format": "byte", | |
1476 "type": "string" | |
1477 }, | |
1478 "readTimestamp": { | |
1479 "description": "For snapshot read-only transactions, the rea
d timestamp chosen\nfor the transaction. Not returned by default: see\nTransacti
onOptions.ReadOnly.return_read_timestamp.", | |
1480 "format": "google-datetime", | |
1481 "type": "string" | |
1482 } | |
1483 }, | |
1484 "type": "object" | |
1485 }, | |
1486 "UpdateDatabaseDdlMetadata": { | |
1487 "description": "Metadata type for the operation returned by\nUpdateD
atabaseDdl.", | |
1488 "id": "UpdateDatabaseDdlMetadata", | |
1489 "properties": { | |
1490 "statements": { | |
1491 "description": "For an update this list contains all the sta
tements. For an\nindividual statement, this list contains only that statement.", | |
1492 "items": { | |
1493 "type": "string" | |
1494 }, | |
1495 "type": "array" | |
1496 }, | |
1497 "commitTimestamps": { | |
1498 "description": "Reports the commit timestamps of all stateme
nts that have\nsucceeded so far, where `commit_timestamps[i]` is the commit\ntim
estamp for the statement `statements[i]`.", | |
1499 "items": { | |
1500 "format": "google-datetime", | |
1501 "type": "string" | |
1502 }, | |
1503 "type": "array" | |
1504 }, | |
1505 "database": { | |
1506 "description": "The database being modified.", | |
1507 "type": "string" | |
1508 } | |
1509 }, | |
1510 "type": "object" | |
1511 }, | |
1512 "CounterOptions": { | |
1513 "description": "Options for counters", | |
1514 "id": "CounterOptions", | |
1515 "properties": { | |
1516 "field": { | |
1517 "description": "The field value to attribute.", | |
1518 "type": "string" | |
1519 }, | |
1520 "metric": { | |
1521 "description": "The metric to update.", | |
1522 "type": "string" | |
1523 } | |
1524 }, | |
1525 "type": "object" | |
1526 }, | |
1527 "QueryPlan": { | |
1528 "description": "Contains an ordered list of nodes appearing in the q
uery plan.", | |
1529 "id": "QueryPlan", | |
1530 "properties": { | |
1531 "planNodes": { | |
1532 "description": "The nodes in the query plan. Plan nodes are
returned in pre-order starting\nwith the plan root. Each PlanNode's `id` corresp
onds to its index in\n`plan_nodes`.", | |
1533 "items": { | |
1534 "$ref": "PlanNode" | |
1535 }, | |
1536 "type": "array" | |
1537 } | |
1538 }, | |
1539 "type": "object" | |
1540 }, | |
1541 "StructType": { | |
1542 "description": "`StructType` defines the fields of a STRUCT type.", | |
1543 "id": "StructType", | |
1544 "properties": { | |
1545 "fields": { | |
1546 "description": "The list of fields that make up this struct.
Order is\nsignificant, because values of this struct type are represented as\nl
ists, where the order of field values matches the order of\nfields in the Struct
Type. In turn, the order of fields\nmatches the order of columns in a read reque
st, or the order of\nfields in the `SELECT` clause of a query.", | |
1547 "items": { | |
1548 "$ref": "Field" | |
1549 }, | |
1550 "type": "array" | |
1551 } | |
1552 }, | |
1553 "type": "object" | |
1554 }, | |
1555 "Field": { | |
1556 "description": "Message representing a single field of a struct.", | |
1557 "id": "Field", | |
1558 "properties": { | |
1559 "type": { | |
1560 "$ref": "Type", | |
1561 "description": "The type of the field." | |
1562 }, | |
1563 "name": { | |
1564 "description": "The name of the field. For reads, this is th
e column name. For\nSQL queries, it is the column alias (e.g., `\"Word\"` in the
\nquery `\"SELECT 'hello' AS Word\"`), or the column name (e.g.,\n`\"ColName\"`
in the query `\"SELECT ColName FROM Table\"`). Some\ncolumns might have an empty
name (e.g., !\"SELECT\nUPPER(ColName)\"`). Note that a query result can contain
\nmultiple fields with the same name.", | |
1565 "type": "string" | |
1566 } | |
1567 }, | |
1568 "type": "object" | |
1569 }, | |
1570 "ResultSetStats": { | |
1571 "description": "Additional statistics about a ResultSet or PartialRe
sultSet.", | |
1572 "id": "ResultSetStats", | |
1573 "properties": { | |
1574 "queryStats": { | |
1575 "additionalProperties": { | |
1576 "description": "Properties of the object.", | |
1577 "type": "any" | |
1578 }, | |
1579 "description": "Aggregated statistics from the execution of
the query. Only present when\nthe query is profiled. For example, a query could
return the statistics as\nfollows:\n\n {\n \"rows_returned\": \"3\",\n
\"elapsed_time\": \"1.22 secs\",\n \"cpu_time\": \"1.19 secs\"\n }", | |
1580 "type": "object" | |
1581 }, | |
1582 "queryPlan": { | |
1583 "$ref": "QueryPlan", | |
1584 "description": "QueryPlan for the query associated with this
result." | |
1585 } | |
1586 }, | |
1587 "type": "object" | |
1588 }, | |
1589 "TestIamPermissionsRequest": { | |
1590 "description": "Request message for `TestIamPermissions` method.", | |
1591 "id": "TestIamPermissionsRequest", | |
1592 "properties": { | |
1593 "permissions": { | |
1594 "description": "REQUIRED: The set of permissions to check fo
r 'resource'.\nPermissions with wildcards (such as '*', 'spanner.*', 'spanner.in
stances.*') are not allowed.", | |
1595 "items": { | |
1596 "type": "string" | |
1597 }, | |
1598 "type": "array" | |
1599 } | |
1600 }, | |
1601 "type": "object" | |
1602 }, | |
1603 "AuthorizationLoggingOptions": { | |
1604 "description": "Authorization-related information used by Cloud Audi
t Logging.", | |
1605 "id": "AuthorizationLoggingOptions", | |
1606 "properties": { | |
1607 "permissionType": { | |
1608 "description": "The type of the permission that was checked.
", | |
1609 "enum": [ | |
1610 "PERMISSION_TYPE_UNSPECIFIED", | |
1611 "ADMIN_READ", | |
1612 "ADMIN_WRITE", | |
1613 "DATA_READ", | |
1614 "DATA_WRITE" | |
1615 ], | |
1616 "enumDescriptions": [ | |
1617 "Default. Should not be used.", | |
1618 "A read of admin (meta) data.", | |
1619 "A write of admin (meta) data.", | |
1620 "A read of standard data.", | |
1621 "A write of standard data." | |
1622 ], | |
1623 "type": "string" | |
1624 } | |
1625 }, | |
1626 "type": "object" | |
1627 }, | |
1628 "CommitResponse": { | |
1629 "description": "The response for Commit.", | |
1630 "id": "CommitResponse", | |
1631 "properties": { | |
1632 "commitTimestamp": { | |
1633 "description": "The Cloud Spanner timestamp at which the tra
nsaction committed.", | |
1634 "format": "google-datetime", | |
1635 "type": "string" | |
1636 } | |
1637 }, | |
1638 "type": "object" | |
1639 }, | |
1640 "Type": { | |
1641 "description": "`Type` indicates the type of a Cloud Spanner value,
as might be stored in a\ntable cell or returned from an SQL query.", | |
1642 "id": "Type", | |
1643 "properties": { | |
1644 "code": { | |
1645 "description": "Required. The TypeCode for this type.", | |
1646 "enum": [ | |
1647 "TYPE_CODE_UNSPECIFIED", | |
1648 "BOOL", | |
1649 "INT64", | |
1650 "FLOAT64", | |
1651 "TIMESTAMP", | |
1652 "DATE", | |
1653 "STRING", | |
1654 "BYTES", | |
1655 "ARRAY", | |
1656 "STRUCT" | |
1657 ], | |
1658 "enumDescriptions": [ | |
1659 "Not specified.", | |
1660 "Encoded as JSON `true` or `false`.", | |
1661 "Encoded as `string`, in decimal format.", | |
1662 "Encoded as `number`, or the strings `\"NaN\"`, `\"Infin
ity\"`, or\n`\"-Infinity\"`.", | |
1663 "Encoded as `string` in RFC 3339 timestamp format. The t
ime zone\nmust be present, and must be `\"Z\"`.", | |
1664 "Encoded as `string` in RFC 3339 date format.", | |
1665 "Encoded as `string`.", | |
1666 "Encoded as a base64-encoded `string`, as described in R
FC 4648,\nsection 4.", | |
1667 "Encoded as `list`, where the list elements are represen
ted\naccording to array_element_type.", | |
1668 "Encoded as `list`, where list element `i` is represente
d according\nto [struct_type.fields[i]][google.spanner.v1.StructType.fields]." | |
1669 ], | |
1670 "type": "string" | |
1671 }, | |
1672 "structType": { | |
1673 "$ref": "StructType", | |
1674 "description": "If code == STRUCT, then `struct_type`\nprovi
des type information for the struct's fields." | |
1675 }, | |
1676 "arrayElementType": { | |
1677 "$ref": "Type", | |
1678 "description": "If code == ARRAY, then `array_element_type`\
nis the type of the array elements." | |
1679 } | |
1680 }, | |
1681 "type": "object" | |
1682 }, | |
1683 "PlanNode": { | |
1684 "description": "Node information for nodes appearing in a QueryPlan.
plan_nodes.", | |
1685 "id": "PlanNode", | |
1686 "properties": { | |
1687 "metadata": { | |
1688 "additionalProperties": { | |
1689 "description": "Properties of the object.", | |
1690 "type": "any" | |
1691 }, | |
1692 "description": "Attributes relevant to the node contained in
a group of key-value pairs.\nFor example, a Parameter Reference node could have
the following\ninformation in its metadata:\n\n {\n \"parameter_referen
ce\": \"param1\",\n \"parameter_type\": \"array\"\n }", | |
1693 "type": "object" | |
1694 }, | |
1695 "executionStats": { | |
1696 "additionalProperties": { | |
1697 "description": "Properties of the object.", | |
1698 "type": "any" | |
1699 }, | |
1700 "description": "The execution statistics associated with the
node, contained in a group of\nkey-value pairs. Only present if the plan was re
turned as a result of a\nprofile query. For example, number of executions, numbe
r of rows/time per\nexecution etc.", | |
1701 "type": "object" | |
1702 }, | |
1703 "shortRepresentation": { | |
1704 "$ref": "ShortRepresentation", | |
1705 "description": "Condensed representation for SCALAR nodes." | |
1706 }, | |
1707 "index": { | |
1708 "description": "The `PlanNode`'s index in node list.", | |
1709 "format": "int32", | |
1710 "type": "integer" | |
1711 }, | |
1712 "displayName": { | |
1713 "description": "The display name for the node.", | |
1714 "type": "string" | |
1715 }, | |
1716 "kind": { | |
1717 "description": "Used to determine the type of node. May be n
eeded for visualizing\ndifferent kinds of nodes differently. For example, If the
node is a\nSCALAR node, it will have a condensed representation\nwhich can be u
sed to directly embed a description of the node in its\nparent.", | |
1718 "enum": [ | |
1719 "KIND_UNSPECIFIED", | |
1720 "RELATIONAL", | |
1721 "SCALAR" | |
1722 ], | |
1723 "enumDescriptions": [ | |
1724 "Not specified.", | |
1725 "Denotes a Relational operator node in the expression tr
ee. Relational\noperators represent iterative processing of rows during query ex
ecution.\nFor example, a `TableScan` operation that reads rows from a table.", | |
1726 "Denotes a Scalar node in the expression tree. Scalar no
des represent\nnon-iterable entities in the query plan. For example, constants o
r\narithmetic operators appearing inside predicate expressions or references\nto
column names." | |
1727 ], | |
1728 "type": "string" | |
1729 }, | |
1730 "childLinks": { | |
1731 "description": "List of child node `index`es and their relat
ionship to this parent.", | |
1732 "items": { | |
1733 "$ref": "ChildLink" | |
1734 }, | |
1735 "type": "array" | |
1736 } | |
1737 }, | |
1738 "type": "object" | |
1739 }, | |
1740 "CreateInstanceMetadata": { | |
1741 "description": "Metadata type for the operation returned by\nCreateI
nstance.", | |
1742 "id": "CreateInstanceMetadata", | |
1743 "properties": { | 1647 "properties": { |
1744 "endTime": { | 1648 "endTime": { |
1745 "description": "The time at which this operation failed or w
as completed successfully.", | 1649 "description": "The time at which this operation failed or w
as completed successfully.", |
1746 "format": "google-datetime", | 1650 "format": "google-datetime", |
1747 "type": "string" | 1651 "type": "string" |
1748 }, | 1652 }, |
1749 "cancelTime": { | 1653 "cancelTime": { |
1750 "description": "The time at which this operation was cancell
ed. If set, this operation is\nin the process of undoing itself (which is guaran
teed to succeed) and\ncannot be cancelled again.", | 1654 "description": "The time at which this operation was cancell
ed. If set, this operation is\nin the process of undoing itself (which is guaran
teed to succeed) and\ncannot be cancelled again.", |
1751 "format": "google-datetime", | 1655 "format": "google-datetime", |
1752 "type": "string" | 1656 "type": "string" |
1753 }, | 1657 }, |
1754 "startTime": { | 1658 "startTime": { |
| 1659 "description": "The time at which UpdateInstance\nrequest wa
s received.", |
| 1660 "format": "google-datetime", |
| 1661 "type": "string" |
| 1662 }, |
| 1663 "instance": { |
| 1664 "$ref": "Instance", |
| 1665 "description": "The desired end state of the update." |
| 1666 } |
| 1667 }, |
| 1668 "type": "object" |
| 1669 }, |
| 1670 "ResultSetMetadata": { |
| 1671 "description": "Metadata about a ResultSet or PartialResultSet.", |
| 1672 "id": "ResultSetMetadata", |
| 1673 "properties": { |
| 1674 "transaction": { |
| 1675 "$ref": "Transaction", |
| 1676 "description": "If the read or SQL query began a transaction
as a side-effect, the\ninformation about the new transaction is yielded here." |
| 1677 }, |
| 1678 "rowType": { |
| 1679 "$ref": "StructType", |
| 1680 "description": "Indicates the field names and types for the
rows in the result\nset. For example, a SQL query like `\"SELECT UserId, UserNa
me FROM\nUsers\"` could return a `row_type` value like:\n\n \"fields\": [\n
{ \"name\": \"UserId\", \"type\": { \"code\": \"INT64\" } },\n { \"name
\": \"UserName\", \"type\": { \"code\": \"STRING\" } },\n ]" |
| 1681 } |
| 1682 }, |
| 1683 "type": "object" |
| 1684 }, |
| 1685 "TransactionSelector": { |
| 1686 "description": "This message is used to select the transaction in wh
ich a\nRead or\nExecuteSql call runs.\n\nSee TransactionOptions for more informa
tion about transactions.", |
| 1687 "id": "TransactionSelector", |
| 1688 "properties": { |
| 1689 "id": { |
| 1690 "description": "Execute the read or SQL query in a previousl
y-started transaction.", |
| 1691 "format": "byte", |
| 1692 "type": "string" |
| 1693 }, |
| 1694 "singleUse": { |
| 1695 "$ref": "TransactionOptions", |
| 1696 "description": "Execute the read or SQL query in a temporary
transaction.\nThis is the most efficient way to execute a transaction that\ncon
sists of a single SQL query." |
| 1697 }, |
| 1698 "begin": { |
| 1699 "$ref": "TransactionOptions", |
| 1700 "description": "Begin a new transaction and execute this rea
d or SQL query in\nit. The transaction ID of the new transaction is returned in\
nResultSetMetadata.transaction, which is a Transaction." |
| 1701 } |
| 1702 }, |
| 1703 "type": "object" |
| 1704 }, |
| 1705 "Mutation": { |
| 1706 "description": "A modification to one or more Cloud Spanner rows. M
utations can be\napplied to a Cloud Spanner database by sending them in a\nCommi
t call.", |
| 1707 "id": "Mutation", |
| 1708 "properties": { |
| 1709 "update": { |
| 1710 "$ref": "Write", |
| 1711 "description": "Update existing rows in a table. If any of t
he rows does not\nalready exist, the transaction fails with error `NOT_FOUND`." |
| 1712 }, |
| 1713 "replace": { |
| 1714 "$ref": "Write", |
| 1715 "description": "Like insert, except that if the row already
exists, it is\ndeleted, and the column values provided are inserted\ninstead. Un
like insert_or_update, this means any values not\nexplicitly written become `NUL
L`." |
| 1716 }, |
| 1717 "delete": { |
| 1718 "$ref": "Delete", |
| 1719 "description": "Delete rows from a table. Succeeds whether o
r not the named\nrows were present." |
| 1720 }, |
| 1721 "insertOrUpdate": { |
| 1722 "$ref": "Write", |
| 1723 "description": "Like insert, except that if the row already
exists, then\nits column values are overwritten with the ones provided. Any\ncol
umn values not explicitly written are preserved." |
| 1724 }, |
| 1725 "insert": { |
| 1726 "$ref": "Write", |
| 1727 "description": "Insert new rows in a table. If any of the ro
ws already exist,\nthe write or transaction fails with error `ALREADY_EXISTS`." |
| 1728 } |
| 1729 }, |
| 1730 "type": "object" |
| 1731 }, |
| 1732 "KeySet": { |
| 1733 "description": "`KeySet` defines a collection of Cloud Spanner keys
and/or key ranges. All\nthe keys are expected to be in the same table or index.
The keys need\nnot be sorted in any particular way.\n\nIf the same key is specif
ied multiple times in the set (for example\nif two ranges, two keys, or a key an
d a range overlap), Cloud Spanner\nbehaves as if the key were only specified onc
e.", |
| 1734 "id": "KeySet", |
| 1735 "properties": { |
| 1736 "all": { |
| 1737 "description": "For convenience `all` can be set to `true` t
o indicate that this\n`KeySet` matches all keys in the table or index. Note that
any keys\nspecified in `keys` or `ranges` are only yielded once.", |
| 1738 "type": "boolean" |
| 1739 }, |
| 1740 "keys": { |
| 1741 "description": "A list of specific keys. Entries in `keys` s
hould have exactly as\nmany elements as there are columns in the primary or inde
x key\nwith which this `KeySet` is used. Individual key values are\nencoded as
described here.", |
| 1742 "items": { |
| 1743 "items": { |
| 1744 "type": "any" |
| 1745 }, |
| 1746 "type": "array" |
| 1747 }, |
| 1748 "type": "array" |
| 1749 }, |
| 1750 "ranges": { |
| 1751 "description": "A list of key ranges. See KeyRange for more
information about\nkey range specifications.", |
| 1752 "items": { |
| 1753 "$ref": "KeyRange" |
| 1754 }, |
| 1755 "type": "array" |
| 1756 } |
| 1757 }, |
| 1758 "type": "object" |
| 1759 }, |
| 1760 "GetDatabaseDdlResponse": { |
| 1761 "description": "The response for GetDatabaseDdl.", |
| 1762 "id": "GetDatabaseDdlResponse", |
| 1763 "properties": { |
| 1764 "statements": { |
| 1765 "description": "A list of formatted DDL statements defining
the schema of the database\nspecified in the request.", |
| 1766 "items": { |
| 1767 "type": "string" |
| 1768 }, |
| 1769 "type": "array" |
| 1770 } |
| 1771 }, |
| 1772 "type": "object" |
| 1773 }, |
| 1774 "Database": { |
| 1775 "description": "A Cloud Spanner database.", |
| 1776 "id": "Database", |
| 1777 "properties": { |
| 1778 "state": { |
| 1779 "description": "Output only. The current database state.", |
| 1780 "enum": [ |
| 1781 "STATE_UNSPECIFIED", |
| 1782 "CREATING", |
| 1783 "READY" |
| 1784 ], |
| 1785 "enumDescriptions": [ |
| 1786 "Not specified.", |
| 1787 "The database is still being created. Operations on the
database may fail\nwith `FAILED_PRECONDITION` in this state.", |
| 1788 "The database is fully created and ready for use." |
| 1789 ], |
| 1790 "type": "string" |
| 1791 }, |
| 1792 "name": { |
| 1793 "description": "Required. The name of the database. Values a
re of the form\n`projects/<project>/instances/<instance>/databases/<database>`,\
nwhere `<database>` is as specified in the `CREATE DATABASE`\nstatement. This na
me can be passed to other API methods to\nidentify the database.", |
| 1794 "type": "string" |
| 1795 } |
| 1796 }, |
| 1797 "type": "object" |
| 1798 }, |
| 1799 "SetIamPolicyRequest": { |
| 1800 "description": "Request message for `SetIamPolicy` method.", |
| 1801 "id": "SetIamPolicyRequest", |
| 1802 "properties": { |
| 1803 "policy": { |
| 1804 "$ref": "Policy", |
| 1805 "description": "REQUIRED: The complete policy to be applied
to the `resource`. The size of\nthe policy is limited to a few 10s of KB. An emp
ty policy is a\nvalid policy but certain Cloud Platform services (such as Projec
ts)\nmight reject them." |
| 1806 } |
| 1807 }, |
| 1808 "type": "object" |
| 1809 }, |
| 1810 "ListDatabasesResponse": { |
| 1811 "description": "The response for ListDatabases.", |
| 1812 "id": "ListDatabasesResponse", |
| 1813 "properties": { |
| 1814 "nextPageToken": { |
| 1815 "description": "`next_page_token` can be sent in a subsequen
t\nListDatabases call to fetch more\nof the matching databases.", |
| 1816 "type": "string" |
| 1817 }, |
| 1818 "databases": { |
| 1819 "description": "Databases that matched the request.", |
| 1820 "items": { |
| 1821 "$ref": "Database" |
| 1822 }, |
| 1823 "type": "array" |
| 1824 } |
| 1825 }, |
| 1826 "type": "object" |
| 1827 }, |
| 1828 "Instance": { |
| 1829 "description": "An isolated set of Cloud Spanner resources on which
databases can be hosted.", |
| 1830 "id": "Instance", |
| 1831 "properties": { |
| 1832 "nodeCount": { |
| 1833 "description": "Required. The number of nodes allocated to t
his instance. This may be zero\nin API responses for instances that are not yet
in state `READY`.\n\nEach Spanner node can provide up to 10,000 QPS of reads or
2000 QPS of\nwrites (writing single rows at 1KB data per row), and 2 TiB storage
.\n\nFor optimal performance, we recommend provisioning enough nodes to keep\nov
erall CPU utilization under 75%.\n\nA minimum of 3 nodes is recommended for prod
uction environments. This\nminimum is required for SLAs to apply to your instan
ce.\n\nNote that Cloud Spanner performance is highly dependent on workload, sche
ma\ndesign, and dataset characteristics. The performance numbers above are\nesti
mates, and assume [best practices](https://cloud.google.com/spanner/docs/bulk-lo
ading)\nare followed.", |
| 1834 "format": "int32", |
| 1835 "type": "integer" |
| 1836 }, |
| 1837 "labels": { |
| 1838 "additionalProperties": { |
| 1839 "type": "string" |
| 1840 }, |
| 1841 "description": "Cloud Labels are a flexible and lightweight
mechanism for organizing cloud\nresources into groups that reflect a customer's
organizational needs and\ndeployment strategies. Cloud Labels can be used to fil
ter collections of\nresources. They can be used to control how resource metrics
are aggregated.\nAnd they can be used as arguments to policy management rules (e
.g. route,\nfirewall, load balancing, etc.).\n\n * Label keys must be between 1
and 63 characters long and must conform to\n the following regular expression:
`[a-z]([-a-z0-9]*[a-z0-9])?`.\n * Label values must be between 0 and 63 charact
ers long and must conform\n to the regular expression `([a-z]([-a-z0-9]*[a-z0-
9])?)?`.\n * No more than 64 labels can be associated with a given resource.\n\n
See https://goo.gl/xmQnxf for more information on and examples of labels.\n\nIf
you plan to use labels in your own code, please note that additional\ncharacters
may be allowed in the future. And so you are advised to use an\ninternal label
representation, such as JSON, which doesn't rely upon\nspecific characters being
disallowed. For example, representing labels\nas the string: name + \"_\" + v
alue would prove problematic if we were to\nallow \"_\" in a future release.", |
| 1842 "type": "object" |
| 1843 }, |
| 1844 "config": { |
| 1845 "description": "Required. The name of the instance's configu
ration. Values are of the form\n`projects/<project>/instanceConfigs/<configurati
on>`. See\nalso InstanceConfig and\nListInstanceConfigs.", |
| 1846 "type": "string" |
| 1847 }, |
| 1848 "state": { |
| 1849 "description": "Output only. The current instance state. For
\nCreateInstance, the state must be\neither omitted or set to `CREATING`. For\nU
pdateInstance, the state must be\neither omitted or set to `READY`.", |
| 1850 "enum": [ |
| 1851 "STATE_UNSPECIFIED", |
| 1852 "CREATING", |
| 1853 "READY" |
| 1854 ], |
| 1855 "enumDescriptions": [ |
| 1856 "Not specified.", |
| 1857 "The instance is still being created. Resources may not
be\navailable yet, and operations such as database creation may not\nwork.", |
| 1858 "The instance is fully created and ready to do work such
as\ncreating databases." |
| 1859 ], |
| 1860 "type": "string" |
| 1861 }, |
| 1862 "name": { |
| 1863 "description": "Required. A unique identifier for the instan
ce, which cannot be changed\nafter the instance is created. Values are of the fo
rm\n`projects/<project>/instances/a-z*[a-z0-9]`. The final\nsegment of the name
must be between 6 and 30 characters in length.", |
| 1864 "type": "string" |
| 1865 }, |
| 1866 "displayName": { |
| 1867 "description": "Required. The descriptive name for this inst
ance as it appears in UIs.\nMust be unique per project and between 4 and 30 char
acters in length.", |
| 1868 "type": "string" |
| 1869 } |
| 1870 }, |
| 1871 "type": "object" |
| 1872 }, |
| 1873 "RollbackRequest": { |
| 1874 "description": "The request for Rollback.", |
| 1875 "id": "RollbackRequest", |
| 1876 "properties": { |
| 1877 "transactionId": { |
| 1878 "description": "Required. The transaction to roll back.", |
| 1879 "format": "byte", |
| 1880 "type": "string" |
| 1881 } |
| 1882 }, |
| 1883 "type": "object" |
| 1884 }, |
| 1885 "Transaction": { |
| 1886 "description": "A transaction.", |
| 1887 "id": "Transaction", |
| 1888 "properties": { |
| 1889 "id": { |
| 1890 "description": "`id` may be used to identify the transaction
in subsequent\nRead,\nExecuteSql,\nCommit, or\nRollback calls.\n\nSingle-use re
ad-only transactions do not have IDs, because\nsingle-use transactions do not su
pport multiple requests.", |
| 1891 "format": "byte", |
| 1892 "type": "string" |
| 1893 }, |
| 1894 "readTimestamp": { |
| 1895 "description": "For snapshot read-only transactions, the rea
d timestamp chosen\nfor the transaction. Not returned by default: see\nTransacti
onOptions.ReadOnly.return_read_timestamp.", |
| 1896 "format": "google-datetime", |
| 1897 "type": "string" |
| 1898 } |
| 1899 }, |
| 1900 "type": "object" |
| 1901 }, |
| 1902 "UpdateDatabaseDdlMetadata": { |
| 1903 "description": "Metadata type for the operation returned by\nUpdateD
atabaseDdl.", |
| 1904 "id": "UpdateDatabaseDdlMetadata", |
| 1905 "properties": { |
| 1906 "statements": { |
| 1907 "description": "For an update this list contains all the sta
tements. For an\nindividual statement, this list contains only that statement.", |
| 1908 "items": { |
| 1909 "type": "string" |
| 1910 }, |
| 1911 "type": "array" |
| 1912 }, |
| 1913 "commitTimestamps": { |
| 1914 "description": "Reports the commit timestamps of all stateme
nts that have\nsucceeded so far, where `commit_timestamps[i]` is the commit\ntim
estamp for the statement `statements[i]`.", |
| 1915 "items": { |
| 1916 "format": "google-datetime", |
| 1917 "type": "string" |
| 1918 }, |
| 1919 "type": "array" |
| 1920 }, |
| 1921 "database": { |
| 1922 "description": "The database being modified.", |
| 1923 "type": "string" |
| 1924 } |
| 1925 }, |
| 1926 "type": "object" |
| 1927 }, |
| 1928 "QueryPlan": { |
| 1929 "description": "Contains an ordered list of nodes appearing in the q
uery plan.", |
| 1930 "id": "QueryPlan", |
| 1931 "properties": { |
| 1932 "planNodes": { |
| 1933 "description": "The nodes in the query plan. Plan nodes are
returned in pre-order starting\nwith the plan root. Each PlanNode's `id` corresp
onds to its index in\n`plan_nodes`.", |
| 1934 "items": { |
| 1935 "$ref": "PlanNode" |
| 1936 }, |
| 1937 "type": "array" |
| 1938 } |
| 1939 }, |
| 1940 "type": "object" |
| 1941 }, |
| 1942 "StructType": { |
| 1943 "description": "`StructType` defines the fields of a STRUCT type.", |
| 1944 "id": "StructType", |
| 1945 "properties": { |
| 1946 "fields": { |
| 1947 "description": "The list of fields that make up this struct.
Order is\nsignificant, because values of this struct type are represented as\nl
ists, where the order of field values matches the order of\nfields in the Struct
Type. In turn, the order of fields\nmatches the order of columns in a read reque
st, or the order of\nfields in the `SELECT` clause of a query.", |
| 1948 "items": { |
| 1949 "$ref": "Field" |
| 1950 }, |
| 1951 "type": "array" |
| 1952 } |
| 1953 }, |
| 1954 "type": "object" |
| 1955 }, |
| 1956 "Field": { |
| 1957 "description": "Message representing a single field of a struct.", |
| 1958 "id": "Field", |
| 1959 "properties": { |
| 1960 "name": { |
| 1961 "description": "The name of the field. For reads, this is th
e column name. For\nSQL queries, it is the column alias (e.g., `\"Word\"` in the
\nquery `\"SELECT 'hello' AS Word\"`), or the column name (e.g.,\n`\"ColName\"`
in the query `\"SELECT ColName FROM Table\"`). Some\ncolumns might have an empty
name (e.g., !\"SELECT\nUPPER(ColName)\"`). Note that a query result can contain
\nmultiple fields with the same name.", |
| 1962 "type": "string" |
| 1963 }, |
| 1964 "type": { |
| 1965 "$ref": "Type", |
| 1966 "description": "The type of the field." |
| 1967 } |
| 1968 }, |
| 1969 "type": "object" |
| 1970 }, |
| 1971 "ResultSetStats": { |
| 1972 "description": "Additional statistics about a ResultSet or PartialRe
sultSet.", |
| 1973 "id": "ResultSetStats", |
| 1974 "properties": { |
| 1975 "queryStats": { |
| 1976 "additionalProperties": { |
| 1977 "description": "Properties of the object.", |
| 1978 "type": "any" |
| 1979 }, |
| 1980 "description": "Aggregated statistics from the execution of
the query. Only present when\nthe query is profiled. For example, a query could
return the statistics as\nfollows:\n\n {\n \"rows_returned\": \"3\",\n
\"elapsed_time\": \"1.22 secs\",\n \"cpu_time\": \"1.19 secs\"\n }", |
| 1981 "type": "object" |
| 1982 }, |
| 1983 "queryPlan": { |
| 1984 "$ref": "QueryPlan", |
| 1985 "description": "QueryPlan for the query associated with this
result." |
| 1986 } |
| 1987 }, |
| 1988 "type": "object" |
| 1989 }, |
| 1990 "TestIamPermissionsRequest": { |
| 1991 "description": "Request message for `TestIamPermissions` method.", |
| 1992 "id": "TestIamPermissionsRequest", |
| 1993 "properties": { |
| 1994 "permissions": { |
| 1995 "description": "REQUIRED: The set of permissions to check fo
r 'resource'.\nPermissions with wildcards (such as '*', 'spanner.*', 'spanner.in
stances.*') are not allowed.", |
| 1996 "items": { |
| 1997 "type": "string" |
| 1998 }, |
| 1999 "type": "array" |
| 2000 } |
| 2001 }, |
| 2002 "type": "object" |
| 2003 }, |
| 2004 "CommitResponse": { |
| 2005 "description": "The response for Commit.", |
| 2006 "id": "CommitResponse", |
| 2007 "properties": { |
| 2008 "commitTimestamp": { |
| 2009 "description": "The Cloud Spanner timestamp at which the tra
nsaction committed.", |
| 2010 "format": "google-datetime", |
| 2011 "type": "string" |
| 2012 } |
| 2013 }, |
| 2014 "type": "object" |
| 2015 }, |
| 2016 "Type": { |
| 2017 "description": "`Type` indicates the type of a Cloud Spanner value,
as might be stored in a\ntable cell or returned from an SQL query.", |
| 2018 "id": "Type", |
| 2019 "properties": { |
| 2020 "structType": { |
| 2021 "$ref": "StructType", |
| 2022 "description": "If code == STRUCT, then `struct_type`\nprovi
des type information for the struct's fields." |
| 2023 }, |
| 2024 "arrayElementType": { |
| 2025 "$ref": "Type", |
| 2026 "description": "If code == ARRAY, then `array_element_type`\
nis the type of the array elements." |
| 2027 }, |
| 2028 "code": { |
| 2029 "description": "Required. The TypeCode for this type.", |
| 2030 "enum": [ |
| 2031 "TYPE_CODE_UNSPECIFIED", |
| 2032 "BOOL", |
| 2033 "INT64", |
| 2034 "FLOAT64", |
| 2035 "TIMESTAMP", |
| 2036 "DATE", |
| 2037 "STRING", |
| 2038 "BYTES", |
| 2039 "ARRAY", |
| 2040 "STRUCT" |
| 2041 ], |
| 2042 "enumDescriptions": [ |
| 2043 "Not specified.", |
| 2044 "Encoded as JSON `true` or `false`.", |
| 2045 "Encoded as `string`, in decimal format.", |
| 2046 "Encoded as `number`, or the strings `\"NaN\"`, `\"Infin
ity\"`, or\n`\"-Infinity\"`.", |
| 2047 "Encoded as `string` in RFC 3339 timestamp format. The t
ime zone\nmust be present, and must be `\"Z\"`.", |
| 2048 "Encoded as `string` in RFC 3339 date format.", |
| 2049 "Encoded as `string`.", |
| 2050 "Encoded as a base64-encoded `string`, as described in R
FC 4648,\nsection 4.", |
| 2051 "Encoded as `list`, where the list elements are represen
ted\naccording to array_element_type.", |
| 2052 "Encoded as `list`, where list element `i` is represente
d according\nto [struct_type.fields[i]][google.spanner.v1.StructType.fields]." |
| 2053 ], |
| 2054 "type": "string" |
| 2055 } |
| 2056 }, |
| 2057 "type": "object" |
| 2058 }, |
| 2059 "PlanNode": { |
| 2060 "description": "Node information for nodes appearing in a QueryPlan.
plan_nodes.", |
| 2061 "id": "PlanNode", |
| 2062 "properties": { |
| 2063 "childLinks": { |
| 2064 "description": "List of child node `index`es and their relat
ionship to this parent.", |
| 2065 "items": { |
| 2066 "$ref": "ChildLink" |
| 2067 }, |
| 2068 "type": "array" |
| 2069 }, |
| 2070 "metadata": { |
| 2071 "additionalProperties": { |
| 2072 "description": "Properties of the object.", |
| 2073 "type": "any" |
| 2074 }, |
| 2075 "description": "Attributes relevant to the node contained in
a group of key-value pairs.\nFor example, a Parameter Reference node could have
the following\ninformation in its metadata:\n\n {\n \"parameter_referen
ce\": \"param1\",\n \"parameter_type\": \"array\"\n }", |
| 2076 "type": "object" |
| 2077 }, |
| 2078 "executionStats": { |
| 2079 "additionalProperties": { |
| 2080 "description": "Properties of the object.", |
| 2081 "type": "any" |
| 2082 }, |
| 2083 "description": "The execution statistics associated with the
node, contained in a group of\nkey-value pairs. Only present if the plan was re
turned as a result of a\nprofile query. For example, number of executions, numbe
r of rows/time per\nexecution etc.", |
| 2084 "type": "object" |
| 2085 }, |
| 2086 "shortRepresentation": { |
| 2087 "$ref": "ShortRepresentation", |
| 2088 "description": "Condensed representation for SCALAR nodes." |
| 2089 }, |
| 2090 "index": { |
| 2091 "description": "The `PlanNode`'s index in node list.", |
| 2092 "format": "int32", |
| 2093 "type": "integer" |
| 2094 }, |
| 2095 "kind": { |
| 2096 "description": "Used to determine the type of node. May be n
eeded for visualizing\ndifferent kinds of nodes differently. For example, If the
node is a\nSCALAR node, it will have a condensed representation\nwhich can be u
sed to directly embed a description of the node in its\nparent.", |
| 2097 "enum": [ |
| 2098 "KIND_UNSPECIFIED", |
| 2099 "RELATIONAL", |
| 2100 "SCALAR" |
| 2101 ], |
| 2102 "enumDescriptions": [ |
| 2103 "Not specified.", |
| 2104 "Denotes a Relational operator node in the expression tr
ee. Relational\noperators represent iterative processing of rows during query ex
ecution.\nFor example, a `TableScan` operation that reads rows from a table.", |
| 2105 "Denotes a Scalar node in the expression tree. Scalar no
des represent\nnon-iterable entities in the query plan. For example, constants o
r\narithmetic operators appearing inside predicate expressions or references\nto
column names." |
| 2106 ], |
| 2107 "type": "string" |
| 2108 }, |
| 2109 "displayName": { |
| 2110 "description": "The display name for the node.", |
| 2111 "type": "string" |
| 2112 } |
| 2113 }, |
| 2114 "type": "object" |
| 2115 }, |
| 2116 "CreateInstanceMetadata": { |
| 2117 "description": "Metadata type for the operation returned by\nCreateI
nstance.", |
| 2118 "id": "CreateInstanceMetadata", |
| 2119 "properties": { |
| 2120 "endTime": { |
| 2121 "description": "The time at which this operation failed or w
as completed successfully.", |
| 2122 "format": "google-datetime", |
| 2123 "type": "string" |
| 2124 }, |
| 2125 "cancelTime": { |
| 2126 "description": "The time at which this operation was cancell
ed. If set, this operation is\nin the process of undoing itself (which is guaran
teed to succeed) and\ncannot be cancelled again.", |
| 2127 "format": "google-datetime", |
| 2128 "type": "string" |
| 2129 }, |
| 2130 "startTime": { |
1755 "description": "The time at which the\nCreateInstance reques
t was\nreceived.", | 2131 "description": "The time at which the\nCreateInstance reques
t was\nreceived.", |
1756 "format": "google-datetime", | 2132 "format": "google-datetime", |
1757 "type": "string" | 2133 "type": "string" |
1758 }, | 2134 }, |
1759 "instance": { | 2135 "instance": { |
1760 "$ref": "Instance", | 2136 "$ref": "Instance", |
1761 "description": "The instance being created." | 2137 "description": "The instance being created." |
1762 } | 2138 } |
1763 }, | 2139 }, |
1764 "type": "object" | 2140 "type": "object" |
1765 }, | 2141 }, |
1766 "AuditConfig": { | |
1767 "description": "Specifies the audit configuration for a service.\nTh
e configuration determines which permission types are logged, and what\nidentiti
es, if any, are exempted from logging.\nAn AuditConfig must have one or more Aud
itLogConfigs.\n\nIf there are AuditConfigs for both `allServices` and a specific
service,\nthe union of the two AuditConfigs is used for that service: the log_t
ypes\nspecified in each AuditConfig are enabled, and the exempted_members in eac
h\nAuditConfig are exempted.\n\nExample Policy with multiple AuditConfigs:\n\n
{\n \"audit_configs\": [\n {\n \"service\": \"allServices
\"\n \"audit_log_configs\": [\n {\n \"log_type\
": \"DATA_READ\",\n \"exempted_members\": [\n \"user
:foo@gmail.com\"\n ]\n },\n {\n
\"log_type\": \"DATA_WRITE\",\n },\n {\n \"lo
g_type\": \"ADMIN_READ\",\n }\n ]\n },\n {\n
\"service\": \"fooservice.googleapis.com\"\n \"audit_log_config
s\": [\n {\n \"log_type\": \"DATA_READ\",\n }
,\n {\n \"log_type\": \"DATA_WRITE\",\n \"e
xempted_members\": [\n \"user:bar@gmail.com\"\n ]\n
}\n ]\n }\n ]\n }\n\nFor fooservice, this pol
icy enables DATA_READ, DATA_WRITE and ADMIN_READ\nlogging. It also exempts foo@g
mail.com from DATA_READ logging, and\nbar@gmail.com from DATA_WRITE logging.", | |
1768 "id": "AuditConfig", | |
1769 "properties": { | |
1770 "exemptedMembers": { | |
1771 "items": { | |
1772 "type": "string" | |
1773 }, | |
1774 "type": "array" | |
1775 }, | |
1776 "service": { | |
1777 "description": "Specifies a service that will be enabled for
audit logging.\nFor example, `storage.googleapis.com`, `cloudsql.googleapis.com
`.\n`allServices` is a special value that covers all services.", | |
1778 "type": "string" | |
1779 }, | |
1780 "auditLogConfigs": { | |
1781 "description": "The configuration for logging of each type o
f permission.\nNext ID: 4", | |
1782 "items": { | |
1783 "$ref": "AuditLogConfig" | |
1784 }, | |
1785 "type": "array" | |
1786 } | |
1787 }, | |
1788 "type": "object" | |
1789 }, | |
1790 "ChildLink": { | 2142 "ChildLink": { |
1791 "description": "Metadata associated with a parent-child relationship
appearing in a\nPlanNode.", | 2143 "description": "Metadata associated with a parent-child relationship
appearing in a\nPlanNode.", |
1792 "id": "ChildLink", | 2144 "id": "ChildLink", |
1793 "properties": { | 2145 "properties": { |
1794 "type": { | 2146 "type": { |
1795 "description": "The type of the link. For example, in Hash J
oins this could be used to\ndistinguish between the build child and the probe ch
ild, or in the case\nof the child being an output variable, to represent the tag
associated\nwith the output variable.", | 2147 "description": "The type of the link. For example, in Hash J
oins this could be used to\ndistinguish between the build child and the probe ch
ild, or in the case\nof the child being an output variable, to represent the tag
associated\nwith the output variable.", |
1796 "type": "string" | 2148 "type": "string" |
1797 }, | 2149 }, |
1798 "variable": { | 2150 "variable": { |
1799 "description": "Only present if the child node is SCALAR and
corresponds\nto an output variable of the parent node. The field carries the na
me of\nthe output variable.\nFor example, a `TableScan` operator that reads rows
from a table will\nhave child links to the `SCALAR` nodes representing the outp
ut variables\ncreated for each column that is read by the operator. The correspo
nding\n`variable` fields will be set to the variable names assigned to the\ncolu
mns.", | 2151 "description": "Only present if the child node is SCALAR and
corresponds\nto an output variable of the parent node. The field carries the na
me of\nthe output variable.\nFor example, a `TableScan` operator that reads rows
from a table will\nhave child links to the `SCALAR` nodes representing the outp
ut variables\ncreated for each column that is read by the operator. The correspo
nding\n`variable` fields will be set to the variable names assigned to the\ncolu
mns.", |
1800 "type": "string" | 2152 "type": "string" |
1801 }, | 2153 }, |
1802 "childIndex": { | 2154 "childIndex": { |
1803 "description": "The node to which the link points.", | 2155 "description": "The node to which the link points.", |
1804 "format": "int32", | 2156 "format": "int32", |
1805 "type": "integer" | 2157 "type": "integer" |
1806 } | 2158 } |
1807 }, | 2159 }, |
1808 "type": "object" | 2160 "type": "object" |
1809 }, | 2161 }, |
1810 "CloudAuditOptions": { | |
1811 "description": "Write a Cloud Audit log", | |
1812 "id": "CloudAuditOptions", | |
1813 "properties": { | |
1814 "logName": { | |
1815 "description": "The log_name to populate in the Cloud Audit
Record.", | |
1816 "enum": [ | |
1817 "UNSPECIFIED_LOG_NAME", | |
1818 "ADMIN_ACTIVITY", | |
1819 "DATA_ACCESS" | |
1820 ], | |
1821 "enumDescriptions": [ | |
1822 "Default. Should not be used.", | |
1823 "Corresponds to \"cloudaudit.googleapis.com/activity\"", | |
1824 "Corresponds to \"cloudaudit.googleapis.com/data_access\
"" | |
1825 ], | |
1826 "type": "string" | |
1827 }, | |
1828 "authorizationLoggingOptions": { | |
1829 "$ref": "AuthorizationLoggingOptions", | |
1830 "description": "Information used by the Cloud Audit Logging
pipeline." | |
1831 } | |
1832 }, | |
1833 "type": "object" | |
1834 }, | |
1835 "Expr": { | |
1836 "description": "Represents an expression text. Example:\n\n title
: \"User account presence\"\n description: \"Determines whether the request h
as a user account\"\n expression: \"size(request.user) > 0\"", | |
1837 "id": "Expr", | |
1838 "properties": { | |
1839 "expression": { | |
1840 "description": "Textual representation of an expression in\n
Common Expression Language syntax.\n\nThe application context of the containing
message determines which\nwell-known feature set of CEL is supported.", | |
1841 "type": "string" | |
1842 }, | |
1843 "location": { | |
1844 "description": "An optional string indicating the location o
f the expression for error\nreporting, e.g. a file name and a position in the fi
le.", | |
1845 "type": "string" | |
1846 }, | |
1847 "title": { | |
1848 "description": "An optional title for the expression, i.e. a
short string describing\nits purpose. This can be used e.g. in UIs which allow
to enter the\nexpression.", | |
1849 "type": "string" | |
1850 }, | |
1851 "description": { | |
1852 "description": "An optional description of the expression. T
his is a longer text which\ndescribes the expression, e.g. when hovered over it
in a UI.", | |
1853 "type": "string" | |
1854 } | |
1855 }, | |
1856 "type": "object" | |
1857 }, | |
1858 "Delete": { | 2162 "Delete": { |
1859 "description": "Arguments to delete operations.", | 2163 "description": "Arguments to delete operations.", |
1860 "id": "Delete", | 2164 "id": "Delete", |
1861 "properties": { | 2165 "properties": { |
1862 "table": { | |
1863 "description": "Required. The table whose rows will be delet
ed.", | |
1864 "type": "string" | |
1865 }, | |
1866 "keySet": { | 2166 "keySet": { |
1867 "$ref": "KeySet", | 2167 "$ref": "KeySet", |
1868 "description": "Required. The primary keys of the rows withi
n table to delete." | 2168 "description": "Required. The primary keys of the rows withi
n table to delete." |
| 2169 }, |
| 2170 "table": { |
| 2171 "description": "Required. The table whose rows will be delet
ed.", |
| 2172 "type": "string" |
| 2173 } |
| 2174 }, |
| 2175 "type": "object" |
| 2176 }, |
| 2177 "CommitRequest": { |
| 2178 "description": "The request for Commit.", |
| 2179 "id": "CommitRequest", |
| 2180 "properties": { |
| 2181 "mutations": { |
| 2182 "description": "The mutations to be executed when this trans
action commits. All\nmutations are applied atomically, in the order they appear
in\nthis list.", |
| 2183 "items": { |
| 2184 "$ref": "Mutation" |
| 2185 }, |
| 2186 "type": "array" |
| 2187 }, |
| 2188 "singleUseTransaction": { |
| 2189 "$ref": "TransactionOptions", |
| 2190 "description": "Execute mutations in a temporary transaction
. Note that unlike\ncommit of a previously-started transaction, commit with a\nt
emporary transaction is non-idempotent. That is, if the\n`CommitRequest` is sent
to Cloud Spanner more than once (for\ninstance, due to retries in the applicati
on, or in the\ntransport library), it is possible that the mutations are\nexecut
ed more than once. If this is undesirable, use\nBeginTransaction and\nCommit ins
tead." |
| 2191 }, |
| 2192 "transactionId": { |
| 2193 "description": "Commit a previously-started transaction.", |
| 2194 "format": "byte", |
| 2195 "type": "string" |
| 2196 } |
| 2197 }, |
| 2198 "type": "object" |
| 2199 }, |
| 2200 "BeginTransactionRequest": { |
| 2201 "description": "The request for BeginTransaction.", |
| 2202 "id": "BeginTransactionRequest", |
| 2203 "properties": { |
| 2204 "options": { |
| 2205 "$ref": "TransactionOptions", |
| 2206 "description": "Required. Options for the new transaction." |
1869 } | 2207 } |
1870 }, | 2208 }, |
1871 "type": "object" | 2209 "type": "object" |
1872 }, | 2210 }, |
1873 "ListInstanceConfigsResponse": { | 2211 "ListInstanceConfigsResponse": { |
1874 "description": "The response for ListInstanceConfigs.", | 2212 "description": "The response for ListInstanceConfigs.", |
1875 "id": "ListInstanceConfigsResponse", | 2213 "id": "ListInstanceConfigsResponse", |
1876 "properties": { | 2214 "properties": { |
1877 "nextPageToken": { | 2215 "nextPageToken": { |
1878 "description": "`next_page_token` can be sent in a subsequen
t\nListInstanceConfigs call to\nfetch more of the matching instance configuratio
ns.", | 2216 "description": "`next_page_token` can be sent in a subsequen
t\nListInstanceConfigs call to\nfetch more of the matching instance configuratio
ns.", |
1879 "type": "string" | 2217 "type": "string" |
1880 }, | 2218 }, |
1881 "instanceConfigs": { | 2219 "instanceConfigs": { |
1882 "description": "The list of requested instance configuration
s.", | 2220 "description": "The list of requested instance configuration
s.", |
1883 "items": { | 2221 "items": { |
1884 "$ref": "InstanceConfig" | 2222 "$ref": "InstanceConfig" |
1885 }, | 2223 }, |
1886 "type": "array" | 2224 "type": "array" |
1887 } | 2225 } |
1888 }, | 2226 }, |
1889 "type": "object" | 2227 "type": "object" |
1890 }, | 2228 }, |
1891 "BeginTransactionRequest": { | |
1892 "description": "The request for BeginTransaction.", | |
1893 "id": "BeginTransactionRequest", | |
1894 "properties": { | |
1895 "options": { | |
1896 "$ref": "TransactionOptions", | |
1897 "description": "Required. Options for the new transaction." | |
1898 } | |
1899 }, | |
1900 "type": "object" | |
1901 }, | |
1902 "CommitRequest": { | |
1903 "description": "The request for Commit.", | |
1904 "id": "CommitRequest", | |
1905 "properties": { | |
1906 "mutations": { | |
1907 "description": "The mutations to be executed when this trans
action commits. All\nmutations are applied atomically, in the order they appear
in\nthis list.", | |
1908 "items": { | |
1909 "$ref": "Mutation" | |
1910 }, | |
1911 "type": "array" | |
1912 }, | |
1913 "singleUseTransaction": { | |
1914 "$ref": "TransactionOptions", | |
1915 "description": "Execute mutations in a temporary transaction
. Note that unlike\ncommit of a previously-started transaction, commit with a\nt
emporary transaction is non-idempotent. That is, if the\n`CommitRequest` is sent
to Cloud Spanner more than once (for\ninstance, due to retries in the applicati
on, or in the\ntransport library), it is possible that the mutations are\nexecut
ed more than once. If this is undesirable, use\nBeginTransaction and\nCommit ins
tead." | |
1916 }, | |
1917 "transactionId": { | |
1918 "description": "Commit a previously-started transaction.", | |
1919 "format": "byte", | |
1920 "type": "string" | |
1921 } | |
1922 }, | |
1923 "type": "object" | |
1924 }, | |
1925 "TestIamPermissionsResponse": { | |
1926 "description": "Response message for `TestIamPermissions` method.", | |
1927 "id": "TestIamPermissionsResponse", | |
1928 "properties": { | |
1929 "permissions": { | |
1930 "description": "A subset of `TestPermissionsRequest.permissi
ons` that the caller is\nallowed.", | |
1931 "items": { | |
1932 "type": "string" | |
1933 }, | |
1934 "type": "array" | |
1935 } | |
1936 }, | |
1937 "type": "object" | |
1938 }, | |
1939 "GetIamPolicyRequest": { | 2229 "GetIamPolicyRequest": { |
1940 "description": "Request message for `GetIamPolicy` method.", | 2230 "description": "Request message for `GetIamPolicy` method.", |
1941 "id": "GetIamPolicyRequest", | 2231 "id": "GetIamPolicyRequest", |
1942 "properties": {}, | 2232 "properties": {}, |
1943 "type": "object" | 2233 "type": "object" |
1944 }, | 2234 }, |
1945 "Rule": { | 2235 "TestIamPermissionsResponse": { |
1946 "description": "A rule to be applied in a Policy.", | 2236 "description": "Response message for `TestIamPermissions` method.", |
1947 "id": "Rule", | 2237 "id": "TestIamPermissionsResponse", |
1948 "properties": { | 2238 "properties": { |
1949 "description": { | |
1950 "description": "Human-readable description of the rule.", | |
1951 "type": "string" | |
1952 }, | |
1953 "conditions": { | |
1954 "description": "Additional restrictions that must be met", | |
1955 "items": { | |
1956 "$ref": "Condition" | |
1957 }, | |
1958 "type": "array" | |
1959 }, | |
1960 "logConfig": { | |
1961 "description": "The config returned to callers of tech.iam.I
AM.CheckPolicy for any entries\nthat match the LOG action.", | |
1962 "items": { | |
1963 "$ref": "LogConfig" | |
1964 }, | |
1965 "type": "array" | |
1966 }, | |
1967 "in": { | |
1968 "description": "If one or more 'in' clauses are specified, t
he rule matches if\nthe PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these
entries.", | |
1969 "items": { | |
1970 "type": "string" | |
1971 }, | |
1972 "type": "array" | |
1973 }, | |
1974 "permissions": { | 2239 "permissions": { |
1975 "description": "A permission is a string of form '<service>.
<resource type>.<verb>'\n(e.g., 'storage.buckets.list'). A value of '*' matches
all permissions,\nand a verb part of '*' (e.g., 'storage.buckets.*') matches all
verbs.", | 2240 "description": "A subset of `TestPermissionsRequest.permissi
ons` that the caller is\nallowed.", |
1976 "items": { | |
1977 "type": "string" | |
1978 }, | |
1979 "type": "array" | |
1980 }, | |
1981 "action": { | |
1982 "description": "Required", | |
1983 "enum": [ | |
1984 "NO_ACTION", | |
1985 "ALLOW", | |
1986 "ALLOW_WITH_LOG", | |
1987 "DENY", | |
1988 "DENY_WITH_LOG", | |
1989 "LOG" | |
1990 ], | |
1991 "enumDescriptions": [ | |
1992 "Default no action.", | |
1993 "Matching 'Entries' grant access.", | |
1994 "Matching 'Entries' grant access and the caller promises
to log\nthe request per the returned log_configs.", | |
1995 "Matching 'Entries' deny access.", | |
1996 "Matching 'Entries' deny access and the caller promises
to log\nthe request per the returned log_configs.", | |
1997 "Matching 'Entries' tell IAM.Check callers to generate l
ogs." | |
1998 ], | |
1999 "type": "string" | |
2000 }, | |
2001 "notIn": { | |
2002 "description": "If one or more 'not_in' clauses are specifie
d, the rule matches\nif the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entri
es.\nThe format for in and not_in entries is the same as for members in a\nBindi
ng (see google/iam/v1/policy.proto).", | |
2003 "items": { | 2241 "items": { |
2004 "type": "string" | 2242 "type": "string" |
2005 }, | 2243 }, |
2006 "type": "array" | 2244 "type": "array" |
2007 } | 2245 } |
2008 }, | 2246 }, |
2009 "type": "object" | 2247 "type": "object" |
2010 }, | 2248 }, |
2011 "CreateDatabaseMetadata": { | 2249 "CreateDatabaseMetadata": { |
2012 "description": "Metadata type for the operation returned by\nCreateD
atabase.", | 2250 "description": "Metadata type for the operation returned by\nCreateD
atabase.", |
2013 "id": "CreateDatabaseMetadata", | 2251 "id": "CreateDatabaseMetadata", |
2014 "properties": { | 2252 "properties": { |
2015 "database": { | 2253 "database": { |
2016 "description": "The database being created.", | 2254 "description": "The database being created.", |
2017 "type": "string" | 2255 "type": "string" |
2018 } | 2256 } |
2019 }, | 2257 }, |
2020 "type": "object" | 2258 "type": "object" |
2021 }, | 2259 }, |
2022 "LogConfig": { | |
2023 "description": "Specifies what kind of log the caller must write\nIn
crement a streamz counter with the specified metric and field names.\n\nMetric n
ames should start with a '/', generally be lowercase-only,\nand end in \"_count\
". Field names should not contain an initial slash.\nThe actual exported metric
names will have \"/iam/policy\" prepended.\n\nField names correspond to IAM requ
est parameters and field values are\ntheir respective values.\n\nAt present the
only supported field names are\n - \"iam_principal\", corresponding to IAMCont
ext.principal;\n - \"\" (empty string), resulting in one aggretated counter wi
th no field.\n\nExamples:\n counter { metric: \"/debug_access_count\" field: \
"iam_principal\" }\n ==> increment counter /iam/policy/backend_debug_access_cou
nt\n {iam_principal=[value of IAMContext.principal]}\n\nA
t this time we do not support:\n* multiple field names (though this may be suppo
rted in the future)\n* decrementing the counter\n* incrementing it by anything o
ther than 1", | |
2024 "id": "LogConfig", | |
2025 "properties": { | |
2026 "dataAccess": { | |
2027 "$ref": "DataAccessOptions", | |
2028 "description": "Data access options." | |
2029 }, | |
2030 "cloudAudit": { | |
2031 "$ref": "CloudAuditOptions", | |
2032 "description": "Cloud audit options." | |
2033 }, | |
2034 "counter": { | |
2035 "$ref": "CounterOptions", | |
2036 "description": "Counter options." | |
2037 } | |
2038 }, | |
2039 "type": "object" | |
2040 }, | |
2041 "Session": { | 2260 "Session": { |
2042 "description": "A session in the Cloud Spanner API.", | 2261 "description": "A session in the Cloud Spanner API.", |
2043 "id": "Session", | 2262 "id": "Session", |
2044 "properties": { | 2263 "properties": { |
2045 "name": { | 2264 "name": { |
2046 "description": "Required. The name of the session.", | 2265 "description": "Required. The name of the session.", |
2047 "type": "string" | 2266 "type": "string" |
2048 } | 2267 } |
2049 }, | 2268 }, |
2050 "type": "object" | 2269 "type": "object" |
2051 }, | 2270 }, |
| 2271 "ListInstancesResponse": { |
| 2272 "description": "The response for ListInstances.", |
| 2273 "id": "ListInstancesResponse", |
| 2274 "properties": { |
| 2275 "nextPageToken": { |
| 2276 "description": "`next_page_token` can be sent in a subsequen
t\nListInstances call to fetch more\nof the matching instances.", |
| 2277 "type": "string" |
| 2278 }, |
| 2279 "instances": { |
| 2280 "description": "The list of requested instances.", |
| 2281 "items": { |
| 2282 "$ref": "Instance" |
| 2283 }, |
| 2284 "type": "array" |
| 2285 } |
| 2286 }, |
| 2287 "type": "object" |
| 2288 }, |
2052 "KeyRange": { | 2289 "KeyRange": { |
2053 "description": "KeyRange represents a range of rows in a table or in
dex.\n\nA range has a start key and an end key. These keys can be open or\nclose
d, indicating if the range includes rows with that key.\n\nKeys are represented
by lists, where the ith value in the list\ncorresponds to the ith component of t
he table or index primary key.\nIndividual values are encoded as described here.
\n\nFor example, consider the following table definition:\n\n CREATE TABLE Us
erEvents (\n UserName STRING(MAX),\n EventDate STRING(10)\n ) PRIMA
RY KEY(UserName, EventDate);\n\nThe following keys name rows in this table:\n\n
\"Bob\", \"2014-09-23\"\n\nSince the `UserEvents` table's `PRIMARY KEY` claus
e names two\ncolumns, each `UserEvents` key has two elements; the first is the\n
`UserName`, and the second is the `EventDate`.\n\nKey ranges with multiple compo
nents are interpreted\nlexicographically by component using the table or index k
ey's declared\nsort order. For example, the following range returns all events f
or\nuser `\"Bob\"` that occurred in the year 2015:\n\n \"start_closed\": [\"B
ob\", \"2015-01-01\"]\n \"end_closed\": [\"Bob\", \"2015-12-31\"]\n\nStart an
d end keys can omit trailing key components. This affects the\ninclusion and exc
lusion of rows that exactly match the provided key\ncomponents: if the key is cl
osed, then rows that exactly match the\nprovided components are included; if the
key is open, then rows\nthat exactly match are not included.\n\nFor example, th
e following range includes all events for `\"Bob\"` that\noccurred during and af
ter the year 2000:\n\n \"start_closed\": [\"Bob\", \"2000-01-01\"]\n \"end
_closed\": [\"Bob\"]\n\nThe next example retrieves all events for `\"Bob\"`:\n\n
\"start_closed\": [\"Bob\"]\n \"end_closed\": [\"Bob\"]\n\nTo retrieve ev
ents before the year 2000:\n\n \"start_closed\": [\"Bob\"]\n \"end_open\":
[\"Bob\", \"2000-01-01\"]\n\nThe following range includes all rows in the table
:\n\n \"start_closed\": []\n \"end_closed\": []\n\nThis range returns all
users whose `UserName` begins with any\ncharacter from A to C:\n\n \"start_cl
osed\": [\"A\"]\n \"end_open\": [\"D\"]\n\nThis range returns all users whose
`UserName` begins with B:\n\n \"start_closed\": [\"B\"]\n \"end_open\": [
\"C\"]\n\nKey ranges honor column sort order. For example, suppose a table is\nd
efined as follows:\n\n CREATE TABLE DescendingSortedTable {\n Key INT64,
\n ...\n ) PRIMARY KEY(Key DESC);\n\nThe following range retrieves all r
ows with key values between 1\nand 100 inclusive:\n\n \"start_closed\": [\"10
0\"]\n \"end_closed\": [\"1\"]\n\nNote that 100 is passed as the start, and 1
is passed as the end,\nbecause `Key` is a descending column in the schema.", | 2290 "description": "KeyRange represents a range of rows in a table or in
dex.\n\nA range has a start key and an end key. These keys can be open or\nclose
d, indicating if the range includes rows with that key.\n\nKeys are represented
by lists, where the ith value in the list\ncorresponds to the ith component of t
he table or index primary key.\nIndividual values are encoded as described here.
\n\nFor example, consider the following table definition:\n\n CREATE TABLE Us
erEvents (\n UserName STRING(MAX),\n EventDate STRING(10)\n ) PRIMA
RY KEY(UserName, EventDate);\n\nThe following keys name rows in this table:\n\n
\"Bob\", \"2014-09-23\"\n\nSince the `UserEvents` table's `PRIMARY KEY` claus
e names two\ncolumns, each `UserEvents` key has two elements; the first is the\n
`UserName`, and the second is the `EventDate`.\n\nKey ranges with multiple compo
nents are interpreted\nlexicographically by component using the table or index k
ey's declared\nsort order. For example, the following range returns all events f
or\nuser `\"Bob\"` that occurred in the year 2015:\n\n \"start_closed\": [\"B
ob\", \"2015-01-01\"]\n \"end_closed\": [\"Bob\", \"2015-12-31\"]\n\nStart an
d end keys can omit trailing key components. This affects the\ninclusion and exc
lusion of rows that exactly match the provided key\ncomponents: if the key is cl
osed, then rows that exactly match the\nprovided components are included; if the
key is open, then rows\nthat exactly match are not included.\n\nFor example, th
e following range includes all events for `\"Bob\"` that\noccurred during and af
ter the year 2000:\n\n \"start_closed\": [\"Bob\", \"2000-01-01\"]\n \"end
_closed\": [\"Bob\"]\n\nThe next example retrieves all events for `\"Bob\"`:\n\n
\"start_closed\": [\"Bob\"]\n \"end_closed\": [\"Bob\"]\n\nTo retrieve ev
ents before the year 2000:\n\n \"start_closed\": [\"Bob\"]\n \"end_open\":
[\"Bob\", \"2000-01-01\"]\n\nThe following range includes all rows in the table
:\n\n \"start_closed\": []\n \"end_closed\": []\n\nThis range returns all
users whose `UserName` begins with any\ncharacter from A to C:\n\n \"start_cl
osed\": [\"A\"]\n \"end_open\": [\"D\"]\n\nThis range returns all users whose
`UserName` begins with B:\n\n \"start_closed\": [\"B\"]\n \"end_open\": [
\"C\"]\n\nKey ranges honor column sort order. For example, suppose a table is\nd
efined as follows:\n\n CREATE TABLE DescendingSortedTable {\n Key INT64,
\n ...\n ) PRIMARY KEY(Key DESC);\n\nThe following range retrieves all r
ows with key values between 1\nand 100 inclusive:\n\n \"start_closed\": [\"10
0\"]\n \"end_closed\": [\"1\"]\n\nNote that 100 is passed as the start, and 1
is passed as the end,\nbecause `Key` is a descending column in the schema.", |
2054 "id": "KeyRange", | 2291 "id": "KeyRange", |
2055 "properties": { | 2292 "properties": { |
| 2293 "endClosed": { |
| 2294 "description": "If the end is closed, then the range include
s all rows whose\nfirst `len(end_closed)` key columns exactly match `end_closed`
.", |
| 2295 "items": { |
| 2296 "type": "any" |
| 2297 }, |
| 2298 "type": "array" |
| 2299 }, |
| 2300 "startOpen": { |
| 2301 "description": "If the start is open, then the range exclude
s rows whose first\n`len(start_open)` key columns exactly match `start_open`.", |
| 2302 "items": { |
| 2303 "type": "any" |
| 2304 }, |
| 2305 "type": "array" |
| 2306 }, |
| 2307 "startClosed": { |
| 2308 "description": "If the start is closed, then the range inclu
des all rows whose\nfirst `len(start_closed)` key columns exactly match `start_c
losed`.", |
| 2309 "items": { |
| 2310 "type": "any" |
| 2311 }, |
| 2312 "type": "array" |
| 2313 }, |
2056 "endOpen": { | 2314 "endOpen": { |
2057 "description": "If the end is open, then the range excludes
rows whose first\n`len(end_open)` key columns exactly match `end_open`.", | 2315 "description": "If the end is open, then the range excludes
rows whose first\n`len(end_open)` key columns exactly match `end_open`.", |
2058 "items": { | 2316 "items": { |
2059 "type": "any" | 2317 "type": "any" |
2060 }, | 2318 }, |
2061 "type": "array" | 2319 "type": "array" |
2062 }, | |
2063 "endClosed": { | |
2064 "description": "If the end is closed, then the range include
s all rows whose\nfirst `len(end_closed)` key columns exactly match `end_closed`
.", | |
2065 "items": { | |
2066 "type": "any" | |
2067 }, | |
2068 "type": "array" | |
2069 }, | |
2070 "startOpen": { | |
2071 "description": "If the start is open, then the range exclude
s rows whose first\n`len(start_open)` key columns exactly match `start_open`.", | |
2072 "items": { | |
2073 "type": "any" | |
2074 }, | |
2075 "type": "array" | |
2076 }, | |
2077 "startClosed": { | |
2078 "description": "If the start is closed, then the range inclu
des all rows whose\nfirst `len(start_closed)` key columns exactly match `start_c
losed`.", | |
2079 "items": { | |
2080 "type": "any" | |
2081 }, | |
2082 "type": "array" | |
2083 } | |
2084 }, | |
2085 "type": "object" | |
2086 }, | |
2087 "ListInstancesResponse": { | |
2088 "description": "The response for ListInstances.", | |
2089 "id": "ListInstancesResponse", | |
2090 "properties": { | |
2091 "instances": { | |
2092 "description": "The list of requested instances.", | |
2093 "items": { | |
2094 "$ref": "Instance" | |
2095 }, | |
2096 "type": "array" | |
2097 }, | |
2098 "nextPageToken": { | |
2099 "description": "`next_page_token` can be sent in a subsequen
t\nListInstances call to fetch more\nof the matching instances.", | |
2100 "type": "string" | |
2101 } | 2320 } |
2102 }, | 2321 }, |
2103 "type": "object" | 2322 "type": "object" |
2104 }, | 2323 }, |
2105 "ShortRepresentation": { | 2324 "ShortRepresentation": { |
2106 "description": "Condensed representation of a node and its subtree.
Only present for\n`SCALAR` PlanNode(s).", | 2325 "description": "Condensed representation of a node and its subtree.
Only present for\n`SCALAR` PlanNode(s).", |
2107 "id": "ShortRepresentation", | 2326 "id": "ShortRepresentation", |
2108 "properties": { | 2327 "properties": { |
2109 "description": { | 2328 "description": { |
2110 "description": "A string representation of the expression su
btree rooted at this node.", | 2329 "description": "A string representation of the expression su
btree rooted at this node.", |
2111 "type": "string" | 2330 "type": "string" |
2112 }, | 2331 }, |
2113 "subqueries": { | 2332 "subqueries": { |
2114 "additionalProperties": { | 2333 "additionalProperties": { |
2115 "format": "int32", | 2334 "format": "int32", |
2116 "type": "integer" | 2335 "type": "integer" |
2117 }, | 2336 }, |
2118 "description": "A mapping of (subquery variable name) -> (su
bquery node id) for cases\nwhere the `description` string of this node reference
s a `SCALAR`\nsubquery contained in the expression subtree rooted at this node.
The\nreferenced `SCALAR` subquery may not necessarily be a direct child of\nthis
node.", | 2337 "description": "A mapping of (subquery variable name) -> (su
bquery node id) for cases\nwhere the `description` string of this node reference
s a `SCALAR`\nsubquery contained in the expression subtree rooted at this node.
The\nreferenced `SCALAR` subquery may not necessarily be a direct child of\nthis
node.", |
2119 "type": "object" | 2338 "type": "object" |
2120 } | 2339 } |
2121 }, | 2340 }, |
2122 "type": "object" | 2341 "type": "object" |
2123 }, | |
2124 "InstanceConfig": { | |
2125 "description": "A possible configuration for a Cloud Spanner instanc
e. Configurations\ndefine the geographic placement of nodes and their replicatio
n.", | |
2126 "id": "InstanceConfig", | |
2127 "properties": { | |
2128 "name": { | |
2129 "description": "A unique identifier for the instance configu
ration. Values\nare of the form\n`projects/<project>/instanceConfigs/a-z*`", | |
2130 "type": "string" | |
2131 }, | |
2132 "displayName": { | |
2133 "description": "The name of this instance configuration as i
t appears in UIs.", | |
2134 "type": "string" | |
2135 } | |
2136 }, | |
2137 "type": "object" | |
2138 }, | |
2139 "UpdateInstanceRequest": { | |
2140 "description": "The request for UpdateInstance.", | |
2141 "id": "UpdateInstanceRequest", | |
2142 "properties": { | |
2143 "fieldMask": { | |
2144 "description": "Required. A mask specifying which fields in
[][google.spanner.admin.instance.v1.UpdateInstanceRequest.instance] should be up
dated.\nThe field mask must always be specified; this prevents any future fields
in\n[][google.spanner.admin.instance.v1.Instance] from being erased accidentall
y by clients that do not know\nabout them.", | |
2145 "format": "google-fieldmask", | |
2146 "type": "string" | |
2147 }, | |
2148 "instance": { | |
2149 "$ref": "Instance", | |
2150 "description": "Required. The instance to update, which must
always include the instance\nname. Otherwise, only fields mentioned in [][goog
le.spanner.admin.instance.v1.UpdateInstanceRequest.field_mask] need be included.
" | |
2151 } | |
2152 }, | |
2153 "type": "object" | |
2154 }, | |
2155 "Empty": { | |
2156 "description": "A generic empty message that you can re-use to avoid
defining duplicated\nempty messages in your APIs. A typical example is to use i
t as the request\nor the response type of an API method. For instance:\n\n se
rvice Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty
);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", | |
2157 "id": "Empty", | |
2158 "properties": {}, | |
2159 "type": "object" | |
2160 }, | |
2161 "TransactionOptions": { | |
2162 "description": "# Transactions\n\n\nEach session can have at most on
e active transaction at a time. After the\nactive transaction is completed, the
session can immediately be\nre-used for the next transaction. It is not necessar
y to create a\nnew session for each transaction.\n\n# Transaction Modes\n\nCloud
Spanner supports two transaction modes:\n\n 1. Locking read-write. This type o
f transaction is the only way\n to write data into Cloud Spanner. These tran
sactions rely on\n pessimistic locking and, if necessary, two-phase commit.\
n Locking read-write transactions may abort, requiring the\n application
to retry.\n\n 2. Snapshot read-only. This transaction type provides guaranteed
\n consistency across several reads, but does not allow\n writes. Snapsh
ot read-only transactions can be configured to\n read at timestamps in the p
ast. Snapshot read-only\n transactions do not need to be committed.\n\nFor t
ransactions that only read, snapshot read-only transactions\nprovide simpler sem
antics and are almost always faster. In\nparticular, read-only transactions do n
ot take locks, so they do\nnot conflict with read-write transactions. As a conse
quence of not\ntaking locks, they also do not abort, so retry loops are not need
ed.\n\nTransactions may only read/write data in a single database. They\nmay, ho
wever, read/write data in different tables within that\ndatabase.\n\n## Locking
Read-Write Transactions\n\nLocking transactions may be used to atomically read-m
odify-write\ndata anywhere in a database. This type of transaction is externally
\nconsistent.\n\nClients should attempt to minimize the amount of time a transac
tion\nis active. Faster transactions commit with higher probability\nand cause l
ess contention. Cloud Spanner attempts to keep read locks\nactive as long as the
transaction continues to do reads, and the\ntransaction has not been terminated
by\nCommit or\nRollback. Long periods of\ninactivity at the client may cause C
loud Spanner to release a\ntransaction's locks and abort it.\n\nReads performed
within a transaction acquire locks on the data\nbeing read. Writes can only be d
one at commit time, after all reads\nhave been completed.\nConceptually, a read-
write transaction consists of zero or more\nreads or SQL queries followed by\nCo
mmit. At any time before\nCommit, the client can send a\nRollback request to abo
rt the\ntransaction.\n\n### Semantics\n\nCloud Spanner can commit the transactio
n if all read locks it acquired\nare still valid at commit time, and it is able
to acquire write\nlocks for all writes. Cloud Spanner can abort the transaction
for any\nreason. If a commit attempt returns `ABORTED`, Cloud Spanner guarantees
\nthat the transaction has not modified any user data in Cloud Spanner.\n\nUnles
s the transaction commits, Cloud Spanner makes no guarantees about\nhow long the
transaction's locks were held for. It is an error to\nuse Cloud Spanner locks f
or any sort of mutual exclusion other than\nbetween Cloud Spanner transactions t
hemselves.\n\n### Retrying Aborted Transactions\n\nWhen a transaction aborts, th
e application can choose to retry the\nwhole transaction again. To maximize the
chances of successfully\ncommitting the retry, the client should execute the ret
ry in the\nsame session as the original attempt. The original session's lock\npr
iority increases with each consecutive abort, meaning that each\nattempt has a s
lightly better chance of success than the previous.\n\nUnder some circumstances
(e.g., many transactions attempting to\nmodify the same row(s)), a transaction c
an abort many times in a\nshort period before successfully committing. Thus, it
is not a good\nidea to cap the number of retries a transaction can attempt;\nins
tead, it is better to limit the total amount of wall time spent\nretrying.\n\n##
# Idle Transactions\n\nA transaction is considered idle if it has no outstanding
reads or\nSQL queries and has not started a read or SQL query within the last 1
0\nseconds. Idle transactions can be aborted by Cloud Spanner so that they\ndon'
t hold on to locks indefinitely. In that case, the commit will\nfail with error
`ABORTED`.\n\nIf this behavior is undesirable, periodically executing a simple\n
SQL query in the transaction (e.g., `SELECT 1`) prevents the\ntransaction from b
ecoming idle.\n\n## Snapshot Read-Only Transactions\n\nSnapshot read-only transa
ctions provides a simpler method than\nlocking read-write transactions for doing
several consistent\nreads. However, this type of transaction does not support w
rites.\n\nSnapshot transactions do not take locks. Instead, they work by\nchoosi
ng a Cloud Spanner timestamp, then executing all reads at that\ntimestamp. Since
they do not acquire locks, they do not block\nconcurrent read-write transaction
s.\n\nUnlike locking read-write transactions, snapshot read-only\ntransactions n
ever abort. They can fail if the chosen read\ntimestamp is garbage collected; ho
wever, the default garbage\ncollection policy is generous enough that most appli
cations do not\nneed to worry about this in practice.\n\nSnapshot read-only tran
sactions do not need to call\nCommit or\nRollback (and in fact are not\npermitte
d to do so).\n\nTo execute a snapshot transaction, the client specifies a timest
amp\nbound, which tells Cloud Spanner how to choose a read timestamp.\n\nThe typ
es of timestamp bound are:\n\n - Strong (the default).\n - Bounded staleness.\
n - Exact staleness.\n\nIf the Cloud Spanner database to be read is geographica
lly distributed,\nstale read-only transactions can execute more quickly than str
ong\nor read-write transaction, because they are able to execute far\nfrom the l
eader replica.\n\nEach type of timestamp bound is discussed in detail below.\n\n
### Strong\n\nStrong reads are guaranteed to see the effects of all transactions
\nthat have committed before the start of the read. Furthermore, all\nrows yield
ed by a single read are consistent with each other -- if\nany part of the read o
bserves a transaction, all parts of the read\nsee the transaction.\n\nStrong rea
ds are not repeatable: two consecutive strong read-only\ntransactions might retu
rn inconsistent results if there are\nconcurrent writes. If consistency across r
eads is required, the\nreads should be executed within a transaction or at an ex
act read\ntimestamp.\n\nSee TransactionOptions.ReadOnly.strong.\n\n### Exact Sta
leness\n\nThese timestamp bounds execute reads at a user-specified\ntimestamp. R
eads at a timestamp are guaranteed to see a consistent\nprefix of the global tra
nsaction history: they observe\nmodifications done by all transactions with a co
mmit timestamp <=\nthe read timestamp, and observe none of the modifications don
e by\ntransactions with a larger commit timestamp. They will block until\nall co
nflicting transactions that may be assigned commit timestamps\n<= the read times
tamp have finished.\n\nThe timestamp can either be expressed as an absolute Clou
d Spanner commit\ntimestamp or a staleness relative to the current time.\n\nThes
e modes do not require a \"negotiation phase\" to pick a\ntimestamp. As a result
, they execute slightly faster than the\nequivalent boundedly stale concurrency
modes. On the other hand,\nboundedly stale reads usually return fresher results.
\n\nSee TransactionOptions.ReadOnly.read_timestamp and\nTransactionOptions.ReadO
nly.exact_staleness.\n\n### Bounded Staleness\n\nBounded staleness modes allow C
loud Spanner to pick the read timestamp,\nsubject to a user-provided staleness b
ound. Cloud Spanner chooses the\nnewest timestamp within the staleness bound tha
t allows execution\nof the reads at the closest available replica without blocki
ng.\n\nAll rows yielded are consistent with each other -- if any part of\nthe re
ad observes a transaction, all parts of the read see the\ntransaction. Boundedly
stale reads are not repeatable: two stale\nreads, even if they use the same sta
leness bound, can execute at\ndifferent timestamps and thus return inconsistent
results.\n\nBoundedly stale reads execute in two phases: the first phase\nnegoti
ates a timestamp among all replicas needed to serve the\nread. In the second pha
se, reads are executed at the negotiated\ntimestamp.\n\nAs a result of the two p
hase execution, bounded staleness reads are\nusually a little slower than compar
able exact staleness\nreads. However, they are typically able to return fresher\
nresults, and are more likely to execute at the closest replica.\n\nBecause the
timestamp negotiation requires up-front knowledge of\nwhich rows will be read, i
t can only be used with single-use\nread-only transactions.\n\nSee TransactionOp
tions.ReadOnly.max_staleness and\nTransactionOptions.ReadOnly.min_read_timestamp
.\n\n### Old Read Timestamps and Garbage Collection\n\nCloud Spanner continuousl
y garbage collects deleted and overwritten data\nin the background to reclaim st
orage space. This process is known\nas \"version GC\". By default, version GC re
claims versions after they\nare one hour old. Because of this, Cloud Spanner can
not perform reads\nat read timestamps more than one hour in the past. This\nrest
riction also applies to in-progress reads and/or SQL queries whose\ntimestamp be
come too old while executing. Reads and SQL queries with\ntoo-old read timestamp
s fail with the error `FAILED_PRECONDITION`.", | |
2163 "id": "TransactionOptions", | |
2164 "properties": { | |
2165 "readOnly": { | |
2166 "$ref": "ReadOnly", | |
2167 "description": "Transaction will not write.\n\nAuthorization
to begin a read-only transaction requires\n`spanner.databases.beginReadOnlyTran
saction` permission\non the `session` resource." | |
2168 }, | |
2169 "readWrite": { | |
2170 "$ref": "ReadWrite", | |
2171 "description": "Transaction may write.\n\nAuthorization to b
egin a read-write transaction requires\n`spanner.databases.beginOrRollbackReadWr
iteTransaction` permission\non the `session` resource." | |
2172 } | |
2173 }, | |
2174 "type": "object" | |
2175 }, | |
2176 "CreateDatabaseRequest": { | |
2177 "description": "The request for CreateDatabase.", | |
2178 "id": "CreateDatabaseRequest", | |
2179 "properties": { | |
2180 "extraStatements": { | |
2181 "description": "An optional list of DDL statements to run in
side the newly created\ndatabase. Statements can create tables, indexes, etc. Th
ese\nstatements execute atomically with the creation of the database:\nif there
is an error in any statement, the database is not created.", | |
2182 "items": { | |
2183 "type": "string" | |
2184 }, | |
2185 "type": "array" | |
2186 }, | |
2187 "createStatement": { | |
2188 "description": "Required. A `CREATE DATABASE` statement, whi
ch specifies the ID of the\nnew database. The database ID must conform to the r
egular expression\n`a-z*[a-z0-9]` and be between 2 and 30 characters in length.\
nIf the database ID is a reserved word or if it contains a hyphen, the\ndatabase
ID must be enclosed in backticks (`` ` ``).", | |
2189 "type": "string" | |
2190 } | |
2191 }, | |
2192 "type": "object" | |
2193 }, | |
2194 "CreateInstanceRequest": { | |
2195 "description": "The request for CreateInstance.", | |
2196 "id": "CreateInstanceRequest", | |
2197 "properties": { | |
2198 "instanceId": { | |
2199 "description": "Required. The ID of the instance to create.
Valid identifiers are of the\nform `a-z*[a-z0-9]` and must be between 6 and 30
characters in\nlength.", | |
2200 "type": "string" | |
2201 }, | |
2202 "instance": { | |
2203 "$ref": "Instance", | |
2204 "description": "Required. The instance to create. The name
may be omitted, but if\nspecified must be `<parent>/instances/<instance_id>`." | |
2205 } | |
2206 }, | |
2207 "type": "object" | |
2208 }, | |
2209 "Condition": { | |
2210 "description": "A condition to be met.", | |
2211 "id": "Condition", | |
2212 "properties": { | |
2213 "op": { | |
2214 "description": "An operator to apply the subject with.", | |
2215 "enum": [ | |
2216 "NO_OP", | |
2217 "EQUALS", | |
2218 "NOT_EQUALS", | |
2219 "IN", | |
2220 "NOT_IN", | |
2221 "DISCHARGED" | |
2222 ], | |
2223 "enumDescriptions": [ | |
2224 "Default no-op.", | |
2225 "DEPRECATED. Use IN instead.", | |
2226 "DEPRECATED. Use NOT_IN instead.", | |
2227 "The condition is true if the subject (or any element of
it if it is\na set) matches any of the supplied values.", | |
2228 "The condition is true if the subject (or every element
of it if it is\na set) matches none of the supplied values.", | |
2229 "Subject is discharged" | |
2230 ], | |
2231 "type": "string" | |
2232 }, | |
2233 "svc": { | |
2234 "description": "Trusted attributes discharged by the service
.", | |
2235 "type": "string" | |
2236 }, | |
2237 "sys": { | |
2238 "description": "Trusted attributes supplied by any service t
hat owns resources and uses\nthe IAM system for access control.", | |
2239 "enum": [ | |
2240 "NO_ATTR", | |
2241 "REGION", | |
2242 "SERVICE", | |
2243 "NAME", | |
2244 "IP" | |
2245 ], | |
2246 "enumDescriptions": [ | |
2247 "Default non-attribute type", | |
2248 "Region of the resource", | |
2249 "Service name", | |
2250 "Resource name", | |
2251 "IP address of the caller" | |
2252 ], | |
2253 "type": "string" | |
2254 }, | |
2255 "value": { | |
2256 "description": "DEPRECATED. Use 'values' instead.", | |
2257 "type": "string" | |
2258 }, | |
2259 "iam": { | |
2260 "description": "Trusted attributes supplied by the IAM syste
m.", | |
2261 "enum": [ | |
2262 "NO_ATTR", | |
2263 "AUTHORITY", | |
2264 "ATTRIBUTION", | |
2265 "SECURITY_REALM", | |
2266 "APPROVER", | |
2267 "JUSTIFICATION_TYPE" | |
2268 ], | |
2269 "enumDescriptions": [ | |
2270 "Default non-attribute.", | |
2271 "Either principal or (if present) authority selector.", | |
2272 "The principal (even if an authority selector is present
), which\nmust only be used for attribution, not authorization.", | |
2273 "Any of the security realms in the IAMContext (go/securi
ty-realms).\nWhen used with IN, the condition indicates \"any of the request's r
ealms\nmatch one of the given values; with NOT_IN, \"none of the realms match\na
ny of the given values\". It is not permitted to grant access based on\nthe *abs
ence* of a realm, so realm conditions can only be used in\na \"positive\" contex
t (e.g., ALLOW/IN or DENY/NOT_IN).", | |
2274 "An approver (distinct from the requester) that has auth
orized this\nrequest.\nWhen used with IN, the condition indicates that one of th
e approvers\nassociated with the request matches the specified principal, or is
a\nmember of the specified group. Approvers can only grant additional\naccess, a
nd are thus only used in a strictly positive context\n(e.g. ALLOW/IN or DENY/NOT
_IN).", | |
2275 "What types of justifications have been supplied with th
is request.\nString values should match enum names from tech.iam.JustificationTy
pe,\ne.g. \"MANUAL_STRING\". It is not permitted to grant access based on\nthe *
absence* of a justification, so justification conditions can only\nbe used in a
\"positive\" context (e.g., ALLOW/IN or DENY/NOT_IN).\n\nMultiple justifications
, e.g., a Buganizer ID and a manually-entered\nreason, are normal and supported.
" | |
2276 ], | |
2277 "type": "string" | |
2278 }, | |
2279 "values": { | |
2280 "description": "The objects of the condition. This is mutual
ly exclusive with 'value'.", | |
2281 "items": { | |
2282 "type": "string" | |
2283 }, | |
2284 "type": "array" | |
2285 } | |
2286 }, | |
2287 "type": "object" | |
2288 }, | |
2289 "AuditLogConfig": { | |
2290 "description": "Provides the configuration for logging a type of per
missions.\nExample:\n\n {\n \"audit_log_configs\": [\n {\n
\"log_type\": \"DATA_READ\",\n \"exempted_members\": [\n
\"user:foo@gmail.com\"\n ]\n },\n {\n \"log_type
\": \"DATA_WRITE\",\n }\n ]\n }\n\nThis enables 'DATA_READ' and '
DATA_WRITE' logging, while exempting\nfoo@gmail.com from DATA_READ logging.", | |
2291 "id": "AuditLogConfig", | |
2292 "properties": { | |
2293 "logType": { | |
2294 "description": "The log type that this config enables.", | |
2295 "enum": [ | |
2296 "LOG_TYPE_UNSPECIFIED", | |
2297 "ADMIN_READ", | |
2298 "DATA_WRITE", | |
2299 "DATA_READ" | |
2300 ], | |
2301 "enumDescriptions": [ | |
2302 "Default case. Should never be this.", | |
2303 "Admin reads. Example: CloudIAM getIamPolicy", | |
2304 "Data writes. Example: CloudSQL Users create", | |
2305 "Data reads. Example: CloudSQL Users list" | |
2306 ], | |
2307 "type": "string" | |
2308 }, | |
2309 "exemptedMembers": { | |
2310 "description": "Specifies the identities that do not cause l
ogging for this type of\npermission.\nFollows the same format of Binding.members
.", | |
2311 "items": { | |
2312 "type": "string" | |
2313 }, | |
2314 "type": "array" | |
2315 } | |
2316 }, | |
2317 "type": "object" | |
2318 }, | |
2319 "ReadOnly": { | |
2320 "description": "Message type to initiate a read-only transaction.", | |
2321 "id": "ReadOnly", | |
2322 "properties": { | |
2323 "minReadTimestamp": { | |
2324 "description": "Executes all reads at a timestamp >= `min_re
ad_timestamp`.\n\nThis is useful for requesting fresher data than some previous\
nread, or data that is fresh enough to observe the effects of some\npreviously c
ommitted transaction whose timestamp is known.\n\nNote that this option can only
be used in single-use transactions.", | |
2325 "format": "google-datetime", | |
2326 "type": "string" | |
2327 }, | |
2328 "maxStaleness": { | |
2329 "description": "Read data at a timestamp >= `NOW - max_stale
ness`\nseconds. Guarantees that all writes that have committed more\nthan the sp
ecified number of seconds ago are visible. Because\nCloud Spanner chooses the ex
act timestamp, this mode works even if\nthe client's local clock is substantiall
y skewed from Cloud Spanner\ncommit timestamps.\n\nUseful for reading the freshe
st data available at a nearby\nreplica, while bounding the possible staleness if
the local\nreplica has fallen behind.\n\nNote that this option can only be used
in single-use\ntransactions.", | |
2330 "format": "google-duration", | |
2331 "type": "string" | |
2332 }, | |
2333 "readTimestamp": { | |
2334 "description": "Executes all reads at the given timestamp. U
nlike other modes,\nreads at a specific timestamp are repeatable; the same read
at\nthe same timestamp always returns the same data. If the\ntimestamp is in the
future, the read will block until the\nspecified timestamp, modulo the read's d
eadline.\n\nUseful for large scale consistent reads such as mapreduces, or\nfor
coordinating many reads against a consistent snapshot of the\ndata.", | |
2335 "format": "google-datetime", | |
2336 "type": "string" | |
2337 }, | |
2338 "returnReadTimestamp": { | |
2339 "description": "If true, the Cloud Spanner-selected read tim
estamp is included in\nthe Transaction message that describes the transaction.", | |
2340 "type": "boolean" | |
2341 }, | |
2342 "exactStaleness": { | |
2343 "description": "Executes all reads at a timestamp that is `e
xact_staleness`\nold. The timestamp is chosen soon after the read is started.\n\
nGuarantees that all writes that have committed more than the\nspecified number
of seconds ago are visible. Because Cloud Spanner\nchooses the exact timestamp,
this mode works even if the client's\nlocal clock is substantially skewed from C
loud Spanner commit\ntimestamps.\n\nUseful for reading at nearby replicas withou
t the distributed\ntimestamp negotiation overhead of `max_staleness`.", | |
2344 "format": "google-duration", | |
2345 "type": "string" | |
2346 }, | |
2347 "strong": { | |
2348 "description": "Read at a timestamp where all previously com
mitted transactions\nare visible.", | |
2349 "type": "boolean" | |
2350 } | |
2351 }, | |
2352 "type": "object" | |
2353 }, | |
2354 "ExecuteSqlRequest": { | |
2355 "description": "The request for ExecuteSql and\nExecuteStreamingSql.
", | |
2356 "id": "ExecuteSqlRequest", | |
2357 "properties": { | |
2358 "paramTypes": { | |
2359 "additionalProperties": { | |
2360 "$ref": "Type" | |
2361 }, | |
2362 "description": "It is not always possible for Cloud Spanner
to infer the right SQL type\nfrom a JSON value. For example, values of type `BY
TES` and values\nof type `STRING` both appear in params as JSON strings.\n\nIn t
hese cases, `param_types` can be used to specify the exact\nSQL type for some or
all of the SQL query parameters. See the\ndefinition of Type for more informati
on\nabout SQL types.", | |
2363 "type": "object" | |
2364 }, | |
2365 "sql": { | |
2366 "description": "Required. The SQL query string.", | |
2367 "type": "string" | |
2368 }, | |
2369 "params": { | |
2370 "additionalProperties": { | |
2371 "description": "Properties of the object.", | |
2372 "type": "any" | |
2373 }, | |
2374 "description": "The SQL query string can contain parameter p
laceholders. A parameter\nplaceholder consists of `'@'` followed by the paramete
r\nname. Parameter names consist of any combination of letters,\nnumbers, and un
derscores.\n\nParameters can appear anywhere that a literal value is expected.
The same\nparameter name can be used more than once, for example:\n `\"WHERE id
> @msg_id AND id < @msg_id + 100\"`\n\nIt is an error to execute an SQL query w
ith unbound parameters.\n\nParameter values are specified using `params`, which
is a JSON\nobject whose keys are parameter names, and whose values are the\ncorr
esponding parameter values.", | |
2375 "type": "object" | |
2376 }, | |
2377 "queryMode": { | |
2378 "description": "Used to control the amount of debugging info
rmation returned in\nResultSetStats.", | |
2379 "enum": [ | |
2380 "NORMAL", | |
2381 "PLAN", | |
2382 "PROFILE" | |
2383 ], | |
2384 "enumDescriptions": [ | |
2385 "The default mode where only the query result, without a
ny information\nabout the query plan is returned.", | |
2386 "This mode returns only the query plan, without any resu
lt rows or\nexecution statistics information.", | |
2387 "This mode returns both the query plan and the execution
statistics along\nwith the result rows." | |
2388 ], | |
2389 "type": "string" | |
2390 }, | |
2391 "transaction": { | |
2392 "$ref": "TransactionSelector", | |
2393 "description": "The transaction to use. If none is provided,
the default is a\ntemporary read-only transaction with strong concurrency." | |
2394 }, | |
2395 "resumeToken": { | |
2396 "description": "If this request is resuming a previously int
errupted SQL query\nexecution, `resume_token` should be copied from the last\nPa
rtialResultSet yielded before the interruption. Doing this\nenables the new SQL
query execution to resume where the last one left\noff. The rest of the request
parameters must exactly match the\nrequest that yielded this token.", | |
2397 "format": "byte", | |
2398 "type": "string" | |
2399 } | |
2400 }, | |
2401 "type": "object" | |
2402 }, | |
2403 "Policy": { | |
2404 "description": "Defines an Identity and Access Management (IAM) poli
cy. It is used to\nspecify access control policies for Cloud Platform resources.
\n\n\nA `Policy` consists of a list of `bindings`. A `Binding` binds a list of\n
`members` to a `role`, where the members can be user accounts, Google groups,\nG
oogle domains, and service accounts. A `role` is a named list of permissions\nde
fined by IAM.\n\n**Example**\n\n {\n \"bindings\": [\n {\n
\"role\": \"roles/owner\",\n \"members\": [\n \"user:mike
@example.com\",\n \"group:admins@example.com\",\n \"domain
:google.com\",\n \"serviceAccount:my-other-app@appspot.gserviceaccoun
t.com\",\n ]\n },\n {\n \"role\": \"roles/viewer
\",\n \"members\": [\"user:sean@example.com\"]\n }\n ]\n
}\n\nFor a description of IAM and its features, see the\n[IAM developer's guide
](https://cloud.google.com/iam).", | |
2405 "id": "Policy", | |
2406 "properties": { | |
2407 "etag": { | |
2408 "description": "`etag` is used for optimistic concurrency co
ntrol as a way to help\nprevent simultaneous updates of a policy from overwritin
g each other.\nIt is strongly suggested that systems make use of the `etag` in t
he\nread-modify-write cycle to perform policy updates in order to avoid race\nco
nditions: An `etag` is returned in the response to `getIamPolicy`, and\nsystems
are expected to put that etag in the request to `setIamPolicy` to\nensure that t
heir change will be applied to the same version of the policy.\n\nIf no `etag` i
s provided in the call to `setIamPolicy`, then the existing\npolicy is overwritt
en blindly.", | |
2409 "format": "byte", | |
2410 "type": "string" | |
2411 }, | |
2412 "iamOwned": { | |
2413 "type": "boolean" | |
2414 }, | |
2415 "rules": { | |
2416 "description": "If more than one rule is specified, the rule
s are applied in the following\nmanner:\n- All matching LOG rules are always app
lied.\n- If any DENY/DENY_WITH_LOG rule matches, permission is denied.\n Loggin
g will be applied if one or more matching rule requires logging.\n- Otherwise, i
f any ALLOW/ALLOW_WITH_LOG rule matches, permission is\n granted.\n Logging wi
ll be applied if one or more matching rule requires logging.\n- Otherwise, if no
rule applies, permission is denied.", | |
2417 "items": { | |
2418 "$ref": "Rule" | |
2419 }, | |
2420 "type": "array" | |
2421 }, | |
2422 "version": { | |
2423 "description": "Version of the `Policy`. The default version
is 0.", | |
2424 "format": "int32", | |
2425 "type": "integer" | |
2426 }, | |
2427 "auditConfigs": { | |
2428 "description": "Specifies cloud audit logging configuration
for this policy.", | |
2429 "items": { | |
2430 "$ref": "AuditConfig" | |
2431 }, | |
2432 "type": "array" | |
2433 }, | |
2434 "bindings": { | |
2435 "description": "Associates a list of `members` to a `role`.\
n`bindings` with no members will result in an error.", | |
2436 "items": { | |
2437 "$ref": "Binding" | |
2438 }, | |
2439 "type": "array" | |
2440 } | |
2441 }, | |
2442 "type": "object" | |
2443 }, | |
2444 "ReadRequest": { | |
2445 "description": "The request for Read and\nStreamingRead.", | |
2446 "id": "ReadRequest", | |
2447 "properties": { | |
2448 "index": { | |
2449 "description": "If non-empty, the name of an index on table.
This index is\nused instead of the table primary key when interpreting key_set\
nand sorting result rows. See key_set for further information.", | |
2450 "type": "string" | |
2451 }, | |
2452 "keySet": { | |
2453 "$ref": "KeySet", | |
2454 "description": "Required. `key_set` identifies the rows to b
e yielded. `key_set` names the\nprimary keys of the rows in table to be yielded,
unless index\nis present. If index is present, then key_set instead names\ninde
x keys in index.\n\nRows are yielded in table primary key order (if index is emp
ty)\nor index key order (if index is non-empty).\n\nIt is not an error for the `
key_set` to name rows that do not\nexist in the database. Read yields nothing fo
r nonexistent rows." | |
2455 }, | |
2456 "columns": { | |
2457 "description": "The columns of table to be returned for each
row matching\nthis request.", | |
2458 "items": { | |
2459 "type": "string" | |
2460 }, | |
2461 "type": "array" | |
2462 }, | |
2463 "transaction": { | |
2464 "$ref": "TransactionSelector", | |
2465 "description": "The transaction to use. If none is provided,
the default is a\ntemporary read-only transaction with strong concurrency." | |
2466 }, | |
2467 "resumeToken": { | |
2468 "description": "If this request is resuming a previously int
errupted read,\n`resume_token` should be copied from the last\nPartialResultSet
yielded before the interruption. Doing this\nenables the new read to resume wher
e the last read left off. The\nrest of the request parameters must exactly match
the request\nthat yielded this token.", | |
2469 "format": "byte", | |
2470 "type": "string" | |
2471 }, | |
2472 "table": { | |
2473 "description": "Required. The name of the table in the datab
ase to be read.", | |
2474 "type": "string" | |
2475 }, | |
2476 "limit": { | |
2477 "description": "If greater than zero, only the first `limit`
rows are yielded. If `limit`\nis zero, the default is no limit.", | |
2478 "format": "int64", | |
2479 "type": "string" | |
2480 } | |
2481 }, | |
2482 "type": "object" | |
2483 }, | |
2484 "Write": { | |
2485 "description": "Arguments to insert, update, insert_or_update, and\n
replace operations.", | |
2486 "id": "Write", | |
2487 "properties": { | |
2488 "table": { | |
2489 "description": "Required. The table whose rows will be writt
en.", | |
2490 "type": "string" | |
2491 }, | |
2492 "values": { | |
2493 "description": "The values to be written. `values` can conta
in more than one\nlist of values. If it does, then multiple rows are written, on
e\nfor each entry in `values`. Each list in `values` must have\nexactly as many
entries as there are entries in columns\nabove. Sending multiple lists is equiva
lent to sending multiple\n`Mutation`s, each containing one `values` entry and re
peating\ntable and columns. Individual values in each list are\nencoded as descr
ibed here.", | |
2494 "items": { | |
2495 "items": { | |
2496 "type": "any" | |
2497 }, | |
2498 "type": "array" | |
2499 }, | |
2500 "type": "array" | |
2501 }, | |
2502 "columns": { | |
2503 "description": "The names of the columns in table to be writ
ten.\n\nThe list of columns must contain enough columns to allow\nCloud Spanner
to derive values for all primary key columns in the\nrow(s) to be modified.", | |
2504 "items": { | |
2505 "type": "string" | |
2506 }, | |
2507 "type": "array" | |
2508 } | |
2509 }, | |
2510 "type": "object" | |
2511 }, | |
2512 "ReadWrite": { | |
2513 "description": "Message type to initiate a read-write transaction. C
urrently this\ntransaction type has no options.", | |
2514 "id": "ReadWrite", | |
2515 "properties": {}, | |
2516 "type": "object" | |
2517 }, | |
2518 "DataAccessOptions": { | |
2519 "description": "Write a Data Access (Gin) log", | |
2520 "id": "DataAccessOptions", | |
2521 "properties": {}, | |
2522 "type": "object" | |
2523 }, | |
2524 "Operation": { | |
2525 "description": "This resource represents a long-running operation th
at is the result of a\nnetwork API call.", | |
2526 "id": "Operation", | |
2527 "properties": { | |
2528 "metadata": { | |
2529 "additionalProperties": { | |
2530 "description": "Properties of the object. Contains field
@type with type URL.", | |
2531 "type": "any" | |
2532 }, | |
2533 "description": "Service-specific metadata associated with th
e operation. It typically\ncontains progress information and common metadata su
ch as create time.\nSome services might not provide such metadata. Any method t
hat returns a\nlong-running operation should document the metadata type, if any.
", | |
2534 "type": "object" | |
2535 }, | |
2536 "done": { | |
2537 "description": "If the value is `false`, it means the operat
ion is still in progress.\nIf true, the operation is completed, and either `erro
r` or `response` is\navailable.", | |
2538 "type": "boolean" | |
2539 }, | |
2540 "response": { | |
2541 "additionalProperties": { | |
2542 "description": "Properties of the object. Contains field
@type with type URL.", | |
2543 "type": "any" | |
2544 }, | |
2545 "description": "The normal response of the operation in case
of success. If the original\nmethod returns no data on success, such as `Delet
e`, the response is\n`google.protobuf.Empty`. If the original method is standar
d\n`Get`/`Create`/`Update`, the response should be the resource. For other\nmet
hods, the response should have the type `XxxResponse`, where `Xxx`\nis the origi
nal method name. For example, if the original method name\nis `TakeSnapshot()`,
the inferred response type is\n`TakeSnapshotResponse`.", | |
2546 "type": "object" | |
2547 }, | |
2548 "name": { | |
2549 "description": "The server-assigned name, which is only uniq
ue within the same service that\noriginally returns it. If you use the default H
TTP mapping, the\n`name` should have the format of `operations/some/unique/name`
.", | |
2550 "type": "string" | |
2551 }, | |
2552 "error": { | |
2553 "$ref": "Status", | |
2554 "description": "The error result of the operation in case of
failure or cancellation." | |
2555 } | |
2556 }, | |
2557 "type": "object" | |
2558 }, | |
2559 "ResultSet": { | |
2560 "description": "Results from Read or\nExecuteSql.", | |
2561 "id": "ResultSet", | |
2562 "properties": { | |
2563 "metadata": { | |
2564 "$ref": "ResultSetMetadata", | |
2565 "description": "Metadata about the result set, such as row t
ype information." | |
2566 }, | |
2567 "stats": { | |
2568 "$ref": "ResultSetStats", | |
2569 "description": "Query plan and execution statistics for the
query that produced this\nresult set. These can be requested by setting\nExecute
SqlRequest.query_mode." | |
2570 }, | |
2571 "rows": { | |
2572 "description": "Each element in `rows` is a row whose format
is defined by\nmetadata.row_type. The ith element\nin each row matches the ith
field in\nmetadata.row_type. Elements are\nencoded based on type as described\nh
ere.", | |
2573 "items": { | |
2574 "items": { | |
2575 "type": "any" | |
2576 }, | |
2577 "type": "array" | |
2578 }, | |
2579 "type": "array" | |
2580 } | |
2581 }, | |
2582 "type": "object" | |
2583 }, | |
2584 "Status": { | |
2585 "description": "The `Status` type defines a logical error model that
is suitable for different\nprogramming environments, including REST APIs and RP
C APIs. It is used by\n[gRPC](https://github.com/grpc). The error model is desig
ned to be:\n\n- Simple to use and understand for most users\n- Flexible enough t
o meet unexpected needs\n\n# Overview\n\nThe `Status` message contains three pie
ces of data: error code, error message,\nand error details. The error code shoul
d be an enum value of\ngoogle.rpc.Code, but it may accept additional error codes
if needed. The\nerror message should be a developer-facing English message tha
t helps\ndevelopers *understand* and *resolve* the error. If a localized user-fa
cing\nerror message is needed, put the localized message in the error details or
\nlocalize it in the client. The optional error details may contain arbitrary\ni
nformation about the error. There is a predefined set of error detail types\nin
the package `google.rpc` that can be used for common error conditions.\n\n# Lang
uage mapping\n\nThe `Status` message is the logical representation of the error
model, but it\nis not necessarily the actual wire format. When the `Status` mess
age is\nexposed in different client libraries and different wire protocols, it c
an be\nmapped differently. For example, it will likely be mapped to some excepti
ons\nin Java, but more likely mapped to some error codes in C.\n\n# Other uses\n
\nThe error model and the `Status` message can be used in a variety of\nenvironm
ents, either with or without APIs, to provide a\nconsistent developer experience
across different environments.\n\nExample uses of this error model include:\n\n
- Partial errors. If a service needs to return partial errors to the client,\n
it may embed the `Status` in the normal response to indicate the partial\n
errors.\n\n- Workflow errors. A typical workflow has multiple steps. Each step m
ay\n have a `Status` message for error reporting.\n\n- Batch operations. If a
client uses batch request and batch response, the\n `Status` message should
be used directly inside batch response, one for\n each error sub-response.\n\
n- Asynchronous operations. If an API call embeds asynchronous operation\n re
sults in its response, the status of those operations should be\n represented
directly using the `Status` message.\n\n- Logging. If some API errors are store
d in logs, the message `Status` could\n be used directly after any stripping
needed for security/privacy reasons.", | |
2586 "id": "Status", | |
2587 "properties": { | |
2588 "details": { | |
2589 "description": "A list of messages that carry the error deta
ils. There is a common set of\nmessage types for APIs to use.", | |
2590 "items": { | |
2591 "additionalProperties": { | |
2592 "description": "Properties of the object. Contains f
ield @type with type URL.", | |
2593 "type": "any" | |
2594 }, | |
2595 "type": "object" | |
2596 }, | |
2597 "type": "array" | |
2598 }, | |
2599 "code": { | |
2600 "description": "The status code, which should be an enum val
ue of google.rpc.Code.", | |
2601 "format": "int32", | |
2602 "type": "integer" | |
2603 }, | |
2604 "message": { | |
2605 "description": "A developer-facing error message, which shou
ld be in English. Any\nuser-facing error message should be localized and sent in
the\ngoogle.rpc.Status.details field, or localized by the client.", | |
2606 "type": "string" | |
2607 } | |
2608 }, | |
2609 "type": "object" | |
2610 }, | |
2611 "Binding": { | |
2612 "description": "Associates `members` with a `role`.", | |
2613 "id": "Binding", | |
2614 "properties": { | |
2615 "role": { | |
2616 "description": "Role that is assigned to `members`.\nFor exa
mple, `roles/viewer`, `roles/editor`, or `roles/owner`.\nRequired", | |
2617 "type": "string" | |
2618 }, | |
2619 "condition": { | |
2620 "$ref": "Expr", | |
2621 "description": "The condition that is associated with this b
inding.\nNOTE: an unsatisfied condition will not allow user access via current\n
binding. Different bindings, including their conditions, are examined\nindepende
ntly.\nThis field is GOOGLE_INTERNAL." | |
2622 }, | |
2623 "members": { | |
2624 "description": "Specifies the identities requesting access f
or a Cloud Platform resource.\n`members` can have the following values:\n\n* `al
lUsers`: A special identifier that represents anyone who is\n on the internet;
with or without a Google account.\n\n* `allAuthenticatedUsers`: A special ident
ifier that represents anyone\n who is authenticated with a Google account or a
service account.\n\n* `user:{emailid}`: An email address that represents a spec
ific Google\n account. For example, `alice@gmail.com` or `joe@example.com`.\n\
n\n* `serviceAccount:{emailid}`: An email address that represents a service\n
account. For example, `my-other-app@appspot.gserviceaccount.com`.\n\n* `group:{e
mailid}`: An email address that represents a Google group.\n For example, `adm
ins@example.com`.\n\n\n* `domain:{domain}`: A Google Apps domain name that repre
sents all the\n users of that domain. For example, `google.com` or `example.co
m`.\n\n", | |
2625 "items": { | |
2626 "type": "string" | |
2627 }, | |
2628 "type": "array" | |
2629 } | |
2630 }, | |
2631 "type": "object" | |
2632 }, | |
2633 "UpdateDatabaseDdlRequest": { | |
2634 "description": "Enqueues the given DDL statements to be applied, in
order but not\nnecessarily all at once, to the database schema at some point (or
\npoints) in the future. The server checks that the statements\nare executable (
syntactically valid, name tables that exist, etc.)\nbefore enqueueing them, but
they may still fail upon\nlater execution (e.g., if a statement from another bat
ch of\nstatements is applied first and it conflicts in some way, or if\nthere is
some data-related problem like a `NULL` value in a column to\nwhich `NOT NULL`
would be added). If a statement fails, all\nsubsequent statements in the batch a
re automatically cancelled.\n\nEach batch of statements is assigned a name which
can be used with\nthe Operations API to monitor\nprogress. See the\noperation_i
d field for more\ndetails.", | |
2635 "id": "UpdateDatabaseDdlRequest", | |
2636 "properties": { | |
2637 "statements": { | |
2638 "description": "DDL statements to be applied to the database
.", | |
2639 "items": { | |
2640 "type": "string" | |
2641 }, | |
2642 "type": "array" | |
2643 }, | |
2644 "operationId": { | |
2645 "description": "If empty, the new update request is assigned
an\nautomatically-generated operation ID. Otherwise, `operation_id`\nis used to
construct the name of the resulting\nOperation.\n\nSpecifying an explicit opera
tion ID simplifies determining\nwhether the statements were executed in the even
t that the\nUpdateDatabaseDdl call is replayed,\nor the return value is otherwis
e lost: the database and\n`operation_id` fields can be combined to form the\nnam
e of the resulting\nlongrunning.Operation: `<database>/operations/<operation_id>
`.\n\n`operation_id` should be unique within the database, and must be\na valid
identifier: `a-z*`. Note that\nautomatically-generated operation IDs always begi
n with an\nunderscore. If the named operation already exists,\nUpdateDatabaseDdl
returns\n`ALREADY_EXISTS`.", | |
2646 "type": "string" | |
2647 } | |
2648 }, | |
2649 "type": "object" | |
2650 }, | |
2651 "PartialResultSet": { | |
2652 "description": "Partial results from a streaming read or SQL query.
Streaming reads and\nSQL queries better tolerate large result sets, large rows,
and large\nvalues, but are a little trickier to consume.", | |
2653 "id": "PartialResultSet", | |
2654 "properties": { | |
2655 "values": { | |
2656 "description": "A streamed result set consists of a stream o
f values, which might\nbe split into many `PartialResultSet` messages to accommo
date\nlarge rows and/or large values. Every N complete values defines a\nrow, wh
ere N is equal to the number of entries in\nmetadata.row_type.fields.\n\nMost va
lues are encoded based on type as described\nhere.\n\nIt is possible that the la
st value in values is \"chunked\",\nmeaning that the rest of the value is sent i
n subsequent\n`PartialResultSet`(s). This is denoted by the chunked_value\nfield
. Two or more chunked values can be merged to form a\ncomplete value as follows:
\n\n * `bool/number/null`: cannot be chunked\n * `string`: concatenate the str
ings\n * `list`: concatenate the lists. If the last element in a list is a\n
`string`, `list`, or `object`, merge it with the first element in\n the next
list by applying these rules recursively.\n * `object`: concatenate the (field
name, field value) pairs. If a\n field name is duplicated, then apply these
rules recursively\n to merge the field values.\n\nSome examples of merging:\n
\n # Strings are concatenated.\n \"foo\", \"bar\" => \"foobar\"\n\n # L
ists of non-strings are concatenated.\n [2, 3], [4] => [2, 3, 4]\n\n # Lis
ts are concatenated, but the last and first elements are merged\n # because t
hey are strings.\n [\"a\", \"b\"], [\"c\", \"d\"] => [\"a\", \"bc\", \"d\"]\n
\n # Lists are concatenated, but the last and first elements are merged\n
# because they are lists. Recursively, the last and first elements\n # of the
inner lists are merged because they are strings.\n [\"a\", [\"b\", \"c\"]],
[[\"d\"], \"e\"] => [\"a\", [\"b\", \"cd\"], \"e\"]\n\n # Non-overlapping obj
ect fields are combined.\n {\"a\": \"1\"}, {\"b\": \"2\"} => {\"a\": \"1\", \
"b\": 2\"}\n\n # Overlapping object fields are merged.\n {\"a\": \"1\"}, {
\"a\": \"2\"} => {\"a\": \"12\"}\n\n # Examples of merging objects containing
lists of strings.\n {\"a\": [\"1\"]}, {\"a\": [\"2\"]} => {\"a\": [\"12\"]}\
n\nFor a more complete example, suppose a streaming SQL query is\nyielding a res
ult set whose rows contain a single string\nfield. The following `PartialResultS
et`s might be yielded:\n\n {\n \"metadata\": { ... }\n \"values\":
[\"Hello\", \"W\"]\n \"chunked_value\": true\n \"resume_token\": \"Af6
5...\"\n }\n {\n \"values\": [\"orl\"]\n \"chunked_value\": true
\n \"resume_token\": \"Bqp2...\"\n }\n {\n \"values\": [\"d\"]\n
\"resume_token\": \"Zx1B...\"\n }\n\nThis sequence of `PartialResultSet
`s encodes two rows, one\ncontaining the field value `\"Hello\"`, and a second c
ontaining the\nfield value `\"World\" = \"W\" + \"orl\" + \"d\"`.", | |
2657 "items": { | |
2658 "type": "any" | |
2659 }, | |
2660 "type": "array" | |
2661 }, | |
2662 "metadata": { | |
2663 "$ref": "ResultSetMetadata", | |
2664 "description": "Metadata about the result set, such as row t
ype information.\nOnly present in the first response." | |
2665 }, | |
2666 "resumeToken": { | |
2667 "description": "Streaming calls might be interrupted for a v
ariety of reasons, such\nas TCP connection loss. If this occurs, the stream of r
esults can\nbe resumed by re-sending the original request and including\n`resume
_token`. Note that executing any other transaction in the\nsame session invalida
tes the token.", | |
2668 "format": "byte", | |
2669 "type": "string" | |
2670 }, | |
2671 "stats": { | |
2672 "$ref": "ResultSetStats", | |
2673 "description": "Query plan and execution statistics for the
query that produced this\nstreaming result set. These can be requested by settin
g\nExecuteSqlRequest.query_mode and are sent\nonly once with the last response i
n the stream." | |
2674 }, | |
2675 "chunkedValue": { | |
2676 "description": "If true, then the final value in values is c
hunked, and must\nbe combined with more values from subsequent `PartialResultSet
`s\nto obtain a complete field value.", | |
2677 "type": "boolean" | |
2678 } | |
2679 }, | |
2680 "type": "object" | |
2681 } | 2342 } |
2682 }, | 2343 }, |
2683 "servicePath": "", | 2344 "servicePath": "", |
2684 "title": "Cloud Spanner API", | 2345 "title": "Cloud Spanner API", |
2685 "version": "v1" | 2346 "version": "v1" |
2686 } | 2347 } |
OLD | NEW |