# coding=utf-8
# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

import copy
import warnings
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
from .. import _utilities

__all__ = [
    'AccessApprovalSettingsEnrolledServiceArgs',
    'ApiKeyRestrictionsArgs',
    'ApiKeyRestrictionsAndroidKeyRestrictionsArgs',
    'ApiKeyRestrictionsAndroidKeyRestrictionsAllowedApplicationArgs',
    'ApiKeyRestrictionsApiTargetArgs',
    'ApiKeyRestrictionsBrowserKeyRestrictionsArgs',
    'ApiKeyRestrictionsIosKeyRestrictionsArgs',
    'ApiKeyRestrictionsServerKeyRestrictionsArgs',
    'IAMAuditConfigAuditLogConfigArgs',
    'IAMBindingConditionArgs',
    'IAMMemberConditionArgs',
    'OrganizationPolicyBooleanPolicyArgs',
    'OrganizationPolicyListPolicyArgs',
    'OrganizationPolicyListPolicyAllowArgs',
    'OrganizationPolicyListPolicyDenyArgs',
    'OrganizationPolicyRestorePolicyArgs',
]

@pulumi.input_type
class AccessApprovalSettingsEnrolledServiceArgs:
    def __init__(__self__, *,
                 cloud_product: pulumi.Input[str],
                 enrollment_level: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] cloud_product: The product for which Access Approval will be enrolled. Allowed values are listed (case-sensitive):
               all
               appengine.googleapis.com
               bigquery.googleapis.com
               bigtable.googleapis.com
               cloudkms.googleapis.com
               compute.googleapis.com
               dataflow.googleapis.com
               iam.googleapis.com
               pubsub.googleapis.com
               storage.googleapis.com
        :param pulumi.Input[str] enrollment_level: The enrollment level of the service.
               Default value is `BLOCK_ALL`.
               Possible values are `BLOCK_ALL`.
        """
        pulumi.set(__self__, "cloud_product", cloud_product)
        if enrollment_level is not None:
            pulumi.set(__self__, "enrollment_level", enrollment_level)

    @property
    @pulumi.getter(name="cloudProduct")
    def cloud_product(self) -> pulumi.Input[str]:
        """
        The product for which Access Approval will be enrolled. Allowed values are listed (case-sensitive):
        all
        appengine.googleapis.com
        bigquery.googleapis.com
        bigtable.googleapis.com
        cloudkms.googleapis.com
        compute.googleapis.com
        dataflow.googleapis.com
        iam.googleapis.com
        pubsub.googleapis.com
        storage.googleapis.com
        """
        return pulumi.get(self, "cloud_product")

    @cloud_product.setter
    def cloud_product(self, value: pulumi.Input[str]):
        pulumi.set(self, "cloud_product", value)

    @property
    @pulumi.getter(name="enrollmentLevel")
    def enrollment_level(self) -> Optional[pulumi.Input[str]]:
        """
        The enrollment level of the service.
        Default value is `BLOCK_ALL`.
        Possible values are `BLOCK_ALL`.
        """
        return pulumi.get(self, "enrollment_level")

    @enrollment_level.setter
    def enrollment_level(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "enrollment_level", value)


@pulumi.input_type
class ApiKeyRestrictionsArgs:
    def __init__(__self__, *,
                 android_key_restrictions: Optional[pulumi.Input['ApiKeyRestrictionsAndroidKeyRestrictionsArgs']] = None,
                 api_targets: Optional[pulumi.Input[Sequence[pulumi.Input['ApiKeyRestrictionsApiTargetArgs']]]] = None,
                 browser_key_restrictions: Optional[pulumi.Input['ApiKeyRestrictionsBrowserKeyRestrictionsArgs']] = None,
                 ios_key_restrictions: Optional[pulumi.Input['ApiKeyRestrictionsIosKeyRestrictionsArgs']] = None,
                 server_key_restrictions: Optional[pulumi.Input['ApiKeyRestrictionsServerKeyRestrictionsArgs']] = None):
        """
        :param pulumi.Input['ApiKeyRestrictionsAndroidKeyRestrictionsArgs'] android_key_restrictions: The Android apps that are allowed to use the key.
        :param pulumi.Input[Sequence[pulumi.Input['ApiKeyRestrictionsApiTargetArgs']]] api_targets: A restriction for a specific service and optionally one or more specific methods. Requests are allowed if they match any of these restrictions. If no restrictions are specified, all targets are allowed.
        :param pulumi.Input['ApiKeyRestrictionsBrowserKeyRestrictionsArgs'] browser_key_restrictions: The HTTP referrers (websites) that are allowed to use the key.
        :param pulumi.Input['ApiKeyRestrictionsIosKeyRestrictionsArgs'] ios_key_restrictions: The iOS apps that are allowed to use the key.
        :param pulumi.Input['ApiKeyRestrictionsServerKeyRestrictionsArgs'] server_key_restrictions: The IP addresses of callers that are allowed to use the key.
        """
        if android_key_restrictions is not None:
            pulumi.set(__self__, "android_key_restrictions", android_key_restrictions)
        if api_targets is not None:
            pulumi.set(__self__, "api_targets", api_targets)
        if browser_key_restrictions is not None:
            pulumi.set(__self__, "browser_key_restrictions", browser_key_restrictions)
        if ios_key_restrictions is not None:
            pulumi.set(__self__, "ios_key_restrictions", ios_key_restrictions)
        if server_key_restrictions is not None:
            pulumi.set(__self__, "server_key_restrictions", server_key_restrictions)

    @property
    @pulumi.getter(name="androidKeyRestrictions")
    def android_key_restrictions(self) -> Optional[pulumi.Input['ApiKeyRestrictionsAndroidKeyRestrictionsArgs']]:
        """
        The Android apps that are allowed to use the key.
        """
        return pulumi.get(self, "android_key_restrictions")

    @android_key_restrictions.setter
    def android_key_restrictions(self, value: Optional[pulumi.Input['ApiKeyRestrictionsAndroidKeyRestrictionsArgs']]):
        pulumi.set(self, "android_key_restrictions", value)

    @property
    @pulumi.getter(name="apiTargets")
    def api_targets(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ApiKeyRestrictionsApiTargetArgs']]]]:
        """
        A restriction for a specific service and optionally one or more specific methods. Requests are allowed if they match any of these restrictions. If no restrictions are specified, all targets are allowed.
        """
        return pulumi.get(self, "api_targets")

    @api_targets.setter
    def api_targets(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ApiKeyRestrictionsApiTargetArgs']]]]):
        pulumi.set(self, "api_targets", value)

    @property
    @pulumi.getter(name="browserKeyRestrictions")
    def browser_key_restrictions(self) -> Optional[pulumi.Input['ApiKeyRestrictionsBrowserKeyRestrictionsArgs']]:
        """
        The HTTP referrers (websites) that are allowed to use the key.
        """
        return pulumi.get(self, "browser_key_restrictions")

    @browser_key_restrictions.setter
    def browser_key_restrictions(self, value: Optional[pulumi.Input['ApiKeyRestrictionsBrowserKeyRestrictionsArgs']]):
        pulumi.set(self, "browser_key_restrictions", value)

    @property
    @pulumi.getter(name="iosKeyRestrictions")
    def ios_key_restrictions(self) -> Optional[pulumi.Input['ApiKeyRestrictionsIosKeyRestrictionsArgs']]:
        """
        The iOS apps that are allowed to use the key.
        """
        return pulumi.get(self, "ios_key_restrictions")

    @ios_key_restrictions.setter
    def ios_key_restrictions(self, value: Optional[pulumi.Input['ApiKeyRestrictionsIosKeyRestrictionsArgs']]):
        pulumi.set(self, "ios_key_restrictions", value)

    @property
    @pulumi.getter(name="serverKeyRestrictions")
    def server_key_restrictions(self) -> Optional[pulumi.Input['ApiKeyRestrictionsServerKeyRestrictionsArgs']]:
        """
        The IP addresses of callers that are allowed to use the key.
        """
        return pulumi.get(self, "server_key_restrictions")

    @server_key_restrictions.setter
    def server_key_restrictions(self, value: Optional[pulumi.Input['ApiKeyRestrictionsServerKeyRestrictionsArgs']]):
        pulumi.set(self, "server_key_restrictions", value)


@pulumi.input_type
class ApiKeyRestrictionsAndroidKeyRestrictionsArgs:
    def __init__(__self__, *,
                 allowed_applications: pulumi.Input[Sequence[pulumi.Input['ApiKeyRestrictionsAndroidKeyRestrictionsAllowedApplicationArgs']]]):
        """
        :param pulumi.Input[Sequence[pulumi.Input['ApiKeyRestrictionsAndroidKeyRestrictionsAllowedApplicationArgs']]] allowed_applications: A list of Android applications that are allowed to make API calls with this key.
        """
        pulumi.set(__self__, "allowed_applications", allowed_applications)

    @property
    @pulumi.getter(name="allowedApplications")
    def allowed_applications(self) -> pulumi.Input[Sequence[pulumi.Input['ApiKeyRestrictionsAndroidKeyRestrictionsAllowedApplicationArgs']]]:
        """
        A list of Android applications that are allowed to make API calls with this key.
        """
        return pulumi.get(self, "allowed_applications")

    @allowed_applications.setter
    def allowed_applications(self, value: pulumi.Input[Sequence[pulumi.Input['ApiKeyRestrictionsAndroidKeyRestrictionsAllowedApplicationArgs']]]):
        pulumi.set(self, "allowed_applications", value)


@pulumi.input_type
class ApiKeyRestrictionsAndroidKeyRestrictionsAllowedApplicationArgs:
    def __init__(__self__, *,
                 package_name: pulumi.Input[str],
                 sha1_fingerprint: pulumi.Input[str]):
        """
        :param pulumi.Input[str] package_name: The package name of the application.
        :param pulumi.Input[str] sha1_fingerprint: The SHA1 fingerprint of the application. For example, both sha1 formats are acceptable : DA:39:A3:EE:5E:6B:4B:0D:32:55:BF:EF:95:60:18:90:AF:D8:07:09 or DA39A3EE5E6B4B0D3255BFEF95601890AFD80709. Output format is the latter.
        """
        pulumi.set(__self__, "package_name", package_name)
        pulumi.set(__self__, "sha1_fingerprint", sha1_fingerprint)

    @property
    @pulumi.getter(name="packageName")
    def package_name(self) -> pulumi.Input[str]:
        """
        The package name of the application.
        """
        return pulumi.get(self, "package_name")

    @package_name.setter
    def package_name(self, value: pulumi.Input[str]):
        pulumi.set(self, "package_name", value)

    @property
    @pulumi.getter(name="sha1Fingerprint")
    def sha1_fingerprint(self) -> pulumi.Input[str]:
        """
        The SHA1 fingerprint of the application. For example, both sha1 formats are acceptable : DA:39:A3:EE:5E:6B:4B:0D:32:55:BF:EF:95:60:18:90:AF:D8:07:09 or DA39A3EE5E6B4B0D3255BFEF95601890AFD80709. Output format is the latter.
        """
        return pulumi.get(self, "sha1_fingerprint")

    @sha1_fingerprint.setter
    def sha1_fingerprint(self, value: pulumi.Input[str]):
        pulumi.set(self, "sha1_fingerprint", value)


@pulumi.input_type
class ApiKeyRestrictionsApiTargetArgs:
    def __init__(__self__, *,
                 service: pulumi.Input[str],
                 methods: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
        """
        :param pulumi.Input[str] service: The service for this restriction. It should be the canonical service name, for example: `translate.googleapis.com`. You can use `gcloud services list` to get a list of services that are enabled in the project.
        :param pulumi.Input[Sequence[pulumi.Input[str]]] methods: Optional. List of one or more methods that can be called. If empty, all methods for the service are allowed. A wildcard (*) can be used as the last symbol. Valid examples: `google.cloud.translate.v2.TranslateService.GetSupportedLanguage` `TranslateText` `Get*` `translate.googleapis.com.Get*`
        """
        pulumi.set(__self__, "service", service)
        if methods is not None:
            pulumi.set(__self__, "methods", methods)

    @property
    @pulumi.getter
    def service(self) -> pulumi.Input[str]:
        """
        The service for this restriction. It should be the canonical service name, for example: `translate.googleapis.com`. You can use `gcloud services list` to get a list of services that are enabled in the project.
        """
        return pulumi.get(self, "service")

    @service.setter
    def service(self, value: pulumi.Input[str]):
        pulumi.set(self, "service", value)

    @property
    @pulumi.getter
    def methods(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        Optional. List of one or more methods that can be called. If empty, all methods for the service are allowed. A wildcard (*) can be used as the last symbol. Valid examples: `google.cloud.translate.v2.TranslateService.GetSupportedLanguage` `TranslateText` `Get*` `translate.googleapis.com.Get*`
        """
        return pulumi.get(self, "methods")

    @methods.setter
    def methods(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
        pulumi.set(self, "methods", value)


@pulumi.input_type
class ApiKeyRestrictionsBrowserKeyRestrictionsArgs:
    def __init__(__self__, *,
                 allowed_referrers: pulumi.Input[Sequence[pulumi.Input[str]]]):
        """
        :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_referrers: A list of regular expressions for the referrer URLs that are allowed to make API calls with this key.
        """
        pulumi.set(__self__, "allowed_referrers", allowed_referrers)

    @property
    @pulumi.getter(name="allowedReferrers")
    def allowed_referrers(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]:
        """
        A list of regular expressions for the referrer URLs that are allowed to make API calls with this key.
        """
        return pulumi.get(self, "allowed_referrers")

    @allowed_referrers.setter
    def allowed_referrers(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]):
        pulumi.set(self, "allowed_referrers", value)


