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

import warnings
import pulumi
import pulumi.runtime
from typing import Any, Dict, List, Mapping, Optional, Tuple, Union
from .. import _utilities, _tables

__all__ = [
    'InboundSamlConfigIdpConfigArgs',
    'InboundSamlConfigIdpConfigIdpCertificateArgs',
    'InboundSamlConfigSpConfigArgs',
    'InboundSamlConfigSpConfigSpCertificateArgs',
    'TenantInboundSamlConfigIdpConfigArgs',
    'TenantInboundSamlConfigIdpConfigIdpCertificateArgs',
    'TenantInboundSamlConfigSpConfigArgs',
    'TenantInboundSamlConfigSpConfigSpCertificateArgs',
]

@pulumi.input_type
class InboundSamlConfigIdpConfigArgs:
    def __init__(__self__, *,
                 idp_certificates: pulumi.Input[List[pulumi.Input['InboundSamlConfigIdpConfigIdpCertificateArgs']]],
                 idp_entity_id: pulumi.Input[str],
                 sso_url: pulumi.Input[str],
                 sign_request: Optional[pulumi.Input[bool]] = None):
        """
        :param pulumi.Input[List[pulumi.Input['InboundSamlConfigIdpConfigIdpCertificateArgs']]] idp_certificates: The IdP's certificate data to verify the signature in the SAMLResponse issued by the IDP.
               Structure is documented below.
        :param pulumi.Input[str] idp_entity_id: Unique identifier for all SAML entities
        :param pulumi.Input[str] sso_url: URL to send Authentication request to.
        :param pulumi.Input[bool] sign_request: Indicates if outbounding SAMLRequest should be signed.
        """
        pulumi.set(__self__, "idp_certificates", idp_certificates)
        pulumi.set(__self__, "idp_entity_id", idp_entity_id)
        pulumi.set(__self__, "sso_url", sso_url)
        if sign_request is not None:
            pulumi.set(__self__, "sign_request", sign_request)

    @property
    @pulumi.getter(name="idpCertificates")
    def idp_certificates(self) -> pulumi.Input[List[pulumi.Input['InboundSamlConfigIdpConfigIdpCertificateArgs']]]:
        """
        The IdP's certificate data to verify the signature in the SAMLResponse issued by the IDP.
        Structure is documented below.
        """
        return pulumi.get(self, "idp_certificates")

    @idp_certificates.setter
    def idp_certificates(self, value: pulumi.Input[List[pulumi.Input['InboundSamlConfigIdpConfigIdpCertificateArgs']]]):
        pulumi.set(self, "idp_certificates", value)

    @property
    @pulumi.getter(name="idpEntityId")
    def idp_entity_id(self) -> pulumi.Input[str]:
        """
        Unique identifier for all SAML entities
        """
        return pulumi.get(self, "idp_entity_id")

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

    @property
    @pulumi.getter(name="ssoUrl")
    def sso_url(self) -> pulumi.Input[str]:
        """
        URL to send Authentication request to.
        """
        return pulumi.get(self, "sso_url")

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

    @property
    @pulumi.getter(name="signRequest")
    def sign_request(self) -> Optional[pulumi.Input[bool]]:
        """
        Indicates if outbounding SAMLRequest should be signed.
        """
        return pulumi.get(self, "sign_request")

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


