# 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

import types

__config__ = pulumi.Config('unifi')


class _ExportableConfig(types.ModuleType):
    @_builtins.property
    def allow_insecure(self) -> Optional[bool]:
        """
        Skip verification of TLS certificates of API requests. You may need to set this to `true` if you are using your local API without setting up a signed certificate. Can be specified with the `UNIFI_INSECURE` environment variable.
        """
        return __config__.get_bool('allowInsecure') or _utilities.get_env_bool('UNIFI_INSECURE')

    @_builtins.property
    def api_key(self) -> Optional[str]:
        """
        API Key for the user accessing the API. Can be specified with the `UNIFI_API_KEY` environment variable. Controller version 9.0.108 or later is required.
        """
        return __config__.get('apiKey')

    @_builtins.property
    def api_url(self) -> Optional[str]:
        """
        URL of the controller API. Can be specified with the `UNIFI_API` environment variable. You should **NOT** supply the path (`/api`), the SDK will discover the appropriate paths. This is to support UDM Pro style API paths as well as more standard controller paths.
        """
        return __config__.get('apiUrl') or _utilities.get_env('UNIFI_API')

    @_builtins.property
    def password(self) -> Optional[str]:
        """
        Password for the user accessing the API. Can be specified with the `UNIFI_PASSWORD` environment variable.
        """
        return __config__.get('password') or _utilities.get_env('UNIFI_PASSWORD')

    @_builtins.property
    def site(self) -> Optional[str]:
        """
        The site in the Unifi controller this provider will manage. Can be specified with the `UNIFI_SITE` environment variable. Default: `default`
        """
        return __config__.get('site') or _utilities.get_env('UNIFI_SITE')

    @_builtins.property
    def username(self) -> Optional[str]:
        """
        Local user name for the Unifi controller API. Can be specified with the `UNIFI_USERNAME` environment variable.
        """
        return __config__.get('username') or _utilities.get_env('UNIFI_USERNAME')