@pulumi.input_type
class ApiKeyRestrictionsIosKeyRestrictionsArgs:
    def __init__(__self__, *,
                 allowed_bundle_ids: pulumi.Input[Sequence[pulumi.Input[str]]]):
        """
        :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_bundle_ids: A list of bundle IDs that are allowed when making API calls with this key.
        """
        pulumi.set(__self__, "allowed_bundle_ids", allowed_bundle_ids)

    @property
    @pulumi.getter(name="allowedBundleIds")
    def allowed_bundle_ids(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]:
        """
        A list of bundle IDs that are allowed when making API calls with this key.
        """
        return pulumi.get(self, "allowed_bundle_ids")

    @allowed_bundle_ids.setter
    def allowed_bundle_ids(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]):
        pulumi.set(self, "allowed_bundle_ids", value)


@pulumi.input_type
class ApiKeyRestrictionsServerKeyRestrictionsArgs:
    def __init__(__self__, *,
                 allowed_ips: pulumi.Input[Sequence[pulumi.Input[str]]]):
        """
        :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_ips: A list of the caller IP addresses that are allowed to make API calls with this key.
        """
        pulumi.set(__self__, "allowed_ips", allowed_ips)

    @property
    @pulumi.getter(name="allowedIps")
    def allowed_ips(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]:
        """
        A list of the caller IP addresses that are allowed to make API calls with this key.
        """
        return pulumi.get(self, "allowed_ips")

    @allowed_ips.setter
    def allowed_ips(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]):
        pulumi.set(self, "allowed_ips", value)


