# 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__ = [
    'GetLSSClientTypesResult',
    'AwaitableGetLSSClientTypesResult',
    'get_lss_client_types',
    'get_lss_client_types_output',
]

@pulumi.output_type
class GetLSSClientTypesResult:
    """
    A collection of values returned by getLSSClientTypes.
    """
    def __init__(__self__, id=None, zpn_client_type_edge_connector=None, zpn_client_type_exporter=None, zpn_client_type_ip_anchoring=None, zpn_client_type_machine_tunnel=None, zpn_client_type_slogger=None, zpn_client_type_zapp=None):
        if id and not isinstance(id, str):
            raise TypeError("Expected argument 'id' to be a str")
        pulumi.set(__self__, "id", id)
        if zpn_client_type_edge_connector and not isinstance(zpn_client_type_edge_connector, str):
            raise TypeError("Expected argument 'zpn_client_type_edge_connector' to be a str")
        pulumi.set(__self__, "zpn_client_type_edge_connector", zpn_client_type_edge_connector)
        if zpn_client_type_exporter and not isinstance(zpn_client_type_exporter, str):
            raise TypeError("Expected argument 'zpn_client_type_exporter' to be a str")
        pulumi.set(__self__, "zpn_client_type_exporter", zpn_client_type_exporter)
        if zpn_client_type_ip_anchoring and not isinstance(zpn_client_type_ip_anchoring, str):
            raise TypeError("Expected argument 'zpn_client_type_ip_anchoring' to be a str")
        pulumi.set(__self__, "zpn_client_type_ip_anchoring", zpn_client_type_ip_anchoring)
        if zpn_client_type_machine_tunnel and not isinstance(zpn_client_type_machine_tunnel, str):
            raise TypeError("Expected argument 'zpn_client_type_machine_tunnel' to be a str")
        pulumi.set(__self__, "zpn_client_type_machine_tunnel", zpn_client_type_machine_tunnel)
        if zpn_client_type_slogger and not isinstance(zpn_client_type_slogger, str):
            raise TypeError("Expected argument 'zpn_client_type_slogger' to be a str")
        pulumi.set(__self__, "zpn_client_type_slogger", zpn_client_type_slogger)
        if zpn_client_type_zapp and not isinstance(zpn_client_type_zapp, str):
            raise TypeError("Expected argument 'zpn_client_type_zapp' to be a str")
        pulumi.set(__self__, "zpn_client_type_zapp", zpn_client_type_zapp)

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        The provider-assigned unique ID for this managed resource.
        """
        return pulumi.get(self, "id")

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

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

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

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

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

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


class AwaitableGetLSSClientTypesResult(GetLSSClientTypesResult):
    # pylint: disable=using-constant-test
    def __await__(self):
        if False:
            yield self
        return GetLSSClientTypesResult(
            id=self.id,
            zpn_client_type_edge_connector=self.zpn_client_type_edge_connector,
            zpn_client_type_exporter=self.zpn_client_type_exporter,
            zpn_client_type_ip_anchoring=self.zpn_client_type_ip_anchoring,
            zpn_client_type_machine_tunnel=self.zpn_client_type_machine_tunnel,
            zpn_client_type_slogger=self.zpn_client_type_slogger,
            zpn_client_type_zapp=self.zpn_client_type_zapp)


def get_lss_client_types(opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetLSSClientTypesResult:
    """
    Use the **zpa_lss_config_client_types** data source to get information about all LSS client types in the Zscaler Private Access cloud. This data source is required when the defining a policy rule resource for an object type as `CLIENT_TYPE` parameter in the LSS Config Controller resource is set. To learn more see the To learn more see the [Getting Details of All LSS Status Codes](https://help.zscaler.com/zpa/log-streaming-service-configuration-use-cases#GettingLSSClientTypes)

    > **NOTE** By Default the ZPA provider will return all client types

    ## Example Usage

    ```python
    import pulumi
    import pulumi_zpa as zpa

    example = zpa.get_lss_client_types()
    ```
    """
    __args__ = dict()
    opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
    __ret__ = pulumi.runtime.invoke('zpa:index/getLSSClientTypes:getLSSClientTypes', __args__, opts=opts, typ=GetLSSClientTypesResult).value

    return AwaitableGetLSSClientTypesResult(
        id=pulumi.get(__ret__, 'id'),
        zpn_client_type_edge_connector=pulumi.get(__ret__, 'zpn_client_type_edge_connector'),
        zpn_client_type_exporter=pulumi.get(__ret__, 'zpn_client_type_exporter'),
        zpn_client_type_ip_anchoring=pulumi.get(__ret__, 'zpn_client_type_ip_anchoring'),
        zpn_client_type_machine_tunnel=pulumi.get(__ret__, 'zpn_client_type_machine_tunnel'),
        zpn_client_type_slogger=pulumi.get(__ret__, 'zpn_client_type_slogger'),
        zpn_client_type_zapp=pulumi.get(__ret__, 'zpn_client_type_zapp'))


@_utilities.lift_output_func(get_lss_client_types)
def get_lss_client_types_output(opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetLSSClientTypesResult]:
    """
    Use the **zpa_lss_config_client_types** data source to get information about all LSS client types in the Zscaler Private Access cloud. This data source is required when the defining a policy rule resource for an object type as `CLIENT_TYPE` parameter in the LSS Config Controller resource is set. To learn more see the To learn more see the [Getting Details of All LSS Status Codes](https://help.zscaler.com/zpa/log-streaming-service-configuration-use-cases#GettingLSSClientTypes)

    > **NOTE** By Default the ZPA provider will return all client types

    ## Example Usage

    ```python
    import pulumi
    import pulumi_zpa as zpa

    example = zpa.get_lss_client_types()
    ```
    """
    ...
