# coding=utf-8
# *** WARNING: this file was generated by pulumi-language-python. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

import builtins as _builtins
import warnings
import sys
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
if sys.version_info >= (3, 11):
    from typing import NotRequired, TypedDict, TypeAlias
else:
    from typing_extensions import NotRequired, TypedDict, TypeAlias
from .. import _utilities
from . import outputs
from ._inputs import *

__all__ = ['SamlArgs', 'Saml']

@pulumi.input_type
class SamlArgs:
    def __init__(__self__, *,
                 label: pulumi.Input[_builtins.str],
                 accessibility_error_redirect_url: Optional[pulumi.Input[_builtins.str]] = None,
                 accessibility_login_redirect_url: Optional[pulumi.Input[_builtins.str]] = None,
                 accessibility_self_service: Optional[pulumi.Input[_builtins.bool]] = None,
                 acs_endpoints: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 acs_endpoints_indices: Optional[pulumi.Input[Sequence[pulumi.Input['SamlAcsEndpointsIndexArgs']]]] = None,
                 admin_note: Optional[pulumi.Input[_builtins.str]] = None,
                 app_links_json: Optional[pulumi.Input[_builtins.str]] = None,
                 app_settings_json: Optional[pulumi.Input[_builtins.str]] = None,
                 assertion_signed: Optional[pulumi.Input[_builtins.bool]] = None,
                 attribute_statements: Optional[pulumi.Input[Sequence[pulumi.Input['SamlAttributeStatementArgs']]]] = None,
                 audience: Optional[pulumi.Input[_builtins.str]] = None,
                 authentication_policy: Optional[pulumi.Input[_builtins.str]] = None,
                 authn_context_class_ref: Optional[pulumi.Input[_builtins.str]] = None,
                 auto_submit_toolbar: Optional[pulumi.Input[_builtins.bool]] = None,
                 default_relay_state: Optional[pulumi.Input[_builtins.str]] = None,
                 destination: Optional[pulumi.Input[_builtins.str]] = None,
                 digest_algorithm: Optional[pulumi.Input[_builtins.str]] = None,
                 enduser_note: Optional[pulumi.Input[_builtins.str]] = None,
                 hide_ios: Optional[pulumi.Input[_builtins.bool]] = None,
                 hide_web: Optional[pulumi.Input[_builtins.bool]] = None,
                 honor_force_authn: Optional[pulumi.Input[_builtins.bool]] = None,
                 idp_issuer: Optional[pulumi.Input[_builtins.str]] = None,
                 implicit_assignment: Optional[pulumi.Input[_builtins.bool]] = None,
                 inline_hook_id: Optional[pulumi.Input[_builtins.str]] = None,
                 key_name: Optional[pulumi.Input[_builtins.str]] = None,
                 key_years_valid: Optional[pulumi.Input[_builtins.int]] = None,
                 logo: Optional[pulumi.Input[_builtins.str]] = None,
                 preconfigured_app: Optional[pulumi.Input[_builtins.str]] = None,
                 recipient: Optional[pulumi.Input[_builtins.str]] = None,
                 request_compressed: Optional[pulumi.Input[_builtins.bool]] = None,
                 response_signed: Optional[pulumi.Input[_builtins.bool]] = None,
                 saml_signed_request_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
                 saml_version: Optional[pulumi.Input[_builtins.str]] = None,
                 signature_algorithm: Optional[pulumi.Input[_builtins.str]] = None,
                 single_logout_certificate: Optional[pulumi.Input[_builtins.str]] = None,
                 single_logout_issuer: Optional[pulumi.Input[_builtins.str]] = None,
                 single_logout_url: Optional[pulumi.Input[_builtins.str]] = None,
                 sp_issuer: Optional[pulumi.Input[_builtins.str]] = None,
                 sso_url: Optional[pulumi.Input[_builtins.str]] = None,
                 status: Optional[pulumi.Input[_builtins.str]] = None,
                 subject_name_id_format: Optional[pulumi.Input[_builtins.str]] = None,
                 subject_name_id_template: Optional[pulumi.Input[_builtins.str]] = None,
                 user_name_template: Optional[pulumi.Input[_builtins.str]] = None,
                 user_name_template_push_status: Optional[pulumi.Input[_builtins.str]] = None,
                 user_name_template_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 user_name_template_type: Optional[pulumi.Input[_builtins.str]] = None):
        """
        The set of arguments for constructing a Saml resource.
        :param pulumi.Input[_builtins.str] label: The Application's display name.
        :param pulumi.Input[_builtins.str] accessibility_error_redirect_url: Custom error page URL
        :param pulumi.Input[_builtins.str] accessibility_login_redirect_url: Custom login page URL
        :param pulumi.Input[_builtins.bool] accessibility_self_service: Enable self service. Default is `false`
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] acs_endpoints: An array of ACS endpoints. You can configure a maximum of 100 endpoints.
        :param pulumi.Input[Sequence[pulumi.Input['SamlAcsEndpointsIndexArgs']]] acs_endpoints_indices: ACS endpoints along with custom index as a set of maps called `acs_endpoints_indices` in JSON format.
        :param pulumi.Input[_builtins.str] admin_note: Application notes for admins.
        :param pulumi.Input[_builtins.str] app_links_json: Displays specific appLinks for the app. The value for each application link should be boolean.
        :param pulumi.Input[_builtins.str] app_settings_json: Application settings in JSON format
        :param pulumi.Input[_builtins.bool] assertion_signed: Determines whether the SAML assertion is digitally signed
        :param pulumi.Input[_builtins.str] audience: Audience Restriction
        :param pulumi.Input[_builtins.str] authentication_policy: The ID of the associated `app_signon_policy`. If this property is removed from the application the `default` sign-on-policy will be associated with this application.y
        :param pulumi.Input[_builtins.str] authn_context_class_ref: Identifies the SAML authentication context class for the assertion’s authentication statement
        :param pulumi.Input[_builtins.bool] auto_submit_toolbar: Display auto submit toolbar. Default is: `false`
        :param pulumi.Input[_builtins.str] default_relay_state: Identifies a specific application resource in an IDP initiated SSO scenario.
        :param pulumi.Input[_builtins.str] destination: Identifies the location where the SAML response is intended to be sent inside of the SAML assertion
        :param pulumi.Input[_builtins.str] digest_algorithm: Determines the digest algorithm used to digitally sign the SAML assertion and response
        :param pulumi.Input[_builtins.str] enduser_note: Application notes for end users.
        :param pulumi.Input[_builtins.bool] hide_ios: Do not display application icon on mobile app
        :param pulumi.Input[_builtins.bool] hide_web: Do not display application icon to users
        :param pulumi.Input[_builtins.bool] honor_force_authn: Prompt user to re-authenticate if SP asks for it. Default is: `false`
        :param pulumi.Input[_builtins.str] idp_issuer: SAML issuer ID
        :param pulumi.Input[_builtins.bool] implicit_assignment: *Early Access Property*. Enable Federation Broker Mode.
        :param pulumi.Input[_builtins.str] inline_hook_id: Saml Inline Hook setting
        :param pulumi.Input[_builtins.str] key_name: Certificate name. This modulates the rotation of keys. New name == new key. Required to be set with `key_years_valid`
        :param pulumi.Input[_builtins.int] key_years_valid: Number of years the certificate is valid (2 - 10 years).
        :param pulumi.Input[_builtins.str] logo: Local file path to the logo. The file must be in PNG, JPG, or GIF format, and less than 1 MB in size.
        :param pulumi.Input[_builtins.str] preconfigured_app: Name of application from the Okta Integration Network. For instance 'slack'. If not included a custom app will be created.  If not provided the following arguments are required:
               'sso*url'
               'recipient'
               'destination'
               'audience'
               'subject*name*id*template'
               'subject*name*id*format'
               'signature*algorithm'
               'digest*algorithm'
               'authn*context*class*ref'
        :param pulumi.Input[_builtins.str] recipient: The location where the app may present the SAML assertion
        :param pulumi.Input[_builtins.bool] request_compressed: Denotes whether the request is compressed or not.
        :param pulumi.Input[_builtins.bool] response_signed: Determines whether the SAML auth response message is digitally signed
        :param pulumi.Input[_builtins.bool] saml_signed_request_enabled: SAML Signed Request enabled
        :param pulumi.Input[_builtins.str] saml_version: SAML version for the app's sign-on mode. Valid values are: `2.0` or `1.1`. Default is `2.0`
        :param pulumi.Input[_builtins.str] signature_algorithm: Signature algorithm used to digitally sign the assertion and response
        :param pulumi.Input[_builtins.str] single_logout_certificate: x509 encoded certificate that the Service Provider uses to sign Single Logout requests. Note: should be provided without `-----BEGIN CERTIFICATE-----` and `-----END CERTIFICATE-----`, see [official documentation](https://developer.okta.com/docs/reference/api/apps/#service-provider-certificate).
        :param pulumi.Input[_builtins.str] single_logout_issuer: The issuer of the Service Provider that generates the Single Logout request
        :param pulumi.Input[_builtins.str] single_logout_url: The location where the logout response is sent
        :param pulumi.Input[_builtins.str] sp_issuer: SAML SP issuer ID
        :param pulumi.Input[_builtins.str] sso_url: Single Sign On URL
        :param pulumi.Input[_builtins.str] status: Status of application. By default, it is `ACTIVE`
        :param pulumi.Input[_builtins.str] subject_name_id_format: Identifies the SAML processing rules.
        :param pulumi.Input[_builtins.str] subject_name_id_template: Template for app user's username when a user is assigned to the app
        :param pulumi.Input[_builtins.str] user_name_template: Username template. Default: `${source.login}`
        :param pulumi.Input[_builtins.str] user_name_template_push_status: Push username on update. Valid values: `PUSH` and `DONT_PUSH`
        :param pulumi.Input[_builtins.str] user_name_template_suffix: Username template suffix
        :param pulumi.Input[_builtins.str] user_name_template_type: Username template type. Default: `BUILT_IN`
        """
        pulumi.set(__self__, "label", label)
        if accessibility_error_redirect_url is not None:
            pulumi.set(__self__, "accessibility_error_redirect_url", accessibility_error_redirect_url)
        if accessibility_login_redirect_url is not None:
            pulumi.set(__self__, "accessibility_login_redirect_url", accessibility_login_redirect_url)
        if accessibility_self_service is not None:
            pulumi.set(__self__, "accessibility_self_service", accessibility_self_service)
        if acs_endpoints is not None:
            pulumi.set(__self__, "acs_endpoints", acs_endpoints)
        if acs_endpoints_indices is not None:
            pulumi.set(__self__, "acs_endpoints_indices", acs_endpoints_indices)
        if admin_note is not None:
            pulumi.set(__self__, "admin_note", admin_note)
        if app_links_json is not None:
            pulumi.set(__self__, "app_links_json", app_links_json)
        if app_settings_json is not None:
            pulumi.set(__self__, "app_settings_json", app_settings_json)
        if assertion_signed is not None:
            pulumi.set(__self__, "assertion_signed", assertion_signed)
        if attribute_statements is not None:
            pulumi.set(__self__, "attribute_statements", attribute_statements)
        if audience is not None:
            pulumi.set(__self__, "audience", audience)
        if authentication_policy is not None:
            pulumi.set(__self__, "authentication_policy", authentication_policy)
        if authn_context_class_ref is not None:
            pulumi.set(__self__, "authn_context_class_ref", authn_context_class_ref)
        if auto_submit_toolbar is not None:
            pulumi.set(__self__, "auto_submit_toolbar", auto_submit_toolbar)
        if default_relay_state is not None:
            pulumi.set(__self__, "default_relay_state", default_relay_state)
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if digest_algorithm is not None:
            pulumi.set(__self__, "digest_algorithm", digest_algorithm)
        if enduser_note is not None:
            pulumi.set(__self__, "enduser_note", enduser_note)
        if hide_ios is not None:
            pulumi.set(__self__, "hide_ios", hide_ios)
        if hide_web is not None:
            pulumi.set(__self__, "hide_web", hide_web)
        if honor_force_authn is not None:
            pulumi.set(__self__, "honor_force_authn", honor_force_authn)
        if idp_issuer is not None:
            pulumi.set(__self__, "idp_issuer", idp_issuer)
        if implicit_assignment is not None:
            pulumi.set(__self__, "implicit_assignment", implicit_assignment)
        if inline_hook_id is not None:
            pulumi.set(__self__, "inline_hook_id", inline_hook_id)
        if key_name is not None:
            pulumi.set(__self__, "key_name", key_name)
        if key_years_valid is not None:
            pulumi.set(__self__, "key_years_valid", key_years_valid)
        if logo is not None:
            pulumi.set(__self__, "logo", logo)
        if preconfigured_app is not None:
            pulumi.set(__self__, "preconfigured_app", preconfigured_app)
        if recipient is not None:
            pulumi.set(__self__, "recipient", recipient)
        if request_compressed is not None:
            pulumi.set(__self__, "request_compressed", request_compressed)
        if response_signed is not None:
            pulumi.set(__self__, "response_signed", response_signed)
        if saml_signed_request_enabled is not None:
            pulumi.set(__self__, "saml_signed_request_enabled", saml_signed_request_enabled)
        if saml_version is not None:
            pulumi.set(__self__, "saml_version", saml_version)
        if signature_algorithm is not None:
            pulumi.set(__self__, "signature_algorithm", signature_algorithm)
        if single_logout_certificate is not None:
            pulumi.set(__self__, "single_logout_certificate", single_logout_certificate)
        if single_logout_issuer is not None:
            pulumi.set(__self__, "single_logout_issuer", single_logout_issuer)
        if single_logout_url is not None:
            pulumi.set(__self__, "single_logout_url", single_logout_url)
        if sp_issuer is not None:
            pulumi.set(__self__, "sp_issuer", sp_issuer)
        if sso_url is not None:
            pulumi.set(__self__, "sso_url", sso_url)
        if status is not None:
            pulumi.set(__self__, "status", status)
        if subject_name_id_format is not None:
            pulumi.set(__self__, "subject_name_id_format", subject_name_id_format)
        if subject_name_id_template is not None:
            pulumi.set(__self__, "subject_name_id_template", subject_name_id_template)
        if user_name_template is not None:
            pulumi.set(__self__, "user_name_template", user_name_template)
        if user_name_template_push_status is not None:
            pulumi.set(__self__, "user_name_template_push_status", user_name_template_push_status)
        if user_name_template_suffix is not None:
            pulumi.set(__self__, "user_name_template_suffix", user_name_template_suffix)
        if user_name_template_type is not None:
            pulumi.set(__self__, "user_name_template_type", user_name_template_type)

    @_builtins.property
    @pulumi.getter
    def label(self) -> pulumi.Input[_builtins.str]:
        """
        The Application's display name.
        """
        return pulumi.get(self, "label")

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

    @_builtins.property
    @pulumi.getter(name="accessibilityErrorRedirectUrl")
    def accessibility_error_redirect_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Custom error page URL
        """
        return pulumi.get(self, "accessibility_error_redirect_url")

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

    @_builtins.property
    @pulumi.getter(name="accessibilityLoginRedirectUrl")
    def accessibility_login_redirect_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Custom login page URL
        """
        return pulumi.get(self, "accessibility_login_redirect_url")

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

    @_builtins.property
    @pulumi.getter(name="accessibilitySelfService")
    def accessibility_self_service(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Enable self service. Default is `false`
        """
        return pulumi.get(self, "accessibility_self_service")

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

    @_builtins.property
    @pulumi.getter(name="acsEndpoints")
    def acs_endpoints(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        An array of ACS endpoints. You can configure a maximum of 100 endpoints.
        """
        return pulumi.get(self, "acs_endpoints")

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

    @_builtins.property
    @pulumi.getter(name="acsEndpointsIndices")
    def acs_endpoints_indices(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['SamlAcsEndpointsIndexArgs']]]]:
        """
        ACS endpoints along with custom index as a set of maps called `acs_endpoints_indices` in JSON format.
        """
        return pulumi.get(self, "acs_endpoints_indices")

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

    @_builtins.property
    @pulumi.getter(name="adminNote")
    def admin_note(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Application notes for admins.
        """
        return pulumi.get(self, "admin_note")

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

    @_builtins.property
    @pulumi.getter(name="appLinksJson")
    def app_links_json(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Displays specific appLinks for the app. The value for each application link should be boolean.
        """
        return pulumi.get(self, "app_links_json")

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

    @_builtins.property
    @pulumi.getter(name="appSettingsJson")
    def app_settings_json(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Application settings in JSON format
        """
        return pulumi.get(self, "app_settings_json")

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

    @_builtins.property
    @pulumi.getter(name="assertionSigned")
    def assertion_signed(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the SAML assertion is digitally signed
        """
        return pulumi.get(self, "assertion_signed")

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

    @_builtins.property
    @pulumi.getter(name="attributeStatements")
    def attribute_statements(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['SamlAttributeStatementArgs']]]]:
        return pulumi.get(self, "attribute_statements")

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

    @_builtins.property
    @pulumi.getter
    def audience(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Audience Restriction
        """
        return pulumi.get(self, "audience")

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

    @_builtins.property
    @pulumi.getter(name="authenticationPolicy")
    def authentication_policy(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The ID of the associated `app_signon_policy`. If this property is removed from the application the `default` sign-on-policy will be associated with this application.y
        """
        return pulumi.get(self, "authentication_policy")

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

    @_builtins.property
    @pulumi.getter(name="authnContextClassRef")
    def authn_context_class_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Identifies the SAML authentication context class for the assertion’s authentication statement
        """
        return pulumi.get(self, "authn_context_class_ref")

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

    @_builtins.property
    @pulumi.getter(name="autoSubmitToolbar")
    def auto_submit_toolbar(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Display auto submit toolbar. Default is: `false`
        """
        return pulumi.get(self, "auto_submit_toolbar")

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

    @_builtins.property
    @pulumi.getter(name="defaultRelayState")
    def default_relay_state(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Identifies a specific application resource in an IDP initiated SSO scenario.
        """
        return pulumi.get(self, "default_relay_state")

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

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Identifies the location where the SAML response is intended to be sent inside of the SAML assertion
        """
        return pulumi.get(self, "destination")

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

    @_builtins.property
    @pulumi.getter(name="digestAlgorithm")
    def digest_algorithm(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Determines the digest algorithm used to digitally sign the SAML assertion and response
        """
        return pulumi.get(self, "digest_algorithm")

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

    @_builtins.property
    @pulumi.getter(name="enduserNote")
    def enduser_note(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Application notes for end users.
        """
        return pulumi.get(self, "enduser_note")

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

    @_builtins.property
    @pulumi.getter(name="hideIos")
    def hide_ios(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Do not display application icon on mobile app
        """
        return pulumi.get(self, "hide_ios")

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

    @_builtins.property
    @pulumi.getter(name="hideWeb")
    def hide_web(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Do not display application icon to users
        """
        return pulumi.get(self, "hide_web")

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

    @_builtins.property
    @pulumi.getter(name="honorForceAuthn")
    def honor_force_authn(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prompt user to re-authenticate if SP asks for it. Default is: `false`
        """
        return pulumi.get(self, "honor_force_authn")

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

    @_builtins.property
    @pulumi.getter(name="idpIssuer")
    def idp_issuer(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        SAML issuer ID
        """
        return pulumi.get(self, "idp_issuer")

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

    @_builtins.property
    @pulumi.getter(name="implicitAssignment")
    def implicit_assignment(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        *Early Access Property*. Enable Federation Broker Mode.
        """
        return pulumi.get(self, "implicit_assignment")

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

    @_builtins.property
    @pulumi.getter(name="inlineHookId")
    def inline_hook_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Saml Inline Hook setting
        """
        return pulumi.get(self, "inline_hook_id")

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

    @_builtins.property
    @pulumi.getter(name="keyName")
    def key_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Certificate name. This modulates the rotation of keys. New name == new key. Required to be set with `key_years_valid`
        """
        return pulumi.get(self, "key_name")

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

    @_builtins.property
    @pulumi.getter(name="keyYearsValid")
    def key_years_valid(self) -> Optional[pulumi.Input[_builtins.int]]:
        """
        Number of years the certificate is valid (2 - 10 years).
        """
        return pulumi.get(self, "key_years_valid")

    @key_years_valid.setter
    def key_years_valid(self, value: Optional[pulumi.Input[_builtins.int]]):
        pulumi.set(self, "key_years_valid", value)

    @_builtins.property
    @pulumi.getter
    def logo(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Local file path to the logo. The file must be in PNG, JPG, or GIF format, and less than 1 MB in size.
        """
        return pulumi.get(self, "logo")

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

    @_builtins.property
    @pulumi.getter(name="preconfiguredApp")
    def preconfigured_app(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of application from the Okta Integration Network. For instance 'slack'. If not included a custom app will be created.  If not provided the following arguments are required:
        'sso*url'
        'recipient'
        'destination'
        'audience'
        'subject*name*id*template'
        'subject*name*id*format'
        'signature*algorithm'
        'digest*algorithm'
        'authn*context*class*ref'
        """
        return pulumi.get(self, "preconfigured_app")

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

    @_builtins.property
    @pulumi.getter
    def recipient(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The location where the app may present the SAML assertion
        """
        return pulumi.get(self, "recipient")

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

    @_builtins.property
    @pulumi.getter(name="requestCompressed")
    def request_compressed(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Denotes whether the request is compressed or not.
        """
        return pulumi.get(self, "request_compressed")

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

    @_builtins.property
    @pulumi.getter(name="responseSigned")
    def response_signed(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the SAML auth response message is digitally signed
        """
        return pulumi.get(self, "response_signed")

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

    @_builtins.property
    @pulumi.getter(name="samlSignedRequestEnabled")
    def saml_signed_request_enabled(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        SAML Signed Request enabled
        """
        return pulumi.get(self, "saml_signed_request_enabled")

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

    @_builtins.property
    @pulumi.getter(name="samlVersion")
    def saml_version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        SAML version for the app's sign-on mode. Valid values are: `2.0` or `1.1`. Default is `2.0`
        """
        return pulumi.get(self, "saml_version")

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

    @_builtins.property
    @pulumi.getter(name="signatureAlgorithm")
    def signature_algorithm(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Signature algorithm used to digitally sign the assertion and response
        """
        return pulumi.get(self, "signature_algorithm")

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

    @_builtins.property
    @pulumi.getter(name="singleLogoutCertificate")
    def single_logout_certificate(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        x509 encoded certificate that the Service Provider uses to sign Single Logout requests. Note: should be provided without `-----BEGIN CERTIFICATE-----` and `-----END CERTIFICATE-----`, see [official documentation](https://developer.okta.com/docs/reference/api/apps/#service-provider-certificate).
        """
        return pulumi.get(self, "single_logout_certificate")

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

    @_builtins.property
    @pulumi.getter(name="singleLogoutIssuer")
    def single_logout_issuer(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The issuer of the Service Provider that generates the Single Logout request
        """
        return pulumi.get(self, "single_logout_issuer")

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

    @_builtins.property
    @pulumi.getter(name="singleLogoutUrl")
    def single_logout_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The location where the logout response is sent
        """
        return pulumi.get(self, "single_logout_url")

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

    @_builtins.property
    @pulumi.getter(name="spIssuer")
    def sp_issuer(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        SAML SP issuer ID
        """
        return pulumi.get(self, "sp_issuer")

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

    @_builtins.property
    @pulumi.getter(name="ssoUrl")
    def sso_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Single Sign On URL
        """
        return pulumi.get(self, "sso_url")

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

    @_builtins.property
    @pulumi.getter
    def status(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Status of application. By default, it is `ACTIVE`
        """
        return pulumi.get(self, "status")

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

    @_builtins.property
    @pulumi.getter(name="subjectNameIdFormat")
    def subject_name_id_format(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Identifies the SAML processing rules.
        """
        return pulumi.get(self, "subject_name_id_format")

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

    @_builtins.property
    @pulumi.getter(name="subjectNameIdTemplate")
    def subject_name_id_template(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Template for app user's username when a user is assigned to the app
        """
        return pulumi.get(self, "subject_name_id_template")

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

    @_builtins.property
    @pulumi.getter(name="userNameTemplate")
    def user_name_template(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Username template. Default: `${source.login}`
        """
        return pulumi.get(self, "user_name_template")

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

    @_builtins.property
    @pulumi.getter(name="userNameTemplatePushStatus")
    def user_name_template_push_status(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Push username on update. Valid values: `PUSH` and `DONT_PUSH`
        """
        return pulumi.get(self, "user_name_template_push_status")

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

    @_builtins.property
    @pulumi.getter(name="userNameTemplateSuffix")
    def user_name_template_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Username template suffix
        """
        return pulumi.get(self, "user_name_template_suffix")

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

    @_builtins.property
    @pulumi.getter(name="userNameTemplateType")
    def user_name_template_type(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Username template type. Default: `BUILT_IN`
        """
        return pulumi.get(self, "user_name_template_type")

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


@pulumi.input_type
class _SamlState:
    def __init__(__self__, *,
                 accessibility_error_redirect_url: Optional[pulumi.Input[_builtins.str]] = None,
                 accessibility_login_redirect_url: Optional[pulumi.Input[_builtins.str]] = None,
                 accessibility_self_service: Optional[pulumi.Input[_builtins.bool]] = None,
                 acs_endpoints: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 acs_endpoints_indices: Optional[pulumi.Input[Sequence[pulumi.Input['SamlAcsEndpointsIndexArgs']]]] = None,
                 admin_note: Optional[pulumi.Input[_builtins.str]] = None,
                 app_links_json: Optional[pulumi.Input[_builtins.str]] = None,
                 app_settings_json: Optional[pulumi.Input[_builtins.str]] = None,
                 assertion_signed: Optional[pulumi.Input[_builtins.bool]] = None,
                 attribute_statements: Optional[pulumi.Input[Sequence[pulumi.Input['SamlAttributeStatementArgs']]]] = None,
                 audience: Optional[pulumi.Input[_builtins.str]] = None,
                 authentication_policy: Optional[pulumi.Input[_builtins.str]] = None,
                 authn_context_class_ref: Optional[pulumi.Input[_builtins.str]] = None,
                 auto_submit_toolbar: Optional[pulumi.Input[_builtins.bool]] = None,
                 certificate: Optional[pulumi.Input[_builtins.str]] = None,
                 default_relay_state: Optional[pulumi.Input[_builtins.str]] = None,
                 destination: Optional[pulumi.Input[_builtins.str]] = None,
                 digest_algorithm: Optional[pulumi.Input[_builtins.str]] = None,
                 embed_url: Optional[pulumi.Input[_builtins.str]] = None,
                 enduser_note: Optional[pulumi.Input[_builtins.str]] = None,
                 entity_key: Optional[pulumi.Input[_builtins.str]] = None,
                 entity_url: Optional[pulumi.Input[_builtins.str]] = None,
                 features: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 hide_ios: Optional[pulumi.Input[_builtins.bool]] = None,
                 hide_web: Optional[pulumi.Input[_builtins.bool]] = None,
                 honor_force_authn: Optional[pulumi.Input[_builtins.bool]] = None,
                 http_post_binding: Optional[pulumi.Input[_builtins.str]] = None,
                 http_redirect_binding: Optional[pulumi.Input[_builtins.str]] = None,
                 idp_issuer: Optional[pulumi.Input[_builtins.str]] = None,
                 implicit_assignment: Optional[pulumi.Input[_builtins.bool]] = None,
                 inline_hook_id: Optional[pulumi.Input[_builtins.str]] = None,
                 key_id: Optional[pulumi.Input[_builtins.str]] = None,
                 key_name: Optional[pulumi.Input[_builtins.str]] = None,
                 key_years_valid: Optional[pulumi.Input[_builtins.int]] = None,
                 keys: Optional[pulumi.Input[Sequence[pulumi.Input['SamlKeyArgs']]]] = None,
                 label: Optional[pulumi.Input[_builtins.str]] = None,
                 logo: Optional[pulumi.Input[_builtins.str]] = None,
                 logo_url: Optional[pulumi.Input[_builtins.str]] = None,
                 metadata: Optional[pulumi.Input[_builtins.str]] = None,
                 metadata_url: Optional[pulumi.Input[_builtins.str]] = None,
                 name: Optional[pulumi.Input[_builtins.str]] = None,
                 preconfigured_app: Optional[pulumi.Input[_builtins.str]] = None,
                 recipient: Optional[pulumi.Input[_builtins.str]] = None,
                 request_compressed: Optional[pulumi.Input[_builtins.bool]] = None,
                 response_signed: Optional[pulumi.Input[_builtins.bool]] = None,
                 saml_signed_request_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
                 saml_version: Optional[pulumi.Input[_builtins.str]] = None,
                 sign_on_mode: Optional[pulumi.Input[_builtins.str]] = None,
                 signature_algorithm: Optional[pulumi.Input[_builtins.str]] = None,
                 single_logout_certificate: Optional[pulumi.Input[_builtins.str]] = None,
                 single_logout_issuer: Optional[pulumi.Input[_builtins.str]] = None,
                 single_logout_url: Optional[pulumi.Input[_builtins.str]] = None,
                 sp_issuer: Optional[pulumi.Input[_builtins.str]] = None,
                 sso_url: Optional[pulumi.Input[_builtins.str]] = None,
                 status: Optional[pulumi.Input[_builtins.str]] = None,
                 subject_name_id_format: Optional[pulumi.Input[_builtins.str]] = None,
                 subject_name_id_template: Optional[pulumi.Input[_builtins.str]] = None,
                 user_name_template: Optional[pulumi.Input[_builtins.str]] = None,
                 user_name_template_push_status: Optional[pulumi.Input[_builtins.str]] = None,
                 user_name_template_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 user_name_template_type: Optional[pulumi.Input[_builtins.str]] = None):
        """
        Input properties used for looking up and filtering Saml resources.
        :param pulumi.Input[_builtins.str] accessibility_error_redirect_url: Custom error page URL
        :param pulumi.Input[_builtins.str] accessibility_login_redirect_url: Custom login page URL
        :param pulumi.Input[_builtins.bool] accessibility_self_service: Enable self service. Default is `false`
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] acs_endpoints: An array of ACS endpoints. You can configure a maximum of 100 endpoints.
        :param pulumi.Input[Sequence[pulumi.Input['SamlAcsEndpointsIndexArgs']]] acs_endpoints_indices: ACS endpoints along with custom index as a set of maps called `acs_endpoints_indices` in JSON format.
        :param pulumi.Input[_builtins.str] admin_note: Application notes for admins.
        :param pulumi.Input[_builtins.str] app_links_json: Displays specific appLinks for the app. The value for each application link should be boolean.
        :param pulumi.Input[_builtins.str] app_settings_json: Application settings in JSON format
        :param pulumi.Input[_builtins.bool] assertion_signed: Determines whether the SAML assertion is digitally signed
        :param pulumi.Input[_builtins.str] audience: Audience Restriction
        :param pulumi.Input[_builtins.str] authentication_policy: The ID of the associated `app_signon_policy`. If this property is removed from the application the `default` sign-on-policy will be associated with this application.y
        :param pulumi.Input[_builtins.str] authn_context_class_ref: Identifies the SAML authentication context class for the assertion’s authentication statement
        :param pulumi.Input[_builtins.bool] auto_submit_toolbar: Display auto submit toolbar. Default is: `false`
        :param pulumi.Input[_builtins.str] certificate: cert from SAML XML metadata payload
        :param pulumi.Input[_builtins.str] default_relay_state: Identifies a specific application resource in an IDP initiated SSO scenario.
        :param pulumi.Input[_builtins.str] destination: Identifies the location where the SAML response is intended to be sent inside of the SAML assertion
        :param pulumi.Input[_builtins.str] digest_algorithm: Determines the digest algorithm used to digitally sign the SAML assertion and response
        :param pulumi.Input[_builtins.str] embed_url: The url that can be used to embed this application in other portals.
        :param pulumi.Input[_builtins.str] enduser_note: Application notes for end users.
        :param pulumi.Input[_builtins.str] entity_key: Entity ID, the ID portion of the entity_url
        :param pulumi.Input[_builtins.str] entity_url: Entity URL for instance http://www.okta.com/exk1fcia6d6EMsf331d8
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] features: features to enable
        :param pulumi.Input[_builtins.bool] hide_ios: Do not display application icon on mobile app
        :param pulumi.Input[_builtins.bool] hide_web: Do not display application icon to users
        :param pulumi.Input[_builtins.bool] honor_force_authn: Prompt user to re-authenticate if SP asks for it. Default is: `false`
        :param pulumi.Input[_builtins.str] http_post_binding: urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Post location from the SAML metadata.
        :param pulumi.Input[_builtins.str] http_redirect_binding: urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect location from the SAML metadata.
        :param pulumi.Input[_builtins.str] idp_issuer: SAML issuer ID
        :param pulumi.Input[_builtins.bool] implicit_assignment: *Early Access Property*. Enable Federation Broker Mode.
        :param pulumi.Input[_builtins.str] inline_hook_id: Saml Inline Hook setting
        :param pulumi.Input[_builtins.str] key_id: Certificate ID
        :param pulumi.Input[_builtins.str] key_name: Certificate name. This modulates the rotation of keys. New name == new key. Required to be set with `key_years_valid`
        :param pulumi.Input[_builtins.int] key_years_valid: Number of years the certificate is valid (2 - 10 years).
        :param pulumi.Input[Sequence[pulumi.Input['SamlKeyArgs']]] keys: Application keys
        :param pulumi.Input[_builtins.str] label: The Application's display name.
        :param pulumi.Input[_builtins.str] logo: Local file path to the logo. The file must be in PNG, JPG, or GIF format, and less than 1 MB in size.
        :param pulumi.Input[_builtins.str] logo_url: URL of the application's logo
        :param pulumi.Input[_builtins.str] metadata: SAML xml metadata payload
        :param pulumi.Input[_builtins.str] metadata_url: SAML xml metadata URL
        :param pulumi.Input[_builtins.str] name: Name of the app.
        :param pulumi.Input[_builtins.str] preconfigured_app: Name of application from the Okta Integration Network. For instance 'slack'. If not included a custom app will be created.  If not provided the following arguments are required:
               'sso*url'
               'recipient'
               'destination'
               'audience'
               'subject*name*id*template'
               'subject*name*id*format'
               'signature*algorithm'
               'digest*algorithm'
               'authn*context*class*ref'
        :param pulumi.Input[_builtins.str] recipient: The location where the app may present the SAML assertion
        :param pulumi.Input[_builtins.bool] request_compressed: Denotes whether the request is compressed or not.
        :param pulumi.Input[_builtins.bool] response_signed: Determines whether the SAML auth response message is digitally signed
        :param pulumi.Input[_builtins.bool] saml_signed_request_enabled: SAML Signed Request enabled
        :param pulumi.Input[_builtins.str] saml_version: SAML version for the app's sign-on mode. Valid values are: `2.0` or `1.1`. Default is `2.0`
        :param pulumi.Input[_builtins.str] sign_on_mode: Sign on mode of application.
        :param pulumi.Input[_builtins.str] signature_algorithm: Signature algorithm used to digitally sign the assertion and response
        :param pulumi.Input[_builtins.str] single_logout_certificate: x509 encoded certificate that the Service Provider uses to sign Single Logout requests. Note: should be provided without `-----BEGIN CERTIFICATE-----` and `-----END CERTIFICATE-----`, see [official documentation](https://developer.okta.com/docs/reference/api/apps/#service-provider-certificate).
        :param pulumi.Input[_builtins.str] single_logout_issuer: The issuer of the Service Provider that generates the Single Logout request
        :param pulumi.Input[_builtins.str] single_logout_url: The location where the logout response is sent
        :param pulumi.Input[_builtins.str] sp_issuer: SAML SP issuer ID
        :param pulumi.Input[_builtins.str] sso_url: Single Sign On URL
        :param pulumi.Input[_builtins.str] status: Status of application. By default, it is `ACTIVE`
        :param pulumi.Input[_builtins.str] subject_name_id_format: Identifies the SAML processing rules.
        :param pulumi.Input[_builtins.str] subject_name_id_template: Template for app user's username when a user is assigned to the app
        :param pulumi.Input[_builtins.str] user_name_template: Username template. Default: `${source.login}`
        :param pulumi.Input[_builtins.str] user_name_template_push_status: Push username on update. Valid values: `PUSH` and `DONT_PUSH`
        :param pulumi.Input[_builtins.str] user_name_template_suffix: Username template suffix
        :param pulumi.Input[_builtins.str] user_name_template_type: Username template type. Default: `BUILT_IN`
        """
        if accessibility_error_redirect_url is not None:
            pulumi.set(__self__, "accessibility_error_redirect_url", accessibility_error_redirect_url)
        if accessibility_login_redirect_url is not None:
            pulumi.set(__self__, "accessibility_login_redirect_url", accessibility_login_redirect_url)
        if accessibility_self_service is not None:
            pulumi.set(__self__, "accessibility_self_service", accessibility_self_service)
        if acs_endpoints is not None:
            pulumi.set(__self__, "acs_endpoints", acs_endpoints)
        if acs_endpoints_indices is not None:
            pulumi.set(__self__, "acs_endpoints_indices", acs_endpoints_indices)
        if admin_note is not None:
            pulumi.set(__self__, "admin_note", admin_note)
        if app_links_json is not None:
            pulumi.set(__self__, "app_links_json", app_links_json)
        if app_settings_json is not None:
            pulumi.set(__self__, "app_settings_json", app_settings_json)
        if assertion_signed is not None:
            pulumi.set(__self__, "assertion_signed", assertion_signed)
        if attribute_statements is not None:
            pulumi.set(__self__, "attribute_statements", attribute_statements)
        if audience is not None:
            pulumi.set(__self__, "audience", audience)
        if authentication_policy is not None:
            pulumi.set(__self__, "authentication_policy", authentication_policy)
        if authn_context_class_ref is not None:
            pulumi.set(__self__, "authn_context_class_ref", authn_context_class_ref)
        if auto_submit_toolbar is not None:
            pulumi.set(__self__, "auto_submit_toolbar", auto_submit_toolbar)
        if certificate is not None:
            pulumi.set(__self__, "certificate", certificate)
        if default_relay_state is not None:
            pulumi.set(__self__, "default_relay_state", default_relay_state)
        if destination is not None:
            pulumi.set(__self__, "destination", destination)
        if digest_algorithm is not None:
            pulumi.set(__self__, "digest_algorithm", digest_algorithm)
        if embed_url is not None:
            pulumi.set(__self__, "embed_url", embed_url)
        if enduser_note is not None:
            pulumi.set(__self__, "enduser_note", enduser_note)
        if entity_key is not None:
            pulumi.set(__self__, "entity_key", entity_key)
        if entity_url is not None:
            pulumi.set(__self__, "entity_url", entity_url)
        if features is not None:
            pulumi.set(__self__, "features", features)
        if hide_ios is not None:
            pulumi.set(__self__, "hide_ios", hide_ios)
        if hide_web is not None:
            pulumi.set(__self__, "hide_web", hide_web)
        if honor_force_authn is not None:
            pulumi.set(__self__, "honor_force_authn", honor_force_authn)
        if http_post_binding is not None:
            pulumi.set(__self__, "http_post_binding", http_post_binding)
        if http_redirect_binding is not None:
            pulumi.set(__self__, "http_redirect_binding", http_redirect_binding)
        if idp_issuer is not None:
            pulumi.set(__self__, "idp_issuer", idp_issuer)
        if implicit_assignment is not None:
            pulumi.set(__self__, "implicit_assignment", implicit_assignment)
        if inline_hook_id is not None:
            pulumi.set(__self__, "inline_hook_id", inline_hook_id)
        if key_id is not None:
            pulumi.set(__self__, "key_id", key_id)
        if key_name is not None:
            pulumi.set(__self__, "key_name", key_name)
        if key_years_valid is not None:
            pulumi.set(__self__, "key_years_valid", key_years_valid)
        if keys is not None:
            pulumi.set(__self__, "keys", keys)
        if label is not None:
            pulumi.set(__self__, "label", label)
        if logo is not None:
            pulumi.set(__self__, "logo", logo)
        if logo_url is not None:
            pulumi.set(__self__, "logo_url", logo_url)
        if metadata is not None:
            pulumi.set(__self__, "metadata", metadata)
        if metadata_url is not None:
            pulumi.set(__self__, "metadata_url", metadata_url)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if preconfigured_app is not None:
            pulumi.set(__self__, "preconfigured_app", preconfigured_app)
        if recipient is not None:
            pulumi.set(__self__, "recipient", recipient)
        if request_compressed is not None:
            pulumi.set(__self__, "request_compressed", request_compressed)
        if response_signed is not None:
            pulumi.set(__self__, "response_signed", response_signed)
        if saml_signed_request_enabled is not None:
            pulumi.set(__self__, "saml_signed_request_enabled", saml_signed_request_enabled)
        if saml_version is not None:
            pulumi.set(__self__, "saml_version", saml_version)
        if sign_on_mode is not None:
            pulumi.set(__self__, "sign_on_mode", sign_on_mode)
        if signature_algorithm is not None:
            pulumi.set(__self__, "signature_algorithm", signature_algorithm)
        if single_logout_certificate is not None:
            pulumi.set(__self__, "single_logout_certificate", single_logout_certificate)
        if single_logout_issuer is not None:
            pulumi.set(__self__, "single_logout_issuer", single_logout_issuer)
        if single_logout_url is not None:
            pulumi.set(__self__, "single_logout_url", single_logout_url)
        if sp_issuer is not None:
            pulumi.set(__self__, "sp_issuer", sp_issuer)
        if sso_url is not None:
            pulumi.set(__self__, "sso_url", sso_url)
        if status is not None:
            pulumi.set(__self__, "status", status)
        if subject_name_id_format is not None:
            pulumi.set(__self__, "subject_name_id_format", subject_name_id_format)
        if subject_name_id_template is not None:
            pulumi.set(__self__, "subject_name_id_template", subject_name_id_template)
        if user_name_template is not None:
            pulumi.set(__self__, "user_name_template", user_name_template)
        if user_name_template_push_status is not None:
            pulumi.set(__self__, "user_name_template_push_status", user_name_template_push_status)
        if user_name_template_suffix is not None:
            pulumi.set(__self__, "user_name_template_suffix", user_name_template_suffix)
        if user_name_template_type is not None:
            pulumi.set(__self__, "user_name_template_type", user_name_template_type)

    @_builtins.property
    @pulumi.getter(name="accessibilityErrorRedirectUrl")
    def accessibility_error_redirect_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Custom error page URL
        """
        return pulumi.get(self, "accessibility_error_redirect_url")

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

    @_builtins.property
    @pulumi.getter(name="accessibilityLoginRedirectUrl")
    def accessibility_login_redirect_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Custom login page URL
        """
        return pulumi.get(self, "accessibility_login_redirect_url")

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

    @_builtins.property
    @pulumi.getter(name="accessibilitySelfService")
    def accessibility_self_service(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Enable self service. Default is `false`
        """
        return pulumi.get(self, "accessibility_self_service")

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

    @_builtins.property
    @pulumi.getter(name="acsEndpoints")
    def acs_endpoints(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        An array of ACS endpoints. You can configure a maximum of 100 endpoints.
        """
        return pulumi.get(self, "acs_endpoints")

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

    @_builtins.property
    @pulumi.getter(name="acsEndpointsIndices")
    def acs_endpoints_indices(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['SamlAcsEndpointsIndexArgs']]]]:
        """
        ACS endpoints along with custom index as a set of maps called `acs_endpoints_indices` in JSON format.
        """
        return pulumi.get(self, "acs_endpoints_indices")

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

    @_builtins.property
    @pulumi.getter(name="adminNote")
    def admin_note(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Application notes for admins.
        """
        return pulumi.get(self, "admin_note")

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

    @_builtins.property
    @pulumi.getter(name="appLinksJson")
    def app_links_json(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Displays specific appLinks for the app. The value for each application link should be boolean.
        """
        return pulumi.get(self, "app_links_json")

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

    @_builtins.property
    @pulumi.getter(name="appSettingsJson")
    def app_settings_json(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Application settings in JSON format
        """
        return pulumi.get(self, "app_settings_json")

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

    @_builtins.property
    @pulumi.getter(name="assertionSigned")
    def assertion_signed(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the SAML assertion is digitally signed
        """
        return pulumi.get(self, "assertion_signed")

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

    @_builtins.property
    @pulumi.getter(name="attributeStatements")
    def attribute_statements(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['SamlAttributeStatementArgs']]]]:
        return pulumi.get(self, "attribute_statements")

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

    @_builtins.property
    @pulumi.getter
    def audience(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Audience Restriction
        """
        return pulumi.get(self, "audience")

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

    @_builtins.property
    @pulumi.getter(name="authenticationPolicy")
    def authentication_policy(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The ID of the associated `app_signon_policy`. If this property is removed from the application the `default` sign-on-policy will be associated with this application.y
        """
        return pulumi.get(self, "authentication_policy")

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

    @_builtins.property
    @pulumi.getter(name="authnContextClassRef")
    def authn_context_class_ref(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Identifies the SAML authentication context class for the assertion’s authentication statement
        """
        return pulumi.get(self, "authn_context_class_ref")

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

    @_builtins.property
    @pulumi.getter(name="autoSubmitToolbar")
    def auto_submit_toolbar(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Display auto submit toolbar. Default is: `false`
        """
        return pulumi.get(self, "auto_submit_toolbar")

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

    @_builtins.property
    @pulumi.getter
    def certificate(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        cert from SAML XML metadata payload
        """
        return pulumi.get(self, "certificate")

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

    @_builtins.property
    @pulumi.getter(name="defaultRelayState")
    def default_relay_state(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Identifies a specific application resource in an IDP initiated SSO scenario.
        """
        return pulumi.get(self, "default_relay_state")

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

    @_builtins.property
    @pulumi.getter
    def destination(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Identifies the location where the SAML response is intended to be sent inside of the SAML assertion
        """
        return pulumi.get(self, "destination")

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

    @_builtins.property
    @pulumi.getter(name="digestAlgorithm")
    def digest_algorithm(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Determines the digest algorithm used to digitally sign the SAML assertion and response
        """
        return pulumi.get(self, "digest_algorithm")

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

    @_builtins.property
    @pulumi.getter(name="embedUrl")
    def embed_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The url that can be used to embed this application in other portals.
        """
        return pulumi.get(self, "embed_url")

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

    @_builtins.property
    @pulumi.getter(name="enduserNote")
    def enduser_note(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Application notes for end users.
        """
        return pulumi.get(self, "enduser_note")

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

    @_builtins.property
    @pulumi.getter(name="entityKey")
    def entity_key(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Entity ID, the ID portion of the entity_url
        """
        return pulumi.get(self, "entity_key")

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

    @_builtins.property
    @pulumi.getter(name="entityUrl")
    def entity_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Entity URL for instance http://www.okta.com/exk1fcia6d6EMsf331d8
        """
        return pulumi.get(self, "entity_url")

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

    @_builtins.property
    @pulumi.getter
    def features(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
        """
        features to enable
        """
        return pulumi.get(self, "features")

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

    @_builtins.property
    @pulumi.getter(name="hideIos")
    def hide_ios(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Do not display application icon on mobile app
        """
        return pulumi.get(self, "hide_ios")

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

    @_builtins.property
    @pulumi.getter(name="hideWeb")
    def hide_web(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Do not display application icon to users
        """
        return pulumi.get(self, "hide_web")

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

    @_builtins.property
    @pulumi.getter(name="honorForceAuthn")
    def honor_force_authn(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Prompt user to re-authenticate if SP asks for it. Default is: `false`
        """
        return pulumi.get(self, "honor_force_authn")

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

    @_builtins.property
    @pulumi.getter(name="httpPostBinding")
    def http_post_binding(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Post location from the SAML metadata.
        """
        return pulumi.get(self, "http_post_binding")

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

    @_builtins.property
    @pulumi.getter(name="httpRedirectBinding")
    def http_redirect_binding(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect location from the SAML metadata.
        """
        return pulumi.get(self, "http_redirect_binding")

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

    @_builtins.property
    @pulumi.getter(name="idpIssuer")
    def idp_issuer(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        SAML issuer ID
        """
        return pulumi.get(self, "idp_issuer")

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

    @_builtins.property
    @pulumi.getter(name="implicitAssignment")
    def implicit_assignment(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        *Early Access Property*. Enable Federation Broker Mode.
        """
        return pulumi.get(self, "implicit_assignment")

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

    @_builtins.property
    @pulumi.getter(name="inlineHookId")
    def inline_hook_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Saml Inline Hook setting
        """
        return pulumi.get(self, "inline_hook_id")

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

    @_builtins.property
    @pulumi.getter(name="keyId")
    def key_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Certificate ID
        """
        return pulumi.get(self, "key_id")

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

    @_builtins.property
    @pulumi.getter(name="keyName")
    def key_name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Certificate name. This modulates the rotation of keys. New name == new key. Required to be set with `key_years_valid`
        """
        return pulumi.get(self, "key_name")

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

    @_builtins.property
    @pulumi.getter(name="keyYearsValid")
    def key_years_valid(self) -> Optional[pulumi.Input[_builtins.int]]:
        """
        Number of years the certificate is valid (2 - 10 years).
        """
        return pulumi.get(self, "key_years_valid")

    @key_years_valid.setter
    def key_years_valid(self, value: Optional[pulumi.Input[_builtins.int]]):
        pulumi.set(self, "key_years_valid", value)

    @_builtins.property
    @pulumi.getter
    def keys(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['SamlKeyArgs']]]]:
        """
        Application keys
        """
        return pulumi.get(self, "keys")

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

    @_builtins.property
    @pulumi.getter
    def label(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The Application's display name.
        """
        return pulumi.get(self, "label")

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

    @_builtins.property
    @pulumi.getter
    def logo(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Local file path to the logo. The file must be in PNG, JPG, or GIF format, and less than 1 MB in size.
        """
        return pulumi.get(self, "logo")

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

    @_builtins.property
    @pulumi.getter(name="logoUrl")
    def logo_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        URL of the application's logo
        """
        return pulumi.get(self, "logo_url")

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

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        SAML xml metadata payload
        """
        return pulumi.get(self, "metadata")

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

    @_builtins.property
    @pulumi.getter(name="metadataUrl")
    def metadata_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        SAML xml metadata URL
        """
        return pulumi.get(self, "metadata_url")

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

    @_builtins.property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of the app.
        """
        return pulumi.get(self, "name")

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

    @_builtins.property
    @pulumi.getter(name="preconfiguredApp")
    def preconfigured_app(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Name of application from the Okta Integration Network. For instance 'slack'. If not included a custom app will be created.  If not provided the following arguments are required:
        'sso*url'
        'recipient'
        'destination'
        'audience'
        'subject*name*id*template'
        'subject*name*id*format'
        'signature*algorithm'
        'digest*algorithm'
        'authn*context*class*ref'
        """
        return pulumi.get(self, "preconfigured_app")

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

    @_builtins.property
    @pulumi.getter
    def recipient(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The location where the app may present the SAML assertion
        """
        return pulumi.get(self, "recipient")

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

    @_builtins.property
    @pulumi.getter(name="requestCompressed")
    def request_compressed(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Denotes whether the request is compressed or not.
        """
        return pulumi.get(self, "request_compressed")

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

    @_builtins.property
    @pulumi.getter(name="responseSigned")
    def response_signed(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        Determines whether the SAML auth response message is digitally signed
        """
        return pulumi.get(self, "response_signed")

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

    @_builtins.property
    @pulumi.getter(name="samlSignedRequestEnabled")
    def saml_signed_request_enabled(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        SAML Signed Request enabled
        """
        return pulumi.get(self, "saml_signed_request_enabled")

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

    @_builtins.property
    @pulumi.getter(name="samlVersion")
    def saml_version(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        SAML version for the app's sign-on mode. Valid values are: `2.0` or `1.1`. Default is `2.0`
        """
        return pulumi.get(self, "saml_version")

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

    @_builtins.property
    @pulumi.getter(name="signOnMode")
    def sign_on_mode(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Sign on mode of application.
        """
        return pulumi.get(self, "sign_on_mode")

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

    @_builtins.property
    @pulumi.getter(name="signatureAlgorithm")
    def signature_algorithm(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Signature algorithm used to digitally sign the assertion and response
        """
        return pulumi.get(self, "signature_algorithm")

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

    @_builtins.property
    @pulumi.getter(name="singleLogoutCertificate")
    def single_logout_certificate(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        x509 encoded certificate that the Service Provider uses to sign Single Logout requests. Note: should be provided without `-----BEGIN CERTIFICATE-----` and `-----END CERTIFICATE-----`, see [official documentation](https://developer.okta.com/docs/reference/api/apps/#service-provider-certificate).
        """
        return pulumi.get(self, "single_logout_certificate")

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

    @_builtins.property
    @pulumi.getter(name="singleLogoutIssuer")
    def single_logout_issuer(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The issuer of the Service Provider that generates the Single Logout request
        """
        return pulumi.get(self, "single_logout_issuer")

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

    @_builtins.property
    @pulumi.getter(name="singleLogoutUrl")
    def single_logout_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The location where the logout response is sent
        """
        return pulumi.get(self, "single_logout_url")

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

    @_builtins.property
    @pulumi.getter(name="spIssuer")
    def sp_issuer(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        SAML SP issuer ID
        """
        return pulumi.get(self, "sp_issuer")

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

    @_builtins.property
    @pulumi.getter(name="ssoUrl")
    def sso_url(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Single Sign On URL
        """
        return pulumi.get(self, "sso_url")

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

    @_builtins.property
    @pulumi.getter
    def status(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Status of application. By default, it is `ACTIVE`
        """
        return pulumi.get(self, "status")

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

    @_builtins.property
    @pulumi.getter(name="subjectNameIdFormat")
    def subject_name_id_format(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Identifies the SAML processing rules.
        """
        return pulumi.get(self, "subject_name_id_format")

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

    @_builtins.property
    @pulumi.getter(name="subjectNameIdTemplate")
    def subject_name_id_template(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Template for app user's username when a user is assigned to the app
        """
        return pulumi.get(self, "subject_name_id_template")

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

    @_builtins.property
    @pulumi.getter(name="userNameTemplate")
    def user_name_template(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Username template. Default: `${source.login}`
        """
        return pulumi.get(self, "user_name_template")

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

    @_builtins.property
    @pulumi.getter(name="userNameTemplatePushStatus")
    def user_name_template_push_status(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Push username on update. Valid values: `PUSH` and `DONT_PUSH`
        """
        return pulumi.get(self, "user_name_template_push_status")

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

    @_builtins.property
    @pulumi.getter(name="userNameTemplateSuffix")
    def user_name_template_suffix(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Username template suffix
        """
        return pulumi.get(self, "user_name_template_suffix")

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

    @_builtins.property
    @pulumi.getter(name="userNameTemplateType")
    def user_name_template_type(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Username template type. Default: `BUILT_IN`
        """
        return pulumi.get(self, "user_name_template_type")

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


@pulumi.type_token("okta:app/saml:Saml")
class Saml(pulumi.CustomResource):
    @overload
    def __init__(__self__,
                 resource_name: str,
                 opts: Optional[pulumi.ResourceOptions] = None,
                 accessibility_error_redirect_url: Optional[pulumi.Input[_builtins.str]] = None,
                 accessibility_login_redirect_url: Optional[pulumi.Input[_builtins.str]] = None,
                 accessibility_self_service: Optional[pulumi.Input[_builtins.bool]] = None,
                 acs_endpoints: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 acs_endpoints_indices: Optional[pulumi.Input[Sequence[pulumi.Input[Union['SamlAcsEndpointsIndexArgs', 'SamlAcsEndpointsIndexArgsDict']]]]] = None,
                 admin_note: Optional[pulumi.Input[_builtins.str]] = None,
                 app_links_json: Optional[pulumi.Input[_builtins.str]] = None,
                 app_settings_json: Optional[pulumi.Input[_builtins.str]] = None,
                 assertion_signed: Optional[pulumi.Input[_builtins.bool]] = None,
                 attribute_statements: Optional[pulumi.Input[Sequence[pulumi.Input[Union['SamlAttributeStatementArgs', 'SamlAttributeStatementArgsDict']]]]] = None,
                 audience: Optional[pulumi.Input[_builtins.str]] = None,
                 authentication_policy: Optional[pulumi.Input[_builtins.str]] = None,
                 authn_context_class_ref: Optional[pulumi.Input[_builtins.str]] = None,
                 auto_submit_toolbar: Optional[pulumi.Input[_builtins.bool]] = None,
                 default_relay_state: Optional[pulumi.Input[_builtins.str]] = None,
                 destination: Optional[pulumi.Input[_builtins.str]] = None,
                 digest_algorithm: Optional[pulumi.Input[_builtins.str]] = None,
                 enduser_note: Optional[pulumi.Input[_builtins.str]] = None,
                 hide_ios: Optional[pulumi.Input[_builtins.bool]] = None,
                 hide_web: Optional[pulumi.Input[_builtins.bool]] = None,
                 honor_force_authn: Optional[pulumi.Input[_builtins.bool]] = None,
                 idp_issuer: Optional[pulumi.Input[_builtins.str]] = None,
                 implicit_assignment: Optional[pulumi.Input[_builtins.bool]] = None,
                 inline_hook_id: Optional[pulumi.Input[_builtins.str]] = None,
                 key_name: Optional[pulumi.Input[_builtins.str]] = None,
                 key_years_valid: Optional[pulumi.Input[_builtins.int]] = None,
                 label: Optional[pulumi.Input[_builtins.str]] = None,
                 logo: Optional[pulumi.Input[_builtins.str]] = None,
                 preconfigured_app: Optional[pulumi.Input[_builtins.str]] = None,
                 recipient: Optional[pulumi.Input[_builtins.str]] = None,
                 request_compressed: Optional[pulumi.Input[_builtins.bool]] = None,
                 response_signed: Optional[pulumi.Input[_builtins.bool]] = None,
                 saml_signed_request_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
                 saml_version: Optional[pulumi.Input[_builtins.str]] = None,
                 signature_algorithm: Optional[pulumi.Input[_builtins.str]] = None,
                 single_logout_certificate: Optional[pulumi.Input[_builtins.str]] = None,
                 single_logout_issuer: Optional[pulumi.Input[_builtins.str]] = None,
                 single_logout_url: Optional[pulumi.Input[_builtins.str]] = None,
                 sp_issuer: Optional[pulumi.Input[_builtins.str]] = None,
                 sso_url: Optional[pulumi.Input[_builtins.str]] = None,
                 status: Optional[pulumi.Input[_builtins.str]] = None,
                 subject_name_id_format: Optional[pulumi.Input[_builtins.str]] = None,
                 subject_name_id_template: Optional[pulumi.Input[_builtins.str]] = None,
                 user_name_template: Optional[pulumi.Input[_builtins.str]] = None,
                 user_name_template_push_status: Optional[pulumi.Input[_builtins.str]] = None,
                 user_name_template_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 user_name_template_type: Optional[pulumi.Input[_builtins.str]] = None,
                 __props__=None):
        """
        This resource allows you to create and configure a SAML Application.
        > During an apply if there is change in 'status' the app will first be
        activated or deactivated in accordance with the 'status' change. Then, all
        other arguments that changed will be applied.

        > If you receive the error 'You do not have permission to access the feature
        you are requesting' contact support and
        request feature flag 'ADVANCED_SSO' be applied to your org.

        ## Import

        ```sh
        $ pulumi import okta:app/saml:Saml example <app_id>
        ```

        :param str resource_name: The name of the resource.
        :param pulumi.ResourceOptions opts: Options for the resource.
        :param pulumi.Input[_builtins.str] accessibility_error_redirect_url: Custom error page URL
        :param pulumi.Input[_builtins.str] accessibility_login_redirect_url: Custom login page URL
        :param pulumi.Input[_builtins.bool] accessibility_self_service: Enable self service. Default is `false`
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] acs_endpoints: An array of ACS endpoints. You can configure a maximum of 100 endpoints.
        :param pulumi.Input[Sequence[pulumi.Input[Union['SamlAcsEndpointsIndexArgs', 'SamlAcsEndpointsIndexArgsDict']]]] acs_endpoints_indices: ACS endpoints along with custom index as a set of maps called `acs_endpoints_indices` in JSON format.
        :param pulumi.Input[_builtins.str] admin_note: Application notes for admins.
        :param pulumi.Input[_builtins.str] app_links_json: Displays specific appLinks for the app. The value for each application link should be boolean.
        :param pulumi.Input[_builtins.str] app_settings_json: Application settings in JSON format
        :param pulumi.Input[_builtins.bool] assertion_signed: Determines whether the SAML assertion is digitally signed
        :param pulumi.Input[_builtins.str] audience: Audience Restriction
        :param pulumi.Input[_builtins.str] authentication_policy: The ID of the associated `app_signon_policy`. If this property is removed from the application the `default` sign-on-policy will be associated with this application.y
        :param pulumi.Input[_builtins.str] authn_context_class_ref: Identifies the SAML authentication context class for the assertion’s authentication statement
        :param pulumi.Input[_builtins.bool] auto_submit_toolbar: Display auto submit toolbar. Default is: `false`
        :param pulumi.Input[_builtins.str] default_relay_state: Identifies a specific application resource in an IDP initiated SSO scenario.
        :param pulumi.Input[_builtins.str] destination: Identifies the location where the SAML response is intended to be sent inside of the SAML assertion
        :param pulumi.Input[_builtins.str] digest_algorithm: Determines the digest algorithm used to digitally sign the SAML assertion and response
        :param pulumi.Input[_builtins.str] enduser_note: Application notes for end users.
        :param pulumi.Input[_builtins.bool] hide_ios: Do not display application icon on mobile app
        :param pulumi.Input[_builtins.bool] hide_web: Do not display application icon to users
        :param pulumi.Input[_builtins.bool] honor_force_authn: Prompt user to re-authenticate if SP asks for it. Default is: `false`
        :param pulumi.Input[_builtins.str] idp_issuer: SAML issuer ID
        :param pulumi.Input[_builtins.bool] implicit_assignment: *Early Access Property*. Enable Federation Broker Mode.
        :param pulumi.Input[_builtins.str] inline_hook_id: Saml Inline Hook setting
        :param pulumi.Input[_builtins.str] key_name: Certificate name. This modulates the rotation of keys. New name == new key. Required to be set with `key_years_valid`
        :param pulumi.Input[_builtins.int] key_years_valid: Number of years the certificate is valid (2 - 10 years).
        :param pulumi.Input[_builtins.str] label: The Application's display name.
        :param pulumi.Input[_builtins.str] logo: Local file path to the logo. The file must be in PNG, JPG, or GIF format, and less than 1 MB in size.
        :param pulumi.Input[_builtins.str] preconfigured_app: Name of application from the Okta Integration Network. For instance 'slack'. If not included a custom app will be created.  If not provided the following arguments are required:
               'sso*url'
               'recipient'
               'destination'
               'audience'
               'subject*name*id*template'
               'subject*name*id*format'
               'signature*algorithm'
               'digest*algorithm'
               'authn*context*class*ref'
        :param pulumi.Input[_builtins.str] recipient: The location where the app may present the SAML assertion
        :param pulumi.Input[_builtins.bool] request_compressed: Denotes whether the request is compressed or not.
        :param pulumi.Input[_builtins.bool] response_signed: Determines whether the SAML auth response message is digitally signed
        :param pulumi.Input[_builtins.bool] saml_signed_request_enabled: SAML Signed Request enabled
        :param pulumi.Input[_builtins.str] saml_version: SAML version for the app's sign-on mode. Valid values are: `2.0` or `1.1`. Default is `2.0`
        :param pulumi.Input[_builtins.str] signature_algorithm: Signature algorithm used to digitally sign the assertion and response
        :param pulumi.Input[_builtins.str] single_logout_certificate: x509 encoded certificate that the Service Provider uses to sign Single Logout requests. Note: should be provided without `-----BEGIN CERTIFICATE-----` and `-----END CERTIFICATE-----`, see [official documentation](https://developer.okta.com/docs/reference/api/apps/#service-provider-certificate).
        :param pulumi.Input[_builtins.str] single_logout_issuer: The issuer of the Service Provider that generates the Single Logout request
        :param pulumi.Input[_builtins.str] single_logout_url: The location where the logout response is sent
        :param pulumi.Input[_builtins.str] sp_issuer: SAML SP issuer ID
        :param pulumi.Input[_builtins.str] sso_url: Single Sign On URL
        :param pulumi.Input[_builtins.str] status: Status of application. By default, it is `ACTIVE`
        :param pulumi.Input[_builtins.str] subject_name_id_format: Identifies the SAML processing rules.
        :param pulumi.Input[_builtins.str] subject_name_id_template: Template for app user's username when a user is assigned to the app
        :param pulumi.Input[_builtins.str] user_name_template: Username template. Default: `${source.login}`
        :param pulumi.Input[_builtins.str] user_name_template_push_status: Push username on update. Valid values: `PUSH` and `DONT_PUSH`
        :param pulumi.Input[_builtins.str] user_name_template_suffix: Username template suffix
        :param pulumi.Input[_builtins.str] user_name_template_type: Username template type. Default: `BUILT_IN`
        """
        ...
    @overload
    def __init__(__self__,
                 resource_name: str,
                 args: SamlArgs,
                 opts: Optional[pulumi.ResourceOptions] = None):
        """
        This resource allows you to create and configure a SAML Application.
        > During an apply if there is change in 'status' the app will first be
        activated or deactivated in accordance with the 'status' change. Then, all
        other arguments that changed will be applied.

        > If you receive the error 'You do not have permission to access the feature
        you are requesting' contact support and
        request feature flag 'ADVANCED_SSO' be applied to your org.

        ## Import

        ```sh
        $ pulumi import okta:app/saml:Saml example <app_id>
        ```

        :param str resource_name: The name of the resource.
        :param SamlArgs 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(SamlArgs, 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,
                 accessibility_error_redirect_url: Optional[pulumi.Input[_builtins.str]] = None,
                 accessibility_login_redirect_url: Optional[pulumi.Input[_builtins.str]] = None,
                 accessibility_self_service: Optional[pulumi.Input[_builtins.bool]] = None,
                 acs_endpoints: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
                 acs_endpoints_indices: Optional[pulumi.Input[Sequence[pulumi.Input[Union['SamlAcsEndpointsIndexArgs', 'SamlAcsEndpointsIndexArgsDict']]]]] = None,
                 admin_note: Optional[pulumi.Input[_builtins.str]] = None,
                 app_links_json: Optional[pulumi.Input[_builtins.str]] = None,
                 app_settings_json: Optional[pulumi.Input[_builtins.str]] = None,
                 assertion_signed: Optional[pulumi.Input[_builtins.bool]] = None,
                 attribute_statements: Optional[pulumi.Input[Sequence[pulumi.Input[Union['SamlAttributeStatementArgs', 'SamlAttributeStatementArgsDict']]]]] = None,
                 audience: Optional[pulumi.Input[_builtins.str]] = None,
                 authentication_policy: Optional[pulumi.Input[_builtins.str]] = None,
                 authn_context_class_ref: Optional[pulumi.Input[_builtins.str]] = None,
                 auto_submit_toolbar: Optional[pulumi.Input[_builtins.bool]] = None,
                 default_relay_state: Optional[pulumi.Input[_builtins.str]] = None,
                 destination: Optional[pulumi.Input[_builtins.str]] = None,
                 digest_algorithm: Optional[pulumi.Input[_builtins.str]] = None,
                 enduser_note: Optional[pulumi.Input[_builtins.str]] = None,
                 hide_ios: Optional[pulumi.Input[_builtins.bool]] = None,
                 hide_web: Optional[pulumi.Input[_builtins.bool]] = None,
                 honor_force_authn: Optional[pulumi.Input[_builtins.bool]] = None,
                 idp_issuer: Optional[pulumi.Input[_builtins.str]] = None,
                 implicit_assignment: Optional[pulumi.Input[_builtins.bool]] = None,
                 inline_hook_id: Optional[pulumi.Input[_builtins.str]] = None,
                 key_name: Optional[pulumi.Input[_builtins.str]] = None,
                 key_years_valid: Optional[pulumi.Input[_builtins.int]] = None,
                 label: Optional[pulumi.Input[_builtins.str]] = None,
                 logo: Optional[pulumi.Input[_builtins.str]] = None,
                 preconfigured_app: Optional[pulumi.Input[_builtins.str]] = None,
                 recipient: Optional[pulumi.Input[_builtins.str]] = None,
                 request_compressed: Optional[pulumi.Input[_builtins.bool]] = None,
                 response_signed: Optional[pulumi.Input[_builtins.bool]] = None,
                 saml_signed_request_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
                 saml_version: Optional[pulumi.Input[_builtins.str]] = None,
                 signature_algorithm: Optional[pulumi.Input[_builtins.str]] = None,
                 single_logout_certificate: Optional[pulumi.Input[_builtins.str]] = None,
                 single_logout_issuer: Optional[pulumi.Input[_builtins.str]] = None,
                 single_logout_url: Optional[pulumi.Input[_builtins.str]] = None,
                 sp_issuer: Optional[pulumi.Input[_builtins.str]] = None,
                 sso_url: Optional[pulumi.Input[_builtins.str]] = None,
                 status: Optional[pulumi.Input[_builtins.str]] = None,
                 subject_name_id_format: Optional[pulumi.Input[_builtins.str]] = None,
                 subject_name_id_template: Optional[pulumi.Input[_builtins.str]] = None,
                 user_name_template: Optional[pulumi.Input[_builtins.str]] = None,
                 user_name_template_push_status: Optional[pulumi.Input[_builtins.str]] = None,
                 user_name_template_suffix: Optional[pulumi.Input[_builtins.str]] = None,
                 user_name_template_type: Optional[pulumi.Input[_builtins.str]] = 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__ = SamlArgs.__new__(SamlArgs)

            __props__.__dict__["accessibility_error_redirect_url"] = accessibility_error_redirect_url
            __props__.__dict__["accessibility_login_redirect_url"] = accessibility_login_redirect_url
            __props__.__dict__["accessibility_self_service"] = accessibility_self_service
            __props__.__dict__["acs_endpoints"] = acs_endpoints
            __props__.__dict__["acs_endpoints_indices"] = acs_endpoints_indices
            __props__.__dict__["admin_note"] = admin_note
            __props__.__dict__["app_links_json"] = app_links_json
            __props__.__dict__["app_settings_json"] = app_settings_json
            __props__.__dict__["assertion_signed"] = assertion_signed
            __props__.__dict__["attribute_statements"] = attribute_statements
            __props__.__dict__["audience"] = audience
            __props__.__dict__["authentication_policy"] = authentication_policy
            __props__.__dict__["authn_context_class_ref"] = authn_context_class_ref
            __props__.__dict__["auto_submit_toolbar"] = auto_submit_toolbar
            __props__.__dict__["default_relay_state"] = default_relay_state
            __props__.__dict__["destination"] = destination
            __props__.__dict__["digest_algorithm"] = digest_algorithm
            __props__.__dict__["enduser_note"] = enduser_note
            __props__.__dict__["hide_ios"] = hide_ios
            __props__.__dict__["hide_web"] = hide_web
            __props__.__dict__["honor_force_authn"] = honor_force_authn
            __props__.__dict__["idp_issuer"] = idp_issuer
            __props__.__dict__["implicit_assignment"] = implicit_assignment
            __props__.__dict__["inline_hook_id"] = inline_hook_id
            __props__.__dict__["key_name"] = key_name
            __props__.__dict__["key_years_valid"] = key_years_valid
            if label is None and not opts.urn:
                raise TypeError("Missing required property 'label'")
            __props__.__dict__["label"] = label
            __props__.__dict__["logo"] = logo
            __props__.__dict__["preconfigured_app"] = preconfigured_app
            __props__.__dict__["recipient"] = recipient
            __props__.__dict__["request_compressed"] = request_compressed
            __props__.__dict__["response_signed"] = response_signed
            __props__.__dict__["saml_signed_request_enabled"] = saml_signed_request_enabled
            __props__.__dict__["saml_version"] = saml_version
            __props__.__dict__["signature_algorithm"] = signature_algorithm
            __props__.__dict__["single_logout_certificate"] = single_logout_certificate
            __props__.__dict__["single_logout_issuer"] = single_logout_issuer
            __props__.__dict__["single_logout_url"] = single_logout_url
            __props__.__dict__["sp_issuer"] = sp_issuer
            __props__.__dict__["sso_url"] = sso_url
            __props__.__dict__["status"] = status
            __props__.__dict__["subject_name_id_format"] = subject_name_id_format
            __props__.__dict__["subject_name_id_template"] = subject_name_id_template
            __props__.__dict__["user_name_template"] = user_name_template
            __props__.__dict__["user_name_template_push_status"] = user_name_template_push_status
            __props__.__dict__["user_name_template_suffix"] = user_name_template_suffix
            __props__.__dict__["user_name_template_type"] = user_name_template_type
            __props__.__dict__["certificate"] = None
            __props__.__dict__["embed_url"] = None
            __props__.__dict__["entity_key"] = None
            __props__.__dict__["entity_url"] = None
            __props__.__dict__["features"] = None
            __props__.__dict__["http_post_binding"] = None
            __props__.__dict__["http_redirect_binding"] = None
            __props__.__dict__["key_id"] = None
            __props__.__dict__["keys"] = None
            __props__.__dict__["logo_url"] = None
            __props__.__dict__["metadata"] = None
            __props__.__dict__["metadata_url"] = None
            __props__.__dict__["name"] = None
            __props__.__dict__["sign_on_mode"] = None
        super(Saml, __self__).__init__(
            'okta:app/saml:Saml',
            resource_name,
            __props__,
            opts)

    @staticmethod
    def get(resource_name: str,
            id: pulumi.Input[str],
            opts: Optional[pulumi.ResourceOptions] = None,
            accessibility_error_redirect_url: Optional[pulumi.Input[_builtins.str]] = None,
            accessibility_login_redirect_url: Optional[pulumi.Input[_builtins.str]] = None,
            accessibility_self_service: Optional[pulumi.Input[_builtins.bool]] = None,
            acs_endpoints: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
            acs_endpoints_indices: Optional[pulumi.Input[Sequence[pulumi.Input[Union['SamlAcsEndpointsIndexArgs', 'SamlAcsEndpointsIndexArgsDict']]]]] = None,
            admin_note: Optional[pulumi.Input[_builtins.str]] = None,
            app_links_json: Optional[pulumi.Input[_builtins.str]] = None,
            app_settings_json: Optional[pulumi.Input[_builtins.str]] = None,
            assertion_signed: Optional[pulumi.Input[_builtins.bool]] = None,
            attribute_statements: Optional[pulumi.Input[Sequence[pulumi.Input[Union['SamlAttributeStatementArgs', 'SamlAttributeStatementArgsDict']]]]] = None,
            audience: Optional[pulumi.Input[_builtins.str]] = None,
            authentication_policy: Optional[pulumi.Input[_builtins.str]] = None,
            authn_context_class_ref: Optional[pulumi.Input[_builtins.str]] = None,
            auto_submit_toolbar: Optional[pulumi.Input[_builtins.bool]] = None,
            certificate: Optional[pulumi.Input[_builtins.str]] = None,
            default_relay_state: Optional[pulumi.Input[_builtins.str]] = None,
            destination: Optional[pulumi.Input[_builtins.str]] = None,
            digest_algorithm: Optional[pulumi.Input[_builtins.str]] = None,
            embed_url: Optional[pulumi.Input[_builtins.str]] = None,
            enduser_note: Optional[pulumi.Input[_builtins.str]] = None,
            entity_key: Optional[pulumi.Input[_builtins.str]] = None,
            entity_url: Optional[pulumi.Input[_builtins.str]] = None,
            features: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
            hide_ios: Optional[pulumi.Input[_builtins.bool]] = None,
            hide_web: Optional[pulumi.Input[_builtins.bool]] = None,
            honor_force_authn: Optional[pulumi.Input[_builtins.bool]] = None,
            http_post_binding: Optional[pulumi.Input[_builtins.str]] = None,
            http_redirect_binding: Optional[pulumi.Input[_builtins.str]] = None,
            idp_issuer: Optional[pulumi.Input[_builtins.str]] = None,
            implicit_assignment: Optional[pulumi.Input[_builtins.bool]] = None,
            inline_hook_id: Optional[pulumi.Input[_builtins.str]] = None,
            key_id: Optional[pulumi.Input[_builtins.str]] = None,
            key_name: Optional[pulumi.Input[_builtins.str]] = None,
            key_years_valid: Optional[pulumi.Input[_builtins.int]] = None,
            keys: Optional[pulumi.Input[Sequence[pulumi.Input[Union['SamlKeyArgs', 'SamlKeyArgsDict']]]]] = None,
            label: Optional[pulumi.Input[_builtins.str]] = None,
            logo: Optional[pulumi.Input[_builtins.str]] = None,
            logo_url: Optional[pulumi.Input[_builtins.str]] = None,
            metadata: Optional[pulumi.Input[_builtins.str]] = None,
            metadata_url: Optional[pulumi.Input[_builtins.str]] = None,
            name: Optional[pulumi.Input[_builtins.str]] = None,
            preconfigured_app: Optional[pulumi.Input[_builtins.str]] = None,
            recipient: Optional[pulumi.Input[_builtins.str]] = None,
            request_compressed: Optional[pulumi.Input[_builtins.bool]] = None,
            response_signed: Optional[pulumi.Input[_builtins.bool]] = None,
            saml_signed_request_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
            saml_version: Optional[pulumi.Input[_builtins.str]] = None,
            sign_on_mode: Optional[pulumi.Input[_builtins.str]] = None,
            signature_algorithm: Optional[pulumi.Input[_builtins.str]] = None,
            single_logout_certificate: Optional[pulumi.Input[_builtins.str]] = None,
            single_logout_issuer: Optional[pulumi.Input[_builtins.str]] = None,
            single_logout_url: Optional[pulumi.Input[_builtins.str]] = None,
            sp_issuer: Optional[pulumi.Input[_builtins.str]] = None,
            sso_url: Optional[pulumi.Input[_builtins.str]] = None,
            status: Optional[pulumi.Input[_builtins.str]] = None,
            subject_name_id_format: Optional[pulumi.Input[_builtins.str]] = None,
            subject_name_id_template: Optional[pulumi.Input[_builtins.str]] = None,
            user_name_template: Optional[pulumi.Input[_builtins.str]] = None,
            user_name_template_push_status: Optional[pulumi.Input[_builtins.str]] = None,
            user_name_template_suffix: Optional[pulumi.Input[_builtins.str]] = None,
            user_name_template_type: Optional[pulumi.Input[_builtins.str]] = None) -> 'Saml':
        """
        Get an existing Saml 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[_builtins.str] accessibility_error_redirect_url: Custom error page URL
        :param pulumi.Input[_builtins.str] accessibility_login_redirect_url: Custom login page URL
        :param pulumi.Input[_builtins.bool] accessibility_self_service: Enable self service. Default is `false`
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] acs_endpoints: An array of ACS endpoints. You can configure a maximum of 100 endpoints.
        :param pulumi.Input[Sequence[pulumi.Input[Union['SamlAcsEndpointsIndexArgs', 'SamlAcsEndpointsIndexArgsDict']]]] acs_endpoints_indices: ACS endpoints along with custom index as a set of maps called `acs_endpoints_indices` in JSON format.
        :param pulumi.Input[_builtins.str] admin_note: Application notes for admins.
        :param pulumi.Input[_builtins.str] app_links_json: Displays specific appLinks for the app. The value for each application link should be boolean.
        :param pulumi.Input[_builtins.str] app_settings_json: Application settings in JSON format
        :param pulumi.Input[_builtins.bool] assertion_signed: Determines whether the SAML assertion is digitally signed
        :param pulumi.Input[_builtins.str] audience: Audience Restriction
        :param pulumi.Input[_builtins.str] authentication_policy: The ID of the associated `app_signon_policy`. If this property is removed from the application the `default` sign-on-policy will be associated with this application.y
        :param pulumi.Input[_builtins.str] authn_context_class_ref: Identifies the SAML authentication context class for the assertion’s authentication statement
        :param pulumi.Input[_builtins.bool] auto_submit_toolbar: Display auto submit toolbar. Default is: `false`
        :param pulumi.Input[_builtins.str] certificate: cert from SAML XML metadata payload
        :param pulumi.Input[_builtins.str] default_relay_state: Identifies a specific application resource in an IDP initiated SSO scenario.
        :param pulumi.Input[_builtins.str] destination: Identifies the location where the SAML response is intended to be sent inside of the SAML assertion
        :param pulumi.Input[_builtins.str] digest_algorithm: Determines the digest algorithm used to digitally sign the SAML assertion and response
        :param pulumi.Input[_builtins.str] embed_url: The url that can be used to embed this application in other portals.
        :param pulumi.Input[_builtins.str] enduser_note: Application notes for end users.
        :param pulumi.Input[_builtins.str] entity_key: Entity ID, the ID portion of the entity_url
        :param pulumi.Input[_builtins.str] entity_url: Entity URL for instance http://www.okta.com/exk1fcia6d6EMsf331d8
        :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] features: features to enable
        :param pulumi.Input[_builtins.bool] hide_ios: Do not display application icon on mobile app
        :param pulumi.Input[_builtins.bool] hide_web: Do not display application icon to users
        :param pulumi.Input[_builtins.bool] honor_force_authn: Prompt user to re-authenticate if SP asks for it. Default is: `false`
        :param pulumi.Input[_builtins.str] http_post_binding: urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Post location from the SAML metadata.
        :param pulumi.Input[_builtins.str] http_redirect_binding: urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect location from the SAML metadata.
        :param pulumi.Input[_builtins.str] idp_issuer: SAML issuer ID
        :param pulumi.Input[_builtins.bool] implicit_assignment: *Early Access Property*. Enable Federation Broker Mode.
        :param pulumi.Input[_builtins.str] inline_hook_id: Saml Inline Hook setting
        :param pulumi.Input[_builtins.str] key_id: Certificate ID
        :param pulumi.Input[_builtins.str] key_name: Certificate name. This modulates the rotation of keys. New name == new key. Required to be set with `key_years_valid`
        :param pulumi.Input[_builtins.int] key_years_valid: Number of years the certificate is valid (2 - 10 years).
        :param pulumi.Input[Sequence[pulumi.Input[Union['SamlKeyArgs', 'SamlKeyArgsDict']]]] keys: Application keys
        :param pulumi.Input[_builtins.str] label: The Application's display name.
        :param pulumi.Input[_builtins.str] logo: Local file path to the logo. The file must be in PNG, JPG, or GIF format, and less than 1 MB in size.
        :param pulumi.Input[_builtins.str] logo_url: URL of the application's logo
        :param pulumi.Input[_builtins.str] metadata: SAML xml metadata payload
        :param pulumi.Input[_builtins.str] metadata_url: SAML xml metadata URL
        :param pulumi.Input[_builtins.str] name: Name of the app.
        :param pulumi.Input[_builtins.str] preconfigured_app: Name of application from the Okta Integration Network. For instance 'slack'. If not included a custom app will be created.  If not provided the following arguments are required:
               'sso*url'
               'recipient'
               'destination'
               'audience'
               'subject*name*id*template'
               'subject*name*id*format'
               'signature*algorithm'
               'digest*algorithm'
               'authn*context*class*ref'
        :param pulumi.Input[_builtins.str] recipient: The location where the app may present the SAML assertion
        :param pulumi.Input[_builtins.bool] request_compressed: Denotes whether the request is compressed or not.
        :param pulumi.Input[_builtins.bool] response_signed: Determines whether the SAML auth response message is digitally signed
        :param pulumi.Input[_builtins.bool] saml_signed_request_enabled: SAML Signed Request enabled
        :param pulumi.Input[_builtins.str] saml_version: SAML version for the app's sign-on mode. Valid values are: `2.0` or `1.1`. Default is `2.0`
        :param pulumi.Input[_builtins.str] sign_on_mode: Sign on mode of application.
        :param pulumi.Input[_builtins.str] signature_algorithm: Signature algorithm used to digitally sign the assertion and response
        :param pulumi.Input[_builtins.str] single_logout_certificate: x509 encoded certificate that the Service Provider uses to sign Single Logout requests. Note: should be provided without `-----BEGIN CERTIFICATE-----` and `-----END CERTIFICATE-----`, see [official documentation](https://developer.okta.com/docs/reference/api/apps/#service-provider-certificate).
        :param pulumi.Input[_builtins.str] single_logout_issuer: The issuer of the Service Provider that generates the Single Logout request
        :param pulumi.Input[_builtins.str] single_logout_url: The location where the logout response is sent
        :param pulumi.Input[_builtins.str] sp_issuer: SAML SP issuer ID
        :param pulumi.Input[_builtins.str] sso_url: Single Sign On URL
        :param pulumi.Input[_builtins.str] status: Status of application. By default, it is `ACTIVE`
        :param pulumi.Input[_builtins.str] subject_name_id_format: Identifies the SAML processing rules.
        :param pulumi.Input[_builtins.str] subject_name_id_template: Template for app user's username when a user is assigned to the app
        :param pulumi.Input[_builtins.str] user_name_template: Username template. Default: `${source.login}`
        :param pulumi.Input[_builtins.str] user_name_template_push_status: Push username on update. Valid values: `PUSH` and `DONT_PUSH`
        :param pulumi.Input[_builtins.str] user_name_template_suffix: Username template suffix
        :param pulumi.Input[_builtins.str] user_name_template_type: Username template type. Default: `BUILT_IN`
        """
        opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))

        __props__ = _SamlState.__new__(_SamlState)

        __props__.__dict__["accessibility_error_redirect_url"] = accessibility_error_redirect_url
        __props__.__dict__["accessibility_login_redirect_url"] = accessibility_login_redirect_url
        __props__.__dict__["accessibility_self_service"] = accessibility_self_service
        __props__.__dict__["acs_endpoints"] = acs_endpoints
        __props__.__dict__["acs_endpoints_indices"] = acs_endpoints_indices
        __props__.__dict__["admin_note"] = admin_note
        __props__.__dict__["app_links_json"] = app_links_json
        __props__.__dict__["app_settings_json"] = app_settings_json
        __props__.__dict__["assertion_signed"] = assertion_signed
        __props__.__dict__["attribute_statements"] = attribute_statements
        __props__.__dict__["audience"] = audience
        __props__.__dict__["authentication_policy"] = authentication_policy
        __props__.__dict__["authn_context_class_ref"] = authn_context_class_ref
        __props__.__dict__["auto_submit_toolbar"] = auto_submit_toolbar
        __props__.__dict__["certificate"] = certificate
        __props__.__dict__["default_relay_state"] = default_relay_state
        __props__.__dict__["destination"] = destination
        __props__.__dict__["digest_algorithm"] = digest_algorithm
        __props__.__dict__["embed_url"] = embed_url
        __props__.__dict__["enduser_note"] = enduser_note
        __props__.__dict__["entity_key"] = entity_key
        __props__.__dict__["entity_url"] = entity_url
        __props__.__dict__["features"] = features
        __props__.__dict__["hide_ios"] = hide_ios
        __props__.__dict__["hide_web"] = hide_web
        __props__.__dict__["honor_force_authn"] = honor_force_authn
        __props__.__dict__["http_post_binding"] = http_post_binding
        __props__.__dict__["http_redirect_binding"] = http_redirect_binding
        __props__.__dict__["idp_issuer"] = idp_issuer
        __props__.__dict__["implicit_assignment"] = implicit_assignment
        __props__.__dict__["inline_hook_id"] = inline_hook_id
        __props__.__dict__["key_id"] = key_id
        __props__.__dict__["key_name"] = key_name
        __props__.__dict__["key_years_valid"] = key_years_valid
        __props__.__dict__["keys"] = keys
        __props__.__dict__["label"] = label
        __props__.__dict__["logo"] = logo
        __props__.__dict__["logo_url"] = logo_url
        __props__.__dict__["metadata"] = metadata
        __props__.__dict__["metadata_url"] = metadata_url
        __props__.__dict__["name"] = name
        __props__.__dict__["preconfigured_app"] = preconfigured_app
        __props__.__dict__["recipient"] = recipient
        __props__.__dict__["request_compressed"] = request_compressed
        __props__.__dict__["response_signed"] = response_signed
        __props__.__dict__["saml_signed_request_enabled"] = saml_signed_request_enabled
        __props__.__dict__["saml_version"] = saml_version
        __props__.__dict__["sign_on_mode"] = sign_on_mode
        __props__.__dict__["signature_algorithm"] = signature_algorithm
        __props__.__dict__["single_logout_certificate"] = single_logout_certificate
        __props__.__dict__["single_logout_issuer"] = single_logout_issuer
        __props__.__dict__["single_logout_url"] = single_logout_url
        __props__.__dict__["sp_issuer"] = sp_issuer
        __props__.__dict__["sso_url"] = sso_url
        __props__.__dict__["status"] = status
        __props__.__dict__["subject_name_id_format"] = subject_name_id_format
        __props__.__dict__["subject_name_id_template"] = subject_name_id_template
        __props__.__dict__["user_name_template"] = user_name_template
        __props__.__dict__["user_name_template_push_status"] = user_name_template_push_status
        __props__.__dict__["user_name_template_suffix"] = user_name_template_suffix
        __props__.__dict__["user_name_template_type"] = user_name_template_type
        return Saml(resource_name, opts=opts, __props__=__props__)

    @_builtins.property
    @pulumi.getter(name="accessibilityErrorRedirectUrl")
    def accessibility_error_redirect_url(self) -> pulumi.Output[Optional[_builtins.str]]:
        """
        Custom error page URL
        """
        return pulumi.get(self, "accessibility_error_redirect_url")

    @_builtins.property
    @pulumi.getter(name="accessibilityLoginRedirectUrl")
    def accessibility_login_redirect_url(self) -> pulumi.Output[Optional[_builtins.str]]:
        """
        Custom login page URL
        """
        return pulumi.get(self, "accessibility_login_redirect_url")

    @_builtins.property
    @pulumi.getter(name="accessibilitySelfService")
    def accessibility_self_service(self) -> pulumi.Output[Optional[_builtins.bool]]:
        """
        Enable self service. Default is `false`
        """
        return pulumi.get(self, "accessibility_self_service")

    @_builtins.property
    @pulumi.getter(name="acsEndpoints")
    def acs_endpoints(self) -> pulumi.Output[Optional[Sequence[_builtins.str]]]:
        """
        An array of ACS endpoints. You can configure a maximum of 100 endpoints.
        """
        return pulumi.get(self, "acs_endpoints")

    @_builtins.property
    @pulumi.getter(name="acsEndpointsIndices")
    def acs_endpoints_indices(self) -> pulumi.Output[Optional[Sequence['outputs.SamlAcsEndpointsIndex']]]:
        """
        ACS endpoints along with custom index as a set of maps called `acs_endpoints_indices` in JSON format.
        """
        return pulumi.get(self, "acs_endpoints_indices")

    @_builtins.property
    @pulumi.getter(name="adminNote")
    def admin_note(self) -> pulumi.Output[Optional[_builtins.str]]:
        """
        Application notes for admins.
        """
        return pulumi.get(self, "admin_note")

    @_builtins.property
    @pulumi.getter(name="appLinksJson")
    def app_links_json(self) -> pulumi.Output[Optional[_builtins.str]]:
        """
        Displays specific appLinks for the app. The value for each application link should be boolean.
        """
        return pulumi.get(self, "app_links_json")

    @_builtins.property
    @pulumi.getter(name="appSettingsJson")
    def app_settings_json(self) -> pulumi.Output[Optional[_builtins.str]]:
        """
        Application settings in JSON format
        """
        return pulumi.get(self, "app_settings_json")

    @_builtins.property
    @pulumi.getter(name="assertionSigned")
    def assertion_signed(self) -> pulumi.Output[Optional[_builtins.bool]]:
        """
        Determines whether the SAML assertion is digitally signed
        """
        return pulumi.get(self, "assertion_signed")

    @_builtins.property
    @pulumi.getter(name="attributeStatements")
    def attribute_statements(self) -> pulumi.Output[Optional[Sequence['outputs.SamlAttributeStatement']]]:
        return pulumi.get(self, "attribute_statements")

    @_builtins.property
    @pulumi.getter
    def audience(self) -> pulumi.Output[Optional[_builtins.str]]:
        """
        Audience Restriction
        """
        return pulumi.get(self, "audience")

    @_builtins.property
    @pulumi.getter(name="authenticationPolicy")
    def authentication_policy(self) -> pulumi.Output[_builtins.str]:
        """
        The ID of the associated `app_signon_policy`. If this property is removed from the application the `default` sign-on-policy will be associated with this application.y
        """
        return pulumi.get(self, "authentication_policy")

    @_builtins.property
    @pulumi.getter(name="authnContextClassRef")
    def authn_context_class_ref(self) -> pulumi.Output[Optional[_builtins.str]]:
        """
        Identifies the SAML authentication context class for the assertion’s authentication statement
        """
        return pulumi.get(self, "authn_context_class_ref")

    @_builtins.property
    @pulumi.getter(name="autoSubmitToolbar")
    def auto_submit_toolbar(self) -> pulumi.Output[Optional[_builtins.bool]]:
        """
        Display auto submit toolbar. Default is: `false`
        """
        return pulumi.get(self, "auto_submit_toolbar")

    @_builtins.property
    @pulumi.getter
    def certificate(self) -> pulumi.Output[_builtins.str]:
        """
        cert from SAML XML metadata payload
        """
        return pulumi.get(self, "certificate")

    @_builtins.property
    @pulumi.getter(name="defaultRelayState")
    def default_relay_state(self) -> pulumi.Output[Optional[_builtins.str]]:
        """
        Identifies a specific application resource in an IDP initiated SSO scenario.
        """
        return pulumi.get(self, "default_relay_state")

    @_builtins.property
    @pulumi.getter
    def destination(self) -> pulumi.Output[Optional[_builtins.str]]:
        """
        Identifies the location where the SAML response is intended to be sent inside of the SAML assertion
        """
        return pulumi.get(self, "destination")

    @_builtins.property
    @pulumi.getter(name="digestAlgorithm")
    def digest_algorithm(self) -> pulumi.Output[Optional[_builtins.str]]:
        """
        Determines the digest algorithm used to digitally sign the SAML assertion and response
        """
        return pulumi.get(self, "digest_algorithm")

    @_builtins.property
    @pulumi.getter(name="embedUrl")
    def embed_url(self) -> pulumi.Output[_builtins.str]:
        """
        The url that can be used to embed this application in other portals.
        """
        return pulumi.get(self, "embed_url")

    @_builtins.property
    @pulumi.getter(name="enduserNote")
    def enduser_note(self) -> pulumi.Output[Optional[_builtins.str]]:
        """
        Application notes for end users.
        """
        return pulumi.get(self, "enduser_note")

    @_builtins.property
    @pulumi.getter(name="entityKey")
    def entity_key(self) -> pulumi.Output[_builtins.str]:
        """
        Entity ID, the ID portion of the entity_url
        """
        return pulumi.get(self, "entity_key")

    @_builtins.property
    @pulumi.getter(name="entityUrl")
    def entity_url(self) -> pulumi.Output[_builtins.str]:
        """
        Entity URL for instance http://www.okta.com/exk1fcia6d6EMsf331d8
        """
        return pulumi.get(self, "entity_url")

    @_builtins.property
    @pulumi.getter
    def features(self) -> pulumi.Output[Sequence[_builtins.str]]:
        """
        features to enable
        """
        return pulumi.get(self, "features")

    @_builtins.property
    @pulumi.getter(name="hideIos")
    def hide_ios(self) -> pulumi.Output[Optional[_builtins.bool]]:
        """
        Do not display application icon on mobile app
        """
        return pulumi.get(self, "hide_ios")

    @_builtins.property
    @pulumi.getter(name="hideWeb")
    def hide_web(self) -> pulumi.Output[Optional[_builtins.bool]]:
        """
        Do not display application icon to users
        """
        return pulumi.get(self, "hide_web")

    @_builtins.property
    @pulumi.getter(name="honorForceAuthn")
    def honor_force_authn(self) -> pulumi.Output[Optional[_builtins.bool]]:
        """
        Prompt user to re-authenticate if SP asks for it. Default is: `false`
        """
        return pulumi.get(self, "honor_force_authn")

    @_builtins.property
    @pulumi.getter(name="httpPostBinding")
    def http_post_binding(self) -> pulumi.Output[_builtins.str]:
        """
        urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Post location from the SAML metadata.
        """
        return pulumi.get(self, "http_post_binding")

    @_builtins.property
    @pulumi.getter(name="httpRedirectBinding")
    def http_redirect_binding(self) -> pulumi.Output[_builtins.str]:
        """
        urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect location from the SAML metadata.
        """
        return pulumi.get(self, "http_redirect_binding")

    @_builtins.property
    @pulumi.getter(name="idpIssuer")
    def idp_issuer(self) -> pulumi.Output[Optional[_builtins.str]]:
        """
        SAML issuer ID
        """
        return pulumi.get(self, "idp_issuer")

    @_builtins.property
    @pulumi.getter(name="implicitAssignment")
    def implicit_assignment(self) -> pulumi.Output[Optional[_builtins.bool]]:
        """
        *Early Access Property*. Enable Federation Broker Mode.
        """
        return pulumi.get(self, "implicit_assignment")

    @_builtins.property
    @pulumi.getter(name="inlineHookId")
    def inline_hook_id(self) -> pulumi.Output[Optional[_builtins.str]]:
        """
        Saml Inline Hook setting
        """
        return pulumi.get(self, "inline_hook_id")

    @_builtins.property
    @pulumi.getter(name="keyId")
    def key_id(self) -> pulumi.Output[_builtins.str]:
        """
        Certificate ID
        """
        return pulumi.get(self, "key_id")

    @_builtins.property
    @pulumi.getter(name="keyName")
    def key_name(self) -> pulumi.Output[Optional[_builtins.str]]:
        """
        Certificate name. This modulates the rotation of keys. New name == new key. Required to be set with `key_years_valid`
        """
        return pulumi.get(self, "key_name")

    @_builtins.property
    @pulumi.getter(name="keyYearsValid")
    def key_years_valid(self) -> pulumi.Output[Optional[_builtins.int]]:
        """
        Number of years the certificate is valid (2 - 10 years).
        """
        return pulumi.get(self, "key_years_valid")

    @_builtins.property
    @pulumi.getter
    def keys(self) -> pulumi.Output[Sequence['outputs.SamlKey']]:
        """
        Application keys
        """
        return pulumi.get(self, "keys")

    @_builtins.property
    @pulumi.getter
    def label(self) -> pulumi.Output[_builtins.str]:
        """
        The Application's display name.
        """
        return pulumi.get(self, "label")

    @_builtins.property
    @pulumi.getter
    def logo(self) -> pulumi.Output[Optional[_builtins.str]]:
        """
        Local file path to the logo. The file must be in PNG, JPG, or GIF format, and less than 1 MB in size.
        """
        return pulumi.get(self, "logo")

    @_builtins.property
    @pulumi.getter(name="logoUrl")
    def logo_url(self) -> pulumi.Output[_builtins.str]:
        """
        URL of the application's logo
        """
        return pulumi.get(self, "logo_url")

    @_builtins.property
    @pulumi.getter
    def metadata(self) -> pulumi.Output[_builtins.str]:
        """
        SAML xml metadata payload
        """
        return pulumi.get(self, "metadata")

    @_builtins.property
    @pulumi.getter(name="metadataUrl")
    def metadata_url(self) -> pulumi.Output[_builtins.str]:
        """
        SAML xml metadata URL
        """
        return pulumi.get(self, "metadata_url")

    @_builtins.property
    @pulumi.getter
    def name(self) -> pulumi.Output[_builtins.str]:
        """
        Name of the app.
        """
        return pulumi.get(self, "name")

    @_builtins.property
    @pulumi.getter(name="preconfiguredApp")
    def preconfigured_app(self) -> pulumi.Output[Optional[_builtins.str]]:
        """
        Name of application from the Okta Integration Network. For instance 'slack'. If not included a custom app will be created.  If not provided the following arguments are required:
        'sso*url'
        'recipient'
        'destination'
        'audience'
        'subject*name*id*template'
        'subject*name*id*format'
        'signature*algorithm'
        'digest*algorithm'
        'authn*context*class*ref'
        """
        return pulumi.get(self, "preconfigured_app")

    @_builtins.property
    @pulumi.getter
    def recipient(self) -> pulumi.Output[Optional[_builtins.str]]:
        """
        The location where the app may present the SAML assertion
        """
        return pulumi.get(self, "recipient")

    @_builtins.property
    @pulumi.getter(name="requestCompressed")
    def request_compressed(self) -> pulumi.Output[Optional[_builtins.bool]]:
        """
        Denotes whether the request is compressed or not.
        """
        return pulumi.get(self, "request_compressed")

    @_builtins.property
    @pulumi.getter(name="responseSigned")
    def response_signed(self) -> pulumi.Output[Optional[_builtins.bool]]:
        """
        Determines whether the SAML auth response message is digitally signed
        """
        return pulumi.get(self, "response_signed")

    @_builtins.property
    @pulumi.getter(name="samlSignedRequestEnabled")
    def saml_signed_request_enabled(self) -> pulumi.Output[Optional[_builtins.bool]]:
        """
        SAML Signed Request enabled
        """
        return pulumi.get(self, "saml_signed_request_enabled")

    @_builtins.property
    @pulumi.getter(name="samlVersion")
    def saml_version(self) -> pulumi.Output[Optional[_builtins.str]]:
        """
        SAML version for the app's sign-on mode. Valid values are: `2.0` or `1.1`. Default is `2.0`
        """
        return pulumi.get(self, "saml_version")

    @_builtins.property
    @pulumi.getter(name="signOnMode")
    def sign_on_mode(self) -> pulumi.Output[_builtins.str]:
        """
        Sign on mode of application.
        """
        return pulumi.get(self, "sign_on_mode")

    @_builtins.property
    @pulumi.getter(name="signatureAlgorithm")
    def signature_algorithm(self) -> pulumi.Output[Optional[_builtins.str]]:
        """
        Signature algorithm used to digitally sign the assertion and response
        """
        return pulumi.get(self, "signature_algorithm")

    @_builtins.property
    @pulumi.getter(name="singleLogoutCertificate")
    def single_logout_certificate(self) -> pulumi.Output[Optional[_builtins.str]]:
        """
        x509 encoded certificate that the Service Provider uses to sign Single Logout requests. Note: should be provided without `-----BEGIN CERTIFICATE-----` and `-----END CERTIFICATE-----`, see [official documentation](https://developer.okta.com/docs/reference/api/apps/#service-provider-certificate).
        """
        return pulumi.get(self, "single_logout_certificate")

    @_builtins.property
    @pulumi.getter(name="singleLogoutIssuer")
    def single_logout_issuer(self) -> pulumi.Output[Optional[_builtins.str]]:
        """
        The issuer of the Service Provider that generates the Single Logout request
        """
        return pulumi.get(self, "single_logout_issuer")

    @_builtins.property
    @pulumi.getter(name="singleLogoutUrl")
    def single_logout_url(self) -> pulumi.Output[Optional[_builtins.str]]:
        """
        The location where the logout response is sent
        """
        return pulumi.get(self, "single_logout_url")

    @_builtins.property
    @pulumi.getter(name="spIssuer")
    def sp_issuer(self) -> pulumi.Output[Optional[_builtins.str]]:
        """
        SAML SP issuer ID
        """
        return pulumi.get(self, "sp_issuer")

    @_builtins.property
    @pulumi.getter(name="ssoUrl")
    def sso_url(self) -> pulumi.Output[Optional[_builtins.str]]:
        """
        Single Sign On URL
        """
        return pulumi.get(self, "sso_url")

    @_builtins.property
    @pulumi.getter
    def status(self) -> pulumi.Output[Optional[_builtins.str]]:
        """
        Status of application. By default, it is `ACTIVE`
        """
        return pulumi.get(self, "status")

    @_builtins.property
    @pulumi.getter(name="subjectNameIdFormat")
    def subject_name_id_format(self) -> pulumi.Output[Optional[_builtins.str]]:
        """
        Identifies the SAML processing rules.
        """
        return pulumi.get(self, "subject_name_id_format")

    @_builtins.property
    @pulumi.getter(name="subjectNameIdTemplate")
    def subject_name_id_template(self) -> pulumi.Output[Optional[_builtins.str]]:
        """
        Template for app user's username when a user is assigned to the app
        """
        return pulumi.get(self, "subject_name_id_template")

    @_builtins.property
    @pulumi.getter(name="userNameTemplate")
    def user_name_template(self) -> pulumi.Output[Optional[_builtins.str]]:
        """
        Username template. Default: `${source.login}`
        """
        return pulumi.get(self, "user_name_template")

    @_builtins.property
    @pulumi.getter(name="userNameTemplatePushStatus")
    def user_name_template_push_status(self) -> pulumi.Output[Optional[_builtins.str]]:
        """
        Push username on update. Valid values: `PUSH` and `DONT_PUSH`
        """
        return pulumi.get(self, "user_name_template_push_status")

    @_builtins.property
    @pulumi.getter(name="userNameTemplateSuffix")
    def user_name_template_suffix(self) -> pulumi.Output[Optional[_builtins.str]]:
        """
        Username template suffix
        """
        return pulumi.get(self, "user_name_template_suffix")

    @_builtins.property
    @pulumi.getter(name="userNameTemplateType")
    def user_name_template_type(self) -> pulumi.Output[Optional[_builtins.str]]:
        """
        Username template type. Default: `BUILT_IN`
        """
        return pulumi.get(self, "user_name_template_type")

