# 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
from . import outputs
from ._inputs import *

__all__ = ['CloudBrowserIsolationExternalProfileArgs', 'CloudBrowserIsolationExternalProfile']

@pulumi.input_type
class CloudBrowserIsolationExternalProfileArgs:
    def __init__(__self__, *,
                 banner_id: pulumi.Input[str],
                 certificate_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 description: Optional[pulumi.Input[str]] = None,
                 name: Optional[pulumi.Input[str]] = None,
                 region_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 security_controls: Optional[pulumi.Input[Sequence[pulumi.Input['CloudBrowserIsolationExternalProfileSecurityControlArgs']]]] = None,
                 user_experiences: Optional[pulumi.Input[Sequence[pulumi.Input['CloudBrowserIsolationExternalProfileUserExperienceArgs']]]] = None):
        """
        The set of arguments for constructing a CloudBrowserIsolationExternalProfile resource.
        :param pulumi.Input[str] banner_id: The ID of the CBI banner to be exported.
        :param pulumi.Input[Sequence[pulumi.Input[str]]] certificate_ids: The CBI security controls enabled for the profile
               * `id:` - (Optional) The ID of the CBI Certificate to be associated with the profile.
        :param pulumi.Input[str] description: (Optional) - The description of the CBI profile
        :param pulumi.Input[str] name: The name of the CBI banner to be exported.
        :param pulumi.Input[Sequence[pulumi.Input[str]]] region_ids: The CBI region
               * `id:` - (Optional) The ID of CBI region where the profile must be deployed. At least 2 regions are required.
        :param pulumi.Input[Sequence[pulumi.Input['CloudBrowserIsolationExternalProfileSecurityControlArgs']]] security_controls: (Optional) The CBI security controls enabled for the profile
               * `copy_paste:` - (Optional) Enable or disable copy & paste for local computer to isolation. Supported values are: `none` or `all`
               * `document_viewer:` - (Optional) Enable or disable to view Microsoft Office files in isolation.
               * `local_render:` - (Optional) Enables non-isolated hyperlinks to be opened on the user's native browser.
               * `upload_download:` - (Optional) Enable or disable file transfer from local computer to isolation. Supported values are: `none` or `all`
               * `allow_printing:` - (Optional) Enables the user to print web pages and documents rendered within the isolation browser. Supported values are: `true` or `false`
               * `restrict_keystrokes:` - (Optional) Prevents keyboard and text input to isolated web pages. Supported values are: `true` or `false`
        :param pulumi.Input[Sequence[pulumi.Input['CloudBrowserIsolationExternalProfileUserExperienceArgs']]] user_experiences: The CBI security controls enabled for the profile
               * `session_persistence:` - (Optional) Save user cookies between sessions. If disabled, all cookies will be discarded when isolation session ends. Supported values are: `true` or `false`
               * `browser_in_browser:` - (Optional) Enable or disable browser-in-browser or native browser experience. Supported values are: `true` or `false`
        """
        pulumi.set(__self__, "banner_id", banner_id)
        if certificate_ids is not None:
            pulumi.set(__self__, "certificate_ids", certificate_ids)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if region_ids is not None:
            pulumi.set(__self__, "region_ids", region_ids)
        if security_controls is not None:
            pulumi.set(__self__, "security_controls", security_controls)
        if user_experiences is not None:
            pulumi.set(__self__, "user_experiences", user_experiences)

    @property
    @pulumi.getter(name="bannerId")
    def banner_id(self) -> pulumi.Input[str]:
        """
        The ID of the CBI banner to be exported.
        """
        return pulumi.get(self, "banner_id")

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

    @property
    @pulumi.getter(name="certificateIds")
    def certificate_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        The CBI security controls enabled for the profile
        * `id:` - (Optional) The ID of the CBI Certificate to be associated with the profile.
        """
        return pulumi.get(self, "certificate_ids")

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

    @property
    @pulumi.getter
    def description(self) -> Optional[pulumi.Input[str]]:
        """
        (Optional) - The description of the CBI profile
        """
        return pulumi.get(self, "description")

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

    @property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[str]]:
        """
        The name of the CBI banner to be exported.
        """
        return pulumi.get(self, "name")

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

    @property
    @pulumi.getter(name="regionIds")
    def region_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        The CBI region
        * `id:` - (Optional) The ID of CBI region where the profile must be deployed. At least 2 regions are required.
        """
        return pulumi.get(self, "region_ids")

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

    @property
    @pulumi.getter(name="securityControls")
    def security_controls(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['CloudBrowserIsolationExternalProfileSecurityControlArgs']]]]:
        """
        (Optional) The CBI security controls enabled for the profile
        * `copy_paste:` - (Optional) Enable or disable copy & paste for local computer to isolation. Supported values are: `none` or `all`
        * `document_viewer:` - (Optional) Enable or disable to view Microsoft Office files in isolation.
        * `local_render:` - (Optional) Enables non-isolated hyperlinks to be opened on the user's native browser.
        * `upload_download:` - (Optional) Enable or disable file transfer from local computer to isolation. Supported values are: `none` or `all`
        * `allow_printing:` - (Optional) Enables the user to print web pages and documents rendered within the isolation browser. Supported values are: `true` or `false`
        * `restrict_keystrokes:` - (Optional) Prevents keyboard and text input to isolated web pages. Supported values are: `true` or `false`
        """
        return pulumi.get(self, "security_controls")

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

    @property
    @pulumi.getter(name="userExperiences")
    def user_experiences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['CloudBrowserIsolationExternalProfileUserExperienceArgs']]]]:
        """
        The CBI security controls enabled for the profile
        * `session_persistence:` - (Optional) Save user cookies between sessions. If disabled, all cookies will be discarded when isolation session ends. Supported values are: `true` or `false`
        * `browser_in_browser:` - (Optional) Enable or disable browser-in-browser or native browser experience. Supported values are: `true` or `false`
        """
        return pulumi.get(self, "user_experiences")

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