@pulumi.input_type
class InboundSamlConfigIdpConfigIdpCertificateArgs:
    def __init__(__self__, *,
                 x509_certificate: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] x509_certificate: -
               The x509 certificate
        """
        if x509_certificate is not None:
            pulumi.set(__self__, "x509_certificate", x509_certificate)

    @property
    @pulumi.getter(name="x509Certificate")
    def x509_certificate(self) -> Optional[pulumi.Input[str]]:
        """
        -
        The x509 certificate
        """
        return pulumi.get(self, "x509_certificate")

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


@pulumi.input_type
class InboundSamlConfigSpConfigArgs:
    def __init__(__self__, *,
                 callback_uri: Optional[pulumi.Input[str]] = None,
                 sp_certificates: Optional[pulumi.Input[List[pulumi.Input['InboundSamlConfigSpConfigSpCertificateArgs']]]] = None,
                 sp_entity_id: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] callback_uri: Callback URI where responses from IDP are handled. Must start with `https://`.
        :param pulumi.Input[List[pulumi.Input['InboundSamlConfigSpConfigSpCertificateArgs']]] sp_certificates: -
               The IDP's certificate data to verify the signature in the SAMLResponse issued by the IDP.
               Structure is documented below.
        :param pulumi.Input[str] sp_entity_id: Unique identifier for all SAML entities.
        """
        if callback_uri is not None:
            pulumi.set(__self__, "callback_uri", callback_uri)
        if sp_certificates is not None:
            pulumi.set(__self__, "sp_certificates", sp_certificates)
        if sp_entity_id is not None:
            pulumi.set(__self__, "sp_entity_id", sp_entity_id)

    @property
    @pulumi.getter(name="callbackUri")
    def callback_uri(self) -> Optional[pulumi.Input[str]]:
        """
        Callback URI where responses from IDP are handled. Must start with `https://`.
        """
        return pulumi.get(self, "callback_uri")

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

    @property
    @pulumi.getter(name="spCertificates")
    def sp_certificates(self) -> Optional[pulumi.Input[List[pulumi.Input['InboundSamlConfigSpConfigSpCertificateArgs']]]]:
        """
        -
        The IDP's certificate data to verify the signature in the SAMLResponse issued by the IDP.
        Structure is documented below.
        """
        return pulumi.get(self, "sp_certificates")

    @sp_certificates.setter
    def sp_certificates(self, value: Optional[pulumi.Input[List[pulumi.Input['InboundSamlConfigSpConfigSpCertificateArgs']]]]):
        pulumi.set(self, "sp_certificates", value)

    @property
    @pulumi.getter(name="spEntityId")
    def sp_entity_id(self) -> Optional[pulumi.Input[str]]:
        """
        Unique identifier for all SAML entities.
        """
        return pulumi.get(self, "sp_entity_id")

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


@pulumi.input_type
class InboundSamlConfigSpConfigSpCertificateArgs:
    def __init__(__self__, *,
                 x509_certificate: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] x509_certificate: -
               The x509 certificate
        """
        if x509_certificate is not None:
            pulumi.set(__self__, "x509_certificate", x509_certificate)

    @property
    @pulumi.getter(name="x509Certificate")
    def x509_certificate(self) -> Optional[pulumi.Input[str]]:
        """
        -
        The x509 certificate
        """
        return pulumi.get(self, "x509_certificate")

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


@pulumi.input_type
class TenantInboundSamlConfigIdpConfigArgs:
    def __init__(__self__, *,
                 idp_certificates: pulumi.Input[List[pulumi.Input['TenantInboundSamlConfigIdpConfigIdpCertificateArgs']]],
                 idp_entity_id: pulumi.Input[str],
                 sso_url: pulumi.Input[str],
                 sign_request: Optional[pulumi.Input[bool]] = None):
        """
        :param pulumi.Input[List[pulumi.Input['TenantInboundSamlConfigIdpConfigIdpCertificateArgs']]] idp_certificates: The IDP's certificate data to verify the signature in the SAMLResponse issued by the IDP.
               Structure is documented below.
        :param pulumi.Input[str] idp_entity_id: Unique identifier for all SAML entities
        :param pulumi.Input[str] sso_url: URL to send Authentication request to.
        :param pulumi.Input[bool] sign_request: Indicates if outbounding SAMLRequest should be signed.
        """
        pulumi.set(__self__, "idp_certificates", idp_certificates)
        pulumi.set(__self__, "idp_entity_id", idp_entity_id)
        pulumi.set(__self__, "sso_url", sso_url)
        if sign_request is not None:
            pulumi.set(__self__, "sign_request", sign_request)

    @property
    @pulumi.getter(name="idpCertificates")
    def idp_certificates(self) -> pulumi.Input[List[pulumi.Input['TenantInboundSamlConfigIdpConfigIdpCertificateArgs']]]:
        """
        The IDP's certificate data to verify the signature in the SAMLResponse issued by the IDP.
        Structure is documented below.
        """
        return pulumi.get(self, "idp_certificates")

    @idp_certificates.setter
    def idp_certificates(self, value: pulumi.Input[List[pulumi.Input['TenantInboundSamlConfigIdpConfigIdpCertificateArgs']]]):
        pulumi.set(self, "idp_certificates", value)

    @property
    @pulumi.getter(name="idpEntityId")
    def idp_entity_id(self) -> pulumi.Input[str]:
        """
        Unique identifier for all SAML entities
        """
        return pulumi.get(self, "idp_entity_id")

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

    @property
    @pulumi.getter(name="ssoUrl")
    def sso_url(self) -> pulumi.Input[str]:
        """
        URL to send Authentication request to.
        """
        return pulumi.get(self, "sso_url")

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

    @property
    @pulumi.getter(name="signRequest")
    def sign_request(self) -> Optional[pulumi.Input[bool]]:
        """
        Indicates if outbounding SAMLRequest should be signed.
        """
        return pulumi.get(self, "sign_request")

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


@pulumi.input_type
class TenantInboundSamlConfigIdpConfigIdpCertificateArgs:
    def __init__(__self__, *,
                 x509_certificate: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] x509_certificate: -
               The x509 certificate
        """
        if x509_certificate is not None:
            pulumi.set(__self__, "x509_certificate", x509_certificate)

    @property
    @pulumi.getter(name="x509Certificate")
    def x509_certificate(self) -> Optional[pulumi.Input[str]]:
        """
        -
        The x509 certificate
        """
        return pulumi.get(self, "x509_certificate")

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


