blob: c1e5aca62f610148c881463e0bc5530c207d9215 [file] [log] [blame]
Bu Sun Kim715bd7f2019-06-14 16:50:42 -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="iap_v1.html">Cloud Identity-Aware Proxy API</a> . <a href="iap_v1.v1.html">v1</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 an Identity-Aware Proxy protected</p>
80<p class="toc_element">
Dan O'Mearadd494642020-05-01 07:42:23 -070081 <code><a href="#getIapSettings">getIapSettings(name, x__xgafv=None)</a></code></p>
82<p class="firstline">Gets the IAP settings on a particular IAP protected resource.</p>
83<p class="toc_element">
84 <code><a href="#setIamPolicy">setIamPolicy(resource, body=None, x__xgafv=None)</a></code></p>
Bu Sun Kim715bd7f2019-06-14 16:50:42 -070085<p class="firstline">Sets the access control policy for an Identity-Aware Proxy protected</p>
86<p class="toc_element">
Dan O'Mearadd494642020-05-01 07:42:23 -070087 <code><a href="#testIamPermissions">testIamPermissions(resource, body=None, x__xgafv=None)</a></code></p>
Bu Sun Kim715bd7f2019-06-14 16:50:42 -070088<p class="firstline">Returns permissions that a caller has on the Identity-Aware Proxy protected</p>
Dan O'Mearadd494642020-05-01 07:42:23 -070089<p class="toc_element">
90 <code><a href="#updateIapSettings">updateIapSettings(name, body=None, updateMask=None, x__xgafv=None)</a></code></p>
91<p class="firstline">Updates the IAP settings on a particular IAP protected resource. It</p>
Bu Sun Kim715bd7f2019-06-14 16:50:42 -070092<h3>Method Details</h3>
93<div class="method">
94 <code class="details" id="getIamPolicy">getIamPolicy(resource, body=None, x__xgafv=None)</code>
95 <pre>Gets the access control policy for an Identity-Aware Proxy protected
96resource.
97More information about managing access via IAP can be found at:
98https://cloud.google.com/iap/docs/managing-access#managing_access_via_the_api
99
100Args:
101 resource: string, REQUIRED: The resource for which the policy is being requested.
102See the operation documentation for the appropriate value for this field. (required)
103 body: object, The request body.
104 The object takes the form of:
105
106{ # Request message for `GetIamPolicy` method.
Bu Sun Kim65020912020-05-20 12:08:20 -0700107 &quot;options&quot;: { # Encapsulates settings provided to GetIamPolicy. # OPTIONAL: A `GetPolicyOptions` object for specifying options to
108 # `GetIamPolicy`.
109 &quot;requestedPolicyVersion&quot;: 42, # Optional. The policy format version to be returned.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700110 #
Dan O'Mearadd494642020-05-01 07:42:23 -0700111 # Valid values are 0, 1, and 3. Requests specifying an invalid value will be
112 # rejected.
113 #
114 # Requests for policies with any conditional bindings must specify version 3.
115 # Policies without any conditional bindings may specify any valid value or
116 # leave the field unset.
Bu Sun Kim65020912020-05-20 12:08:20 -0700117 #
118 # To learn which resources support conditions in their IAM policies, see the
119 # [IAM
120 # documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700121 },
122 }
123
124 x__xgafv: string, V1 error format.
125 Allowed values
126 1 - v1 error format
127 2 - v2 error format
128
129Returns:
130 An object of the form:
131
Dan O'Mearadd494642020-05-01 07:42:23 -0700132 { # An Identity and Access Management (IAM) policy, which specifies access
133 # controls for Google Cloud resources.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700134 #
135 #
Dan O'Mearadd494642020-05-01 07:42:23 -0700136 # A `Policy` is a collection of `bindings`. A `binding` binds one or more
137 # `members` to a single `role`. Members can be user accounts, service accounts,
138 # Google groups, and domains (such as G Suite). A `role` is a named list of
139 # permissions; each `role` can be an IAM predefined role or a user-created
140 # custom role.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700141 #
Bu Sun Kim65020912020-05-20 12:08:20 -0700142 # For some types of Google Cloud resources, a `binding` can also specify a
143 # `condition`, which is a logical expression that allows access to a resource
144 # only if the expression evaluates to `true`. A condition can add constraints
145 # based on attributes of the request, the resource, or both. To learn which
146 # resources support conditions in their IAM policies, see the
147 # [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
Dan O'Mearadd494642020-05-01 07:42:23 -0700148 #
149 # **JSON example:**
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700150 #
151 # {
Bu Sun Kim65020912020-05-20 12:08:20 -0700152 # &quot;bindings&quot;: [
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700153 # {
Bu Sun Kim65020912020-05-20 12:08:20 -0700154 # &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;,
155 # &quot;members&quot;: [
156 # &quot;user:mike@example.com&quot;,
157 # &quot;group:admins@example.com&quot;,
158 # &quot;domain:google.com&quot;,
159 # &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot;
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700160 # ]
161 # },
162 # {
Bu Sun Kim65020912020-05-20 12:08:20 -0700163 # &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;,
164 # &quot;members&quot;: [
165 # &quot;user:eve@example.com&quot;
166 # ],
167 # &quot;condition&quot;: {
168 # &quot;title&quot;: &quot;expirable access&quot;,
169 # &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;,
170 # &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;,
Dan O'Mearadd494642020-05-01 07:42:23 -0700171 # }
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700172 # }
Dan O'Mearadd494642020-05-01 07:42:23 -0700173 # ],
Bu Sun Kim65020912020-05-20 12:08:20 -0700174 # &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;,
175 # &quot;version&quot;: 3
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700176 # }
177 #
Dan O'Mearadd494642020-05-01 07:42:23 -0700178 # **YAML example:**
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700179 #
180 # bindings:
181 # - members:
182 # - user:mike@example.com
183 # - group:admins@example.com
184 # - domain:google.com
Dan O'Mearadd494642020-05-01 07:42:23 -0700185 # - serviceAccount:my-project-id@appspot.gserviceaccount.com
186 # role: roles/resourcemanager.organizationAdmin
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700187 # - members:
Dan O'Mearadd494642020-05-01 07:42:23 -0700188 # - user:eve@example.com
189 # role: roles/resourcemanager.organizationViewer
190 # condition:
191 # title: expirable access
192 # description: Does not grant access after Sep 2020
Bu Sun Kim65020912020-05-20 12:08:20 -0700193 # expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)
Dan O'Mearadd494642020-05-01 07:42:23 -0700194 # - etag: BwWWja0YfJA=
195 # - version: 3
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700196 #
197 # For a description of IAM and its features, see the
Dan O'Mearadd494642020-05-01 07:42:23 -0700198 # [IAM documentation](https://cloud.google.com/iam/docs/).
Bu Sun Kim65020912020-05-20 12:08:20 -0700199 &quot;etag&quot;: &quot;A String&quot;, # `etag` is used for optimistic concurrency control as a way to help
200 # prevent simultaneous updates of a policy from overwriting each other.
201 # It is strongly suggested that systems make use of the `etag` in the
202 # read-modify-write cycle to perform policy updates in order to avoid race
203 # conditions: An `etag` is returned in the response to `getIamPolicy`, and
204 # systems are expected to put that etag in the request to `setIamPolicy` to
205 # ensure that their change will be applied to the same version of the policy.
206 #
207 # **Important:** If you use IAM Conditions, you must include the `etag` field
208 # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
209 # you to overwrite a version `3` policy with a version `1` policy, and all of
210 # the conditions in the version `3` policy are lost.
211 &quot;version&quot;: 42, # Specifies the format of the policy.
212 #
213 # Valid values are `0`, `1`, and `3`. Requests that specify an invalid value
214 # are rejected.
215 #
216 # Any operation that affects conditional role bindings must specify version
217 # `3`. This requirement applies to the following operations:
218 #
219 # * Getting a policy that includes a conditional role binding
220 # * Adding a conditional role binding to a policy
221 # * Changing a conditional role binding in a policy
222 # * Removing any role binding, with or without a condition, from a policy
223 # that includes conditions
224 #
225 # **Important:** If you use IAM Conditions, you must include the `etag` field
226 # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
227 # you to overwrite a version `3` policy with a version `1` policy, and all of
228 # the conditions in the version `3` policy are lost.
229 #
230 # If a policy does not include any conditions, operations on that policy may
231 # specify any valid version or leave the field unset.
232 #
233 # To learn which resources support conditions in their IAM policies, see the
234 # [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
235 &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a
Dan O'Mearadd494642020-05-01 07:42:23 -0700236 # `condition` that determines how and when the `bindings` are applied. Each
237 # of the `bindings` must contain at least one member.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700238 { # Associates `members` with a `role`.
Bu Sun Kim65020912020-05-20 12:08:20 -0700239 &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700240 # `members` can have the following values:
241 #
242 # * `allUsers`: A special identifier that represents anyone who is
243 # on the internet; with or without a Google account.
244 #
245 # * `allAuthenticatedUsers`: A special identifier that represents anyone
246 # who is authenticated with a Google account or a service account.
247 #
248 # * `user:{emailid}`: An email address that represents a specific Google
Dan O'Mearadd494642020-05-01 07:42:23 -0700249 # account. For example, `alice@example.com` .
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700250 #
251 #
252 # * `serviceAccount:{emailid}`: An email address that represents a service
253 # account. For example, `my-other-app@appspot.gserviceaccount.com`.
254 #
255 # * `group:{emailid}`: An email address that represents a Google group.
256 # For example, `admins@example.com`.
257 #
Dan O'Mearadd494642020-05-01 07:42:23 -0700258 # * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique
259 # identifier) representing a user that has been recently deleted. For
260 # example, `alice@example.com?uid=123456789012345678901`. If the user is
261 # recovered, this value reverts to `user:{emailid}` and the recovered user
262 # retains the role in the binding.
263 #
264 # * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus
265 # unique identifier) representing a service account that has been recently
266 # deleted. For example,
267 # `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
268 # If the service account is undeleted, this value reverts to
269 # `serviceAccount:{emailid}` and the undeleted service account retains the
270 # role in the binding.
271 #
272 # * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique
273 # identifier) representing a Google group that has been recently
274 # deleted. For example, `admins@example.com?uid=123456789012345678901`. If
275 # the group is recovered, this value reverts to `group:{emailid}` and the
276 # recovered group retains the role in the binding.
277 #
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700278 #
279 # * `domain:{domain}`: The G Suite domain (primary) that represents all the
280 # users of that domain. For example, `google.com` or `example.com`.
281 #
Bu Sun Kim65020912020-05-20 12:08:20 -0700282 &quot;A String&quot;,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700283 ],
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700284 &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`.
285 # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
286 &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) # The condition that is associated with this binding.
287 #
288 # If the condition evaluates to `true`, then this binding applies to the
289 # current request.
290 #
291 # If the condition evaluates to `false`, then this binding does not apply to
292 # the current request. However, a different role binding might grant the same
293 # role to one or more of the members in this binding.
294 #
295 # To learn which resources support conditions in their IAM policies, see the
296 # [IAM
297 # documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
298 # syntax. CEL is a C-like expression language. The syntax and semantics of CEL
299 # are documented at https://github.com/google/cel-spec.
300 #
301 # Example (Comparison):
302 #
303 # title: &quot;Summary size limit&quot;
304 # description: &quot;Determines if a summary is less than 100 chars&quot;
305 # expression: &quot;document.summary.size() &lt; 100&quot;
306 #
307 # Example (Equality):
308 #
309 # title: &quot;Requestor is owner&quot;
310 # description: &quot;Determines if requestor is the document owner&quot;
311 # expression: &quot;document.owner == request.auth.claims.email&quot;
312 #
313 # Example (Logic):
314 #
315 # title: &quot;Public documents&quot;
316 # description: &quot;Determine whether the document should be publicly visible&quot;
317 # expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot;
318 #
319 # Example (Data Manipulation):
320 #
321 # title: &quot;Notification string&quot;
322 # description: &quot;Create a notification string with a timestamp.&quot;
323 # expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot;
324 #
325 # The exact variables and functions that may be referenced within an expression
326 # are determined by the service that evaluates it. See the service
327 # documentation for additional information.
328 &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which
329 # describes the expression, e.g. when hovered over it in a UI.
330 &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language
331 # syntax.
332 &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing
333 # its purpose. This can be used e.g. in UIs which allow to enter the
334 # expression.
335 &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error
336 # reporting, e.g. a file name and a position in the file.
337 },
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700338 },
339 ],
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700340 }</pre>
341</div>
342
343<div class="method">
Dan O'Mearadd494642020-05-01 07:42:23 -0700344 <code class="details" id="getIapSettings">getIapSettings(name, x__xgafv=None)</code>
345 <pre>Gets the IAP settings on a particular IAP protected resource.
346
347Args:
348 name: string, Required. The resource name for which to retrieve the settings.
349Authorization: Requires the `getSettings` permission for the associated
350resource. (required)
351 x__xgafv: string, V1 error format.
352 Allowed values
353 1 - v1 error format
354 2 - v2 error format
355
356Returns:
357 An object of the form:
358
359 { # The IAP configurable settings.
Bu Sun Kim65020912020-05-20 12:08:20 -0700360 &quot;accessSettings&quot;: { # Access related settings for IAP protected apps. # Top level wrapper for all access related setting in IAP
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700361 &quot;oauthSettings&quot;: { # Configuration for OAuth login&amp;consent flow behavior as well as for OAuth # Settings to configure IAP&#x27;s OAuth behavior.
362 # Credentials.
363 &quot;clientId&quot;: &quot;A String&quot;, # OAuth 2.0 client ID used in the OAuth flow to generate an access token. If
364 # this field is set, you can skip obtaining the OAuth credentials in this
365 # step:
366 # https://developers.google.com/identity/protocols/OAuth2?hl=en_US#1.-obtain-oauth-2.0-credentials-from-the-google-api-console.
367 # However, this could allow for client sharing. The risks of client sharing
368 # are outlined here:
369 # https://cloud.google.com/iap/docs/sharing-oauth-clients#risks.
370 &quot;loginHint&quot;: &quot;A String&quot;, # Domain hint to send as hd=? parameter in OAuth request flow. Enables
371 # redirect to primary IDP by skipping Google&#x27;s login screen.
372 # https://developers.google.com/identity/protocols/OpenIDConnect#hd-param
373 # Note: IAP does not verify that the id token&#x27;s hd claim matches this value
374 # since access behavior is managed by IAM policies.
375 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700376 &quot;corsSettings&quot;: { # Allows customers to configure HTTP request paths that&#x27;ll allow HTTP OPTIONS # Configuration to allow cross-origin requests via IAP.
377 # call to bypass authentication and authorization.
378 &quot;allowHttpOptions&quot;: True or False, # Configuration to allow HTTP OPTIONS calls to skip authorization. If
379 # undefined, IAP will not apply any special logic to OPTIONS requests.
380 },
381 &quot;gcipSettings&quot;: { # Allows customers to configure tenant_id for GCIP instance per-app. # GCIP claims and endpoint configurations for 3p identity providers.
382 &quot;loginPageUri&quot;: &quot;A String&quot;, # Login page URI associated with the GCIP tenants.
383 # Typically, all resources within the same project share the same login page,
384 # though it could be overridden at the sub resource level.
385 &quot;tenantIds&quot;: [ # GCIP tenant ids that are linked to the IAP resource.
386 # tenant_ids could be a string beginning with a number character to indicate
387 # authenticating with GCIP tenant flow, or in the format of _&lt;ProjectNumber&gt;
388 # to indicate authenticating with GCIP agent flow.
389 # If agent flow is used, tenant_ids should only contain one single element,
390 # while for tenant flow, tenant_ids can contain multiple elements.
391 &quot;A String&quot;,
392 ],
393 },
394 &quot;policyDelegationSettings&quot;: { # PolicyDelegationConfig allows google-internal teams to use IAP for apps # Settings to configure Policy delegation for apps hosted in tenant projects.
395 # INTERNAL_ONLY.
396 # hosted in a tenant project. Using these settings, the app can delegate
397 # permission check to happen against the linked customer project.
398 # This is only ever supposed to be used by google internal teams, hence the
399 # restriction on the proto.
Bu Sun Kim65020912020-05-20 12:08:20 -0700400 &quot;policyName&quot;: { # Policy name to be checked
401 &quot;type&quot;: &quot;A String&quot;, # Valid values for type might be &#x27;gce&#x27;, &#x27;gcs&#x27;, &#x27;project&#x27;, &#x27;account&#x27; etc.
402 &quot;id&quot;: &quot;A String&quot;,
403 &quot;region&quot;: &quot;A String&quot;, # For Cloud IAM:
404 # The location of the Policy.
405 # Must be empty or &quot;global&quot; for Policies owned by global IAM. Must name a
406 # region from prodspec/cloud-iam-cloudspec for Regional IAM Policies, see
407 # go/iam-faq#where-is-iam-currently-deployed.
408 #
409 # For Local IAM:
410 # This field should be set to &quot;local&quot;.
Dan O'Mearadd494642020-05-01 07:42:23 -0700411 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700412 &quot;resource&quot;: { # IAM resource to check permission on
Bu Sun Kim65020912020-05-20 12:08:20 -0700413 &quot;labels&quot;: { # The service defined labels of the resource on which the conditions will be
414 # evaluated. The semantics - including the key names - are vague to IAM.
415 # If the effective condition has a reference to a `resource.labels[foo]`
416 # construct, IAM consults with this map to retrieve the values associated
417 # with `foo` key for Conditions evaluation. If the provided key is not found
418 # in the labels map, the condition would evaluate to false.
419 #
420 # This field is in limited use. If your intended use case is not expected
421 # to express resource.labels attribute in IAM Conditions, leave this field
422 # empty. Before planning on using this attribute please:
423 # * Read go/iam-conditions-labels-comm and ensure your service can meet the
424 # data availability and management requirements.
425 # * Talk to iam-conditions-eng@ about your use case.
426 &quot;a_key&quot;: &quot;A String&quot;,
427 },
428 &quot;service&quot;: &quot;A String&quot;, # The name of the service this resource belongs to. It is configured using
429 # the official_service_name of the Service as defined in service
430 # configurations under //configs/cloud/resourcetypes.
431 # For example, the official_service_name of cloud resource manager service
432 # is set as &#x27;cloudresourcemanager.googleapis.com&#x27; according to
433 # //configs/cloud/resourcetypes/google/cloud/resourcemanager/prod.yaml
434 &quot;name&quot;: &quot;A String&quot;, # Name of the resource on which conditions will be evaluated.
435 # Must use the Relative Resource Name of the resource, which is the URI
436 # path of the resource without the leading &quot;/&quot;. Examples are
437 # &quot;projects/_/buckets/[BUCKET-ID]&quot; for storage buckets or
438 # &quot;projects/[PROJECT-ID]/global/firewalls/[FIREWALL-ID]&quot; for a firewall.
439 #
440 # This field is required for evaluating conditions with rules on resource
441 # names. For a `list` permission check, the resource.name value must be set
442 # to the parent resource. If the parent resource is a project, this field
443 # should be left unset.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700444 &quot;type&quot;: &quot;A String&quot;, # The public resource type name of the resource on which conditions will be
445 # evaluated. It is configured using the official_name of the ResourceType as
446 # defined in service configurations under //configs/cloud/resourcetypes.
447 # For example, the official_name for GCP projects is set as
448 # &#x27;cloudresourcemanager.googleapis.com/Project&#x27; according to
449 # //configs/cloud/resourcetypes/google/cloud/resourcemanager/prod.yaml
450 # For details see go/iam-conditions-integration-guide.
Bu Sun Kim65020912020-05-20 12:08:20 -0700451 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700452 &quot;iamServiceName&quot;: &quot;A String&quot;, # The DNS name of the service (e.g. &quot;resourcemanager.googleapis.com&quot;).
453 # This should be the domain name part of the full resource names (see
454 # https://aip.dev/122#full-resource-names), which is usually
455 # the same as IamServiceSpec.service of the service where the resource type
456 # is defined.
457 &quot;iamPermission&quot;: &quot;A String&quot;, # Permission to check in IAM.
Bu Sun Kim65020912020-05-20 12:08:20 -0700458 },
Dan O'Mearadd494642020-05-01 07:42:23 -0700459 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700460 &quot;name&quot;: &quot;A String&quot;, # Required. The resource name of the IAP protected resource.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700461 &quot;applicationSettings&quot;: { # Wrapper over application specific settings for IAP. # Top level wrapper for all application related settings in IAP
462 &quot;csmSettings&quot;: { # Configuration for RCTokens generated for CSM workloads protected by IAP. # Settings to configure IAP&#x27;s behavior for a CSM mesh.
463 # RCTokens are IAP generated JWTs that can be verified at the application. The
464 # RCToken is primarily used for ISTIO deployments, and can be scoped to a
465 # single mesh by configuring the audience field accordingly
466 &quot;rctokenAud&quot;: &quot;A String&quot;, # Audience claim set in the generated RCToken. This value is not validated by
467 # IAP.
468 },
469 &quot;cookieDomain&quot;: &quot;A String&quot;, # The Domain value to set for cookies generated by IAP. This value is not
470 # validated by the API, but will be ignored at runtime if invalid.
471 &quot;accessDeniedPageSettings&quot;: { # Custom content configuration for access denied page. # Customization for Access Denied page.
472 # IAP allows customers to define a custom URI to use as the error page when
473 # access is denied to users. If IAP prevents access to this page, the default
474 # IAP error page will be displayed instead.
475 &quot;accessDeniedPageUri&quot;: &quot;A String&quot;, # The URI to be redirected to when access is denied.
476 },
477 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700478 }</pre>
Dan O'Mearadd494642020-05-01 07:42:23 -0700479</div>
480
481<div class="method">
482 <code class="details" id="setIamPolicy">setIamPolicy(resource, body=None, x__xgafv=None)</code>
483 <pre>Sets the access control policy for an Identity-Aware Proxy protected
484resource. Replaces any existing policy.
485More information about managing access via IAP can be found at:
486https://cloud.google.com/iap/docs/managing-access#managing_access_via_the_api
487
488Args:
489 resource: string, REQUIRED: The resource for which the policy is being specified.
490See the operation documentation for the appropriate value for this field. (required)
491 body: object, The request body.
492 The object takes the form of:
493
494{ # Request message for `SetIamPolicy` method.
Bu Sun Kim65020912020-05-20 12:08:20 -0700495 &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
Dan O'Mearadd494642020-05-01 07:42:23 -0700496 # the policy is limited to a few 10s of KB. An empty policy is a
497 # valid policy but certain Cloud Platform services (such as Projects)
498 # might reject them.
499 # controls for Google Cloud resources.
500 #
501 #
502 # A `Policy` is a collection of `bindings`. A `binding` binds one or more
503 # `members` to a single `role`. Members can be user accounts, service accounts,
504 # Google groups, and domains (such as G Suite). A `role` is a named list of
505 # permissions; each `role` can be an IAM predefined role or a user-created
506 # custom role.
507 #
Bu Sun Kim65020912020-05-20 12:08:20 -0700508 # For some types of Google Cloud resources, a `binding` can also specify a
509 # `condition`, which is a logical expression that allows access to a resource
510 # only if the expression evaluates to `true`. A condition can add constraints
511 # based on attributes of the request, the resource, or both. To learn which
512 # resources support conditions in their IAM policies, see the
513 # [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
Dan O'Mearadd494642020-05-01 07:42:23 -0700514 #
515 # **JSON example:**
516 #
517 # {
Bu Sun Kim65020912020-05-20 12:08:20 -0700518 # &quot;bindings&quot;: [
Dan O'Mearadd494642020-05-01 07:42:23 -0700519 # {
Bu Sun Kim65020912020-05-20 12:08:20 -0700520 # &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;,
521 # &quot;members&quot;: [
522 # &quot;user:mike@example.com&quot;,
523 # &quot;group:admins@example.com&quot;,
524 # &quot;domain:google.com&quot;,
525 # &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot;
Dan O'Mearadd494642020-05-01 07:42:23 -0700526 # ]
527 # },
528 # {
Bu Sun Kim65020912020-05-20 12:08:20 -0700529 # &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;,
530 # &quot;members&quot;: [
531 # &quot;user:eve@example.com&quot;
532 # ],
533 # &quot;condition&quot;: {
534 # &quot;title&quot;: &quot;expirable access&quot;,
535 # &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;,
536 # &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;,
Dan O'Mearadd494642020-05-01 07:42:23 -0700537 # }
538 # }
539 # ],
Bu Sun Kim65020912020-05-20 12:08:20 -0700540 # &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;,
541 # &quot;version&quot;: 3
Dan O'Mearadd494642020-05-01 07:42:23 -0700542 # }
543 #
544 # **YAML example:**
545 #
546 # bindings:
547 # - members:
548 # - user:mike@example.com
549 # - group:admins@example.com
550 # - domain:google.com
551 # - serviceAccount:my-project-id@appspot.gserviceaccount.com
552 # role: roles/resourcemanager.organizationAdmin
553 # - members:
554 # - user:eve@example.com
555 # role: roles/resourcemanager.organizationViewer
556 # condition:
557 # title: expirable access
558 # description: Does not grant access after Sep 2020
Bu Sun Kim65020912020-05-20 12:08:20 -0700559 # expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)
Dan O'Mearadd494642020-05-01 07:42:23 -0700560 # - etag: BwWWja0YfJA=
561 # - version: 3
562 #
563 # For a description of IAM and its features, see the
564 # [IAM documentation](https://cloud.google.com/iam/docs/).
Bu Sun Kim65020912020-05-20 12:08:20 -0700565 &quot;etag&quot;: &quot;A String&quot;, # `etag` is used for optimistic concurrency control as a way to help
566 # prevent simultaneous updates of a policy from overwriting each other.
567 # It is strongly suggested that systems make use of the `etag` in the
568 # read-modify-write cycle to perform policy updates in order to avoid race
569 # conditions: An `etag` is returned in the response to `getIamPolicy`, and
570 # systems are expected to put that etag in the request to `setIamPolicy` to
571 # ensure that their change will be applied to the same version of the policy.
572 #
573 # **Important:** If you use IAM Conditions, you must include the `etag` field
574 # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
575 # you to overwrite a version `3` policy with a version `1` policy, and all of
576 # the conditions in the version `3` policy are lost.
577 &quot;version&quot;: 42, # Specifies the format of the policy.
578 #
579 # Valid values are `0`, `1`, and `3`. Requests that specify an invalid value
580 # are rejected.
581 #
582 # Any operation that affects conditional role bindings must specify version
583 # `3`. This requirement applies to the following operations:
584 #
585 # * Getting a policy that includes a conditional role binding
586 # * Adding a conditional role binding to a policy
587 # * Changing a conditional role binding in a policy
588 # * Removing any role binding, with or without a condition, from a policy
589 # that includes conditions
590 #
591 # **Important:** If you use IAM Conditions, you must include the `etag` field
592 # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
593 # you to overwrite a version `3` policy with a version `1` policy, and all of
594 # the conditions in the version `3` policy are lost.
595 #
596 # If a policy does not include any conditions, operations on that policy may
597 # specify any valid version or leave the field unset.
598 #
599 # To learn which resources support conditions in their IAM policies, see the
600 # [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
601 &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a
Dan O'Mearadd494642020-05-01 07:42:23 -0700602 # `condition` that determines how and when the `bindings` are applied. Each
603 # of the `bindings` must contain at least one member.
604 { # Associates `members` with a `role`.
Bu Sun Kim65020912020-05-20 12:08:20 -0700605 &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource.
Dan O'Mearadd494642020-05-01 07:42:23 -0700606 # `members` can have the following values:
607 #
608 # * `allUsers`: A special identifier that represents anyone who is
609 # on the internet; with or without a Google account.
610 #
611 # * `allAuthenticatedUsers`: A special identifier that represents anyone
612 # who is authenticated with a Google account or a service account.
613 #
614 # * `user:{emailid}`: An email address that represents a specific Google
615 # account. For example, `alice@example.com` .
616 #
617 #
618 # * `serviceAccount:{emailid}`: An email address that represents a service
619 # account. For example, `my-other-app@appspot.gserviceaccount.com`.
620 #
621 # * `group:{emailid}`: An email address that represents a Google group.
622 # For example, `admins@example.com`.
623 #
624 # * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique
625 # identifier) representing a user that has been recently deleted. For
626 # example, `alice@example.com?uid=123456789012345678901`. If the user is
627 # recovered, this value reverts to `user:{emailid}` and the recovered user
628 # retains the role in the binding.
629 #
630 # * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus
631 # unique identifier) representing a service account that has been recently
632 # deleted. For example,
633 # `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
634 # If the service account is undeleted, this value reverts to
635 # `serviceAccount:{emailid}` and the undeleted service account retains the
636 # role in the binding.
637 #
638 # * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique
639 # identifier) representing a Google group that has been recently
640 # deleted. For example, `admins@example.com?uid=123456789012345678901`. If
641 # the group is recovered, this value reverts to `group:{emailid}` and the
642 # recovered group retains the role in the binding.
643 #
644 #
645 # * `domain:{domain}`: The G Suite domain (primary) that represents all the
646 # users of that domain. For example, `google.com` or `example.com`.
647 #
Bu Sun Kim65020912020-05-20 12:08:20 -0700648 &quot;A String&quot;,
Dan O'Mearadd494642020-05-01 07:42:23 -0700649 ],
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700650 &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`.
651 # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
652 &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) # The condition that is associated with this binding.
653 #
654 # If the condition evaluates to `true`, then this binding applies to the
655 # current request.
656 #
657 # If the condition evaluates to `false`, then this binding does not apply to
658 # the current request. However, a different role binding might grant the same
659 # role to one or more of the members in this binding.
660 #
661 # To learn which resources support conditions in their IAM policies, see the
662 # [IAM
663 # documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
664 # syntax. CEL is a C-like expression language. The syntax and semantics of CEL
665 # are documented at https://github.com/google/cel-spec.
666 #
667 # Example (Comparison):
668 #
669 # title: &quot;Summary size limit&quot;
670 # description: &quot;Determines if a summary is less than 100 chars&quot;
671 # expression: &quot;document.summary.size() &lt; 100&quot;
672 #
673 # Example (Equality):
674 #
675 # title: &quot;Requestor is owner&quot;
676 # description: &quot;Determines if requestor is the document owner&quot;
677 # expression: &quot;document.owner == request.auth.claims.email&quot;
678 #
679 # Example (Logic):
680 #
681 # title: &quot;Public documents&quot;
682 # description: &quot;Determine whether the document should be publicly visible&quot;
683 # expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot;
684 #
685 # Example (Data Manipulation):
686 #
687 # title: &quot;Notification string&quot;
688 # description: &quot;Create a notification string with a timestamp.&quot;
689 # expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot;
690 #
691 # The exact variables and functions that may be referenced within an expression
692 # are determined by the service that evaluates it. See the service
693 # documentation for additional information.
694 &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which
695 # describes the expression, e.g. when hovered over it in a UI.
696 &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language
697 # syntax.
698 &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing
699 # its purpose. This can be used e.g. in UIs which allow to enter the
700 # expression.
701 &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error
702 # reporting, e.g. a file name and a position in the file.
703 },
Dan O'Mearadd494642020-05-01 07:42:23 -0700704 },
705 ],
Dan O'Mearadd494642020-05-01 07:42:23 -0700706 },
707 }
708
709 x__xgafv: string, V1 error format.
710 Allowed values
711 1 - v1 error format
712 2 - v2 error format
713
714Returns:
715 An object of the form:
716
717 { # An Identity and Access Management (IAM) policy, which specifies access
718 # controls for Google Cloud resources.
719 #
720 #
721 # A `Policy` is a collection of `bindings`. A `binding` binds one or more
722 # `members` to a single `role`. Members can be user accounts, service accounts,
723 # Google groups, and domains (such as G Suite). A `role` is a named list of
724 # permissions; each `role` can be an IAM predefined role or a user-created
725 # custom role.
726 #
Bu Sun Kim65020912020-05-20 12:08:20 -0700727 # For some types of Google Cloud resources, a `binding` can also specify a
728 # `condition`, which is a logical expression that allows access to a resource
729 # only if the expression evaluates to `true`. A condition can add constraints
730 # based on attributes of the request, the resource, or both. To learn which
731 # resources support conditions in their IAM policies, see the
732 # [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
Dan O'Mearadd494642020-05-01 07:42:23 -0700733 #
734 # **JSON example:**
735 #
736 # {
Bu Sun Kim65020912020-05-20 12:08:20 -0700737 # &quot;bindings&quot;: [
Dan O'Mearadd494642020-05-01 07:42:23 -0700738 # {
Bu Sun Kim65020912020-05-20 12:08:20 -0700739 # &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;,
740 # &quot;members&quot;: [
741 # &quot;user:mike@example.com&quot;,
742 # &quot;group:admins@example.com&quot;,
743 # &quot;domain:google.com&quot;,
744 # &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot;
Dan O'Mearadd494642020-05-01 07:42:23 -0700745 # ]
746 # },
747 # {
Bu Sun Kim65020912020-05-20 12:08:20 -0700748 # &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;,
749 # &quot;members&quot;: [
750 # &quot;user:eve@example.com&quot;
751 # ],
752 # &quot;condition&quot;: {
753 # &quot;title&quot;: &quot;expirable access&quot;,
754 # &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;,
755 # &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;,
Dan O'Mearadd494642020-05-01 07:42:23 -0700756 # }
757 # }
758 # ],
Bu Sun Kim65020912020-05-20 12:08:20 -0700759 # &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;,
760 # &quot;version&quot;: 3
Dan O'Mearadd494642020-05-01 07:42:23 -0700761 # }
762 #
763 # **YAML example:**
764 #
765 # bindings:
766 # - members:
767 # - user:mike@example.com
768 # - group:admins@example.com
769 # - domain:google.com
770 # - serviceAccount:my-project-id@appspot.gserviceaccount.com
771 # role: roles/resourcemanager.organizationAdmin
772 # - members:
773 # - user:eve@example.com
774 # role: roles/resourcemanager.organizationViewer
775 # condition:
776 # title: expirable access
777 # description: Does not grant access after Sep 2020
Bu Sun Kim65020912020-05-20 12:08:20 -0700778 # expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)
Dan O'Mearadd494642020-05-01 07:42:23 -0700779 # - etag: BwWWja0YfJA=
780 # - version: 3
781 #
782 # For a description of IAM and its features, see the
783 # [IAM documentation](https://cloud.google.com/iam/docs/).
Bu Sun Kim65020912020-05-20 12:08:20 -0700784 &quot;etag&quot;: &quot;A String&quot;, # `etag` is used for optimistic concurrency control as a way to help
785 # prevent simultaneous updates of a policy from overwriting each other.
786 # It is strongly suggested that systems make use of the `etag` in the
787 # read-modify-write cycle to perform policy updates in order to avoid race
788 # conditions: An `etag` is returned in the response to `getIamPolicy`, and
789 # systems are expected to put that etag in the request to `setIamPolicy` to
790 # ensure that their change will be applied to the same version of the policy.
791 #
792 # **Important:** If you use IAM Conditions, you must include the `etag` field
793 # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
794 # you to overwrite a version `3` policy with a version `1` policy, and all of
795 # the conditions in the version `3` policy are lost.
796 &quot;version&quot;: 42, # Specifies the format of the policy.
797 #
798 # Valid values are `0`, `1`, and `3`. Requests that specify an invalid value
799 # are rejected.
800 #
801 # Any operation that affects conditional role bindings must specify version
802 # `3`. This requirement applies to the following operations:
803 #
804 # * Getting a policy that includes a conditional role binding
805 # * Adding a conditional role binding to a policy
806 # * Changing a conditional role binding in a policy
807 # * Removing any role binding, with or without a condition, from a policy
808 # that includes conditions
809 #
810 # **Important:** If you use IAM Conditions, you must include the `etag` field
811 # whenever you call `setIamPolicy`. If you omit this field, then IAM allows
812 # you to overwrite a version `3` policy with a version `1` policy, and all of
813 # the conditions in the version `3` policy are lost.
814 #
815 # If a policy does not include any conditions, operations on that policy may
816 # specify any valid version or leave the field unset.
817 #
818 # To learn which resources support conditions in their IAM policies, see the
819 # [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
820 &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a
Dan O'Mearadd494642020-05-01 07:42:23 -0700821 # `condition` that determines how and when the `bindings` are applied. Each
822 # of the `bindings` must contain at least one member.
823 { # Associates `members` with a `role`.
Bu Sun Kim65020912020-05-20 12:08:20 -0700824 &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource.
Dan O'Mearadd494642020-05-01 07:42:23 -0700825 # `members` can have the following values:
826 #
827 # * `allUsers`: A special identifier that represents anyone who is
828 # on the internet; with or without a Google account.
829 #
830 # * `allAuthenticatedUsers`: A special identifier that represents anyone
831 # who is authenticated with a Google account or a service account.
832 #
833 # * `user:{emailid}`: An email address that represents a specific Google
834 # account. For example, `alice@example.com` .
835 #
836 #
837 # * `serviceAccount:{emailid}`: An email address that represents a service
838 # account. For example, `my-other-app@appspot.gserviceaccount.com`.
839 #
840 # * `group:{emailid}`: An email address that represents a Google group.
841 # For example, `admins@example.com`.
842 #
843 # * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique
844 # identifier) representing a user that has been recently deleted. For
845 # example, `alice@example.com?uid=123456789012345678901`. If the user is
846 # recovered, this value reverts to `user:{emailid}` and the recovered user
847 # retains the role in the binding.
848 #
849 # * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus
850 # unique identifier) representing a service account that has been recently
851 # deleted. For example,
852 # `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
853 # If the service account is undeleted, this value reverts to
854 # `serviceAccount:{emailid}` and the undeleted service account retains the
855 # role in the binding.
856 #
857 # * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique
858 # identifier) representing a Google group that has been recently
859 # deleted. For example, `admins@example.com?uid=123456789012345678901`. If
860 # the group is recovered, this value reverts to `group:{emailid}` and the
861 # recovered group retains the role in the binding.
862 #
863 #
864 # * `domain:{domain}`: The G Suite domain (primary) that represents all the
865 # users of that domain. For example, `google.com` or `example.com`.
866 #
Bu Sun Kim65020912020-05-20 12:08:20 -0700867 &quot;A String&quot;,
Dan O'Mearadd494642020-05-01 07:42:23 -0700868 ],
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700869 &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`.
870 # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
871 &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) # The condition that is associated with this binding.
872 #
873 # If the condition evaluates to `true`, then this binding applies to the
874 # current request.
875 #
876 # If the condition evaluates to `false`, then this binding does not apply to
877 # the current request. However, a different role binding might grant the same
878 # role to one or more of the members in this binding.
879 #
880 # To learn which resources support conditions in their IAM policies, see the
881 # [IAM
882 # documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
883 # syntax. CEL is a C-like expression language. The syntax and semantics of CEL
884 # are documented at https://github.com/google/cel-spec.
885 #
886 # Example (Comparison):
887 #
888 # title: &quot;Summary size limit&quot;
889 # description: &quot;Determines if a summary is less than 100 chars&quot;
890 # expression: &quot;document.summary.size() &lt; 100&quot;
891 #
892 # Example (Equality):
893 #
894 # title: &quot;Requestor is owner&quot;
895 # description: &quot;Determines if requestor is the document owner&quot;
896 # expression: &quot;document.owner == request.auth.claims.email&quot;
897 #
898 # Example (Logic):
899 #
900 # title: &quot;Public documents&quot;
901 # description: &quot;Determine whether the document should be publicly visible&quot;
902 # expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot;
903 #
904 # Example (Data Manipulation):
905 #
906 # title: &quot;Notification string&quot;
907 # description: &quot;Create a notification string with a timestamp.&quot;
908 # expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot;
909 #
910 # The exact variables and functions that may be referenced within an expression
911 # are determined by the service that evaluates it. See the service
912 # documentation for additional information.
913 &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which
914 # describes the expression, e.g. when hovered over it in a UI.
915 &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language
916 # syntax.
917 &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing
918 # its purpose. This can be used e.g. in UIs which allow to enter the
919 # expression.
920 &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error
921 # reporting, e.g. a file name and a position in the file.
922 },
Dan O'Mearadd494642020-05-01 07:42:23 -0700923 },
924 ],
Dan O'Mearadd494642020-05-01 07:42:23 -0700925 }</pre>
926</div>
927
928<div class="method">
929 <code class="details" id="testIamPermissions">testIamPermissions(resource, body=None, x__xgafv=None)</code>
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700930 <pre>Returns permissions that a caller has on the Identity-Aware Proxy protected
931resource.
932More information about managing access via IAP can be found at:
933https://cloud.google.com/iap/docs/managing-access#managing_access_via_the_api
934
935Args:
936 resource: string, REQUIRED: The resource for which the policy detail is being requested.
937See the operation documentation for the appropriate value for this field. (required)
Dan O'Mearadd494642020-05-01 07:42:23 -0700938 body: object, The request body.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700939 The object takes the form of:
940
941{ # Request message for `TestIamPermissions` method.
Bu Sun Kim65020912020-05-20 12:08:20 -0700942 &quot;permissions&quot;: [ # The set of permissions to check for the `resource`. Permissions with
943 # wildcards (such as &#x27;*&#x27; or &#x27;storage.*&#x27;) are not allowed. For more
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700944 # information see
945 # [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
Bu Sun Kim65020912020-05-20 12:08:20 -0700946 &quot;A String&quot;,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700947 ],
948 }
949
950 x__xgafv: string, V1 error format.
951 Allowed values
952 1 - v1 error format
953 2 - v2 error format
954
955Returns:
956 An object of the form:
957
958 { # Response message for `TestIamPermissions` method.
Bu Sun Kim65020912020-05-20 12:08:20 -0700959 &quot;permissions&quot;: [ # A subset of `TestPermissionsRequest.permissions` that the caller is
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700960 # allowed.
Bu Sun Kim65020912020-05-20 12:08:20 -0700961 &quot;A String&quot;,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700962 ],
963 }</pre>
964</div>
965
Dan O'Mearadd494642020-05-01 07:42:23 -0700966<div class="method">
967 <code class="details" id="updateIapSettings">updateIapSettings(name, body=None, updateMask=None, x__xgafv=None)</code>
968 <pre>Updates the IAP settings on a particular IAP protected resource. It
969replaces all fields unless the `update_mask` is set.
970
971Args:
972 name: string, Required. The resource name of the IAP protected resource. (required)
973 body: object, The request body.
974 The object takes the form of:
975
976{ # The IAP configurable settings.
Bu Sun Kim65020912020-05-20 12:08:20 -0700977 &quot;accessSettings&quot;: { # Access related settings for IAP protected apps. # Top level wrapper for all access related setting in IAP
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700978 &quot;oauthSettings&quot;: { # Configuration for OAuth login&amp;consent flow behavior as well as for OAuth # Settings to configure IAP&#x27;s OAuth behavior.
979 # Credentials.
980 &quot;clientId&quot;: &quot;A String&quot;, # OAuth 2.0 client ID used in the OAuth flow to generate an access token. If
981 # this field is set, you can skip obtaining the OAuth credentials in this
982 # step:
983 # https://developers.google.com/identity/protocols/OAuth2?hl=en_US#1.-obtain-oauth-2.0-credentials-from-the-google-api-console.
984 # However, this could allow for client sharing. The risks of client sharing
985 # are outlined here:
986 # https://cloud.google.com/iap/docs/sharing-oauth-clients#risks.
987 &quot;loginHint&quot;: &quot;A String&quot;, # Domain hint to send as hd=? parameter in OAuth request flow. Enables
988 # redirect to primary IDP by skipping Google&#x27;s login screen.
989 # https://developers.google.com/identity/protocols/OpenIDConnect#hd-param
990 # Note: IAP does not verify that the id token&#x27;s hd claim matches this value
991 # since access behavior is managed by IAM policies.
992 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700993 &quot;corsSettings&quot;: { # Allows customers to configure HTTP request paths that&#x27;ll allow HTTP OPTIONS # Configuration to allow cross-origin requests via IAP.
994 # call to bypass authentication and authorization.
995 &quot;allowHttpOptions&quot;: True or False, # Configuration to allow HTTP OPTIONS calls to skip authorization. If
996 # undefined, IAP will not apply any special logic to OPTIONS requests.
997 },
998 &quot;gcipSettings&quot;: { # Allows customers to configure tenant_id for GCIP instance per-app. # GCIP claims and endpoint configurations for 3p identity providers.
999 &quot;loginPageUri&quot;: &quot;A String&quot;, # Login page URI associated with the GCIP tenants.
1000 # Typically, all resources within the same project share the same login page,
1001 # though it could be overridden at the sub resource level.
1002 &quot;tenantIds&quot;: [ # GCIP tenant ids that are linked to the IAP resource.
1003 # tenant_ids could be a string beginning with a number character to indicate
1004 # authenticating with GCIP tenant flow, or in the format of _&lt;ProjectNumber&gt;
1005 # to indicate authenticating with GCIP agent flow.
1006 # If agent flow is used, tenant_ids should only contain one single element,
1007 # while for tenant flow, tenant_ids can contain multiple elements.
1008 &quot;A String&quot;,
1009 ],
1010 },
1011 &quot;policyDelegationSettings&quot;: { # PolicyDelegationConfig allows google-internal teams to use IAP for apps # Settings to configure Policy delegation for apps hosted in tenant projects.
1012 # INTERNAL_ONLY.
1013 # hosted in a tenant project. Using these settings, the app can delegate
1014 # permission check to happen against the linked customer project.
1015 # This is only ever supposed to be used by google internal teams, hence the
1016 # restriction on the proto.
Bu Sun Kim65020912020-05-20 12:08:20 -07001017 &quot;policyName&quot;: { # Policy name to be checked
1018 &quot;type&quot;: &quot;A String&quot;, # Valid values for type might be &#x27;gce&#x27;, &#x27;gcs&#x27;, &#x27;project&#x27;, &#x27;account&#x27; etc.
1019 &quot;id&quot;: &quot;A String&quot;,
1020 &quot;region&quot;: &quot;A String&quot;, # For Cloud IAM:
1021 # The location of the Policy.
1022 # Must be empty or &quot;global&quot; for Policies owned by global IAM. Must name a
1023 # region from prodspec/cloud-iam-cloudspec for Regional IAM Policies, see
1024 # go/iam-faq#where-is-iam-currently-deployed.
1025 #
1026 # For Local IAM:
1027 # This field should be set to &quot;local&quot;.
Dan O'Mearadd494642020-05-01 07:42:23 -07001028 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001029 &quot;resource&quot;: { # IAM resource to check permission on
Bu Sun Kim65020912020-05-20 12:08:20 -07001030 &quot;labels&quot;: { # The service defined labels of the resource on which the conditions will be
1031 # evaluated. The semantics - including the key names - are vague to IAM.
1032 # If the effective condition has a reference to a `resource.labels[foo]`
1033 # construct, IAM consults with this map to retrieve the values associated
1034 # with `foo` key for Conditions evaluation. If the provided key is not found
1035 # in the labels map, the condition would evaluate to false.
1036 #
1037 # This field is in limited use. If your intended use case is not expected
1038 # to express resource.labels attribute in IAM Conditions, leave this field
1039 # empty. Before planning on using this attribute please:
1040 # * Read go/iam-conditions-labels-comm and ensure your service can meet the
1041 # data availability and management requirements.
1042 # * Talk to iam-conditions-eng@ about your use case.
1043 &quot;a_key&quot;: &quot;A String&quot;,
1044 },
1045 &quot;service&quot;: &quot;A String&quot;, # The name of the service this resource belongs to. It is configured using
1046 # the official_service_name of the Service as defined in service
1047 # configurations under //configs/cloud/resourcetypes.
1048 # For example, the official_service_name of cloud resource manager service
1049 # is set as &#x27;cloudresourcemanager.googleapis.com&#x27; according to
1050 # //configs/cloud/resourcetypes/google/cloud/resourcemanager/prod.yaml
1051 &quot;name&quot;: &quot;A String&quot;, # Name of the resource on which conditions will be evaluated.
1052 # Must use the Relative Resource Name of the resource, which is the URI
1053 # path of the resource without the leading &quot;/&quot;. Examples are
1054 # &quot;projects/_/buckets/[BUCKET-ID]&quot; for storage buckets or
1055 # &quot;projects/[PROJECT-ID]/global/firewalls/[FIREWALL-ID]&quot; for a firewall.
1056 #
1057 # This field is required for evaluating conditions with rules on resource
1058 # names. For a `list` permission check, the resource.name value must be set
1059 # to the parent resource. If the parent resource is a project, this field
1060 # should be left unset.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001061 &quot;type&quot;: &quot;A String&quot;, # The public resource type name of the resource on which conditions will be
1062 # evaluated. It is configured using the official_name of the ResourceType as
1063 # defined in service configurations under //configs/cloud/resourcetypes.
1064 # For example, the official_name for GCP projects is set as
1065 # &#x27;cloudresourcemanager.googleapis.com/Project&#x27; according to
1066 # //configs/cloud/resourcetypes/google/cloud/resourcemanager/prod.yaml
1067 # For details see go/iam-conditions-integration-guide.
Bu Sun Kim65020912020-05-20 12:08:20 -07001068 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001069 &quot;iamServiceName&quot;: &quot;A String&quot;, # The DNS name of the service (e.g. &quot;resourcemanager.googleapis.com&quot;).
1070 # This should be the domain name part of the full resource names (see
1071 # https://aip.dev/122#full-resource-names), which is usually
1072 # the same as IamServiceSpec.service of the service where the resource type
1073 # is defined.
1074 &quot;iamPermission&quot;: &quot;A String&quot;, # Permission to check in IAM.
Bu Sun Kim65020912020-05-20 12:08:20 -07001075 },
Dan O'Mearadd494642020-05-01 07:42:23 -07001076 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001077 &quot;name&quot;: &quot;A String&quot;, # Required. The resource name of the IAP protected resource.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001078 &quot;applicationSettings&quot;: { # Wrapper over application specific settings for IAP. # Top level wrapper for all application related settings in IAP
1079 &quot;csmSettings&quot;: { # Configuration for RCTokens generated for CSM workloads protected by IAP. # Settings to configure IAP&#x27;s behavior for a CSM mesh.
1080 # RCTokens are IAP generated JWTs that can be verified at the application. The
1081 # RCToken is primarily used for ISTIO deployments, and can be scoped to a
1082 # single mesh by configuring the audience field accordingly
1083 &quot;rctokenAud&quot;: &quot;A String&quot;, # Audience claim set in the generated RCToken. This value is not validated by
1084 # IAP.
1085 },
1086 &quot;cookieDomain&quot;: &quot;A String&quot;, # The Domain value to set for cookies generated by IAP. This value is not
1087 # validated by the API, but will be ignored at runtime if invalid.
1088 &quot;accessDeniedPageSettings&quot;: { # Custom content configuration for access denied page. # Customization for Access Denied page.
1089 # IAP allows customers to define a custom URI to use as the error page when
1090 # access is denied to users. If IAP prevents access to this page, the default
1091 # IAP error page will be displayed instead.
1092 &quot;accessDeniedPageUri&quot;: &quot;A String&quot;, # The URI to be redirected to when access is denied.
1093 },
1094 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001095 }
Dan O'Mearadd494642020-05-01 07:42:23 -07001096
1097 updateMask: string, The field mask specifying which IAP settings should be updated.
1098If omitted, the all of the settings are updated. See
1099https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
1100 x__xgafv: string, V1 error format.
1101 Allowed values
1102 1 - v1 error format
1103 2 - v2 error format
1104
1105Returns:
1106 An object of the form:
1107
1108 { # The IAP configurable settings.
Bu Sun Kim65020912020-05-20 12:08:20 -07001109 &quot;accessSettings&quot;: { # Access related settings for IAP protected apps. # Top level wrapper for all access related setting in IAP
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001110 &quot;oauthSettings&quot;: { # Configuration for OAuth login&amp;consent flow behavior as well as for OAuth # Settings to configure IAP&#x27;s OAuth behavior.
1111 # Credentials.
1112 &quot;clientId&quot;: &quot;A String&quot;, # OAuth 2.0 client ID used in the OAuth flow to generate an access token. If
1113 # this field is set, you can skip obtaining the OAuth credentials in this
1114 # step:
1115 # https://developers.google.com/identity/protocols/OAuth2?hl=en_US#1.-obtain-oauth-2.0-credentials-from-the-google-api-console.
1116 # However, this could allow for client sharing. The risks of client sharing
1117 # are outlined here:
1118 # https://cloud.google.com/iap/docs/sharing-oauth-clients#risks.
1119 &quot;loginHint&quot;: &quot;A String&quot;, # Domain hint to send as hd=? parameter in OAuth request flow. Enables
1120 # redirect to primary IDP by skipping Google&#x27;s login screen.
1121 # https://developers.google.com/identity/protocols/OpenIDConnect#hd-param
1122 # Note: IAP does not verify that the id token&#x27;s hd claim matches this value
1123 # since access behavior is managed by IAM policies.
1124 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001125 &quot;corsSettings&quot;: { # Allows customers to configure HTTP request paths that&#x27;ll allow HTTP OPTIONS # Configuration to allow cross-origin requests via IAP.
1126 # call to bypass authentication and authorization.
1127 &quot;allowHttpOptions&quot;: True or False, # Configuration to allow HTTP OPTIONS calls to skip authorization. If
1128 # undefined, IAP will not apply any special logic to OPTIONS requests.
1129 },
1130 &quot;gcipSettings&quot;: { # Allows customers to configure tenant_id for GCIP instance per-app. # GCIP claims and endpoint configurations for 3p identity providers.
1131 &quot;loginPageUri&quot;: &quot;A String&quot;, # Login page URI associated with the GCIP tenants.
1132 # Typically, all resources within the same project share the same login page,
1133 # though it could be overridden at the sub resource level.
1134 &quot;tenantIds&quot;: [ # GCIP tenant ids that are linked to the IAP resource.
1135 # tenant_ids could be a string beginning with a number character to indicate
1136 # authenticating with GCIP tenant flow, or in the format of _&lt;ProjectNumber&gt;
1137 # to indicate authenticating with GCIP agent flow.
1138 # If agent flow is used, tenant_ids should only contain one single element,
1139 # while for tenant flow, tenant_ids can contain multiple elements.
1140 &quot;A String&quot;,
1141 ],
1142 },
1143 &quot;policyDelegationSettings&quot;: { # PolicyDelegationConfig allows google-internal teams to use IAP for apps # Settings to configure Policy delegation for apps hosted in tenant projects.
1144 # INTERNAL_ONLY.
1145 # hosted in a tenant project. Using these settings, the app can delegate
1146 # permission check to happen against the linked customer project.
1147 # This is only ever supposed to be used by google internal teams, hence the
1148 # restriction on the proto.
Bu Sun Kim65020912020-05-20 12:08:20 -07001149 &quot;policyName&quot;: { # Policy name to be checked
1150 &quot;type&quot;: &quot;A String&quot;, # Valid values for type might be &#x27;gce&#x27;, &#x27;gcs&#x27;, &#x27;project&#x27;, &#x27;account&#x27; etc.
1151 &quot;id&quot;: &quot;A String&quot;,
1152 &quot;region&quot;: &quot;A String&quot;, # For Cloud IAM:
1153 # The location of the Policy.
1154 # Must be empty or &quot;global&quot; for Policies owned by global IAM. Must name a
1155 # region from prodspec/cloud-iam-cloudspec for Regional IAM Policies, see
1156 # go/iam-faq#where-is-iam-currently-deployed.
1157 #
1158 # For Local IAM:
1159 # This field should be set to &quot;local&quot;.
Dan O'Mearadd494642020-05-01 07:42:23 -07001160 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001161 &quot;resource&quot;: { # IAM resource to check permission on
Bu Sun Kim65020912020-05-20 12:08:20 -07001162 &quot;labels&quot;: { # The service defined labels of the resource on which the conditions will be
1163 # evaluated. The semantics - including the key names - are vague to IAM.
1164 # If the effective condition has a reference to a `resource.labels[foo]`
1165 # construct, IAM consults with this map to retrieve the values associated
1166 # with `foo` key for Conditions evaluation. If the provided key is not found
1167 # in the labels map, the condition would evaluate to false.
1168 #
1169 # This field is in limited use. If your intended use case is not expected
1170 # to express resource.labels attribute in IAM Conditions, leave this field
1171 # empty. Before planning on using this attribute please:
1172 # * Read go/iam-conditions-labels-comm and ensure your service can meet the
1173 # data availability and management requirements.
1174 # * Talk to iam-conditions-eng@ about your use case.
1175 &quot;a_key&quot;: &quot;A String&quot;,
1176 },
1177 &quot;service&quot;: &quot;A String&quot;, # The name of the service this resource belongs to. It is configured using
1178 # the official_service_name of the Service as defined in service
1179 # configurations under //configs/cloud/resourcetypes.
1180 # For example, the official_service_name of cloud resource manager service
1181 # is set as &#x27;cloudresourcemanager.googleapis.com&#x27; according to
1182 # //configs/cloud/resourcetypes/google/cloud/resourcemanager/prod.yaml
1183 &quot;name&quot;: &quot;A String&quot;, # Name of the resource on which conditions will be evaluated.
1184 # Must use the Relative Resource Name of the resource, which is the URI
1185 # path of the resource without the leading &quot;/&quot;. Examples are
1186 # &quot;projects/_/buckets/[BUCKET-ID]&quot; for storage buckets or
1187 # &quot;projects/[PROJECT-ID]/global/firewalls/[FIREWALL-ID]&quot; for a firewall.
1188 #
1189 # This field is required for evaluating conditions with rules on resource
1190 # names. For a `list` permission check, the resource.name value must be set
1191 # to the parent resource. If the parent resource is a project, this field
1192 # should be left unset.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001193 &quot;type&quot;: &quot;A String&quot;, # The public resource type name of the resource on which conditions will be
1194 # evaluated. It is configured using the official_name of the ResourceType as
1195 # defined in service configurations under //configs/cloud/resourcetypes.
1196 # For example, the official_name for GCP projects is set as
1197 # &#x27;cloudresourcemanager.googleapis.com/Project&#x27; according to
1198 # //configs/cloud/resourcetypes/google/cloud/resourcemanager/prod.yaml
1199 # For details see go/iam-conditions-integration-guide.
Bu Sun Kim65020912020-05-20 12:08:20 -07001200 },
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001201 &quot;iamServiceName&quot;: &quot;A String&quot;, # The DNS name of the service (e.g. &quot;resourcemanager.googleapis.com&quot;).
1202 # This should be the domain name part of the full resource names (see
1203 # https://aip.dev/122#full-resource-names), which is usually
1204 # the same as IamServiceSpec.service of the service where the resource type
1205 # is defined.
1206 &quot;iamPermission&quot;: &quot;A String&quot;, # Permission to check in IAM.
Bu Sun Kim65020912020-05-20 12:08:20 -07001207 },
Dan O'Mearadd494642020-05-01 07:42:23 -07001208 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001209 &quot;name&quot;: &quot;A String&quot;, # Required. The resource name of the IAP protected resource.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001210 &quot;applicationSettings&quot;: { # Wrapper over application specific settings for IAP. # Top level wrapper for all application related settings in IAP
1211 &quot;csmSettings&quot;: { # Configuration for RCTokens generated for CSM workloads protected by IAP. # Settings to configure IAP&#x27;s behavior for a CSM mesh.
1212 # RCTokens are IAP generated JWTs that can be verified at the application. The
1213 # RCToken is primarily used for ISTIO deployments, and can be scoped to a
1214 # single mesh by configuring the audience field accordingly
1215 &quot;rctokenAud&quot;: &quot;A String&quot;, # Audience claim set in the generated RCToken. This value is not validated by
1216 # IAP.
1217 },
1218 &quot;cookieDomain&quot;: &quot;A String&quot;, # The Domain value to set for cookies generated by IAP. This value is not
1219 # validated by the API, but will be ignored at runtime if invalid.
1220 &quot;accessDeniedPageSettings&quot;: { # Custom content configuration for access denied page. # Customization for Access Denied page.
1221 # IAP allows customers to define a custom URI to use as the error page when
1222 # access is denied to users. If IAP prevents access to this page, the default
1223 # IAP error page will be displayed instead.
1224 &quot;accessDeniedPageUri&quot;: &quot;A String&quot;, # The URI to be redirected to when access is denied.
1225 },
1226 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001227 }</pre>
Dan O'Mearadd494642020-05-01 07:42:23 -07001228</div>
1229
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001230</body></html>