# Path: google/cloud/asset_v1p4beta1/types/assets.py
# class IamPolicyAnalysisResult(proto.Message):
#     class AnalysisState(proto.Message):
#     class Resource(proto.Message):
#     class Access(proto.Message):
#     class Edge(proto.Message):
#     class Identity(proto.Message):
#     class AccessControlList(proto.Message):
#     class IdentityList(proto.Message):


import proto  # type: ignore
from google.cloud.asset_v1p4beta1.types import assets
from google.protobuf import duration_pb2  # type: ignore
    manifest={
        "IamPolicyAnalysisQuery",
        "AnalyzeIamPolicyRequest",
        "AnalyzeIamPolicyResponse",
        "IamPolicyAnalysisOutputConfig",
        "ExportIamPolicyAnalysisRequest",
        "ExportIamPolicyAnalysisResponse",
    },
)


class IamPolicyAnalysisQuery(proto.Message):
    r"""IAM policy analysis query message.

    Attributes:
        parent (str):
            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").
        resource_selector (google.cloud.asset_v1p4beta1.types.IamPolicyAnalysisQuery.ResourceSelector):
            Optional. Specifies a resource for analysis.
            Leaving it empty means ANY.
        identity_selector (google.cloud.asset_v1p4beta1.types.IamPolicyAnalysisQuery.IdentitySelector):
            Optional. Specifies an identity for analysis.
            Leaving it empty means ANY.
        access_selector (google.cloud.asset_v1p4beta1.types.IamPolicyAnalysisQuery.AccessSelector):
            Optional. Specifies roles or permissions for

# Path: google/cloud/asset_v1p4beta1/types/assets.py
# class IamPolicyAnalysisResult(proto.Message):
#     class AnalysisState(proto.Message):
#     class Resource(proto.Message):
#     class Access(proto.Message):
#     class Edge(proto.Message):
#     class Identity(proto.Message):
#     class AccessControlList(proto.Message):
#     class IdentityList(proto.Message):


# Path: google/cloud/asset_v1p4beta1/types/asset_service.py
import proto  # type: ignore
from google.cloud.asset_v1p4beta1.types import assets
from google.protobuf import duration_pb2  # type: ignore

    manifest={
        "IamPolicyAnalysisQuery",
        "AnalyzeIamPolicyRequest",
        "AnalyzeIamPolicyResponse",
        "IamPolicyAnalysisOutputConfig",
        "ExportIamPolicyAnalysisRequest",
        "ExportIamPolicyAnalysisResponse",
    },
)


class IamPolicyAnalysisQuery(proto.Message):
    r"""IAM policy analysis query message.

    Attributes:
        parent (str):
            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").
        resource_selector (google.cloud.asset_v1p4beta1.types.IamPolicyAnalysisQuery.ResourceSelector):
            Optional. Specifies a resource for analysis.
            Leaving it empty means ANY.
        identity_selector (google.cloud.asset_v1p4beta1.types.IamPolicyAnalysisQuery.IdentitySelector):
            Optional. Specifies an identity for analysis.
            Leaving it empty means ANY.
        access_selector (google.cloud.asset_v1p4beta1.types.IamPolicyAnalysisQuery.AccessSelector):
            Optional. Specifies roles or permissions for

            analysis. Leaving it empty means ANY.