# 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

__all__ = [
    'RulesAction',
    'RulesCondition',
    'GetActionsFilterResult',
    'GetActionsValuesFilterResult',
    'GetConditionsFilterResult',
    'GetConditionsOperatorsFilterResult',
    'GetInstanceConfigurationResult',
    'GetInstanceEnforcementPointResult',
    'GetInstanceEnforcementPointResourceResult',
    'GetInstanceEnforcementPointSessionExpiryFixedResult',
    'GetInstanceEnforcementPointSessionExpiryInactivityResult',
    'GetInstanceParametersResult',
    'GetInstanceParametersGroupsResult',
    'GetInstanceProvisioningResult',
    'GetInstanceSsoResult',
    'GetInstanceSsoCertificateResult',
    'GetRulesActionResult',
    'GetRulesConditionResult',
    'GetRulesFilterResult',
    'GetRulesInstanceActionResult',
    'GetRulesInstanceConditionResult',
    'GetUsersFilterResult',
]

@pulumi.output_type
class RulesAction(dict):
    def __init__(__self__, *,
                 action: Optional[str] = None,
                 values: Optional[Sequence[str]] = None):
        if action is not None:
            pulumi.set(__self__, "action", action)
        if values is not None:
            pulumi.set(__self__, "values", values)

    @property
    @pulumi.getter
    def action(self) -> Optional[str]:
        return pulumi.get(self, "action")

    @property
    @pulumi.getter
    def values(self) -> Optional[Sequence[str]]:
        return pulumi.get(self, "values")


@pulumi.output_type
class RulesCondition(dict):
    def __init__(__self__, *,
                 operator: Optional[str] = None,
                 source: Optional[str] = None,
                 value: Optional[str] = None):
        if operator is not None:
            pulumi.set(__self__, "operator", operator)
        if source is not None:
            pulumi.set(__self__, "source", source)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def operator(self) -> Optional[str]:
        return pulumi.get(self, "operator")

    @property
    @pulumi.getter
    def source(self) -> Optional[str]:
        return pulumi.get(self, "source")

    @property
    @pulumi.getter
    def value(self) -> Optional[str]:
        return pulumi.get(self, "value")


@pulumi.output_type
class GetActionsFilterResult(dict):
    def __init__(__self__, *,
                 name: str,
                 values: Sequence[str]):
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "values", values)

    @property
    @pulumi.getter
    def name(self) -> str:
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def values(self) -> Sequence[str]:
        return pulumi.get(self, "values")


@pulumi.output_type
class GetActionsValuesFilterResult(dict):
    def __init__(__self__, *,
                 name: str,
                 values: Sequence[str]):
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "values", values)

    @property
    @pulumi.getter
    def name(self) -> str:
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def values(self) -> Sequence[str]:
        return pulumi.get(self, "values")


@pulumi.output_type
class GetConditionsFilterResult(dict):
    def __init__(__self__, *,
                 name: str,
                 values: Sequence[str]):
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "values", values)

    @property
    @pulumi.getter
    def name(self) -> str:
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def values(self) -> Sequence[str]:
        return pulumi.get(self, "values")


@pulumi.output_type
class GetConditionsOperatorsFilterResult(dict):
    def __init__(__self__, *,
                 name: str,
                 values: Sequence[str]):
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "values", values)

    @property
    @pulumi.getter
    def name(self) -> str:
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def values(self) -> Sequence[str]:
        return pulumi.get(self, "values")


