blob: 0c0424fdad70927868e8b2adc65229f2624d4024 [file] [log] [blame]
Bu Sun Kim65020912020-05-20 12:08:20 -07001<html><body>
2<style>
3
4body, h1, h2, h3, div, span, p, pre, a {
5 margin: 0;
6 padding: 0;
7 border: 0;
8 font-weight: inherit;
9 font-style: inherit;
10 font-size: 100%;
11 font-family: inherit;
12 vertical-align: baseline;
13}
14
15body {
16 font-size: 13px;
17 padding: 1em;
18}
19
20h1 {
21 font-size: 26px;
22 margin-bottom: 1em;
23}
24
25h2 {
26 font-size: 24px;
27 margin-bottom: 1em;
28}
29
30h3 {
31 font-size: 20px;
32 margin-bottom: 1em;
33 margin-top: 1em;
34}
35
36pre, code {
37 line-height: 1.5;
38 font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
39}
40
41pre {
42 margin-top: 0.5em;
43}
44
45h1, h2, h3, p {
46 font-family: Arial, sans serif;
47}
48
49h1, h2, h3 {
50 border-bottom: solid #CCC 1px;
51}
52
53.toc_element {
54 margin-top: 0.5em;
55}
56
57.firstline {
58 margin-left: 2 em;
59}
60
61.method {
62 margin-top: 1em;
63 border: solid 1px #CCC;
64 padding: 1em;
65 background: #EEE;
66}
67
68.details {
69 font-weight: bold;
70 font-size: 14px;
71}
72
73</style>
74
75<h1><a href="bigtableadmin_v2.html">Cloud Bigtable Admin API</a> . <a href="bigtableadmin_v2.projects.html">projects</a> . <a href="bigtableadmin_v2.projects.instances.html">instances</a> . <a href="bigtableadmin_v2.projects.instances.clusters.html">clusters</a> . <a href="bigtableadmin_v2.projects.instances.clusters.backups.html">backups</a></h1>
76<h2>Instance Methods</h2>
77<p class="toc_element">
78 <code><a href="#getIamPolicy">getIamPolicy(resource, body=None, x__xgafv=None)</a></code></p>
79<p class="firstline">Gets the access control policy for a Table resource.</p>
80<p class="toc_element">
81 <code><a href="#setIamPolicy">setIamPolicy(resource, body=None, x__xgafv=None)</a></code></p>
82<p class="firstline">Sets the access control policy on a Table resource.</p>
83<p class="toc_element">
84 <code><a href="#testIamPermissions">testIamPermissions(resource, body=None, x__xgafv=None)</a></code></p>
85<p class="firstline">Returns permissions that the caller has on the specified table resource.</p>
86<h3>Method Details</h3>
87<div class="method">
88 <code class="details" id="getIamPolicy">getIamPolicy(resource, body=None, x__xgafv=None)</code>
89 <pre>Gets the access control policy for a Table resource.
90Returns an empty policy if the resource exists but does not have a policy
91set.
92
93Args:
94 resource: string, REQUIRED: The resource for which the policy is being requested.
95See the operation documentation for the appropriate value for this field. (required)
96 body: object, The request body.
97 The object takes the form of:
98
99{ # Request message for `GetIamPolicy` method.
100 &quot;options&quot;: { # Encapsulates settings provided to GetIamPolicy. # OPTIONAL: A `GetPolicyOptions` object for specifying options to
101 # `GetIamPolicy`. This field is only used by Cloud IAM.
102 &quot;requestedPolicyVersion&quot;: 42, # Optional. The policy format version to be returned.
103 #
104 # Valid values are 0, 1, and 3. Requests specifying an invalid value will be
105 # rejected.
106 #
107 # Requests for policies with any conditional bindings must specify version 3.
108 # Policies without any conditional bindings may specify any valid value or
109 # leave the field unset.
110 },
111 }
112
113 x__xgafv: string, V1 error format.
114 Allowed values
115 1 - v1 error format
116 2 - v2 error format
117
118Returns:
119 An object of the form:
120
121 { # An Identity and Access Management (IAM) policy, which specifies access
122 # controls for Google Cloud resources.
123 #
124 #
125 # A `Policy` is a collection of `bindings`. A `binding` binds one or more
126 # `members` to a single `role`. Members can be user accounts, service accounts,
127 # Google groups, and domains (such as G Suite). A `role` is a named list of
128 # permissions; each `role` can be an IAM predefined role or a user-created
129 # custom role.
130 #
131 # Optionally, a `binding` can specify a `condition`, which is a logical
132 # expression that allows access to a resource only if the expression evaluates
133 # to `true`. A condition can add constraints based on attributes of the
134 # request, the resource, or both.
135 #
136 # **JSON example:**
137 #
138 # {
139 # &quot;bindings&quot;: [
140 # {
141 # &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;,
142 # &quot;members&quot;: [
143 # &quot;user:mike@example.com&quot;,
144 # &quot;group:admins@example.com&quot;,
145 # &quot;domain:google.com&quot;,
146 # &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot;
147 # ]
148 # },
149 # {
150 # &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;,
151 # &quot;members&quot;: [&quot;user:eve@example.com&quot;],
152 # &quot;condition&quot;: {
153 # &quot;title&quot;: &quot;expirable access&quot;,
154 # &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;,
155 # &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;,
156 # }
157 # }
158 # ],
159 # &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;,
160 # &quot;version&quot;: 3
161 # }
162 #
163 # **YAML example:**
164 #
165 # bindings:
166 # - members:
167 # - user:mike@example.com
168 # - group:admins@example.com
169 # - domain:google.com
170 # - serviceAccount:my-project-id@appspot.gserviceaccount.com
171 # role: roles/resourcemanager.organizationAdmin
172 # - members:
173 # - user:eve@example.com
174 # role: roles/resourcemanager.organizationViewer
175 # condition:
176 # title: expirable access
177 # description: Does not grant access after Sep 2020
178 # expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)
179 # - etag: BwWWja0YfJA=
180 # - version: 3
181 #
182 # For a description of IAM and its features, see the
183 # [IAM documentation](https://cloud.google.com/iam/docs/).
184 &quot;etag&quot;: &quot;A String&quot;, # `etag` is used for optimistic concurrency control as a way to help
185 # prevent simultaneous updates of a policy from overwriting each other.
186 # It is strongly suggested that systems make use of the `etag` in the
187 # read-modify-write cycle to perform policy updates in order to avoid race
188 # conditions: An `etag` is returned in the response to `getIamPolicy`, and
189 # systems are expected to put that etag in the request to `setIamPolicy` to
190 # ensure that their change will be applied to the same version of the policy.
191 #
192 # **Important:** If you use IAM Conditions, you must include the `etag` field
193 # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
194 # you to overwrite a version `3` policy with a version `1` policy, and all of
195 # the conditions in the version `3` policy are lost.
196 &quot;version&quot;: 42, # Specifies the format of the policy.
197 #
198 # Valid values are `0`, `1`, and `3`. Requests that specify an invalid value
199 # are rejected.
200 #
201 # Any operation that affects conditional role bindings must specify version
202 # `3`. This requirement applies to the following operations:
203 #
204 # * Getting a policy that includes a conditional role binding
205 # * Adding a conditional role binding to a policy
206 # * Changing a conditional role binding in a policy
207 # * Removing any role binding, with or without a condition, from a policy
208 # that includes conditions
209 #
210 # **Important:** If you use IAM Conditions, you must include the `etag` field
211 # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
212 # you to overwrite a version `3` policy with a version `1` policy, and all of
213 # the conditions in the version `3` policy are lost.
214 #
215 # If a policy does not include any conditions, operations on that policy may
216 # specify any valid version or leave the field unset.
217 &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
218 { # Specifies the audit configuration for a service.
219 # The configuration determines which permission types are logged, and what
220 # identities, if any, are exempted from logging.
221 # An AuditConfig must have one or more AuditLogConfigs.
222 #
223 # If there are AuditConfigs for both `allServices` and a specific service,
224 # the union of the two AuditConfigs is used for that service: the log_types
225 # specified in each AuditConfig are enabled, and the exempted_members in each
226 # AuditLogConfig are exempted.
227 #
228 # Example Policy with multiple AuditConfigs:
229 #
230 # {
231 # &quot;audit_configs&quot;: [
232 # {
233 # &quot;service&quot;: &quot;allServices&quot;
234 # &quot;audit_log_configs&quot;: [
235 # {
236 # &quot;log_type&quot;: &quot;DATA_READ&quot;,
237 # &quot;exempted_members&quot;: [
238 # &quot;user:jose@example.com&quot;
239 # ]
240 # },
241 # {
242 # &quot;log_type&quot;: &quot;DATA_WRITE&quot;,
243 # },
244 # {
245 # &quot;log_type&quot;: &quot;ADMIN_READ&quot;,
246 # }
247 # ]
248 # },
249 # {
250 # &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;
251 # &quot;audit_log_configs&quot;: [
252 # {
253 # &quot;log_type&quot;: &quot;DATA_READ&quot;,
254 # },
255 # {
256 # &quot;log_type&quot;: &quot;DATA_WRITE&quot;,
257 # &quot;exempted_members&quot;: [
258 # &quot;user:aliya@example.com&quot;
259 # ]
260 # }
261 # ]
262 # }
263 # ]
264 # }
265 #
266 # For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
267 # logging. It also exempts jose@example.com from DATA_READ logging, and
268 # aliya@example.com from DATA_WRITE logging.
269 &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging.
270 # For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
271 # `allServices` is a special value that covers all services.
272 &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
273 { # Provides the configuration for logging a type of permissions.
274 # Example:
275 #
276 # {
277 # &quot;audit_log_configs&quot;: [
278 # {
279 # &quot;log_type&quot;: &quot;DATA_READ&quot;,
280 # &quot;exempted_members&quot;: [
281 # &quot;user:jose@example.com&quot;
282 # ]
283 # },
284 # {
285 # &quot;log_type&quot;: &quot;DATA_WRITE&quot;,
286 # }
287 # ]
288 # }
289 #
290 # This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting
291 # jose@example.com from DATA_READ logging.
292 &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of
293 # permission.
294 # Follows the same format of Binding.members.
295 &quot;A String&quot;,
296 ],
297 &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
298 },
299 ],
300 },
301 ],
302 &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a
303 # `condition` that determines how and when the `bindings` are applied. Each
304 # of the `bindings` must contain at least one member.
305 { # Associates `members` with a `role`.
306 &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) # The condition that is associated with this binding.
307 # NOTE: An unsatisfied condition will not allow user access via current
308 # binding. Different bindings, including their conditions, are examined
309 # independently.
310 # syntax. CEL is a C-like expression language. The syntax and semantics of CEL
311 # are documented at https://github.com/google/cel-spec.
312 #
313 # Example (Comparison):
314 #
315 # title: &quot;Summary size limit&quot;
316 # description: &quot;Determines if a summary is less than 100 chars&quot;
317 # expression: &quot;document.summary.size() &lt; 100&quot;
318 #
319 # Example (Equality):
320 #
321 # title: &quot;Requestor is owner&quot;
322 # description: &quot;Determines if requestor is the document owner&quot;
323 # expression: &quot;document.owner == request.auth.claims.email&quot;
324 #
325 # Example (Logic):
326 #
327 # title: &quot;Public documents&quot;
328 # description: &quot;Determine whether the document should be publicly visible&quot;
329 # expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot;
330 #
331 # Example (Data Manipulation):
332 #
333 # title: &quot;Notification string&quot;
334 # description: &quot;Create a notification string with a timestamp.&quot;
335 # expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot;
336 #
337 # The exact variables and functions that may be referenced within an expression
338 # are determined by the service that evaluates it. See the service
339 # documentation for additional information.
340 &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which
341 # describes the expression, e.g. when hovered over it in a UI.
342 &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language
343 # syntax.
344 &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing
345 # its purpose. This can be used e.g. in UIs which allow to enter the
346 # expression.
347 &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error
348 # reporting, e.g. a file name and a position in the file.
349 },
350 &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource.
351 # `members` can have the following values:
352 #
353 # * `allUsers`: A special identifier that represents anyone who is
354 # on the internet; with or without a Google account.
355 #
356 # * `allAuthenticatedUsers`: A special identifier that represents anyone
357 # who is authenticated with a Google account or a service account.
358 #
359 # * `user:{emailid}`: An email address that represents a specific Google
360 # account. For example, `alice@example.com` .
361 #
362 #
363 # * `serviceAccount:{emailid}`: An email address that represents a service
364 # account. For example, `my-other-app@appspot.gserviceaccount.com`.
365 #
366 # * `group:{emailid}`: An email address that represents a Google group.
367 # For example, `admins@example.com`.
368 #
369 # * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique
370 # identifier) representing a user that has been recently deleted. For
371 # example, `alice@example.com?uid=123456789012345678901`. If the user is
372 # recovered, this value reverts to `user:{emailid}` and the recovered user
373 # retains the role in the binding.
374 #
375 # * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus
376 # unique identifier) representing a service account that has been recently
377 # deleted. For example,
378 # `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
379 # If the service account is undeleted, this value reverts to
380 # `serviceAccount:{emailid}` and the undeleted service account retains the
381 # role in the binding.
382 #
383 # * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique
384 # identifier) representing a Google group that has been recently
385 # deleted. For example, `admins@example.com?uid=123456789012345678901`. If
386 # the group is recovered, this value reverts to `group:{emailid}` and the
387 # recovered group retains the role in the binding.
388 #
389 #
390 # * `domain:{domain}`: The G Suite domain (primary) that represents all the
391 # users of that domain. For example, `google.com` or `example.com`.
392 #
393 &quot;A String&quot;,
394 ],
395 &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`.
396 # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
397 },
398 ],
399 }</pre>
400</div>
401
402<div class="method">
403 <code class="details" id="setIamPolicy">setIamPolicy(resource, body=None, x__xgafv=None)</code>
404 <pre>Sets the access control policy on a Table resource.
405Replaces any existing policy.
406
407Args:
408 resource: string, REQUIRED: The resource for which the policy is being specified.
409See the operation documentation for the appropriate value for this field. (required)
410 body: object, The request body.
411 The object takes the form of:
412
413{ # Request message for `SetIamPolicy` method.
414 &quot;policy&quot;: { # An Identity and Access Management (IAM) policy, which specifies access # REQUIRED: The complete policy to be applied to the `resource`. The size of
415 # the policy is limited to a few 10s of KB. An empty policy is a
416 # valid policy but certain Cloud Platform services (such as Projects)
417 # might reject them.
418 # controls for Google Cloud resources.
419 #
420 #
421 # A `Policy` is a collection of `bindings`. A `binding` binds one or more
422 # `members` to a single `role`. Members can be user accounts, service accounts,
423 # Google groups, and domains (such as G Suite). A `role` is a named list of
424 # permissions; each `role` can be an IAM predefined role or a user-created
425 # custom role.
426 #
427 # Optionally, a `binding` can specify a `condition`, which is a logical
428 # expression that allows access to a resource only if the expression evaluates
429 # to `true`. A condition can add constraints based on attributes of the
430 # request, the resource, or both.
431 #
432 # **JSON example:**
433 #
434 # {
435 # &quot;bindings&quot;: [
436 # {
437 # &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;,
438 # &quot;members&quot;: [
439 # &quot;user:mike@example.com&quot;,
440 # &quot;group:admins@example.com&quot;,
441 # &quot;domain:google.com&quot;,
442 # &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot;
443 # ]
444 # },
445 # {
446 # &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;,
447 # &quot;members&quot;: [&quot;user:eve@example.com&quot;],
448 # &quot;condition&quot;: {
449 # &quot;title&quot;: &quot;expirable access&quot;,
450 # &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;,
451 # &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;,
452 # }
453 # }
454 # ],
455 # &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;,
456 # &quot;version&quot;: 3
457 # }
458 #
459 # **YAML example:**
460 #
461 # bindings:
462 # - members:
463 # - user:mike@example.com
464 # - group:admins@example.com
465 # - domain:google.com
466 # - serviceAccount:my-project-id@appspot.gserviceaccount.com
467 # role: roles/resourcemanager.organizationAdmin
468 # - members:
469 # - user:eve@example.com
470 # role: roles/resourcemanager.organizationViewer
471 # condition:
472 # title: expirable access
473 # description: Does not grant access after Sep 2020
474 # expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)
475 # - etag: BwWWja0YfJA=
476 # - version: 3
477 #
478 # For a description of IAM and its features, see the
479 # [IAM documentation](https://cloud.google.com/iam/docs/).
480 &quot;etag&quot;: &quot;A String&quot;, # `etag` is used for optimistic concurrency control as a way to help
481 # prevent simultaneous updates of a policy from overwriting each other.
482 # It is strongly suggested that systems make use of the `etag` in the
483 # read-modify-write cycle to perform policy updates in order to avoid race
484 # conditions: An `etag` is returned in the response to `getIamPolicy`, and
485 # systems are expected to put that etag in the request to `setIamPolicy` to
486 # ensure that their change will be applied to the same version of the policy.
487 #
488 # **Important:** If you use IAM Conditions, you must include the `etag` field
489 # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
490 # you to overwrite a version `3` policy with a version `1` policy, and all of
491 # the conditions in the version `3` policy are lost.
492 &quot;version&quot;: 42, # Specifies the format of the policy.
493 #
494 # Valid values are `0`, `1`, and `3`. Requests that specify an invalid value
495 # are rejected.
496 #
497 # Any operation that affects conditional role bindings must specify version
498 # `3`. This requirement applies to the following operations:
499 #
500 # * Getting a policy that includes a conditional role binding
501 # * Adding a conditional role binding to a policy
502 # * Changing a conditional role binding in a policy
503 # * Removing any role binding, with or without a condition, from a policy
504 # that includes conditions
505 #
506 # **Important:** If you use IAM Conditions, you must include the `etag` field
507 # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
508 # you to overwrite a version `3` policy with a version `1` policy, and all of
509 # the conditions in the version `3` policy are lost.
510 #
511 # If a policy does not include any conditions, operations on that policy may
512 # specify any valid version or leave the field unset.
513 &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
514 { # Specifies the audit configuration for a service.
515 # The configuration determines which permission types are logged, and what
516 # identities, if any, are exempted from logging.
517 # An AuditConfig must have one or more AuditLogConfigs.
518 #
519 # If there are AuditConfigs for both `allServices` and a specific service,
520 # the union of the two AuditConfigs is used for that service: the log_types
521 # specified in each AuditConfig are enabled, and the exempted_members in each
522 # AuditLogConfig are exempted.
523 #
524 # Example Policy with multiple AuditConfigs:
525 #
526 # {
527 # &quot;audit_configs&quot;: [
528 # {
529 # &quot;service&quot;: &quot;allServices&quot;
530 # &quot;audit_log_configs&quot;: [
531 # {
532 # &quot;log_type&quot;: &quot;DATA_READ&quot;,
533 # &quot;exempted_members&quot;: [
534 # &quot;user:jose@example.com&quot;
535 # ]
536 # },
537 # {
538 # &quot;log_type&quot;: &quot;DATA_WRITE&quot;,
539 # },
540 # {
541 # &quot;log_type&quot;: &quot;ADMIN_READ&quot;,
542 # }
543 # ]
544 # },
545 # {
546 # &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;
547 # &quot;audit_log_configs&quot;: [
548 # {
549 # &quot;log_type&quot;: &quot;DATA_READ&quot;,
550 # },
551 # {
552 # &quot;log_type&quot;: &quot;DATA_WRITE&quot;,
553 # &quot;exempted_members&quot;: [
554 # &quot;user:aliya@example.com&quot;
555 # ]
556 # }
557 # ]
558 # }
559 # ]
560 # }
561 #
562 # For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
563 # logging. It also exempts jose@example.com from DATA_READ logging, and
564 # aliya@example.com from DATA_WRITE logging.
565 &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging.
566 # For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
567 # `allServices` is a special value that covers all services.
568 &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
569 { # Provides the configuration for logging a type of permissions.
570 # Example:
571 #
572 # {
573 # &quot;audit_log_configs&quot;: [
574 # {
575 # &quot;log_type&quot;: &quot;DATA_READ&quot;,
576 # &quot;exempted_members&quot;: [
577 # &quot;user:jose@example.com&quot;
578 # ]
579 # },
580 # {
581 # &quot;log_type&quot;: &quot;DATA_WRITE&quot;,
582 # }
583 # ]
584 # }
585 #
586 # This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting
587 # jose@example.com from DATA_READ logging.
588 &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of
589 # permission.
590 # Follows the same format of Binding.members.
591 &quot;A String&quot;,
592 ],
593 &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
594 },
595 ],
596 },
597 ],
598 &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a
599 # `condition` that determines how and when the `bindings` are applied. Each
600 # of the `bindings` must contain at least one member.
601 { # Associates `members` with a `role`.
602 &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) # The condition that is associated with this binding.
603 # NOTE: An unsatisfied condition will not allow user access via current
604 # binding. Different bindings, including their conditions, are examined
605 # independently.
606 # syntax. CEL is a C-like expression language. The syntax and semantics of CEL
607 # are documented at https://github.com/google/cel-spec.
608 #
609 # Example (Comparison):
610 #
611 # title: &quot;Summary size limit&quot;
612 # description: &quot;Determines if a summary is less than 100 chars&quot;
613 # expression: &quot;document.summary.size() &lt; 100&quot;
614 #
615 # Example (Equality):
616 #
617 # title: &quot;Requestor is owner&quot;
618 # description: &quot;Determines if requestor is the document owner&quot;
619 # expression: &quot;document.owner == request.auth.claims.email&quot;
620 #
621 # Example (Logic):
622 #
623 # title: &quot;Public documents&quot;
624 # description: &quot;Determine whether the document should be publicly visible&quot;
625 # expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot;
626 #
627 # Example (Data Manipulation):
628 #
629 # title: &quot;Notification string&quot;
630 # description: &quot;Create a notification string with a timestamp.&quot;
631 # expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot;
632 #
633 # The exact variables and functions that may be referenced within an expression
634 # are determined by the service that evaluates it. See the service
635 # documentation for additional information.
636 &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which
637 # describes the expression, e.g. when hovered over it in a UI.
638 &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language
639 # syntax.
640 &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing
641 # its purpose. This can be used e.g. in UIs which allow to enter the
642 # expression.
643 &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error
644 # reporting, e.g. a file name and a position in the file.
645 },
646 &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource.
647 # `members` can have the following values:
648 #
649 # * `allUsers`: A special identifier that represents anyone who is
650 # on the internet; with or without a Google account.
651 #
652 # * `allAuthenticatedUsers`: A special identifier that represents anyone
653 # who is authenticated with a Google account or a service account.
654 #
655 # * `user:{emailid}`: An email address that represents a specific Google
656 # account. For example, `alice@example.com` .
657 #
658 #
659 # * `serviceAccount:{emailid}`: An email address that represents a service
660 # account. For example, `my-other-app@appspot.gserviceaccount.com`.
661 #
662 # * `group:{emailid}`: An email address that represents a Google group.
663 # For example, `admins@example.com`.
664 #
665 # * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique
666 # identifier) representing a user that has been recently deleted. For
667 # example, `alice@example.com?uid=123456789012345678901`. If the user is
668 # recovered, this value reverts to `user:{emailid}` and the recovered user
669 # retains the role in the binding.
670 #
671 # * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus
672 # unique identifier) representing a service account that has been recently
673 # deleted. For example,
674 # `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
675 # If the service account is undeleted, this value reverts to
676 # `serviceAccount:{emailid}` and the undeleted service account retains the
677 # role in the binding.
678 #
679 # * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique
680 # identifier) representing a Google group that has been recently
681 # deleted. For example, `admins@example.com?uid=123456789012345678901`. If
682 # the group is recovered, this value reverts to `group:{emailid}` and the
683 # recovered group retains the role in the binding.
684 #
685 #
686 # * `domain:{domain}`: The G Suite domain (primary) that represents all the
687 # users of that domain. For example, `google.com` or `example.com`.
688 #
689 &quot;A String&quot;,
690 ],
691 &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`.
692 # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
693 },
694 ],
695 },
696 &quot;updateMask&quot;: &quot;A String&quot;, # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
697 # the fields in the mask will be modified. If no mask is provided, the
698 # following default mask is used:
699 # paths: &quot;bindings, etag&quot;
700 # This field is only used by Cloud IAM.
701 }
702
703 x__xgafv: string, V1 error format.
704 Allowed values
705 1 - v1 error format
706 2 - v2 error format
707
708Returns:
709 An object of the form:
710
711 { # An Identity and Access Management (IAM) policy, which specifies access
712 # controls for Google Cloud resources.
713 #
714 #
715 # A `Policy` is a collection of `bindings`. A `binding` binds one or more
716 # `members` to a single `role`. Members can be user accounts, service accounts,
717 # Google groups, and domains (such as G Suite). A `role` is a named list of
718 # permissions; each `role` can be an IAM predefined role or a user-created
719 # custom role.
720 #
721 # Optionally, a `binding` can specify a `condition`, which is a logical
722 # expression that allows access to a resource only if the expression evaluates
723 # to `true`. A condition can add constraints based on attributes of the
724 # request, the resource, or both.
725 #
726 # **JSON example:**
727 #
728 # {
729 # &quot;bindings&quot;: [
730 # {
731 # &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;,
732 # &quot;members&quot;: [
733 # &quot;user:mike@example.com&quot;,
734 # &quot;group:admins@example.com&quot;,
735 # &quot;domain:google.com&quot;,
736 # &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot;
737 # ]
738 # },
739 # {
740 # &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;,
741 # &quot;members&quot;: [&quot;user:eve@example.com&quot;],
742 # &quot;condition&quot;: {
743 # &quot;title&quot;: &quot;expirable access&quot;,
744 # &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;,
745 # &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;,
746 # }
747 # }
748 # ],
749 # &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;,
750 # &quot;version&quot;: 3
751 # }
752 #
753 # **YAML example:**
754 #
755 # bindings:
756 # - members:
757 # - user:mike@example.com
758 # - group:admins@example.com
759 # - domain:google.com
760 # - serviceAccount:my-project-id@appspot.gserviceaccount.com
761 # role: roles/resourcemanager.organizationAdmin
762 # - members:
763 # - user:eve@example.com
764 # role: roles/resourcemanager.organizationViewer
765 # condition:
766 # title: expirable access
767 # description: Does not grant access after Sep 2020
768 # expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)
769 # - etag: BwWWja0YfJA=
770 # - version: 3
771 #
772 # For a description of IAM and its features, see the
773 # [IAM documentation](https://cloud.google.com/iam/docs/).
774 &quot;etag&quot;: &quot;A String&quot;, # `etag` is used for optimistic concurrency control as a way to help
775 # prevent simultaneous updates of a policy from overwriting each other.
776 # It is strongly suggested that systems make use of the `etag` in the
777 # read-modify-write cycle to perform policy updates in order to avoid race
778 # conditions: An `etag` is returned in the response to `getIamPolicy`, and
779 # systems are expected to put that etag in the request to `setIamPolicy` to
780 # ensure that their change will be applied to the same version of the policy.
781 #
782 # **Important:** If you use IAM Conditions, you must include the `etag` field
783 # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
784 # you to overwrite a version `3` policy with a version `1` policy, and all of
785 # the conditions in the version `3` policy are lost.
786 &quot;version&quot;: 42, # Specifies the format of the policy.
787 #
788 # Valid values are `0`, `1`, and `3`. Requests that specify an invalid value
789 # are rejected.
790 #
791 # Any operation that affects conditional role bindings must specify version
792 # `3`. This requirement applies to the following operations:
793 #
794 # * Getting a policy that includes a conditional role binding
795 # * Adding a conditional role binding to a policy
796 # * Changing a conditional role binding in a policy
797 # * Removing any role binding, with or without a condition, from a policy
798 # that includes conditions
799 #
800 # **Important:** If you use IAM Conditions, you must include the `etag` field
801 # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
802 # you to overwrite a version `3` policy with a version `1` policy, and all of
803 # the conditions in the version `3` policy are lost.
804 #
805 # If a policy does not include any conditions, operations on that policy may
806 # specify any valid version or leave the field unset.
807 &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
808 { # Specifies the audit configuration for a service.
809 # The configuration determines which permission types are logged, and what
810 # identities, if any, are exempted from logging.
811 # An AuditConfig must have one or more AuditLogConfigs.
812 #
813 # If there are AuditConfigs for both `allServices` and a specific service,
814 # the union of the two AuditConfigs is used for that service: the log_types
815 # specified in each AuditConfig are enabled, and the exempted_members in each
816 # AuditLogConfig are exempted.
817 #
818 # Example Policy with multiple AuditConfigs:
819 #
820 # {
821 # &quot;audit_configs&quot;: [
822 # {
823 # &quot;service&quot;: &quot;allServices&quot;
824 # &quot;audit_log_configs&quot;: [
825 # {
826 # &quot;log_type&quot;: &quot;DATA_READ&quot;,
827 # &quot;exempted_members&quot;: [
828 # &quot;user:jose@example.com&quot;
829 # ]
830 # },
831 # {
832 # &quot;log_type&quot;: &quot;DATA_WRITE&quot;,
833 # },
834 # {
835 # &quot;log_type&quot;: &quot;ADMIN_READ&quot;,
836 # }
837 # ]
838 # },
839 # {
840 # &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;
841 # &quot;audit_log_configs&quot;: [
842 # {
843 # &quot;log_type&quot;: &quot;DATA_READ&quot;,
844 # },
845 # {
846 # &quot;log_type&quot;: &quot;DATA_WRITE&quot;,
847 # &quot;exempted_members&quot;: [
848 # &quot;user:aliya@example.com&quot;
849 # ]
850 # }
851 # ]
852 # }
853 # ]
854 # }
855 #
856 # For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
857 # logging. It also exempts jose@example.com from DATA_READ logging, and
858 # aliya@example.com from DATA_WRITE logging.
859 &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging.
860 # For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
861 # `allServices` is a special value that covers all services.
862 &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
863 { # Provides the configuration for logging a type of permissions.
864 # Example:
865 #
866 # {
867 # &quot;audit_log_configs&quot;: [
868 # {
869 # &quot;log_type&quot;: &quot;DATA_READ&quot;,
870 # &quot;exempted_members&quot;: [
871 # &quot;user:jose@example.com&quot;
872 # ]
873 # },
874 # {
875 # &quot;log_type&quot;: &quot;DATA_WRITE&quot;,
876 # }
877 # ]
878 # }
879 #
880 # This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting
881 # jose@example.com from DATA_READ logging.
882 &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of
883 # permission.
884 # Follows the same format of Binding.members.
885 &quot;A String&quot;,
886 ],
887 &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
888 },
889 ],
890 },
891 ],
892 &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a
893 # `condition` that determines how and when the `bindings` are applied. Each
894 # of the `bindings` must contain at least one member.
895 { # Associates `members` with a `role`.
896 &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) # The condition that is associated with this binding.
897 # NOTE: An unsatisfied condition will not allow user access via current
898 # binding. Different bindings, including their conditions, are examined
899 # independently.
900 # syntax. CEL is a C-like expression language. The syntax and semantics of CEL
901 # are documented at https://github.com/google/cel-spec.
902 #
903 # Example (Comparison):
904 #
905 # title: &quot;Summary size limit&quot;
906 # description: &quot;Determines if a summary is less than 100 chars&quot;
907 # expression: &quot;document.summary.size() &lt; 100&quot;
908 #
909 # Example (Equality):
910 #
911 # title: &quot;Requestor is owner&quot;
912 # description: &quot;Determines if requestor is the document owner&quot;
913 # expression: &quot;document.owner == request.auth.claims.email&quot;
914 #
915 # Example (Logic):
916 #
917 # title: &quot;Public documents&quot;
918 # description: &quot;Determine whether the document should be publicly visible&quot;
919 # expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot;
920 #
921 # Example (Data Manipulation):
922 #
923 # title: &quot;Notification string&quot;
924 # description: &quot;Create a notification string with a timestamp.&quot;
925 # expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot;
926 #
927 # The exact variables and functions that may be referenced within an expression
928 # are determined by the service that evaluates it. See the service
929 # documentation for additional information.
930 &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which
931 # describes the expression, e.g. when hovered over it in a UI.
932 &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language
933 # syntax.
934 &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing
935 # its purpose. This can be used e.g. in UIs which allow to enter the
936 # expression.
937 &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error
938 # reporting, e.g. a file name and a position in the file.
939 },
940 &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource.
941 # `members` can have the following values:
942 #
943 # * `allUsers`: A special identifier that represents anyone who is
944 # on the internet; with or without a Google account.
945 #
946 # * `allAuthenticatedUsers`: A special identifier that represents anyone
947 # who is authenticated with a Google account or a service account.
948 #
949 # * `user:{emailid}`: An email address that represents a specific Google
950 # account. For example, `alice@example.com` .
951 #
952 #
953 # * `serviceAccount:{emailid}`: An email address that represents a service
954 # account. For example, `my-other-app@appspot.gserviceaccount.com`.
955 #
956 # * `group:{emailid}`: An email address that represents a Google group.
957 # For example, `admins@example.com`.
958 #
959 # * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique
960 # identifier) representing a user that has been recently deleted. For
961 # example, `alice@example.com?uid=123456789012345678901`. If the user is
962 # recovered, this value reverts to `user:{emailid}` and the recovered user
963 # retains the role in the binding.
964 #
965 # * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus
966 # unique identifier) representing a service account that has been recently
967 # deleted. For example,
968 # `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
969 # If the service account is undeleted, this value reverts to
970 # `serviceAccount:{emailid}` and the undeleted service account retains the
971 # role in the binding.
972 #
973 # * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique
974 # identifier) representing a Google group that has been recently
975 # deleted. For example, `admins@example.com?uid=123456789012345678901`. If
976 # the group is recovered, this value reverts to `group:{emailid}` and the
977 # recovered group retains the role in the binding.
978 #
979 #
980 # * `domain:{domain}`: The G Suite domain (primary) that represents all the
981 # users of that domain. For example, `google.com` or `example.com`.
982 #
983 &quot;A String&quot;,
984 ],
985 &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`.
986 # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
987 },
988 ],
989 }</pre>
990</div>
991
992<div class="method">
993 <code class="details" id="testIamPermissions">testIamPermissions(resource, body=None, x__xgafv=None)</code>
994 <pre>Returns permissions that the caller has on the specified table resource.
995
996Args:
997 resource: string, REQUIRED: The resource for which the policy detail is being requested.
998See the operation documentation for the appropriate value for this field. (required)
999 body: object, The request body.
1000 The object takes the form of:
1001
1002{ # Request message for `TestIamPermissions` method.
1003 &quot;permissions&quot;: [ # The set of permissions to check for the `resource`. Permissions with
1004 # wildcards (such as &#x27;*&#x27; or &#x27;storage.*&#x27;) are not allowed. For more
1005 # information see
1006 # [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
1007 &quot;A String&quot;,
1008 ],
1009 }
1010
1011 x__xgafv: string, V1 error format.
1012 Allowed values
1013 1 - v1 error format
1014 2 - v2 error format
1015
1016Returns:
1017 An object of the form:
1018
1019 { # Response message for `TestIamPermissions` method.
1020 &quot;permissions&quot;: [ # A subset of `TestPermissionsRequest.permissions` that the caller is
1021 # allowed.
1022 &quot;A String&quot;,
1023 ],
1024 }</pre>
1025</div>
1026
1027</body></html>