docs: update docs (#916)
* fix: re-run script
* test: fix noxfile
diff --git a/docs/dyn/cloudasset_v1p4beta1.v1p4beta1.html b/docs/dyn/cloudasset_v1p4beta1.v1p4beta1.html
index 96660e6..9ecbfc8 100644
--- a/docs/dyn/cloudasset_v1p4beta1.v1p4beta1.html
+++ b/docs/dyn/cloudasset_v1p4beta1.v1p4beta1.html
@@ -75,14 +75,14 @@
<h1><a href="cloudasset_v1p4beta1.html">Cloud Asset API</a> . <a href="cloudasset_v1p4beta1.v1p4beta1.html">v1p4beta1</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
- <code><a href="#analyzeIamPolicy">analyzeIamPolicy(parent, analysisQuery_identitySelector_identity=None, analysisQuery_resourceSelector_fullResourceName=None, options_analyzeServiceAccountImpersonation=None, options_outputResourceEdges=None, analysisQuery_accessSelector_roles=None, options_expandResources=None, analysisQuery_accessSelector_permissions=None, options_expandRoles=None, options_executionTimeout=None, options_outputGroupEdges=None, options_expandGroups=None, x__xgafv=None)</a></code></p>
+ <code><a href="#analyzeIamPolicy">analyzeIamPolicy(parent, options_analyzeServiceAccountImpersonation=None, options_outputResourceEdges=None, options_expandResources=None, analysisQuery_accessSelector_roles=None, options_expandRoles=None, analysisQuery_accessSelector_permissions=None, options_executionTimeout=None, options_outputGroupEdges=None, options_expandGroups=None, analysisQuery_identitySelector_identity=None, analysisQuery_resourceSelector_fullResourceName=None, x__xgafv=None)</a></code></p>
<p class="firstline">Analyzes IAM policies based on the specified request. Returns</p>
<p class="toc_element">
<code><a href="#exportIamPolicyAnalysis">exportIamPolicyAnalysis(parent, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Exports IAM policy analysis based on the specified request. This API</p>
<h3>Method Details</h3>
<div class="method">
- <code class="details" id="analyzeIamPolicy">analyzeIamPolicy(parent, analysisQuery_identitySelector_identity=None, analysisQuery_resourceSelector_fullResourceName=None, options_analyzeServiceAccountImpersonation=None, options_outputResourceEdges=None, analysisQuery_accessSelector_roles=None, options_expandResources=None, analysisQuery_accessSelector_permissions=None, options_expandRoles=None, options_executionTimeout=None, options_outputGroupEdges=None, options_expandGroups=None, x__xgafv=None)</code>
+ <code class="details" id="analyzeIamPolicy">analyzeIamPolicy(parent, options_analyzeServiceAccountImpersonation=None, options_outputResourceEdges=None, options_expandResources=None, analysisQuery_accessSelector_roles=None, options_expandRoles=None, analysisQuery_accessSelector_permissions=None, options_executionTimeout=None, options_outputGroupEdges=None, options_expandGroups=None, analysisQuery_identitySelector_identity=None, analysisQuery_resourceSelector_fullResourceName=None, x__xgafv=None)</code>
<pre>Analyzes IAM policies based on the specified request. Returns
a list of IamPolicyAnalysisResult matching the request.
@@ -90,12 +90,6 @@
parent: string, Required. The relative name of the root asset. Only resources and IAM policies within
the parent will be analyzed. This can only be an organization number (such
as "organizations/123") or a folder number (such as "folders/123"). (required)
- analysisQuery_identitySelector_identity: string, Required. The identity appear in the form of members in
-[IAM policy
-binding](https://cloud.google.com/iam/reference/rest/v1/Binding).
- analysisQuery_resourceSelector_fullResourceName: string, Required. The [full resource
-name](https://cloud.google.com/apis/design/resource_names#full_resource_name)
-.
options_analyzeServiceAccountImpersonation: boolean, Optional. If true, the response will include access analysis from identities to
resources via service account impersonation. This is a very expensive
operation, because many derived queries will be executed. We highly
@@ -121,7 +115,6 @@
options_outputResourceEdges: boolean, Optional. If true, the result will output resource edges, starting
from the policy attached resource, to any expanded resources.
Default is false.
- analysisQuery_accessSelector_roles: string, Optional. The roles to appear in result. (repeated)
options_expandResources: boolean, Optional. If true, the resource section of the result will expand any
resource attached to an IAM policy to include resources lower in the
resource hierarchy.
@@ -134,7 +127,7 @@
If resource_selector is specified, the resource section of the result
will be determined by the selector, and this flag will have no effect.
Default is false.
- analysisQuery_accessSelector_permissions: string, Optional. The permissions to appear in result. (repeated)
+ analysisQuery_accessSelector_roles: string, Optional. The roles to appear in result. (repeated)
options_expandRoles: boolean, Optional. If true, the access section of result will expand any roles
appearing in IAM policy bindings to include their permissions.
@@ -142,6 +135,7 @@
will be determined by the selector, and this flag will have no effect.
Default is false.
+ analysisQuery_accessSelector_permissions: string, Optional. The permissions to appear in result. (repeated)
options_executionTimeout: string, Optional. Amount of time executable has to complete. See JSON representation of
[Duration](https://developers.google.com/protocol-buffers/docs/proto3#json).
@@ -162,6 +156,12 @@
be determined by the selector, and this flag will have no effect.
Default is false.
+ analysisQuery_identitySelector_identity: string, Required. The identity appear in the form of members in
+[IAM policy
+binding](https://cloud.google.com/iam/reference/rest/v1/Binding).
+ analysisQuery_resourceSelector_fullResourceName: string, Required. The [full resource
+name](https://cloud.google.com/apis/design/resource_names#full_resource_name)
+.
x__xgafv: string, V1 error format.
Allowed values
1 - v1 error format
@@ -178,109 +178,54 @@
# explain why `fully_explored` is false, or empty if no error happened.
{ # Represents analysis state of each node in the result graph or non-critical
# errors in the response.
- "cause": "A String", # The human-readable description of the cause of failure.
"code": "A String", # The Google standard error code that best describes the state.
# For example:
# - OK means the node has been successfully explored;
# - PERMISSION_DENIED means an access denied error is encountered;
# - DEADLINE_EXCEEDED means the node hasn't been explored in time;
+ "cause": "A String", # The human-readable description of the cause of failure.
},
],
"mainAnalysis": { # An analysis message to group the query and results. # The main analysis that matches the original request.
+ "fullyExplored": True or False, # Represents whether all entries in the analysis_results have been
+ # fully explored to answer the query.
+ "analysisQuery": { # IAM policy analysis query message. # The analysis query.
+ "parent": "A String", # Required. The relative name of the root asset. Only resources and IAM policies within
+ # the parent will be analyzed. This can only be an organization number (such
+ # as "organizations/123") or a folder number (such as "folders/123").
+ "resourceSelector": { # Specifies the resource to analyze for access policies, which may be set # Optional. Specifies a resource for analysis. Leaving it empty means ANY.
+ # directly on the resource, or on ancestors such as organizations, folders or
+ # projects. At least one of ResourceSelector, IdentitySelector or
+ # AccessSelector must be specified in a request.
+ "fullResourceName": "A String", # Required. The [full resource
+ # name](https://cloud.google.com/apis/design/resource_names#full_resource_name)
+ # .
+ },
+ "accessSelector": { # Specifies roles and/or permissions to analyze, to determine both the # Optional. Specifies roles or permissions for analysis. Leaving it empty
+ # means ANY.
+ # identities possessing them and the resources they control. If multiple
+ # values are specified, results will include identities and resources
+ # matching any of them.
+ "roles": [ # Optional. The roles to appear in result.
+ "A String",
+ ],
+ "permissions": [ # Optional. The permissions to appear in result.
+ "A String",
+ ],
+ },
+ "identitySelector": { # Specifies an identity for which to determine resource access, based on # Optional. Specifies an identity for analysis. Leaving it empty means ANY.
+ # roles assigned either directly to them or to the groups they belong to,
+ # directly or indirectly.
+ "identity": "A String", # Required. The identity appear in the form of members in
+ # [IAM policy
+ # binding](https://cloud.google.com/iam/reference/rest/v1/Binding).
+ },
+ },
"analysisResults": [ # A list of IamPolicyAnalysisResult that matches the analysis query, or
# empty if no result is found.
{ # IAM Policy analysis result, consisting of one IAM policy binding and derived
# access control lists.
- "identityList": { # The identity list derived from members of the iam_binding that match or
- # potentially match identity selector specified in the request.
- "identities": [ # Only the identities that match one of the following conditions will be
- # presented:
- # - The identity_selector, if it is specified in request;
- # - Otherwise, identities reachable from the policy binding's members.
- { # An identity that appears in an access control list.
- "name": "A String", # The identity name in any form of members appear in
- # [IAM policy
- # binding](https://cloud.google.com/iam/reference/rest/v1/Binding), such
- # as:
- # - user:foo@google.com
- # - group:group1@google.com
- # - serviceAccount:s1@prj1.iam.gserviceaccount.com
- # - projectOwner:some_project_id
- # - domain:google.com
- # - allUsers
- # - etc.
- "analysisState": { # Represents analysis state of each node in the result graph or non-critical # The analysis state of this identity node.
- # errors in the response.
- "cause": "A String", # The human-readable description of the cause of failure.
- "code": "A String", # The Google standard error code that best describes the state.
- # For example:
- # - OK means the node has been successfully explored;
- # - PERMISSION_DENIED means an access denied error is encountered;
- # - DEADLINE_EXCEEDED means the node hasn't been explored in time;
- },
- },
- ],
- "groupEdges": [ # Group identity edges of the graph starting from the binding's
- # group members to any node of the identities. The Edge.source_node
- # contains a group, such as "group:parent@google.com". The
- # Edge.target_node contains a member of the group,
- # such as "group:child@google.com" or "user:foo@google.com".
- # This field is present only if the output_group_edges option is enabled in
- # request.
- { # A directional edge.
- "targetNode": "A String", # The target node of the edge.
- "sourceNode": "A String", # The source node of the edge.
- },
- ],
- },
- "attachedResourceFullName": "A String", # The full name of the resource to which the iam_binding policy attaches.
"iamBinding": { # Associates `members` with a `role`. # The Cloud IAM policy binding under analysis.
- "role": "A String", # Role that is assigned to `members`.
- # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
- "condition": { # Represents a textual expression in the Common Expression Language (CEL) # The condition that is associated with this binding.
- # NOTE: An unsatisfied condition will not allow user access via current
- # binding. Different bindings, including their conditions, are examined
- # independently.
- # syntax. CEL is a C-like expression language. The syntax and semantics of CEL
- # are documented at https://github.com/google/cel-spec.
- #
- # Example (Comparison):
- #
- # title: "Summary size limit"
- # description: "Determines if a summary is less than 100 chars"
- # expression: "document.summary.size() < 100"
- #
- # Example (Equality):
- #
- # title: "Requestor is owner"
- # description: "Determines if requestor is the document owner"
- # expression: "document.owner == request.auth.claims.email"
- #
- # Example (Logic):
- #
- # title: "Public documents"
- # description: "Determine whether the document should be publicly visible"
- # expression: "document.type != 'private' && document.type != 'internal'"
- #
- # Example (Data Manipulation):
- #
- # title: "Notification string"
- # description: "Create a notification string with a timestamp."
- # expression: "'New message received at ' + string(document.create_time)"
- #
- # The exact variables and functions that may be referenced within an expression
- # are determined by the service that evaluates it. See the service
- # documentation for additional information.
- "expression": "A String", # Textual representation of an expression in Common Expression Language
- # syntax.
- "title": "A String", # Optional. Title for the expression, i.e. a short string describing
- # its purpose. This can be used e.g. in UIs which allow to enter the
- # expression.
- "location": "A String", # Optional. String indicating the location of the expression for error
- # reporting, e.g. a file name and a position in the file.
- "description": "A String", # Optional. Description of the expression. This is a longer text which
- # describes the expression, e.g. when hovered over it in a UI.
- },
"members": [ # Specifies the identities requesting access for a Cloud Platform resource.
# `members` can have the following values:
#
@@ -326,6 +271,60 @@
#
"A String",
],
+ "role": "A String", # Role that is assigned to `members`.
+ # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+ "condition": { # Represents a textual expression in the Common Expression Language (CEL) # The condition that is associated with this binding.
+ #
+ # If the condition evaluates to `true`, then this binding applies to the
+ # current request.
+ #
+ # If the condition evaluates to `false`, then this binding does not apply to
+ # the current request. However, a different role binding might grant the same
+ # role to one or more of the members in this binding.
+ #
+ # To learn which resources support conditions in their IAM policies, see the
+ # [IAM
+ # documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+ # syntax. CEL is a C-like expression language. The syntax and semantics of CEL
+ # are documented at https://github.com/google/cel-spec.
+ #
+ # Example (Comparison):
+ #
+ # title: "Summary size limit"
+ # description: "Determines if a summary is less than 100 chars"
+ # expression: "document.summary.size() < 100"
+ #
+ # Example (Equality):
+ #
+ # title: "Requestor is owner"
+ # description: "Determines if requestor is the document owner"
+ # expression: "document.owner == request.auth.claims.email"
+ #
+ # Example (Logic):
+ #
+ # title: "Public documents"
+ # description: "Determine whether the document should be publicly visible"
+ # expression: "document.type != 'private' && document.type != 'internal'"
+ #
+ # Example (Data Manipulation):
+ #
+ # title: "Notification string"
+ # description: "Create a notification string with a timestamp."
+ # expression: "'New message received at ' + string(document.create_time)"
+ #
+ # The exact variables and functions that may be referenced within an expression
+ # are determined by the service that evaluates it. See the service
+ # documentation for additional information.
+ "title": "A String", # Optional. Title for the expression, i.e. a short string describing
+ # its purpose. This can be used e.g. in UIs which allow to enter the
+ # expression.
+ "location": "A String", # Optional. String indicating the location of the expression for error
+ # reporting, e.g. a file name and a position in the file.
+ "description": "A String", # Optional. Description of the expression. This is a longer text which
+ # describes the expression, e.g. when hovered over it in a UI.
+ "expression": "A String", # Textual representation of an expression in Common Expression Language
+ # syntax.
+ },
},
"accessControlLists": [ # The access control lists derived from the iam_binding that match or
# potentially match resource and access selectors specified in the request.
@@ -344,14 +343,31 @@
# This will result in the following access control lists:
# - AccessControlList 1: [R1, R2], [P1, P2]
# - AccessControlList 2: [R2, R3], [P3]
+ "accesses": [ # The accesses that match one of the following conditions:
+ # - The access_selector, if it is specified in request;
+ # - Otherwise, access specifiers reachable from the policy binding's role.
+ { # A role or permission that appears in an access control list.
+ "permission": "A String", # The permission.
+ "analysisState": { # Represents analysis state of each node in the result graph or non-critical # The analysis state of this access node.
+ # errors in the response.
+ "code": "A String", # The Google standard error code that best describes the state.
+ # For example:
+ # - OK means the node has been successfully explored;
+ # - PERMISSION_DENIED means an access denied error is encountered;
+ # - DEADLINE_EXCEEDED means the node hasn't been explored in time;
+ "cause": "A String", # The human-readable description of the cause of failure.
+ },
+ "role": "A String", # The role.
+ },
+ ],
"resourceEdges": [ # Resource edges of the graph starting from the policy attached
# resource to any descendant resources. The Edge.source_node contains
# the full resource name of a parent resource and Edge.target_node
# contains the full resource name of a child resource. This field is
# present only if the output_resource_edges option is enabled in request.
{ # A directional edge.
- "targetNode": "A String", # The target node of the edge.
"sourceNode": "A String", # The source node of the edge.
+ "targetNode": "A String", # The target node of the edge.
},
],
"resources": [ # The resources that match one of the following conditions:
@@ -361,29 +377,12 @@
"fullResourceName": "A String", # The [full resource name](https://aip.dev/122#full-resource-names).
"analysisState": { # Represents analysis state of each node in the result graph or non-critical # The analysis state of this resource node.
# errors in the response.
- "cause": "A String", # The human-readable description of the cause of failure.
"code": "A String", # The Google standard error code that best describes the state.
# For example:
# - OK means the node has been successfully explored;
# - PERMISSION_DENIED means an access denied error is encountered;
# - DEADLINE_EXCEEDED means the node hasn't been explored in time;
- },
- },
- ],
- "accesses": [ # The accesses that match one of the following conditions:
- # - The access_selector, if it is specified in request;
- # - Otherwise, access specifiers reachable from the policy binding's role.
- { # A role or permission that appears in an access control list.
- "role": "A String", # The role.
- "permission": "A String", # The permission.
- "analysisState": { # Represents analysis state of each node in the result graph or non-critical # The analysis state of this access node.
- # errors in the response.
"cause": "A String", # The human-readable description of the cause of failure.
- "code": "A String", # The Google standard error code that best describes the state.
- # For example:
- # - OK means the node has been successfully explored;
- # - PERMISSION_DENIED means an access denied error is encountered;
- # - DEADLINE_EXCEEDED means the node hasn't been explored in time;
},
},
],
@@ -391,141 +390,95 @@
],
"fullyExplored": True or False, # Represents whether all nodes in the transitive closure of the
# iam_binding node have been explored.
+ "identityList": { # The identity list derived from members of the iam_binding that match or
+ # potentially match identity selector specified in the request.
+ "identities": [ # Only the identities that match one of the following conditions will be
+ # presented:
+ # - The identity_selector, if it is specified in request;
+ # - Otherwise, identities reachable from the policy binding's members.
+ { # An identity that appears in an access control list.
+ "analysisState": { # Represents analysis state of each node in the result graph or non-critical # The analysis state of this identity node.
+ # errors in the response.
+ "code": "A String", # The Google standard error code that best describes the state.
+ # For example:
+ # - OK means the node has been successfully explored;
+ # - PERMISSION_DENIED means an access denied error is encountered;
+ # - DEADLINE_EXCEEDED means the node hasn't been explored in time;
+ "cause": "A String", # The human-readable description of the cause of failure.
+ },
+ "name": "A String", # The identity name in any form of members appear in
+ # [IAM policy
+ # binding](https://cloud.google.com/iam/reference/rest/v1/Binding), such
+ # as:
+ # - user:foo@google.com
+ # - group:group1@google.com
+ # - serviceAccount:s1@prj1.iam.gserviceaccount.com
+ # - projectOwner:some_project_id
+ # - domain:google.com
+ # - allUsers
+ # - etc.
+ },
+ ],
+ "groupEdges": [ # Group identity edges of the graph starting from the binding's
+ # group members to any node of the identities. The Edge.source_node
+ # contains a group, such as "group:parent@google.com". The
+ # Edge.target_node contains a member of the group,
+ # such as "group:child@google.com" or "user:foo@google.com".
+ # This field is present only if the output_group_edges option is enabled in
+ # request.
+ { # A directional edge.
+ "sourceNode": "A String", # The source node of the edge.
+ "targetNode": "A String", # The target node of the edge.
+ },
+ ],
+ },
+ "attachedResourceFullName": "A String", # The full name of the resource to which the iam_binding policy attaches.
},
],
- "fullyExplored": True or False, # Represents whether all entries in the analysis_results have been
- # fully explored to answer the query.
- "analysisQuery": { # IAM policy analysis query message. # The analysis query.
- "accessSelector": { # Specifies roles and/or permissions to analyze, to determine both the # Optional. Specifies roles or permissions for analysis. Leaving it empty
- # means ANY.
- # identities possessing them and the resources they control. If multiple
- # values are specified, results will include identities and resources
- # matching any of them.
- "roles": [ # Optional. The roles to appear in result.
- "A String",
- ],
- "permissions": [ # Optional. The permissions to appear in result.
- "A String",
- ],
- },
- "identitySelector": { # Specifies an identity for which to determine resource access, based on # Optional. Specifies an identity for analysis. Leaving it empty means ANY.
- # roles assigned either directly to them or to the groups they belong to,
- # directly or indirectly.
- "identity": "A String", # Required. The identity appear in the form of members in
- # [IAM policy
- # binding](https://cloud.google.com/iam/reference/rest/v1/Binding).
- },
- "parent": "A String", # Required. The relative name of the root asset. Only resources and IAM policies within
- # the parent will be analyzed. This can only be an organization number (such
- # as "organizations/123") or a folder number (such as "folders/123").
- "resourceSelector": { # Specifies the resource to analyze for access policies, which may be set # Optional. Specifies a resource for analysis. Leaving it empty means ANY.
- # directly on the resource, or on ancestors such as organizations, folders or
- # projects. At least one of ResourceSelector, IdentitySelector or
- # AccessSelector must be specified in a request.
- "fullResourceName": "A String", # Required. The [full resource
- # name](https://cloud.google.com/apis/design/resource_names#full_resource_name)
- # .
- },
- },
},
"serviceAccountImpersonationAnalysis": [ # The service account impersonation analysis if
# AnalyzeIamPolicyRequest.analyze_service_account_impersonation is
# enabled.
{ # An analysis message to group the query and results.
+ "fullyExplored": True or False, # Represents whether all entries in the analysis_results have been
+ # fully explored to answer the query.
+ "analysisQuery": { # IAM policy analysis query message. # The analysis query.
+ "parent": "A String", # Required. The relative name of the root asset. Only resources and IAM policies within
+ # the parent will be analyzed. This can only be an organization number (such
+ # as "organizations/123") or a folder number (such as "folders/123").
+ "resourceSelector": { # Specifies the resource to analyze for access policies, which may be set # Optional. Specifies a resource for analysis. Leaving it empty means ANY.
+ # directly on the resource, or on ancestors such as organizations, folders or
+ # projects. At least one of ResourceSelector, IdentitySelector or
+ # AccessSelector must be specified in a request.
+ "fullResourceName": "A String", # Required. The [full resource
+ # name](https://cloud.google.com/apis/design/resource_names#full_resource_name)
+ # .
+ },
+ "accessSelector": { # Specifies roles and/or permissions to analyze, to determine both the # Optional. Specifies roles or permissions for analysis. Leaving it empty
+ # means ANY.
+ # identities possessing them and the resources they control. If multiple
+ # values are specified, results will include identities and resources
+ # matching any of them.
+ "roles": [ # Optional. The roles to appear in result.
+ "A String",
+ ],
+ "permissions": [ # Optional. The permissions to appear in result.
+ "A String",
+ ],
+ },
+ "identitySelector": { # Specifies an identity for which to determine resource access, based on # Optional. Specifies an identity for analysis. Leaving it empty means ANY.
+ # roles assigned either directly to them or to the groups they belong to,
+ # directly or indirectly.
+ "identity": "A String", # Required. The identity appear in the form of members in
+ # [IAM policy
+ # binding](https://cloud.google.com/iam/reference/rest/v1/Binding).
+ },
+ },
"analysisResults": [ # A list of IamPolicyAnalysisResult that matches the analysis query, or
# empty if no result is found.
{ # IAM Policy analysis result, consisting of one IAM policy binding and derived
# access control lists.
- "identityList": { # The identity list derived from members of the iam_binding that match or
- # potentially match identity selector specified in the request.
- "identities": [ # Only the identities that match one of the following conditions will be
- # presented:
- # - The identity_selector, if it is specified in request;
- # - Otherwise, identities reachable from the policy binding's members.
- { # An identity that appears in an access control list.
- "name": "A String", # The identity name in any form of members appear in
- # [IAM policy
- # binding](https://cloud.google.com/iam/reference/rest/v1/Binding), such
- # as:
- # - user:foo@google.com
- # - group:group1@google.com
- # - serviceAccount:s1@prj1.iam.gserviceaccount.com
- # - projectOwner:some_project_id
- # - domain:google.com
- # - allUsers
- # - etc.
- "analysisState": { # Represents analysis state of each node in the result graph or non-critical # The analysis state of this identity node.
- # errors in the response.
- "cause": "A String", # The human-readable description of the cause of failure.
- "code": "A String", # The Google standard error code that best describes the state.
- # For example:
- # - OK means the node has been successfully explored;
- # - PERMISSION_DENIED means an access denied error is encountered;
- # - DEADLINE_EXCEEDED means the node hasn't been explored in time;
- },
- },
- ],
- "groupEdges": [ # Group identity edges of the graph starting from the binding's
- # group members to any node of the identities. The Edge.source_node
- # contains a group, such as "group:parent@google.com". The
- # Edge.target_node contains a member of the group,
- # such as "group:child@google.com" or "user:foo@google.com".
- # This field is present only if the output_group_edges option is enabled in
- # request.
- { # A directional edge.
- "targetNode": "A String", # The target node of the edge.
- "sourceNode": "A String", # The source node of the edge.
- },
- ],
- },
- "attachedResourceFullName": "A String", # The full name of the resource to which the iam_binding policy attaches.
"iamBinding": { # Associates `members` with a `role`. # The Cloud IAM policy binding under analysis.
- "role": "A String", # Role that is assigned to `members`.
- # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
- "condition": { # Represents a textual expression in the Common Expression Language (CEL) # The condition that is associated with this binding.
- # NOTE: An unsatisfied condition will not allow user access via current
- # binding. Different bindings, including their conditions, are examined
- # independently.
- # syntax. CEL is a C-like expression language. The syntax and semantics of CEL
- # are documented at https://github.com/google/cel-spec.
- #
- # Example (Comparison):
- #
- # title: "Summary size limit"
- # description: "Determines if a summary is less than 100 chars"
- # expression: "document.summary.size() < 100"
- #
- # Example (Equality):
- #
- # title: "Requestor is owner"
- # description: "Determines if requestor is the document owner"
- # expression: "document.owner == request.auth.claims.email"
- #
- # Example (Logic):
- #
- # title: "Public documents"
- # description: "Determine whether the document should be publicly visible"
- # expression: "document.type != 'private' && document.type != 'internal'"
- #
- # Example (Data Manipulation):
- #
- # title: "Notification string"
- # description: "Create a notification string with a timestamp."
- # expression: "'New message received at ' + string(document.create_time)"
- #
- # The exact variables and functions that may be referenced within an expression
- # are determined by the service that evaluates it. See the service
- # documentation for additional information.
- "expression": "A String", # Textual representation of an expression in Common Expression Language
- # syntax.
- "title": "A String", # Optional. Title for the expression, i.e. a short string describing
- # its purpose. This can be used e.g. in UIs which allow to enter the
- # expression.
- "location": "A String", # Optional. String indicating the location of the expression for error
- # reporting, e.g. a file name and a position in the file.
- "description": "A String", # Optional. Description of the expression. This is a longer text which
- # describes the expression, e.g. when hovered over it in a UI.
- },
"members": [ # Specifies the identities requesting access for a Cloud Platform resource.
# `members` can have the following values:
#
@@ -571,6 +524,60 @@
#
"A String",
],
+ "role": "A String", # Role that is assigned to `members`.
+ # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+ "condition": { # Represents a textual expression in the Common Expression Language (CEL) # The condition that is associated with this binding.
+ #
+ # If the condition evaluates to `true`, then this binding applies to the
+ # current request.
+ #
+ # If the condition evaluates to `false`, then this binding does not apply to
+ # the current request. However, a different role binding might grant the same
+ # role to one or more of the members in this binding.
+ #
+ # To learn which resources support conditions in their IAM policies, see the
+ # [IAM
+ # documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+ # syntax. CEL is a C-like expression language. The syntax and semantics of CEL
+ # are documented at https://github.com/google/cel-spec.
+ #
+ # Example (Comparison):
+ #
+ # title: "Summary size limit"
+ # description: "Determines if a summary is less than 100 chars"
+ # expression: "document.summary.size() < 100"
+ #
+ # Example (Equality):
+ #
+ # title: "Requestor is owner"
+ # description: "Determines if requestor is the document owner"
+ # expression: "document.owner == request.auth.claims.email"
+ #
+ # Example (Logic):
+ #
+ # title: "Public documents"
+ # description: "Determine whether the document should be publicly visible"
+ # expression: "document.type != 'private' && document.type != 'internal'"
+ #
+ # Example (Data Manipulation):
+ #
+ # title: "Notification string"
+ # description: "Create a notification string with a timestamp."
+ # expression: "'New message received at ' + string(document.create_time)"
+ #
+ # The exact variables and functions that may be referenced within an expression
+ # are determined by the service that evaluates it. See the service
+ # documentation for additional information.
+ "title": "A String", # Optional. Title for the expression, i.e. a short string describing
+ # its purpose. This can be used e.g. in UIs which allow to enter the
+ # expression.
+ "location": "A String", # Optional. String indicating the location of the expression for error
+ # reporting, e.g. a file name and a position in the file.
+ "description": "A String", # Optional. Description of the expression. This is a longer text which
+ # describes the expression, e.g. when hovered over it in a UI.
+ "expression": "A String", # Textual representation of an expression in Common Expression Language
+ # syntax.
+ },
},
"accessControlLists": [ # The access control lists derived from the iam_binding that match or
# potentially match resource and access selectors specified in the request.
@@ -589,14 +596,31 @@
# This will result in the following access control lists:
# - AccessControlList 1: [R1, R2], [P1, P2]
# - AccessControlList 2: [R2, R3], [P3]
+ "accesses": [ # The accesses that match one of the following conditions:
+ # - The access_selector, if it is specified in request;
+ # - Otherwise, access specifiers reachable from the policy binding's role.
+ { # A role or permission that appears in an access control list.
+ "permission": "A String", # The permission.
+ "analysisState": { # Represents analysis state of each node in the result graph or non-critical # The analysis state of this access node.
+ # errors in the response.
+ "code": "A String", # The Google standard error code that best describes the state.
+ # For example:
+ # - OK means the node has been successfully explored;
+ # - PERMISSION_DENIED means an access denied error is encountered;
+ # - DEADLINE_EXCEEDED means the node hasn't been explored in time;
+ "cause": "A String", # The human-readable description of the cause of failure.
+ },
+ "role": "A String", # The role.
+ },
+ ],
"resourceEdges": [ # Resource edges of the graph starting from the policy attached
# resource to any descendant resources. The Edge.source_node contains
# the full resource name of a parent resource and Edge.target_node
# contains the full resource name of a child resource. This field is
# present only if the output_resource_edges option is enabled in request.
{ # A directional edge.
- "targetNode": "A String", # The target node of the edge.
"sourceNode": "A String", # The source node of the edge.
+ "targetNode": "A String", # The target node of the edge.
},
],
"resources": [ # The resources that match one of the following conditions:
@@ -606,29 +630,12 @@
"fullResourceName": "A String", # The [full resource name](https://aip.dev/122#full-resource-names).
"analysisState": { # Represents analysis state of each node in the result graph or non-critical # The analysis state of this resource node.
# errors in the response.
- "cause": "A String", # The human-readable description of the cause of failure.
"code": "A String", # The Google standard error code that best describes the state.
# For example:
# - OK means the node has been successfully explored;
# - PERMISSION_DENIED means an access denied error is encountered;
# - DEADLINE_EXCEEDED means the node hasn't been explored in time;
- },
- },
- ],
- "accesses": [ # The accesses that match one of the following conditions:
- # - The access_selector, if it is specified in request;
- # - Otherwise, access specifiers reachable from the policy binding's role.
- { # A role or permission that appears in an access control list.
- "role": "A String", # The role.
- "permission": "A String", # The permission.
- "analysisState": { # Represents analysis state of each node in the result graph or non-critical # The analysis state of this access node.
- # errors in the response.
"cause": "A String", # The human-readable description of the cause of failure.
- "code": "A String", # The Google standard error code that best describes the state.
- # For example:
- # - OK means the node has been successfully explored;
- # - PERMISSION_DENIED means an access denied error is encountered;
- # - DEADLINE_EXCEEDED means the node hasn't been explored in time;
},
},
],
@@ -636,42 +643,51 @@
],
"fullyExplored": True or False, # Represents whether all nodes in the transitive closure of the
# iam_binding node have been explored.
+ "identityList": { # The identity list derived from members of the iam_binding that match or
+ # potentially match identity selector specified in the request.
+ "identities": [ # Only the identities that match one of the following conditions will be
+ # presented:
+ # - The identity_selector, if it is specified in request;
+ # - Otherwise, identities reachable from the policy binding's members.
+ { # An identity that appears in an access control list.
+ "analysisState": { # Represents analysis state of each node in the result graph or non-critical # The analysis state of this identity node.
+ # errors in the response.
+ "code": "A String", # The Google standard error code that best describes the state.
+ # For example:
+ # - OK means the node has been successfully explored;
+ # - PERMISSION_DENIED means an access denied error is encountered;
+ # - DEADLINE_EXCEEDED means the node hasn't been explored in time;
+ "cause": "A String", # The human-readable description of the cause of failure.
+ },
+ "name": "A String", # The identity name in any form of members appear in
+ # [IAM policy
+ # binding](https://cloud.google.com/iam/reference/rest/v1/Binding), such
+ # as:
+ # - user:foo@google.com
+ # - group:group1@google.com
+ # - serviceAccount:s1@prj1.iam.gserviceaccount.com
+ # - projectOwner:some_project_id
+ # - domain:google.com
+ # - allUsers
+ # - etc.
+ },
+ ],
+ "groupEdges": [ # Group identity edges of the graph starting from the binding's
+ # group members to any node of the identities. The Edge.source_node
+ # contains a group, such as "group:parent@google.com". The
+ # Edge.target_node contains a member of the group,
+ # such as "group:child@google.com" or "user:foo@google.com".
+ # This field is present only if the output_group_edges option is enabled in
+ # request.
+ { # A directional edge.
+ "sourceNode": "A String", # The source node of the edge.
+ "targetNode": "A String", # The target node of the edge.
+ },
+ ],
+ },
+ "attachedResourceFullName": "A String", # The full name of the resource to which the iam_binding policy attaches.
},
],
- "fullyExplored": True or False, # Represents whether all entries in the analysis_results have been
- # fully explored to answer the query.
- "analysisQuery": { # IAM policy analysis query message. # The analysis query.
- "accessSelector": { # Specifies roles and/or permissions to analyze, to determine both the # Optional. Specifies roles or permissions for analysis. Leaving it empty
- # means ANY.
- # identities possessing them and the resources they control. If multiple
- # values are specified, results will include identities and resources
- # matching any of them.
- "roles": [ # Optional. The roles to appear in result.
- "A String",
- ],
- "permissions": [ # Optional. The permissions to appear in result.
- "A String",
- ],
- },
- "identitySelector": { # Specifies an identity for which to determine resource access, based on # Optional. Specifies an identity for analysis. Leaving it empty means ANY.
- # roles assigned either directly to them or to the groups they belong to,
- # directly or indirectly.
- "identity": "A String", # Required. The identity appear in the form of members in
- # [IAM policy
- # binding](https://cloud.google.com/iam/reference/rest/v1/Binding).
- },
- "parent": "A String", # Required. The relative name of the root asset. Only resources and IAM policies within
- # the parent will be analyzed. This can only be an organization number (such
- # as "organizations/123") or a folder number (such as "folders/123").
- "resourceSelector": { # Specifies the resource to analyze for access policies, which may be set # Optional. Specifies a resource for analysis. Leaving it empty means ANY.
- # directly on the resource, or on ancestors such as organizations, folders or
- # projects. At least one of ResourceSelector, IdentitySelector or
- # AccessSelector must be specified in a request.
- "fullResourceName": "A String", # Required. The [full resource
- # name](https://cloud.google.com/apis/design/resource_names#full_resource_name)
- # .
- },
- },
},
],
}</pre>
@@ -692,65 +708,7 @@
The object takes the form of:
{ # A request message for AssetService.ExportIamPolicyAnalysis.
- "outputConfig": { # Output configuration for export IAM policy analysis destination. # Required. Output configuration indicating where the results will be output to.
- "gcsDestination": { # A Cloud Storage location. # Destination on Cloud Storage.
- "uri": "A String", # Required. The uri of the Cloud Storage object. It's the same uri that is used by
- # gsutil. For example: "gs://bucket_name/object_name". See [Viewing and
- # Editing Object
- # Metadata](https://cloud.google.com/storage/docs/viewing-editing-metadata)
- # for more information.
- },
- },
- "analysisQuery": { # IAM policy analysis query message. # Required. The request query.
- "accessSelector": { # Specifies roles and/or permissions to analyze, to determine both the # Optional. Specifies roles or permissions for analysis. Leaving it empty
- # means ANY.
- # identities possessing them and the resources they control. If multiple
- # values are specified, results will include identities and resources
- # matching any of them.
- "roles": [ # Optional. The roles to appear in result.
- "A String",
- ],
- "permissions": [ # Optional. The permissions to appear in result.
- "A String",
- ],
- },
- "identitySelector": { # Specifies an identity for which to determine resource access, based on # Optional. Specifies an identity for analysis. Leaving it empty means ANY.
- # roles assigned either directly to them or to the groups they belong to,
- # directly or indirectly.
- "identity": "A String", # Required. The identity appear in the form of members in
- # [IAM policy
- # binding](https://cloud.google.com/iam/reference/rest/v1/Binding).
- },
- "parent": "A String", # Required. The relative name of the root asset. Only resources and IAM policies within
- # the parent will be analyzed. This can only be an organization number (such
- # as "organizations/123") or a folder number (such as "folders/123").
- "resourceSelector": { # Specifies the resource to analyze for access policies, which may be set # Optional. Specifies a resource for analysis. Leaving it empty means ANY.
- # directly on the resource, or on ancestors such as organizations, folders or
- # projects. At least one of ResourceSelector, IdentitySelector or
- # AccessSelector must be specified in a request.
- "fullResourceName": "A String", # Required. The [full resource
- # name](https://cloud.google.com/apis/design/resource_names#full_resource_name)
- # .
- },
- },
"options": { # Contains request options. # Optional. The request options.
- "outputResourceEdges": True or False, # Optional. If true, the result will output resource edges, starting
- # from the policy attached resource, to any expanded resources.
- # Default is false.
- "expandRoles": True or False, # Optional. If true, the access section of result will expand any roles
- # appearing in IAM policy bindings to include their permissions.
- #
- # If access_selector is specified, the access section of the result
- # will be determined by the selector, and this flag will have no effect.
- #
- # Default is false.
- "expandGroups": True or False, # Optional. If true, the identities section of the result will expand any
- # Google groups appearing in an IAM policy binding.
- #
- # If identity_selector is specified, the identity in the result will
- # be determined by the selector, and this flag will have no effect.
- #
- # Default is false.
"analyzeServiceAccountImpersonation": True or False, # Optional. If true, the response will include access analysis from identities to
# resources via service account impersonation. This is a very expensive
# operation, because many derived queries will be executed.
@@ -787,6 +745,64 @@
"outputGroupEdges": True or False, # Optional. If true, the result will output group identity edges, starting
# from the binding's group members, to any expanded identities.
# Default is false.
+ "outputResourceEdges": True or False, # Optional. If true, the result will output resource edges, starting
+ # from the policy attached resource, to any expanded resources.
+ # Default is false.
+ "expandRoles": True or False, # Optional. If true, the access section of result will expand any roles
+ # appearing in IAM policy bindings to include their permissions.
+ #
+ # If access_selector is specified, the access section of the result
+ # will be determined by the selector, and this flag will have no effect.
+ #
+ # Default is false.
+ "expandGroups": True or False, # Optional. If true, the identities section of the result will expand any
+ # Google groups appearing in an IAM policy binding.
+ #
+ # If identity_selector is specified, the identity in the result will
+ # be determined by the selector, and this flag will have no effect.
+ #
+ # Default is false.
+ },
+ "outputConfig": { # Output configuration for export IAM policy analysis destination. # Required. Output configuration indicating where the results will be output to.
+ "gcsDestination": { # A Cloud Storage location. # Destination on Cloud Storage.
+ "uri": "A String", # Required. The uri of the Cloud Storage object. It's the same uri that is used by
+ # gsutil. For example: "gs://bucket_name/object_name". See [Viewing and
+ # Editing Object
+ # Metadata](https://cloud.google.com/storage/docs/viewing-editing-metadata)
+ # for more information.
+ },
+ },
+ "analysisQuery": { # IAM policy analysis query message. # Required. The request query.
+ "parent": "A String", # Required. The relative name of the root asset. Only resources and IAM policies within
+ # the parent will be analyzed. This can only be an organization number (such
+ # as "organizations/123") or a folder number (such as "folders/123").
+ "resourceSelector": { # Specifies the resource to analyze for access policies, which may be set # Optional. Specifies a resource for analysis. Leaving it empty means ANY.
+ # directly on the resource, or on ancestors such as organizations, folders or
+ # projects. At least one of ResourceSelector, IdentitySelector or
+ # AccessSelector must be specified in a request.
+ "fullResourceName": "A String", # Required. The [full resource
+ # name](https://cloud.google.com/apis/design/resource_names#full_resource_name)
+ # .
+ },
+ "accessSelector": { # Specifies roles and/or permissions to analyze, to determine both the # Optional. Specifies roles or permissions for analysis. Leaving it empty
+ # means ANY.
+ # identities possessing them and the resources they control. If multiple
+ # values are specified, results will include identities and resources
+ # matching any of them.
+ "roles": [ # Optional. The roles to appear in result.
+ "A String",
+ ],
+ "permissions": [ # Optional. The permissions to appear in result.
+ "A String",
+ ],
+ },
+ "identitySelector": { # Specifies an identity for which to determine resource access, based on # Optional. Specifies an identity for analysis. Leaving it empty means ANY.
+ # roles assigned either directly to them or to the groups they belong to,
+ # directly or indirectly.
+ "identity": "A String", # Required. The identity appear in the form of members in
+ # [IAM policy
+ # binding](https://cloud.google.com/iam/reference/rest/v1/Binding).
+ },
},
}
@@ -800,6 +816,33 @@
{ # This resource represents a long-running operation that is the result of a
# network API call.
+ "name": "A String", # The server-assigned name, which is only unique within the same service that
+ # originally returns it. If you use the default HTTP mapping, the
+ # `name` should be a resource name ending with `operations/{unique_id}`.
+ "error": { # The `Status` type defines a logical error model that is suitable for # The error result of the operation in case of failure or cancellation.
+ # different programming environments, including REST APIs and RPC APIs. It is
+ # used by [gRPC](https://github.com/grpc). Each `Status` message contains
+ # three pieces of data: error code, error message, and error details.
+ #
+ # You can find out more about this error model and how to work with it in the
+ # [API Design Guide](https://cloud.google.com/apis/design/errors).
+ "message": "A String", # A developer-facing error message, which should be in English. Any
+ # user-facing error message should be localized and sent in the
+ # google.rpc.Status.details field, or localized by the client.
+ "details": [ # A list of messages that carry the error details. There is a common set of
+ # message types for APIs to use.
+ {
+ "a_key": "", # Properties of the object. Contains field @type with type URL.
+ },
+ ],
+ "code": 42, # The status code, which should be an enum value of google.rpc.Code.
+ },
+ "metadata": { # Service-specific metadata associated with the operation. It typically
+ # contains progress information and common metadata such as create time.
+ # Some services might not provide such metadata. Any method that returns a
+ # long-running operation should document the metadata type, if any.
+ "a_key": "", # Properties of the object. Contains field @type with type URL.
+ },
"done": True or False, # If the value is `false`, it means the operation is still in progress.
# If `true`, the operation is completed, and either `error` or `response` is
# available.
@@ -813,33 +856,6 @@
# `TakeSnapshotResponse`.
"a_key": "", # Properties of the object. Contains field @type with type URL.
},
- "name": "A String", # The server-assigned name, which is only unique within the same service that
- # originally returns it. If you use the default HTTP mapping, the
- # `name` should be a resource name ending with `operations/{unique_id}`.
- "error": { # The `Status` type defines a logical error model that is suitable for # The error result of the operation in case of failure or cancellation.
- # different programming environments, including REST APIs and RPC APIs. It is
- # used by [gRPC](https://github.com/grpc). Each `Status` message contains
- # three pieces of data: error code, error message, and error details.
- #
- # You can find out more about this error model and how to work with it in the
- # [API Design Guide](https://cloud.google.com/apis/design/errors).
- "details": [ # A list of messages that carry the error details. There is a common set of
- # message types for APIs to use.
- {
- "a_key": "", # Properties of the object. Contains field @type with type URL.
- },
- ],
- "code": 42, # The status code, which should be an enum value of google.rpc.Code.
- "message": "A String", # A developer-facing error message, which should be in English. Any
- # user-facing error message should be localized and sent in the
- # google.rpc.Status.details field, or localized by the client.
- },
- "metadata": { # Service-specific metadata associated with the operation. It typically
- # contains progress information and common metadata such as create time.
- # Some services might not provide such metadata. Any method that returns a
- # long-running operation should document the metadata type, if any.
- "a_key": "", # Properties of the object. Contains field @type with type URL.
- },
}</pre>
</div>