# Path: google/cloud/orgpolicy_v2/types/constraint.py
# class Constraint(proto.Message):
#     class ConstraintDefault(proto.Enum):
#     class ListConstraint(proto.Message):
#     class BooleanConstraint(proto.Message):
#         CONSTRAINT_DEFAULT_UNSPECIFIED = 0
#         ALLOW = 1
#         DENY = 2


import proto  # type: ignore
from google.cloud.orgpolicy_v2.types import constraint
from google.protobuf import timestamp_pb2  # type: ignore
from google.type import expr_pb2  # type: ignore
        "GetPolicyRequest",
        "GetEffectivePolicyRequest",
        "CreatePolicyRequest",
        "UpdatePolicyRequest",
        "DeletePolicyRequest",
    },
)


class Policy(proto.Message):
    r"""Defines a Cloud Organization ``Policy`` which is used to specify
    ``Constraints`` for configurations of Cloud Platform resources.

    Attributes:
        name (str):
            Immutable. The resource name of the Policy. Must be one of
            the following forms, where constraint_name is the name of
            the constraint which this Policy configures:

            -  ``projects/{project_number}/policies/{constraint_name}``
            -  ``folders/{folder_id}/policies/{constraint_name}``
            -  ``organizations/{organization_id}/policies/{constraint_name}``

            For example,
            "projects/123/policies/compute.disableSerialPortAccess".

            Note: ``projects/{project_id}/policies/{constraint_name}``
            is also an acceptable name for API requests, but responses
            will return the name using the equivalent project number.
        spec (google.cloud.orgpolicy_v2.types.PolicySpec):

# Path: google/cloud/orgpolicy_v2/types/constraint.py
# class Constraint(proto.Message):
#     class ConstraintDefault(proto.Enum):
#     class ListConstraint(proto.Message):
#     class BooleanConstraint(proto.Message):
#         CONSTRAINT_DEFAULT_UNSPECIFIED = 0
#         ALLOW = 1
#         DENY = 2


# Path: google/cloud/orgpolicy_v2/types/orgpolicy.py
import proto  # type: ignore
from google.cloud.orgpolicy_v2.types import constraint
from google.protobuf import timestamp_pb2  # type: ignore
from google.type import expr_pb2  # type: ignore

        "GetPolicyRequest",
        "GetEffectivePolicyRequest",
        "CreatePolicyRequest",
        "UpdatePolicyRequest",
        "DeletePolicyRequest",
    },
)


class Policy(proto.Message):
    r"""Defines a Cloud Organization ``Policy`` which is used to specify
    ``Constraints`` for configurations of Cloud Platform resources.

    Attributes:
        name (str):
            Immutable. The resource name of the Policy. Must be one of
            the following forms, where constraint_name is the name of
            the constraint which this Policy configures:

            -  ``projects/{project_number}/policies/{constraint_name}``
            -  ``folders/{folder_id}/policies/{constraint_name}``
            -  ``organizations/{organization_id}/policies/{constraint_name}``

            For example,
            "projects/123/policies/compute.disableSerialPortAccess".

            Note: ``projects/{project_id}/policies/{constraint_name}``
            is also an acceptable name for API requests, but responses
            will return the name using the equivalent project number.
        spec (google.cloud.orgpolicy_v2.types.PolicySpec):

            Basic information about the Organization