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

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

__all__ = [
    'BastionHostInstanceAdAuthServer',
    'BastionHostInstanceLdapAuthServer',
    'GetBastionHostInstancesInstanceResult',
    'GetDBAuditInstanceInstanceResult',
]

@pulumi.output_type
class BastionHostInstanceAdAuthServer(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "baseDn":
            suggest = "base_dn"
        elif key == "isSsl":
            suggest = "is_ssl"
        elif key == "emailMapping":
            suggest = "email_mapping"
        elif key == "mobileMapping":
            suggest = "mobile_mapping"
        elif key == "nameMapping":
            suggest = "name_mapping"
        elif key == "standbyServer":
            suggest = "standby_server"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in BastionHostInstanceAdAuthServer. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        BastionHostInstanceAdAuthServer.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        BastionHostInstanceAdAuthServer.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 account: str,
                 base_dn: str,
                 domain: str,
                 is_ssl: bool,
                 password: str,
                 port: int,
                 server: str,
                 email_mapping: Optional[str] = None,
                 filter: Optional[str] = None,
                 mobile_mapping: Optional[str] = None,
                 name_mapping: Optional[str] = None,
                 standby_server: Optional[str] = None):
        pulumi.set(__self__, "account", account)
        pulumi.set(__self__, "base_dn", base_dn)
        pulumi.set(__self__, "domain", domain)
        pulumi.set(__self__, "is_ssl", is_ssl)
        pulumi.set(__self__, "password", password)
        pulumi.set(__self__, "port", port)
        pulumi.set(__self__, "server", server)
        if email_mapping is not None:
            pulumi.set(__self__, "email_mapping", email_mapping)
        if filter is not None:
            pulumi.set(__self__, "filter", filter)
        if mobile_mapping is not None:
            pulumi.set(__self__, "mobile_mapping", mobile_mapping)
        if name_mapping is not None:
            pulumi.set(__self__, "name_mapping", name_mapping)
        if standby_server is not None:
            pulumi.set(__self__, "standby_server", standby_server)

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

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

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

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

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

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

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

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

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

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

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

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


@pulumi.output_type
class BastionHostInstanceLdapAuthServer(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "baseDn":
            suggest = "base_dn"
        elif key == "emailMapping":
            suggest = "email_mapping"
        elif key == "isSsl":
            suggest = "is_ssl"
        elif key == "loginNameMapping":
            suggest = "login_name_mapping"
        elif key == "mobileMapping":
            suggest = "mobile_mapping"
        elif key == "nameMapping":
            suggest = "name_mapping"
        elif key == "standbyServer":
            suggest = "standby_server"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in BastionHostInstanceLdapAuthServer. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        BastionHostInstanceLdapAuthServer.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        BastionHostInstanceLdapAuthServer.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 account: str,
                 base_dn: str,
                 password: str,
                 port: int,
                 server: str,
                 email_mapping: Optional[str] = None,
                 filter: Optional[str] = None,
                 is_ssl: Optional[bool] = None,
                 login_name_mapping: Optional[str] = None,
                 mobile_mapping: Optional[str] = None,
                 name_mapping: Optional[str] = None,
                 standby_server: Optional[str] = None):
        pulumi.set(__self__, "account", account)
        pulumi.set(__self__, "base_dn", base_dn)
        pulumi.set(__self__, "password", password)
        pulumi.set(__self__, "port", port)
        pulumi.set(__self__, "server", server)
        if email_mapping is not None:
            pulumi.set(__self__, "email_mapping", email_mapping)
        if filter is not None:
            pulumi.set(__self__, "filter", filter)
        if is_ssl is not None:
            pulumi.set(__self__, "is_ssl", is_ssl)
        if login_name_mapping is not None:
            pulumi.set(__self__, "login_name_mapping", login_name_mapping)
        if mobile_mapping is not None:
            pulumi.set(__self__, "mobile_mapping", mobile_mapping)
        if name_mapping is not None:
            pulumi.set(__self__, "name_mapping", name_mapping)
        if standby_server is not None:
            pulumi.set(__self__, "standby_server", standby_server)

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

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

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

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

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

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

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

    @property
    @pulumi.getter(name="isSsl")
    def is_ssl(self) -> Optional[bool]:
        return pulumi.get(self, "is_ssl")

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

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

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

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


@pulumi.output_type
class GetBastionHostInstancesInstanceResult(dict):
    def __init__(__self__, *,
                 description: str,
                 id: str,
                 instance_status: str,
                 license_code: str,
                 private_domain: str,
                 public_domain: str,
                 public_network_access: bool,
                 security_group_ids: Sequence[str],
                 user_vswitch_id: str,
                 tags: Optional[Mapping[str, Any]] = None):
        pulumi.set(__self__, "description", description)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "instance_status", instance_status)
        pulumi.set(__self__, "license_code", license_code)
        pulumi.set(__self__, "private_domain", private_domain)
        pulumi.set(__self__, "public_domain", public_domain)
        pulumi.set(__self__, "public_network_access", public_network_access)
        pulumi.set(__self__, "security_group_ids", security_group_ids)
        pulumi.set(__self__, "user_vswitch_id", user_vswitch_id)
        if tags is not None:
            pulumi.set(__self__, "tags", tags)

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

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

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

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

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

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

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

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

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

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


@pulumi.output_type
class GetDBAuditInstanceInstanceResult(dict):
    def __init__(__self__, *,
                 description: str,
                 id: str,
                 instance_status: str,
                 license_code: str,
                 private_domain: str,
                 public_domain: str,
                 public_network_access: bool,
                 user_vswitch_id: str,
                 tags: Optional[Mapping[str, Any]] = None):
        pulumi.set(__self__, "description", description)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "instance_status", instance_status)
        pulumi.set(__self__, "license_code", license_code)
        pulumi.set(__self__, "private_domain", private_domain)
        pulumi.set(__self__, "public_domain", public_domain)
        pulumi.set(__self__, "public_network_access", public_network_access)
        pulumi.set(__self__, "user_vswitch_id", user_vswitch_id)
        if tags is not None:
            pulumi.set(__self__, "tags", tags)

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

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

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

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

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

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

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

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

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


