docs: update generated docs (#981)
diff --git a/docs/dyn/cloudasset_v1p4beta1.v1p4beta1.html b/docs/dyn/cloudasset_v1p4beta1.v1p4beta1.html
index 9ecbfc8..d7af7c5 100644
--- a/docs/dyn/cloudasset_v1p4beta1.v1p4beta1.html
+++ b/docs/dyn/cloudasset_v1p4beta1.v1p4beta1.html
@@ -75,25 +75,91 @@
<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, 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>
+ <code><a href="#analyzeIamPolicy">analyzeIamPolicy(parent, options_outputGroupEdges=None, options_outputResourceEdges=None, options_expandRoles=None, analysisQuery_accessSelector_permissions=None, options_expandGroups=None, analysisQuery_accessSelector_roles=None, analysisQuery_identitySelector_identity=None, options_executionTimeout=None, analysisQuery_resourceSelector_fullResourceName=None, options_expandResources=None, options_analyzeServiceAccountImpersonation=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Analyzes IAM policies to answer which identities have what accesses on</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>
+<p class="firstline">Exports the answers of which identities have what accesses on which</p>
<h3>Method Details</h3>
<div class="method">
- <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.
+ <code class="details" id="analyzeIamPolicy">analyzeIamPolicy(parent, options_outputGroupEdges=None, options_outputResourceEdges=None, options_expandRoles=None, analysisQuery_accessSelector_permissions=None, options_expandGroups=None, analysisQuery_accessSelector_roles=None, analysisQuery_identitySelector_identity=None, options_executionTimeout=None, analysisQuery_resourceSelector_fullResourceName=None, options_expandResources=None, options_analyzeServiceAccountImpersonation=None, x__xgafv=None)</code>
+ <pre>Analyzes IAM policies to answer which identities have what accesses on
+which resources.
Args:
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)
+as "organizations/123") or a folder number (such as "folders/123").
+
+To know how to get organization id, visit [here
+](https://cloud.google.com/resource-manager/docs/creating-managing-organization#retrieving_your_organization_id).
+
+To know how to get folder id, visit [here
+](https://cloud.google.com/resource-manager/docs/creating-managing-folders#viewing_or_listing_folders_and_projects). (required)
+ options_outputGroupEdges: boolean, Optional. If true, the result will output group identity edges, starting
+from the binding's group members, to any expanded identities.
+Default is false.
+ 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.
+ options_expandRoles: boolean, 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.
+ analysisQuery_accessSelector_permissions: string, Optional. The permissions to appear in result. (repeated)
+ options_expandGroups: boolean, 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.
+ analysisQuery_accessSelector_roles: string, Optional. The roles to appear in result. (repeated)
+ 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).
+
+The examples of supported forms are:
+"user:mike@example.com",
+"group:admins@example.com",
+"domain:google.com",
+"serviceAccount:my-project-id@appspot.gserviceaccount.com".
+
+Notice that wildcard characters (such as * and ?) are not supported.
+You must give a specific identity.
+ 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).
+
+If this field is set with a value less than the RPC deadline, and the
+execution of your query hasn't finished in the specified
+execution timeout, you will get a response with partial result.
+Otherwise, your query's execution will continue until the RPC deadline.
+If it's not finished until then, you will get a DEADLINE_EXCEEDED error.
+
+Default is empty.
+ analysisQuery_resourceSelector_fullResourceName: string, Required. The [full resource
+name](https://cloud.google.com/asset-inventory/docs/resource-name-format)
+of a resource of [supported resource
+types](https://cloud.google.com/asset-inventory/docs/supported-asset-types#analyzable_asset_types).
+ 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.
+
+For example, if the request analyzes for which resources user A has
+permission P, and the results include an IAM policy with P on a GCP
+folder, the results will also include resources in that folder with
+permission P.
+
+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.
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
-recommend you use ExportIamPolicyAnalysis rpc instead.
+recommend you use AssetService.ExportIamPolicyAnalysis rpc instead.
For example, if the request analyzes for which resources user A has
permission P, and there's an IAM policy states user A has
@@ -112,56 +178,6 @@
AnalyzeIamPolicyResponse.service_account_impersonation_analysis.
Default is false.
- 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.
- 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.
-
-For example, if the request analyzes for which resources user A has
-permission P, and the results include an IAM policy with P on a GCP
-folder, the results will also include resources in that folder with
-permission P.
-
-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_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.
-
-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.
- 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).
-
-If this field is set with a value less than the RPC deadline, and the
-execution of your query hasn't finished in the specified
-execution timeout, you will get a response with partial result.
-Otherwise, your query's execution will continue until the RPC deadline.
-If it's not finished until then, you will get a DEADLINE_EXCEEDED error.
-
-Default is empty.
- options_outputGroupEdges: boolean, Optional. If true, the result will output group identity edges, starting
-from the binding's group members, to any expanded identities.
-Default is false.
- options_expandGroups: boolean, 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.
- 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
@@ -171,61 +187,181 @@
An object of the form:
{ # A response message for AssetService.AnalyzeIamPolicy.
- "fullyExplored": True or False, # Represents whether all entries in the main_analysis and
- # service_account_impersonation_analysis have been fully explored to
- # answer the query in the request.
- "nonCriticalErrors": [ # A list of non-critical errors happened during the request handling to
- # 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.
- "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.
+ "accessControlLists": [ # The access control lists derived from the iam_binding that match or
+ # potentially match resource and access selectors specified in the request.
+ { # An access control list, derived from the above IAM policy binding, which
+ # contains a set of resources and accesses. May include one
+ # item from each set to compose an access control entry.
+ #
+ # NOTICE that there could be multiple access control lists for one IAM policy
+ # binding. The access control lists are created based on resource and access
+ # combinations.
+ #
+ # For example, assume we have the following cases in one IAM policy binding:
+ # - Permission P1 and P2 apply to resource R1 and R2;
+ # - Permission P3 applies to resource R2 and R3;
+ #
+ # This will result in the following access control lists:
+ # - AccessControlList 1: [R1, R2], [P1, P2]
+ # - AccessControlList 2: [R2, R3], [P3]
+ "resources": [ # The resources that match one of the following conditions:
+ # - The resource_selector, if it is specified in request;
+ # - Otherwise, resources reachable from the policy attached resource.
+ { # A Google Cloud resource under analysis.
+ "fullResourceName": "A String", # The [full resource
+ # name](https://cloud.google.com/asset-inventory/docs/resource-name-format)
+ "analysisState": { # Represents the detailed state of an entity under analysis, such as a # The analysis state of this resource.
+ # resource, an identity or an access.
+ "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 analysis on this entity has been successfully finished;
+ # - PERMISSION_DENIED means an access denied error is encountered;
+ # - DEADLINE_EXCEEDED means the analysis on this entity hasn't been started
+ # 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.
+ { # An IAM role or permission under analysis.
+ "permission": "A String", # The permission.
+ "analysisState": { # Represents the detailed state of an entity under analysis, such as a # The analysis state of this access.
+ # resource, an identity or an access.
+ "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 analysis on this entity has been successfully finished;
+ # - PERMISSION_DENIED means an access denied error is encountered;
+ # - DEADLINE_EXCEEDED means the analysis on this entity hasn't been started
+ # in time;
+ },
+ "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.
+ "sourceNode": "A String", # The source node of the edge.
+ "targetNode": "A String", # The target node of the edge.
+ },
+ ],
+ },
+ ],
+ "fullyExplored": True or False, # Represents whether all analyses on the iam_binding have successfully
+ # finished.
+ "identityList": { # The identity list derived from members of the iam_binding that match or
+ # potentially match identity selector specified in the request.
+ "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.
+ },
+ ],
+ "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 under analysis.
+ "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 the detailed state of an entity under analysis, such as a # The analysis state of this identity.
+ # resource, an identity or an access.
+ "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 analysis on this entity has been successfully finished;
+ # - PERMISSION_DENIED means an access denied error is encountered;
+ # - DEADLINE_EXCEEDED means the analysis on this entity hasn't been started
+ # in time;
+ },
+ },
+ ],
+ },
+ "attachedResourceFullName": "A String", # The [full resource
+ # name](https://cloud.google.com/asset-inventory/docs/resource-name-format)
+ # 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.
+ #
+ # 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.
+ "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.
+ "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.
+ "expression": "A String", # Textual representation of an expression in Common Expression Language
+ # syntax.
+ "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:
#
@@ -271,214 +407,252 @@
#
"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.
- { # An access control list, derived from the above IAM policy binding, which
- # contains a set of resources and accesses. May include one
- # item from each set to compose an access control entry.
- #
- # NOTICE that there could be multiple access control lists for one IAM policy
- # binding. The access control lists are created based on resource and access
- # combinations.
- #
- # For example, assume we have the following cases in one IAM policy binding:
- # - Permission P1 and P2 apply to resource R1 and R2;
- # - Permission P3 applies to resource R2 and R3;
- #
- # 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.
- "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:
- # - The resource_selector, if it is specified in request;
- # - Otherwise, resources reachable from the policy attached resource.
- { # A GCP resource that appears in an access control list.
- "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.
- "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.
- },
- },
- ],
- },
- ],
- "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.
},
],
+ "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. This is optional.
+ # 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",
+ ],
+ },
+ "resourceSelector": { # Specifies the resource to analyze for access policies, which may be set # Optional. Specifies a resource for analysis. Either ResourceSelector or
+ # IdentitySelector must be specified.
+ # directly on the resource, or on ancestors such as organizations, folders or
+ # projects.
+ "fullResourceName": "A String", # Required. The [full resource
+ # name](https://cloud.google.com/asset-inventory/docs/resource-name-format)
+ # of a resource of [supported resource
+ # types](https://cloud.google.com/asset-inventory/docs/supported-asset-types#analyzable_asset_types).
+ },
+ "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").
+ #
+ # To know how to get organization id, visit [here
+ # ](https://cloud.google.com/resource-manager/docs/creating-managing-organization#retrieving_your_organization_id).
+ #
+ # To know how to get folder id, visit [here
+ # ](https://cloud.google.com/resource-manager/docs/creating-managing-folders#viewing_or_listing_folders_and_projects).
+ "identitySelector": { # Specifies an identity for which to determine resource access, based on # Optional. Specifies an identity for analysis. Either ResourceSelector or
+ # IdentitySelector must be specified.
+ # 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).
+ #
+ # The examples of supported forms are:
+ # "user:mike@example.com",
+ # "group:admins@example.com",
+ # "domain:google.com",
+ # "serviceAccount:my-project-id@appspot.gserviceaccount.com".
+ #
+ # Notice that wildcard characters (such as * and ?) are not supported.
+ # You must give a specific identity.
+ },
+ },
},
+ "fullyExplored": True or False, # Represents whether all entries in the main_analysis and
+ # service_account_impersonation_analysis have been fully explored to
+ # answer the query in the request.
+ "nonCriticalErrors": [ # A list of non-critical errors happened during the request handling to
+ # explain why `fully_explored` is false, or empty if no error happened.
+ { # Represents the detailed state of an entity under analysis, such as a
+ # resource, an identity or an access.
+ "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 analysis on this entity has been successfully finished;
+ # - PERMISSION_DENIED means an access denied error is encountered;
+ # - DEADLINE_EXCEEDED means the analysis on this entity hasn't been started
+ # in time;
+ },
+ ],
"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.
+ "accessControlLists": [ # The access control lists derived from the iam_binding that match or
+ # potentially match resource and access selectors specified in the request.
+ { # An access control list, derived from the above IAM policy binding, which
+ # contains a set of resources and accesses. May include one
+ # item from each set to compose an access control entry.
+ #
+ # NOTICE that there could be multiple access control lists for one IAM policy
+ # binding. The access control lists are created based on resource and access
+ # combinations.
+ #
+ # For example, assume we have the following cases in one IAM policy binding:
+ # - Permission P1 and P2 apply to resource R1 and R2;
+ # - Permission P3 applies to resource R2 and R3;
+ #
+ # This will result in the following access control lists:
+ # - AccessControlList 1: [R1, R2], [P1, P2]
+ # - AccessControlList 2: [R2, R3], [P3]
+ "resources": [ # The resources that match one of the following conditions:
+ # - The resource_selector, if it is specified in request;
+ # - Otherwise, resources reachable from the policy attached resource.
+ { # A Google Cloud resource under analysis.
+ "fullResourceName": "A String", # The [full resource
+ # name](https://cloud.google.com/asset-inventory/docs/resource-name-format)
+ "analysisState": { # Represents the detailed state of an entity under analysis, such as a # The analysis state of this resource.
+ # resource, an identity or an access.
+ "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 analysis on this entity has been successfully finished;
+ # - PERMISSION_DENIED means an access denied error is encountered;
+ # - DEADLINE_EXCEEDED means the analysis on this entity hasn't been started
+ # 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.
+ { # An IAM role or permission under analysis.
+ "permission": "A String", # The permission.
+ "analysisState": { # Represents the detailed state of an entity under analysis, such as a # The analysis state of this access.
+ # resource, an identity or an access.
+ "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 analysis on this entity has been successfully finished;
+ # - PERMISSION_DENIED means an access denied error is encountered;
+ # - DEADLINE_EXCEEDED means the analysis on this entity hasn't been started
+ # in time;
+ },
+ "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.
+ "sourceNode": "A String", # The source node of the edge.
+ "targetNode": "A String", # The target node of the edge.
+ },
+ ],
+ },
+ ],
+ "fullyExplored": True or False, # Represents whether all analyses on the iam_binding have successfully
+ # finished.
+ "identityList": { # The identity list derived from members of the iam_binding that match or
+ # potentially match identity selector specified in the request.
+ "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.
+ },
+ ],
+ "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 under analysis.
+ "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 the detailed state of an entity under analysis, such as a # The analysis state of this identity.
+ # resource, an identity or an access.
+ "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 analysis on this entity has been successfully finished;
+ # - PERMISSION_DENIED means an access denied error is encountered;
+ # - DEADLINE_EXCEEDED means the analysis on this entity hasn't been started
+ # in time;
+ },
+ },
+ ],
+ },
+ "attachedResourceFullName": "A String", # The [full resource
+ # name](https://cloud.google.com/asset-inventory/docs/resource-name-format)
+ # 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.
+ #
+ # 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.
+ "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.
+ "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.
+ "expression": "A String", # Textual representation of an expression in Common Expression Language
+ # syntax.
+ "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:
#
@@ -524,170 +698,57 @@
#
"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.
- { # An access control list, derived from the above IAM policy binding, which
- # contains a set of resources and accesses. May include one
- # item from each set to compose an access control entry.
- #
- # NOTICE that there could be multiple access control lists for one IAM policy
- # binding. The access control lists are created based on resource and access
- # combinations.
- #
- # For example, assume we have the following cases in one IAM policy binding:
- # - Permission P1 and P2 apply to resource R1 and R2;
- # - Permission P3 applies to resource R2 and R3;
- #
- # 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.
- "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:
- # - The resource_selector, if it is specified in request;
- # - Otherwise, resources reachable from the policy attached resource.
- { # A GCP resource that appears in an access control list.
- "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.
- "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.
- },
- },
- ],
- },
- ],
- "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.
},
],
+ "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. This is optional.
+ # 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",
+ ],
+ },
+ "resourceSelector": { # Specifies the resource to analyze for access policies, which may be set # Optional. Specifies a resource for analysis. Either ResourceSelector or
+ # IdentitySelector must be specified.
+ # directly on the resource, or on ancestors such as organizations, folders or
+ # projects.
+ "fullResourceName": "A String", # Required. The [full resource
+ # name](https://cloud.google.com/asset-inventory/docs/resource-name-format)
+ # of a resource of [supported resource
+ # types](https://cloud.google.com/asset-inventory/docs/supported-asset-types#analyzable_asset_types).
+ },
+ "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").
+ #
+ # To know how to get organization id, visit [here
+ # ](https://cloud.google.com/resource-manager/docs/creating-managing-organization#retrieving_your_organization_id).
+ #
+ # To know how to get folder id, visit [here
+ # ](https://cloud.google.com/resource-manager/docs/creating-managing-folders#viewing_or_listing_folders_and_projects).
+ "identitySelector": { # Specifies an identity for which to determine resource access, based on # Optional. Specifies an identity for analysis. Either ResourceSelector or
+ # IdentitySelector must be specified.
+ # 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).
+ #
+ # The examples of supported forms are:
+ # "user:mike@example.com",
+ # "group:admins@example.com",
+ # "domain:google.com",
+ # "serviceAccount:my-project-id@appspot.gserviceaccount.com".
+ #
+ # Notice that wildcard characters (such as * and ?) are not supported.
+ # You must give a specific identity.
+ },
+ },
},
],
}</pre>
@@ -695,15 +756,25 @@
<div class="method">
<code class="details" id="exportIamPolicyAnalysis">exportIamPolicyAnalysis(parent, body=None, x__xgafv=None)</code>
- <pre>Exports IAM policy analysis based on the specified request. This API
-implements the google.longrunning.Operation API allowing you to keep
-track of the export. The metadata contains the request to help callers to
-map responses to requests.
+ <pre>Exports the answers of which identities have what accesses on which
+resources to a Google Cloud Storage destination. The output format is
+the JSON format that represents a AnalyzeIamPolicyResponse
+in the JSON format.
+This method implements the google.longrunning.Operation, which allows
+you to keep track of the export. We recommend intervals of at least 2
+seconds with exponential retry to poll the export operation result. The
+metadata contains the request to help callers to map responses to requests.
Args:
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)
+as "organizations/123") or a folder number (such as "folders/123").
+
+To know how to get organization id, visit [here
+](https://cloud.google.com/resource-manager/docs/creating-managing-organization#retrieving_your_organization_id).
+
+To know how to get folder id, visit [here
+](https://cloud.google.com/resource-manager/docs/creating-managing-folders#viewing_or_listing_folders_and_projects). (required)
body: object, The request body.
The object takes the form of:
@@ -730,6 +801,9 @@
# AnalyzeIamPolicyResponse.service_account_impersonation_analysis.
#
# Default is false.
+ "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.
"expandResources": True or False, # 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.
@@ -742,12 +816,6 @@
# 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.
- "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.
#
@@ -762,30 +830,12 @@
# 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.
- },
+ "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.
},
"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.
+ "accessSelector": { # Specifies roles and/or permissions to analyze, to determine both the # Optional. Specifies roles or permissions for analysis. This is optional.
# identities possessing them and the resources they control. If multiple
# values are specified, results will include identities and resources
# matching any of them.
@@ -796,12 +846,49 @@
"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.
+ "resourceSelector": { # Specifies the resource to analyze for access policies, which may be set # Optional. Specifies a resource for analysis. Either ResourceSelector or
+ # IdentitySelector must be specified.
+ # directly on the resource, or on ancestors such as organizations, folders or
+ # projects.
+ "fullResourceName": "A String", # Required. The [full resource
+ # name](https://cloud.google.com/asset-inventory/docs/resource-name-format)
+ # of a resource of [supported resource
+ # types](https://cloud.google.com/asset-inventory/docs/supported-asset-types#analyzable_asset_types).
+ },
+ "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").
+ #
+ # To know how to get organization id, visit [here
+ # ](https://cloud.google.com/resource-manager/docs/creating-managing-organization#retrieving_your_organization_id).
+ #
+ # To know how to get folder id, visit [here
+ # ](https://cloud.google.com/resource-manager/docs/creating-managing-folders#viewing_or_listing_folders_and_projects).
+ "identitySelector": { # Specifies an identity for which to determine resource access, based on # Optional. Specifies an identity for analysis. Either ResourceSelector or
+ # IdentitySelector must be specified.
# 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).
+ #
+ # The examples of supported forms are:
+ # "user:mike@example.com",
+ # "group:admins@example.com",
+ # "domain:google.com",
+ # "serviceAccount:my-project-id@appspot.gserviceaccount.com".
+ #
+ # Notice that wildcard characters (such as * and ?) are not supported.
+ # You must give a specific identity.
+ },
+ },
+ "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.
},
},
}
@@ -816,9 +903,9 @@
{ # 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}`.
+ "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.
"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
@@ -826,9 +913,6 @@
#
# 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.
{
@@ -836,16 +920,19 @@
},
],
"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.
},
+ "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}`.
"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.
"response": { # The normal response of the operation in case of success. If the original
# method returns no data on success, such as `Delete`, the response is
# `google.protobuf.Empty`. If the original method is standard