@pulumi.input_type
class TenantInboundSamlConfigSpConfigArgs:
    def __init__(__self__, *,
                 callback_uri: pulumi.Input[str],
                 sp_entity_id: pulumi.Input[str],
                 sp_certificates: Optional[pulumi.Input[List[pulumi.Input['TenantInboundSamlConfigSpConfigSpCertificateArgs']]]] = None):
        """
        :param pulumi.Input[str] callback_uri: Callback URI where responses from IDP are handled. Must start with `https://`.
        :param pulumi.Input[str] sp_entity_id: Unique identifier for all SAML entities.
        :param pulumi.Input[List[pulumi.Input['TenantInboundSamlConfigSpConfigSpCertificateArgs']]] sp_certificates: -
               The IDP's certificate data to verify the signature in the SAMLResponse issued by the IDP.
               Structure is documented below.
        """
        pulumi.set(__self__, "callback_uri", callback_uri)
        pulumi.set(__self__, "sp_entity_id", sp_entity_id)
        if sp_certificates is not None:
            pulumi.set(__self__, "sp_certificates", sp_certificates)

    @property
    @pulumi.getter(name="callbackUri")
    def callback_uri(self) -> pulumi.Input[str]:
        """
        Callback URI where responses from IDP are handled. Must start with `https://`.
        """
        return pulumi.get(self, "callback_uri")

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

    @property
    @pulumi.getter(name="spEntityId")
    def sp_entity_id(self) -> pulumi.Input[str]:
        """
        Unique identifier for all SAML entities.
        """
        return pulumi.get(self, "sp_entity_id")

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

    @property
    @pulumi.getter(name="spCertificates")
    def sp_certificates(self) -> Optional[pulumi.Input[List[pulumi.Input['TenantInboundSamlConfigSpConfigSpCertificateArgs']]]]:
        """
        -
        The IDP's certificate data to verify the signature in the SAMLResponse issued by the IDP.
        Structure is documented below.
        """
        return pulumi.get(self, "sp_certificates")

    @sp_certificates.setter
    def sp_certificates(self, value: Optional[pulumi.Input[List[pulumi.Input['TenantInboundSamlConfigSpConfigSpCertificateArgs']]]]):
        pulumi.set(self, "sp_certificates", value)


@pulumi.input_type
class TenantInboundSamlConfigSpConfigSpCertificateArgs:
    def __init__(__self__, *,
                 x509_certificate: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] x509_certificate: -
               The x509 certificate
        """
        if x509_certificate is not None:
            pulumi.set(__self__, "x509_certificate", x509_certificate)

    @property
    @pulumi.getter(name="x509Certificate")
    def x509_certificate(self) -> Optional[pulumi.Input[str]]:
        """
        -
        The x509 certificate
        """
        return pulumi.get(self, "x509_certificate")

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