@pulumi.input_type
class _CloudBrowserIsolationExternalProfileState:
    def __init__(__self__, *,
                 banner_id: Optional[pulumi.Input[str]] = None,
                 certificate_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 description: Optional[pulumi.Input[str]] = None,
                 name: Optional[pulumi.Input[str]] = None,
                 region_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 security_controls: Optional[pulumi.Input[Sequence[pulumi.Input['CloudBrowserIsolationExternalProfileSecurityControlArgs']]]] = None,
                 user_experiences: Optional[pulumi.Input[Sequence[pulumi.Input['CloudBrowserIsolationExternalProfileUserExperienceArgs']]]] = None):
        """
        Input properties used for looking up and filtering CloudBrowserIsolationExternalProfile resources.
        :param pulumi.Input[str] banner_id: The ID of the CBI banner to be exported.
        :param pulumi.Input[Sequence[pulumi.Input[str]]] certificate_ids: The CBI security controls enabled for the profile
               * `id:` - (Optional) The ID of the CBI Certificate to be associated with the profile.
        :param pulumi.Input[str] description: (Optional) - The description of the CBI profile
        :param pulumi.Input[str] name: The name of the CBI banner to be exported.
        :param pulumi.Input[Sequence[pulumi.Input[str]]] region_ids: The CBI region
               * `id:` - (Optional) The ID of CBI region where the profile must be deployed. At least 2 regions are required.
        :param pulumi.Input[Sequence[pulumi.Input['CloudBrowserIsolationExternalProfileSecurityControlArgs']]] security_controls: (Optional) The CBI security controls enabled for the profile
               * `copy_paste:` - (Optional) Enable or disable copy & paste for local computer to isolation. Supported values are: `none` or `all`
               * `document_viewer:` - (Optional) Enable or disable to view Microsoft Office files in isolation.
               * `local_render:` - (Optional) Enables non-isolated hyperlinks to be opened on the user's native browser.
               * `upload_download:` - (Optional) Enable or disable file transfer from local computer to isolation. Supported values are: `none` or `all`
               * `allow_printing:` - (Optional) Enables the user to print web pages and documents rendered within the isolation browser. Supported values are: `true` or `false`
               * `restrict_keystrokes:` - (Optional) Prevents keyboard and text input to isolated web pages. Supported values are: `true` or `false`
        :param pulumi.Input[Sequence[pulumi.Input['CloudBrowserIsolationExternalProfileUserExperienceArgs']]] user_experiences: The CBI security controls enabled for the profile
               * `session_persistence:` - (Optional) Save user cookies between sessions. If disabled, all cookies will be discarded when isolation session ends. Supported values are: `true` or `false`
               * `browser_in_browser:` - (Optional) Enable or disable browser-in-browser or native browser experience. Supported values are: `true` or `false`
        """
        if banner_id is not None:
            pulumi.set(__self__, "banner_id", banner_id)
        if certificate_ids is not None:
            pulumi.set(__self__, "certificate_ids", certificate_ids)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if region_ids is not None:
            pulumi.set(__self__, "region_ids", region_ids)
        if security_controls is not None:
            pulumi.set(__self__, "security_controls", security_controls)
        if user_experiences is not None:
            pulumi.set(__self__, "user_experiences", user_experiences)

    @property
    @pulumi.getter(name="bannerId")
    def banner_id(self) -> Optional[pulumi.Input[str]]:
        """
        The ID of the CBI banner to be exported.
        """
        return pulumi.get(self, "banner_id")

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

    @property
    @pulumi.getter(name="certificateIds")
    def certificate_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        The CBI security controls enabled for the profile
        * `id:` - (Optional) The ID of the CBI Certificate to be associated with the profile.
        """
        return pulumi.get(self, "certificate_ids")

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

    @property
    @pulumi.getter
    def description(self) -> Optional[pulumi.Input[str]]:
        """
        (Optional) - The description of the CBI profile
        """
        return pulumi.get(self, "description")

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

    @property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[str]]:
        """
        The name of the CBI banner to be exported.
        """
        return pulumi.get(self, "name")

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

    @property
    @pulumi.getter(name="regionIds")
    def region_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
        """
        The CBI region
        * `id:` - (Optional) The ID of CBI region where the profile must be deployed. At least 2 regions are required.
        """
        return pulumi.get(self, "region_ids")

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

    @property
    @pulumi.getter(name="securityControls")
    def security_controls(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['CloudBrowserIsolationExternalProfileSecurityControlArgs']]]]:
        """
        (Optional) The CBI security controls enabled for the profile
        * `copy_paste:` - (Optional) Enable or disable copy & paste for local computer to isolation. Supported values are: `none` or `all`
        * `document_viewer:` - (Optional) Enable or disable to view Microsoft Office files in isolation.
        * `local_render:` - (Optional) Enables non-isolated hyperlinks to be opened on the user's native browser.
        * `upload_download:` - (Optional) Enable or disable file transfer from local computer to isolation. Supported values are: `none` or `all`
        * `allow_printing:` - (Optional) Enables the user to print web pages and documents rendered within the isolation browser. Supported values are: `true` or `false`
        * `restrict_keystrokes:` - (Optional) Prevents keyboard and text input to isolated web pages. Supported values are: `true` or `false`
        """
        return pulumi.get(self, "security_controls")

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

    @property
    @pulumi.getter(name="userExperiences")
    def user_experiences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['CloudBrowserIsolationExternalProfileUserExperienceArgs']]]]:
        """
        The CBI security controls enabled for the profile
        * `session_persistence:` - (Optional) Save user cookies between sessions. If disabled, all cookies will be discarded when isolation session ends. Supported values are: `true` or `false`
        * `browser_in_browser:` - (Optional) Enable or disable browser-in-browser or native browser experience. Supported values are: `true` or `false`
        """
        return pulumi.get(self, "user_experiences")

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


class CloudBrowserIsolationExternalProfile(pulumi.CustomResource):
    @overload
    def __init__(__self__,
                 resource_name: str,
                 opts: Optional[pulumi.ResourceOptions] = None,
                 banner_id: Optional[pulumi.Input[str]] = None,
                 certificate_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 description: Optional[pulumi.Input[str]] = None,
                 name: Optional[pulumi.Input[str]] = None,
                 region_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 security_controls: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['CloudBrowserIsolationExternalProfileSecurityControlArgs']]]]] = None,
                 user_experiences: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['CloudBrowserIsolationExternalProfileUserExperienceArgs']]]]] = None,
                 __props__=None):
        """
        The **zpa_cloud_browser_isolation_external_profile** resource creates a Cloud Browser Isolation external profile. This resource can then be used in as part of `PolicyAccessIsolationRule` when the `action` attribute is set to `ISOLATE`.

        ## Example Usage

        ```python
        import pulumi
        import pulumi_zpa as zpa

        this_cloud_browser_isolation_banner = zpa.get_cloud_browser_isolation_banner(name="Default")
        singapore = zpa.get_cloud_browser_isolation_region(name="Singapore")
        frankfurt = zpa.get_cloud_browser_isolation_region(name="Frankfurt")
        this_cloud_browser_isolation_certificate = zpa.get_cloud_browser_isolation_certificate(name="Zscaler Root Certificate")
        this_cloud_browser_isolation_external_profile = zpa.CloudBrowserIsolationExternalProfile("thisCloudBrowserIsolationExternalProfile",
            description="CBI_Profile_Example",
            banner_id=this_cloud_browser_isolation_banner.id,
            region_ids=[singapore.id],
            certificate_ids=[this_cloud_browser_isolation_certificate.id],
            user_experiences=[zpa.CloudBrowserIsolationExternalProfileUserExperienceArgs(
                session_persistence=True,
                browser_in_browser=True,
            )],
            security_controls=[zpa.CloudBrowserIsolationExternalProfileSecurityControlArgs(
                copy_paste="all",
                upload_download="all",
                document_viewer=True,
                local_render=True,
                allow_printing=True,
                restrict_keystrokes=False,
            )])
        ```

        :param str resource_name: The name of the resource.
        :param pulumi.ResourceOptions opts: Options for the resource.
        :param pulumi.Input[str] banner_id: The ID of the CBI banner to be exported.
        :param pulumi.Input[Sequence[pulumi.Input[str]]] certificate_ids: The CBI security controls enabled for the profile
               * `id:` - (Optional) The ID of the CBI Certificate to be associated with the profile.
        :param pulumi.Input[str] description: (Optional) - The description of the CBI profile
        :param pulumi.Input[str] name: The name of the CBI banner to be exported.
        :param pulumi.Input[Sequence[pulumi.Input[str]]] region_ids: The CBI region
               * `id:` - (Optional) The ID of CBI region where the profile must be deployed. At least 2 regions are required.
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['CloudBrowserIsolationExternalProfileSecurityControlArgs']]]] security_controls: (Optional) The CBI security controls enabled for the profile
               * `copy_paste:` - (Optional) Enable or disable copy & paste for local computer to isolation. Supported values are: `none` or `all`
               * `document_viewer:` - (Optional) Enable or disable to view Microsoft Office files in isolation.
               * `local_render:` - (Optional) Enables non-isolated hyperlinks to be opened on the user's native browser.
               * `upload_download:` - (Optional) Enable or disable file transfer from local computer to isolation. Supported values are: `none` or `all`
               * `allow_printing:` - (Optional) Enables the user to print web pages and documents rendered within the isolation browser. Supported values are: `true` or `false`
               * `restrict_keystrokes:` - (Optional) Prevents keyboard and text input to isolated web pages. Supported values are: `true` or `false`
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['CloudBrowserIsolationExternalProfileUserExperienceArgs']]]] user_experiences: The CBI security controls enabled for the profile
               * `session_persistence:` - (Optional) Save user cookies between sessions. If disabled, all cookies will be discarded when isolation session ends. Supported values are: `true` or `false`
               * `browser_in_browser:` - (Optional) Enable or disable browser-in-browser or native browser experience. Supported values are: `true` or `false`
        """
        ...
    @overload
    def __init__(__self__,
                 resource_name: str,
                 args: CloudBrowserIsolationExternalProfileArgs,
                 opts: Optional[pulumi.ResourceOptions] = None):
        """
        The **zpa_cloud_browser_isolation_external_profile** resource creates a Cloud Browser Isolation external profile. This resource can then be used in as part of `PolicyAccessIsolationRule` when the `action` attribute is set to `ISOLATE`.

        ## Example Usage

        ```python
        import pulumi
        import pulumi_zpa as zpa

        this_cloud_browser_isolation_banner = zpa.get_cloud_browser_isolation_banner(name="Default")
        singapore = zpa.get_cloud_browser_isolation_region(name="Singapore")
        frankfurt = zpa.get_cloud_browser_isolation_region(name="Frankfurt")
        this_cloud_browser_isolation_certificate = zpa.get_cloud_browser_isolation_certificate(name="Zscaler Root Certificate")
        this_cloud_browser_isolation_external_profile = zpa.CloudBrowserIsolationExternalProfile("thisCloudBrowserIsolationExternalProfile",
            description="CBI_Profile_Example",
            banner_id=this_cloud_browser_isolation_banner.id,
            region_ids=[singapore.id],
            certificate_ids=[this_cloud_browser_isolation_certificate.id],
            user_experiences=[zpa.CloudBrowserIsolationExternalProfileUserExperienceArgs(
                session_persistence=True,
                browser_in_browser=True,
            )],
            security_controls=[zpa.CloudBrowserIsolationExternalProfileSecurityControlArgs(
                copy_paste="all",
                upload_download="all",
                document_viewer=True,
                local_render=True,
                allow_printing=True,
                restrict_keystrokes=False,
            )])
        ```

        :param str resource_name: The name of the resource.
        :param CloudBrowserIsolationExternalProfileArgs args: The arguments to use to populate this resource's properties.
        :param pulumi.ResourceOptions opts: Options for the resource.
        """
        ...
    def __init__(__self__, resource_name: str, *args, **kwargs):
        resource_args, opts = _utilities.get_resource_args_opts(CloudBrowserIsolationExternalProfileArgs, pulumi.ResourceOptions, *args, **kwargs)
        if resource_args is not None:
            __self__._internal_init(resource_name, opts, **resource_args.__dict__)
        else:
            __self__._internal_init(resource_name, *args, **kwargs)

    def _internal_init(__self__,
                 resource_name: str,
                 opts: Optional[pulumi.ResourceOptions] = None,
                 banner_id: Optional[pulumi.Input[str]] = None,
                 certificate_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 description: Optional[pulumi.Input[str]] = None,
                 name: Optional[pulumi.Input[str]] = None,
                 region_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
                 security_controls: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['CloudBrowserIsolationExternalProfileSecurityControlArgs']]]]] = None,
                 user_experiences: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['CloudBrowserIsolationExternalProfileUserExperienceArgs']]]]] = None,
                 __props__=None):
        opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
        if not isinstance(opts, pulumi.ResourceOptions):
            raise TypeError('Expected resource options to be a ResourceOptions instance')
        if opts.id is None:
            if __props__ is not None:
                raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
            __props__ = CloudBrowserIsolationExternalProfileArgs.__new__(CloudBrowserIsolationExternalProfileArgs)

            if banner_id is None and not opts.urn:
                raise TypeError("Missing required property 'banner_id'")
            __props__.__dict__["banner_id"] = banner_id
            __props__.__dict__["certificate_ids"] = certificate_ids
            __props__.__dict__["description"] = description
            __props__.__dict__["name"] = name
            __props__.__dict__["region_ids"] = region_ids
            __props__.__dict__["security_controls"] = security_controls
            __props__.__dict__["user_experiences"] = user_experiences
        super(CloudBrowserIsolationExternalProfile, __self__).__init__(
            'zpa:index/cloudBrowserIsolationExternalProfile:CloudBrowserIsolationExternalProfile',
            resource_name,
            __props__,
            opts)

    @staticmethod
    def get(resource_name: str,
            id: pulumi.Input[str],
            opts: Optional[pulumi.ResourceOptions] = None,
            banner_id: Optional[pulumi.Input[str]] = None,
            certificate_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
            description: Optional[pulumi.Input[str]] = None,
            name: Optional[pulumi.Input[str]] = None,
            region_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
            security_controls: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['CloudBrowserIsolationExternalProfileSecurityControlArgs']]]]] = None,
            user_experiences: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['CloudBrowserIsolationExternalProfileUserExperienceArgs']]]]] = None) -> 'CloudBrowserIsolationExternalProfile':
        """
        Get an existing CloudBrowserIsolationExternalProfile resource's state with the given name, id, and optional extra
        properties used to qualify the lookup.

        :param str resource_name: The unique name of the resulting resource.
        :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
        :param pulumi.ResourceOptions opts: Options for the resource.
        :param pulumi.Input[str] banner_id: The ID of the CBI banner to be exported.
        :param pulumi.Input[Sequence[pulumi.Input[str]]] certificate_ids: The CBI security controls enabled for the profile
               * `id:` - (Optional) The ID of the CBI Certificate to be associated with the profile.
        :param pulumi.Input[str] description: (Optional) - The description of the CBI profile
        :param pulumi.Input[str] name: The name of the CBI banner to be exported.
        :param pulumi.Input[Sequence[pulumi.Input[str]]] region_ids: The CBI region
               * `id:` - (Optional) The ID of CBI region where the profile must be deployed. At least 2 regions are required.
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['CloudBrowserIsolationExternalProfileSecurityControlArgs']]]] security_controls: (Optional) The CBI security controls enabled for the profile
               * `copy_paste:` - (Optional) Enable or disable copy & paste for local computer to isolation. Supported values are: `none` or `all`
               * `document_viewer:` - (Optional) Enable or disable to view Microsoft Office files in isolation.
               * `local_render:` - (Optional) Enables non-isolated hyperlinks to be opened on the user's native browser.
               * `upload_download:` - (Optional) Enable or disable file transfer from local computer to isolation. Supported values are: `none` or `all`
               * `allow_printing:` - (Optional) Enables the user to print web pages and documents rendered within the isolation browser. Supported values are: `true` or `false`
               * `restrict_keystrokes:` - (Optional) Prevents keyboard and text input to isolated web pages. Supported values are: `true` or `false`
        :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['CloudBrowserIsolationExternalProfileUserExperienceArgs']]]] user_experiences: The CBI security controls enabled for the profile
               * `session_persistence:` - (Optional) Save user cookies between sessions. If disabled, all cookies will be discarded when isolation session ends. Supported values are: `true` or `false`
               * `browser_in_browser:` - (Optional) Enable or disable browser-in-browser or native browser experience. Supported values are: `true` or `false`
        """
        opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))

        __props__ = _CloudBrowserIsolationExternalProfileState.__new__(_CloudBrowserIsolationExternalProfileState)

        __props__.__dict__["banner_id"] = banner_id
        __props__.__dict__["certificate_ids"] = certificate_ids
        __props__.__dict__["description"] = description
        __props__.__dict__["name"] = name
        __props__.__dict__["region_ids"] = region_ids
        __props__.__dict__["security_controls"] = security_controls
        __props__.__dict__["user_experiences"] = user_experiences
        return CloudBrowserIsolationExternalProfile(resource_name, opts=opts, __props__=__props__)

    @property
    @pulumi.getter(name="bannerId")
    def banner_id(self) -> pulumi.Output[str]:
        """
        The ID of the CBI banner to be exported.
        """
        return pulumi.get(self, "banner_id")

    @property
    @pulumi.getter(name="certificateIds")
    def certificate_ids(self) -> pulumi.Output[Sequence[str]]:
        """
        The CBI security controls enabled for the profile
        * `id:` - (Optional) The ID of the CBI Certificate to be associated with the profile.
        """
        return pulumi.get(self, "certificate_ids")

    @property
    @pulumi.getter
    def description(self) -> pulumi.Output[Optional[str]]:
        """
        (Optional) - The description of the CBI profile
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def name(self) -> pulumi.Output[str]:
        """
        The name of the CBI banner to be exported.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter(name="regionIds")
    def region_ids(self) -> pulumi.Output[Sequence[str]]:
        """
        The CBI region
        * `id:` - (Optional) The ID of CBI region where the profile must be deployed. At least 2 regions are required.
        """
        return pulumi.get(self, "region_ids")

    @property
    @pulumi.getter(name="securityControls")
    def security_controls(self) -> pulumi.Output[Optional[Sequence['outputs.CloudBrowserIsolationExternalProfileSecurityControl']]]:
        """
        (Optional) The CBI security controls enabled for the profile
        * `copy_paste:` - (Optional) Enable or disable copy & paste for local computer to isolation. Supported values are: `none` or `all`
        * `document_viewer:` - (Optional) Enable or disable to view Microsoft Office files in isolation.
        * `local_render:` - (Optional) Enables non-isolated hyperlinks to be opened on the user's native browser.
        * `upload_download:` - (Optional) Enable or disable file transfer from local computer to isolation. Supported values are: `none` or `all`
        * `allow_printing:` - (Optional) Enables the user to print web pages and documents rendered within the isolation browser. Supported values are: `true` or `false`
        * `restrict_keystrokes:` - (Optional) Prevents keyboard and text input to isolated web pages. Supported values are: `true` or `false`
        """
        return pulumi.get(self, "security_controls")

    @property
    @pulumi.getter(name="userExperiences")
    def user_experiences(self) -> pulumi.Output[Optional[Sequence['outputs.CloudBrowserIsolationExternalProfileUserExperience']]]:
        """
        The CBI security controls enabled for the profile
        * `session_persistence:` - (Optional) Save user cookies between sessions. If disabled, all cookies will be discarded when isolation session ends. Supported values are: `true` or `false`
        * `browser_in_browser:` - (Optional) Enable or disable browser-in-browser or native browser experience. Supported values are: `true` or `false`
        """
        return pulumi.get(self, "user_experiences")