@pulumi.output_type
class GetInstanceConfigurationResult(dict):
    def __init__(__self__, *,
                 access_token_expiration_minutes: int,
                 login_url: str,
                 oidc_api_version: str,
                 oidc_application_type: int,
                 oidc_encryption_key: str,
                 post_logout_redirect_uri: str,
                 redirect_uri: str,
                 refresh_token_expiration_minutes: int,
                 token_endpoint_auth_method: int):
        pulumi.set(__self__, "access_token_expiration_minutes", access_token_expiration_minutes)
        pulumi.set(__self__, "login_url", login_url)
        pulumi.set(__self__, "oidc_api_version", oidc_api_version)
        pulumi.set(__self__, "oidc_application_type", oidc_application_type)
        pulumi.set(__self__, "oidc_encryption_key", oidc_encryption_key)
        pulumi.set(__self__, "post_logout_redirect_uri", post_logout_redirect_uri)
        pulumi.set(__self__, "redirect_uri", redirect_uri)
        pulumi.set(__self__, "refresh_token_expiration_minutes", refresh_token_expiration_minutes)
        pulumi.set(__self__, "token_endpoint_auth_method", token_endpoint_auth_method)

    @property
    @pulumi.getter(name="accessTokenExpirationMinutes")
    def access_token_expiration_minutes(self) -> int:
        return pulumi.get(self, "access_token_expiration_minutes")

    @property
    @pulumi.getter(name="loginUrl")
    def login_url(self) -> str:
        return pulumi.get(self, "login_url")

    @property
    @pulumi.getter(name="oidcApiVersion")
    def oidc_api_version(self) -> str:
        return pulumi.get(self, "oidc_api_version")

    @property
    @pulumi.getter(name="oidcApplicationType")
    def oidc_application_type(self) -> int:
        return pulumi.get(self, "oidc_application_type")

    @property
    @pulumi.getter(name="oidcEncryptionKey")
    def oidc_encryption_key(self) -> str:
        return pulumi.get(self, "oidc_encryption_key")

    @property
    @pulumi.getter(name="postLogoutRedirectUri")
    def post_logout_redirect_uri(self) -> str:
        return pulumi.get(self, "post_logout_redirect_uri")

    @property
    @pulumi.getter(name="redirectUri")
    def redirect_uri(self) -> str:
        return pulumi.get(self, "redirect_uri")

    @property
    @pulumi.getter(name="refreshTokenExpirationMinutes")
    def refresh_token_expiration_minutes(self) -> int:
        return pulumi.get(self, "refresh_token_expiration_minutes")

    @property
    @pulumi.getter(name="tokenEndpointAuthMethod")
    def token_endpoint_auth_method(self) -> int:
        return pulumi.get(self, "token_endpoint_auth_method")


@pulumi.output_type
class GetInstanceEnforcementPointResult(dict):
    def __init__(__self__, *,
                 case_sensitive: bool,
                 conditions: str,
                 context_root: str,
                 landing_page: str,
                 permissions: str,
                 require_sitewide_authentication: bool,
                 resources: Sequence['outputs.GetInstanceEnforcementPointResourceResult'],
                 session_expiry_fixed: 'outputs.GetInstanceEnforcementPointSessionExpiryFixedResult',
                 session_expiry_inactivity: 'outputs.GetInstanceEnforcementPointSessionExpiryInactivityResult',
                 target: str,
                 token: str,
                 use_target_host_header: bool,
                 vhost: str):
        pulumi.set(__self__, "case_sensitive", case_sensitive)
        pulumi.set(__self__, "conditions", conditions)
        pulumi.set(__self__, "context_root", context_root)
        pulumi.set(__self__, "landing_page", landing_page)
        pulumi.set(__self__, "permissions", permissions)
        pulumi.set(__self__, "require_sitewide_authentication", require_sitewide_authentication)
        pulumi.set(__self__, "resources", resources)
        pulumi.set(__self__, "session_expiry_fixed", session_expiry_fixed)
        pulumi.set(__self__, "session_expiry_inactivity", session_expiry_inactivity)
        pulumi.set(__self__, "target", target)
        pulumi.set(__self__, "token", token)
        pulumi.set(__self__, "use_target_host_header", use_target_host_header)
        pulumi.set(__self__, "vhost", vhost)

    @property
    @pulumi.getter(name="caseSensitive")
    def case_sensitive(self) -> bool:
        return pulumi.get(self, "case_sensitive")

    @property
    @pulumi.getter
    def conditions(self) -> str:
        return pulumi.get(self, "conditions")

    @property
    @pulumi.getter(name="contextRoot")
    def context_root(self) -> str:
        return pulumi.get(self, "context_root")

    @property
    @pulumi.getter(name="landingPage")
    def landing_page(self) -> str:
        return pulumi.get(self, "landing_page")

    @property
    @pulumi.getter
    def permissions(self) -> str:
        return pulumi.get(self, "permissions")

    @property
    @pulumi.getter(name="requireSitewideAuthentication")
    def require_sitewide_authentication(self) -> bool:
        return pulumi.get(self, "require_sitewide_authentication")

    @property
    @pulumi.getter
    def resources(self) -> Sequence['outputs.GetInstanceEnforcementPointResourceResult']:
        return pulumi.get(self, "resources")

    @property
    @pulumi.getter(name="sessionExpiryFixed")
    def session_expiry_fixed(self) -> 'outputs.GetInstanceEnforcementPointSessionExpiryFixedResult':
        return pulumi.get(self, "session_expiry_fixed")

    @property
    @pulumi.getter(name="sessionExpiryInactivity")
    def session_expiry_inactivity(self) -> 'outputs.GetInstanceEnforcementPointSessionExpiryInactivityResult':
        return pulumi.get(self, "session_expiry_inactivity")

    @property
    @pulumi.getter
    def target(self) -> str:
        return pulumi.get(self, "target")

    @property
    @pulumi.getter
    def token(self) -> str:
        return pulumi.get(self, "token")

    @property
    @pulumi.getter(name="useTargetHostHeader")
    def use_target_host_header(self) -> bool:
        return pulumi.get(self, "use_target_host_header")

    @property
    @pulumi.getter
    def vhost(self) -> str:
        return pulumi.get(self, "vhost")