@pulumi.input_type
class IAMAuditConfigAuditLogConfigArgs:
    def __init__(__self__, *,
                 log_type: pulumi.Input[str],
                 exempted_members: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
        """
        :param pulumi.Input[str] log_type: Permission type for which logging is to be configured.  Must be one of `DATA_READ`, `DATA_WRITE`, or `ADMIN_READ`.
        :param pulumi.Input[Sequence[pulumi.Input[str]]] exempted_members: Identities that do not cause logging for this type of permission.  The format is the same as that for `members`.
        """
        pulumi.set(__self__, "log_type", log_type)
        if exempted_members is not None:
            pulumi.set(__self__, "exempted_members", exempted_members)

    @property
    @pulumi.getter(name="logType")
    def log_type(self) -> pulumi.Input[str]:
        """
        Permission type for which logging is to be configured.  Must be one of `DATA_READ`, `DATA_WRITE`, or `ADMIN_READ`.
        """
        return pulumi.get(self, "log_type")

    @log_type.setter
    def log_type(self, value: pulumi.Input[str]):
        pulumi.set(self, "log_type", value)

    @property
    @pulumi.getter(name="exemptedMembers")
    def exempted_members(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        Identities that do not cause logging for this type of permission.  The format is the same as that for `members`.
        """
        return pulumi.get(self, "exempted_members")

    @exempted_members.setter
    def exempted_members(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
        pulumi.set(self, "exempted_members", value)


@pulumi.input_type
class IAMBindingConditionArgs:
    def __init__(__self__, *,
                 expression: pulumi.Input[str],
                 title: pulumi.Input[str],
                 description: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] expression: Textual representation of an expression in Common Expression Language syntax.
        :param pulumi.Input[str] title: A title for the expression, i.e. a short string describing its purpose.
        :param pulumi.Input[str] description: An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
        """
        pulumi.set(__self__, "expression", expression)
        pulumi.set(__self__, "title", title)
        if description is not None:
            pulumi.set(__self__, "description", description)

    @property
    @pulumi.getter
    def expression(self) -> pulumi.Input[str]:
        """
        Textual representation of an expression in Common Expression Language syntax.
        """
        return pulumi.get(self, "expression")

    @expression.setter
    def expression(self, value: pulumi.Input[str]):
        pulumi.set(self, "expression", value)

    @property
    @pulumi.getter
    def title(self) -> pulumi.Input[str]:
        """
        A title for the expression, i.e. a short string describing its purpose.
        """
        return pulumi.get(self, "title")

    @title.setter
    def title(self, value: pulumi.Input[str]):
        pulumi.set(self, "title", value)

    @property
    @pulumi.getter
    def description(self) -> Optional[pulumi.Input[str]]:
        """
        An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
        """
        return pulumi.get(self, "description")

    @description.setter
    def description(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "description", value)


@pulumi.input_type
class IAMMemberConditionArgs:
    def __init__(__self__, *,
                 expression: pulumi.Input[str],
                 title: pulumi.Input[str],
                 description: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] expression: Textual representation of an expression in Common Expression Language syntax.
        :param pulumi.Input[str] title: A title for the expression, i.e. a short string describing its purpose.
        :param pulumi.Input[str] description: An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
        """
        pulumi.set(__self__, "expression", expression)
        pulumi.set(__self__, "title", title)
        if description is not None:
            pulumi.set(__self__, "description", description)

    @property
    @pulumi.getter
    def expression(self) -> pulumi.Input[str]:
        """
        Textual representation of an expression in Common Expression Language syntax.
        """
        return pulumi.get(self, "expression")

    @expression.setter
    def expression(self, value: pulumi.Input[str]):
        pulumi.set(self, "expression", value)

    @property
    @pulumi.getter
    def title(self) -> pulumi.Input[str]:
        """
        A title for the expression, i.e. a short string describing its purpose.
        """
        return pulumi.get(self, "title")

    @title.setter
    def title(self, value: pulumi.Input[str]):
        pulumi.set(self, "title", value)

    @property
    @pulumi.getter
    def description(self) -> Optional[pulumi.Input[str]]:
        """
        An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
        """
        return pulumi.get(self, "description")

    @description.setter
    def description(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "description", value)


@pulumi.input_type
class OrganizationPolicyBooleanPolicyArgs:
    def __init__(__self__, *,
                 enforced: pulumi.Input[bool]):
        """
        :param pulumi.Input[bool] enforced: If true, then the Policy is enforced. If false, then any configuration is acceptable.
        """
        pulumi.set(__self__, "enforced", enforced)

    @property
    @pulumi.getter
    def enforced(self) -> pulumi.Input[bool]:
        """
        If true, then the Policy is enforced. If false, then any configuration is acceptable.
        """
        return pulumi.get(self, "enforced")

    @enforced.setter
    def enforced(self, value: pulumi.Input[bool]):
        pulumi.set(self, "enforced", value)


@pulumi.input_type
class OrganizationPolicyListPolicyArgs:
    def __init__(__self__, *,
                 allow: Optional[pulumi.Input['OrganizationPolicyListPolicyAllowArgs']] = None,
                 deny: Optional[pulumi.Input['OrganizationPolicyListPolicyDenyArgs']] = None,
                 inherit_from_parent: Optional[pulumi.Input[bool]] = None,
                 suggested_value: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input['OrganizationPolicyListPolicyAllowArgs'] allow: or `deny` - (Optional) One or the other must be set.
        :param pulumi.Input[bool] inherit_from_parent: If set to true, the values from the effective Policy of the parent resource
               are inherited, meaning the values set in this Policy are added to the values inherited up the hierarchy.
        :param pulumi.Input[str] suggested_value: The Google Cloud Console will try to default to a configuration that matches the value specified in this field.
        """
        if allow is not None:
            pulumi.set(__self__, "allow", allow)
        if deny is not None:
            pulumi.set(__self__, "deny", deny)
        if inherit_from_parent is not None:
            pulumi.set(__self__, "inherit_from_parent", inherit_from_parent)
        if suggested_value is not None:
            pulumi.set(__self__, "suggested_value", suggested_value)

    @property
    @pulumi.getter
    def allow(self) -> Optional[pulumi.Input['OrganizationPolicyListPolicyAllowArgs']]:
        """
        or `deny` - (Optional) One or the other must be set.
        """
        return pulumi.get(self, "allow")

    @allow.setter
    def allow(self, value: Optional[pulumi.Input['OrganizationPolicyListPolicyAllowArgs']]):
        pulumi.set(self, "allow", value)

    @property
    @pulumi.getter
    def deny(self) -> Optional[pulumi.Input['OrganizationPolicyListPolicyDenyArgs']]:
        return pulumi.get(self, "deny")

    @deny.setter
    def deny(self, value: Optional[pulumi.Input['OrganizationPolicyListPolicyDenyArgs']]):
        pulumi.set(self, "deny", value)

    @property
    @pulumi.getter(name="inheritFromParent")
    def inherit_from_parent(self) -> Optional[pulumi.Input[bool]]:
        """
        If set to true, the values from the effective Policy of the parent resource
        are inherited, meaning the values set in this Policy are added to the values inherited up the hierarchy.
        """
        return pulumi.get(self, "inherit_from_parent")

    @inherit_from_parent.setter
    def inherit_from_parent(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "inherit_from_parent", value)

    @property
    @pulumi.getter(name="suggestedValue")
    def suggested_value(self) -> Optional[pulumi.Input[str]]:
        """
        The Google Cloud Console will try to default to a configuration that matches the value specified in this field.
        """
        return pulumi.get(self, "suggested_value")

    @suggested_value.setter
    def suggested_value(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "suggested_value", value)


@pulumi.input_type
class OrganizationPolicyListPolicyAllowArgs:
    def __init__(__self__, *,
                 all: Optional[pulumi.Input[bool]] = None,
                 values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
        """
        :param pulumi.Input[bool] all: The policy allows or denies all values.
        :param pulumi.Input[Sequence[pulumi.Input[str]]] values: The policy can define specific values that are allowed or denied.
        """
        if all is not None:
            pulumi.set(__self__, "all", all)
        if values is not None:
            pulumi.set(__self__, "values", values)

    @property
    @pulumi.getter
    def all(self) -> Optional[pulumi.Input[bool]]:
        """
        The policy allows or denies all values.
        """
        return pulumi.get(self, "all")

    @all.setter
    def all(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "all", value)

    @property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        The policy can define specific values that are allowed or denied.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
        pulumi.set(self, "values", value)


@pulumi.input_type
class OrganizationPolicyListPolicyDenyArgs:
    def __init__(__self__, *,
                 all: Optional[pulumi.Input[bool]] = None,
                 values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
        """
        :param pulumi.Input[bool] all: The policy allows or denies all values.
        :param pulumi.Input[Sequence[pulumi.Input[str]]] values: The policy can define specific values that are allowed or denied.
        """
        if all is not None:
            pulumi.set(__self__, "all", all)
        if values is not None:
            pulumi.set(__self__, "values", values)

    @property
    @pulumi.getter
    def all(self) -> Optional[pulumi.Input[bool]]:
        """
        The policy allows or denies all values.
        """
        return pulumi.get(self, "all")

    @all.setter
    def all(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "all", value)

    @property
    @pulumi.getter
    def values(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        The policy can define specific values that are allowed or denied.
        """
        return pulumi.get(self, "values")

    @values.setter
    def values(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
        pulumi.set(self, "values", value)


@pulumi.input_type
class OrganizationPolicyRestorePolicyArgs:
    def __init__(__self__, *,
                 default: pulumi.Input[bool]):
        """
        :param pulumi.Input[bool] default: May only be set to true. If set, then the default Policy is restored.
        """
        pulumi.set(__self__, "default", default)

    @property
    @pulumi.getter
    def default(self) -> pulumi.Input[bool]:
        """
        May only be set to true. If set, then the default Policy is restored.
        """
        return pulumi.get(self, "default")

    @default.setter
    def default(self, value: pulumi.Input[bool]):
        pulumi.set(self, "default", value)