@pulumi.output_type
class GetInstanceEnforcementPointResourceResult(dict):
    def __init__(__self__, *,
                 conditions: str,
                 is_path_regex: bool,
                 path: str,
                 permission: str,
                 require_auth: bool):
        pulumi.set(__self__, "conditions", conditions)
        pulumi.set(__self__, "is_path_regex", is_path_regex)
        pulumi.set(__self__, "path", path)
        pulumi.set(__self__, "permission", permission)
        pulumi.set(__self__, "require_auth", require_auth)

    @property
    @pulumi.getter
    def conditions(self) -> str:
        return pulumi.get(self, "conditions")

    @property
    @pulumi.getter(name="isPathRegex")
    def is_path_regex(self) -> bool:
        return pulumi.get(self, "is_path_regex")

    @property
    @pulumi.getter
    def path(self) -> str:
        return pulumi.get(self, "path")

    @property
    @pulumi.getter
    def permission(self) -> str:
        return pulumi.get(self, "permission")

    @property
    @pulumi.getter(name="requireAuth")
    def require_auth(self) -> bool:
        return pulumi.get(self, "require_auth")


@pulumi.output_type
class GetInstanceEnforcementPointSessionExpiryFixedResult(dict):
    def __init__(__self__, *,
                 unit: int,
                 value: int):
        pulumi.set(__self__, "unit", unit)
        pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def unit(self) -> int:
        return pulumi.get(self, "unit")

    @property
    @pulumi.getter
    def value(self) -> int:
        return pulumi.get(self, "value")


@pulumi.output_type
class GetInstanceEnforcementPointSessionExpiryInactivityResult(dict):
    def __init__(__self__, *,
                 unit: int,
                 value: int):
        pulumi.set(__self__, "unit", unit)
        pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def unit(self) -> int:
        return pulumi.get(self, "unit")

    @property
    @pulumi.getter
    def value(self) -> int:
        return pulumi.get(self, "value")


@pulumi.output_type
class GetInstanceParametersResult(dict):
    def __init__(__self__, *,
                 groups: 'outputs.GetInstanceParametersGroupsResult'):
        pulumi.set(__self__, "groups", groups)

    @property
    @pulumi.getter
    def groups(self) -> 'outputs.GetInstanceParametersGroupsResult':
        return pulumi.get(self, "groups")


@pulumi.output_type
class GetInstanceParametersGroupsResult(dict):
    def __init__(__self__, *,
                 attributes_transformations: str,
                 default_values: str,
                 id: int,
                 label: str,
                 provisioned_entitlements: bool,
                 skip_if_blank: bool,
                 user_attribute_macros: str,
                 user_attribute_mappings: str,
                 values: str):
        pulumi.set(__self__, "attributes_transformations", attributes_transformations)
        pulumi.set(__self__, "default_values", default_values)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "label", label)
        pulumi.set(__self__, "provisioned_entitlements", provisioned_entitlements)
        pulumi.set(__self__, "skip_if_blank", skip_if_blank)
        pulumi.set(__self__, "user_attribute_macros", user_attribute_macros)
        pulumi.set(__self__, "user_attribute_mappings", user_attribute_mappings)
        pulumi.set(__self__, "values", values)

    @property
    @pulumi.getter(name="attributesTransformations")
    def attributes_transformations(self) -> str:
        return pulumi.get(self, "attributes_transformations")

    @property
    @pulumi.getter(name="defaultValues")
    def default_values(self) -> str:
        return pulumi.get(self, "default_values")

    @property
    @pulumi.getter
    def id(self) -> int:
        return pulumi.get(self, "id")

    @property
    @pulumi.getter
    def label(self) -> str:
        return pulumi.get(self, "label")

    @property
    @pulumi.getter(name="provisionedEntitlements")
    def provisioned_entitlements(self) -> bool:
        return pulumi.get(self, "provisioned_entitlements")

    @property
    @pulumi.getter(name="skipIfBlank")
    def skip_if_blank(self) -> bool:
        return pulumi.get(self, "skip_if_blank")

    @property
    @pulumi.getter(name="userAttributeMacros")
    def user_attribute_macros(self) -> str:
        return pulumi.get(self, "user_attribute_macros")

    @property
    @pulumi.getter(name="userAttributeMappings")
    def user_attribute_mappings(self) -> str:
        return pulumi.get(self, "user_attribute_mappings")

    @property
    @pulumi.getter
    def values(self) -> str:
        return pulumi.get(self, "values")


@pulumi.output_type
class GetInstanceProvisioningResult(dict):
    def __init__(__self__, *,
                 enabled: bool,
                 status: str):
        pulumi.set(__self__, "enabled", enabled)
        pulumi.set(__self__, "status", status)

    @property
    @pulumi.getter
    def enabled(self) -> bool:
        return pulumi.get(self, "enabled")

    @property
    @pulumi.getter
    def status(self) -> str:
        return pulumi.get(self, "status")


@pulumi.output_type
class GetInstanceSsoResult(dict):
    def __init__(__self__, *,
                 acs_url: str,
                 certificate: 'outputs.GetInstanceSsoCertificateResult',
                 client_id: str,
                 client_secret: str,
                 issuer: str,
                 metadata_url: str):
        pulumi.set(__self__, "acs_url", acs_url)
        pulumi.set(__self__, "certificate", certificate)
        pulumi.set(__self__, "client_id", client_id)
        pulumi.set(__self__, "client_secret", client_secret)
        pulumi.set(__self__, "issuer", issuer)
        pulumi.set(__self__, "metadata_url", metadata_url)

    @property
    @pulumi.getter(name="acsUrl")
    def acs_url(self) -> str:
        return pulumi.get(self, "acs_url")

    @property
    @pulumi.getter
    def certificate(self) -> 'outputs.GetInstanceSsoCertificateResult':
        return pulumi.get(self, "certificate")

    @property
    @pulumi.getter(name="clientId")
    def client_id(self) -> str:
        return pulumi.get(self, "client_id")

    @property
    @pulumi.getter(name="clientSecret")
    def client_secret(self) -> str:
        return pulumi.get(self, "client_secret")

    @property
    @pulumi.getter
    def issuer(self) -> str:
        return pulumi.get(self, "issuer")

    @property
    @pulumi.getter(name="metadataUrl")
    def metadata_url(self) -> str:
        return pulumi.get(self, "metadata_url")


@pulumi.output_type
class GetInstanceSsoCertificateResult(dict):
    def __init__(__self__, *,
                 id: int,
                 name: str,
                 value: str):
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def id(self) -> int:
        return pulumi.get(self, "id")

    @property
    @pulumi.getter
    def name(self) -> str:
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def value(self) -> str:
        return pulumi.get(self, "value")


@pulumi.output_type
class GetRulesActionResult(dict):
    def __init__(__self__, *,
                 action: str,
                 values: Sequence[str]):
        pulumi.set(__self__, "action", action)
        pulumi.set(__self__, "values", values)

    @property
    @pulumi.getter
    def action(self) -> str:
        return pulumi.get(self, "action")

    @property
    @pulumi.getter
    def values(self) -> Sequence[str]:
        return pulumi.get(self, "values")


@pulumi.output_type
class GetRulesConditionResult(dict):
    def __init__(__self__, *,
                 operator: str,
                 source: str,
                 value: str):
        pulumi.set(__self__, "operator", operator)
        pulumi.set(__self__, "source", source)
        pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def operator(self) -> str:
        return pulumi.get(self, "operator")

    @property
    @pulumi.getter
    def source(self) -> str:
        return pulumi.get(self, "source")

    @property
    @pulumi.getter
    def value(self) -> str:
        return pulumi.get(self, "value")


@pulumi.output_type
class GetRulesFilterResult(dict):
    def __init__(__self__, *,
                 name: str,
                 values: Sequence[str]):
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "values", values)

    @property
    @pulumi.getter
    def name(self) -> str:
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def values(self) -> Sequence[str]:
        return pulumi.get(self, "values")


@pulumi.output_type
class GetRulesInstanceActionResult(dict):
    def __init__(__self__, *,
                 action: str,
                 values: Sequence[str]):
        pulumi.set(__self__, "action", action)
        pulumi.set(__self__, "values", values)

    @property
    @pulumi.getter
    def action(self) -> str:
        return pulumi.get(self, "action")

    @property
    @pulumi.getter
    def values(self) -> Sequence[str]:
        return pulumi.get(self, "values")


@pulumi.output_type
class GetRulesInstanceConditionResult(dict):
    def __init__(__self__, *,
                 operator: str,
                 source: str,
                 value: str):
        pulumi.set(__self__, "operator", operator)
        pulumi.set(__self__, "source", source)
        pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def operator(self) -> str:
        return pulumi.get(self, "operator")

    @property
    @pulumi.getter
    def source(self) -> str:
        return pulumi.get(self, "source")

    @property
    @pulumi.getter
    def value(self) -> str:
        return pulumi.get(self, "value")


@pulumi.output_type
class GetUsersFilterResult(dict):
    def __init__(__self__, *,
                 name: str,
                 values: Sequence[str]):
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "values", values)

    @property
    @pulumi.getter
    def name(self) -> str:
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def values(self) -> Sequence[str]:
        return pulumi.get(self, "values")


