# 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
from . import outputs

__all__ = [
    'GetServiceEdgeGroupResult',
    'AwaitableGetServiceEdgeGroupResult',
    'get_service_edge_group',
    'get_service_edge_group_output',
]

@pulumi.output_type
class GetServiceEdgeGroupResult:
    """
    A collection of values returned by getServiceEdgeGroup.
    """
    def __init__(__self__, city_country=None, country_code=None, creation_time=None, description=None, enabled=None, geo_location_id=None, id=None, is_public=None, latitude=None, location=None, longitude=None, modified_time=None, modifiedby=None, name=None, override_version_profile=None, service_edges=None, trusted_networks=None, upgrade_day=None, upgrade_time_in_secs=None, version_profile_id=None, version_profile_name=None, version_profile_visibility_scope=None):
        if city_country and not isinstance(city_country, str):
            raise TypeError("Expected argument 'city_country' to be a str")
        pulumi.set(__self__, "city_country", city_country)
        if country_code and not isinstance(country_code, str):
            raise TypeError("Expected argument 'country_code' to be a str")
        pulumi.set(__self__, "country_code", country_code)
        if creation_time and not isinstance(creation_time, str):
            raise TypeError("Expected argument 'creation_time' to be a str")
        pulumi.set(__self__, "creation_time", creation_time)
        if description and not isinstance(description, str):
            raise TypeError("Expected argument 'description' to be a str")
        pulumi.set(__self__, "description", description)
        if enabled and not isinstance(enabled, bool):
            raise TypeError("Expected argument 'enabled' to be a bool")
        pulumi.set(__self__, "enabled", enabled)
        if geo_location_id and not isinstance(geo_location_id, str):
            raise TypeError("Expected argument 'geo_location_id' to be a str")
        pulumi.set(__self__, "geo_location_id", geo_location_id)
        if id and not isinstance(id, str):
            raise TypeError("Expected argument 'id' to be a str")
        pulumi.set(__self__, "id", id)
        if is_public and not isinstance(is_public, str):
            raise TypeError("Expected argument 'is_public' to be a str")
        pulumi.set(__self__, "is_public", is_public)
        if latitude and not isinstance(latitude, str):
            raise TypeError("Expected argument 'latitude' to be a str")
        pulumi.set(__self__, "latitude", latitude)
        if location and not isinstance(location, str):
            raise TypeError("Expected argument 'location' to be a str")
        pulumi.set(__self__, "location", location)
        if longitude and not isinstance(longitude, str):
            raise TypeError("Expected argument 'longitude' to be a str")
        pulumi.set(__self__, "longitude", longitude)
        if modified_time and not isinstance(modified_time, str):
            raise TypeError("Expected argument 'modified_time' to be a str")
        pulumi.set(__self__, "modified_time", modified_time)
        if modifiedby and not isinstance(modifiedby, str):
            raise TypeError("Expected argument 'modifiedby' to be a str")
        pulumi.set(__self__, "modifiedby", modifiedby)
        if name and not isinstance(name, str):
            raise TypeError("Expected argument 'name' to be a str")
        pulumi.set(__self__, "name", name)
        if override_version_profile and not isinstance(override_version_profile, bool):
            raise TypeError("Expected argument 'override_version_profile' to be a bool")
        pulumi.set(__self__, "override_version_profile", override_version_profile)
        if service_edges and not isinstance(service_edges, list):
            raise TypeError("Expected argument 'service_edges' to be a list")
        pulumi.set(__self__, "service_edges", service_edges)
        if trusted_networks and not isinstance(trusted_networks, list):
            raise TypeError("Expected argument 'trusted_networks' to be a list")
        pulumi.set(__self__, "trusted_networks", trusted_networks)
        if upgrade_day and not isinstance(upgrade_day, str):
            raise TypeError("Expected argument 'upgrade_day' to be a str")
        pulumi.set(__self__, "upgrade_day", upgrade_day)
        if upgrade_time_in_secs and not isinstance(upgrade_time_in_secs, str):
            raise TypeError("Expected argument 'upgrade_time_in_secs' to be a str")
        pulumi.set(__self__, "upgrade_time_in_secs", upgrade_time_in_secs)
        if version_profile_id and not isinstance(version_profile_id, str):
            raise TypeError("Expected argument 'version_profile_id' to be a str")
        pulumi.set(__self__, "version_profile_id", version_profile_id)
        if version_profile_name and not isinstance(version_profile_name, str):
            raise TypeError("Expected argument 'version_profile_name' to be a str")
        pulumi.set(__self__, "version_profile_name", version_profile_name)
        if version_profile_visibility_scope and not isinstance(version_profile_visibility_scope, str):
            raise TypeError("Expected argument 'version_profile_visibility_scope' to be a str")
        pulumi.set(__self__, "version_profile_visibility_scope", version_profile_visibility_scope)

    @property
    @pulumi.getter(name="cityCountry")
    def city_country(self) -> str:
        """
        (string) Whether Double Encryption is enabled or disabled for the app.
        """
        return pulumi.get(self, "city_country")

    @property
    @pulumi.getter(name="countryCode")
    def country_code(self) -> str:
        """
        (string)
        """
        return pulumi.get(self, "country_code")

    @property
    @pulumi.getter(name="creationTime")
    def creation_time(self) -> str:
        """
        (string)
        """
        return pulumi.get(self, "creation_time")

    @property
    @pulumi.getter
    def description(self) -> str:
        """
        (string) Description of the Service Edge Group.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def enabled(self) -> bool:
        """
        (bool) Whether this App Connector Group is enabled or not. Default value: `true`. Supported values: `true`, `false`
        """
        return pulumi.get(self, "enabled")

    @property
    @pulumi.getter(name="geoLocationId")
    def geo_location_id(self) -> str:
        """
        (string)
        """
        return pulumi.get(self, "geo_location_id")

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

    @property
    @pulumi.getter(name="isPublic")
    def is_public(self) -> str:
        """
        (string)
        """
        return pulumi.get(self, "is_public")

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

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

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

    @property
    @pulumi.getter(name="modifiedTime")
    def modified_time(self) -> str:
        """
        (string)
        """
        return pulumi.get(self, "modified_time")

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

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

    @property
    @pulumi.getter(name="overrideVersionProfile")
    def override_version_profile(self) -> bool:
        """
        (bool) Whether the default version profile of the App Connector Group is applied or overridden. Default: `false` Supported values: `true`, `false`
        """
        return pulumi.get(self, "override_version_profile")

    @property
    @pulumi.getter(name="serviceEdges")
    def service_edges(self) -> Sequence['outputs.GetServiceEdgeGroupServiceEdgeResult']:
        """
        (string)
        """
        return pulumi.get(self, "service_edges")

    @property
    @pulumi.getter(name="trustedNetworks")
    def trusted_networks(self) -> Sequence['outputs.GetServiceEdgeGroupTrustedNetworkResult']:
        """
        (string)
        """
        return pulumi.get(self, "trusted_networks")

    @property
    @pulumi.getter(name="upgradeDay")
    def upgrade_day(self) -> str:
        """
        (string) App Connectors in this group will attempt to update to a newer version of the software during this specified day
        """
        return pulumi.get(self, "upgrade_day")

    @property
    @pulumi.getter(name="upgradeTimeInSecs")
    def upgrade_time_in_secs(self) -> str:
        """
        (string) App Connectors in this group will attempt to update to a newer version of the software during this specified time. Default value: `66600`. Integer in seconds (i.e., `-66600`). The integer should be greater than or equal to `0` and less than `86400`, in `15` minute intervals
        """
        return pulumi.get(self, "upgrade_time_in_secs")

    @property
    @pulumi.getter(name="versionProfileId")
    def version_profile_id(self) -> str:
        """
        (String) ID of the version profile.
        Exported values are:
        """
        return pulumi.get(self, "version_profile_id")

    @property
    @pulumi.getter(name="versionProfileName")
    def version_profile_name(self) -> str:
        """
        (String)
        Exported values are:
        """
        return pulumi.get(self, "version_profile_name")

    @property
    @pulumi.getter(name="versionProfileVisibilityScope")
    def version_profile_visibility_scope(self) -> str:
        """
        (string)
        Exported values are:
        """
        return pulumi.get(self, "version_profile_visibility_scope")


class AwaitableGetServiceEdgeGroupResult(GetServiceEdgeGroupResult):
    # pylint: disable=using-constant-test
    def __await__(self):
        if False:
            yield self
        return GetServiceEdgeGroupResult(
            city_country=self.city_country,
            country_code=self.country_code,
            creation_time=self.creation_time,
            description=self.description,
            enabled=self.enabled,
            geo_location_id=self.geo_location_id,
            id=self.id,
            is_public=self.is_public,
            latitude=self.latitude,
            location=self.location,
            longitude=self.longitude,
            modified_time=self.modified_time,
            modifiedby=self.modifiedby,
            name=self.name,
            override_version_profile=self.override_version_profile,
            service_edges=self.service_edges,
            trusted_networks=self.trusted_networks,
            upgrade_day=self.upgrade_day,
            upgrade_time_in_secs=self.upgrade_time_in_secs,
            version_profile_id=self.version_profile_id,
            version_profile_name=self.version_profile_name,
            version_profile_visibility_scope=self.version_profile_visibility_scope)


def get_service_edge_group(id: Optional[str] = None,
                           name: Optional[str] = None,
                           opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetServiceEdgeGroupResult:
    """
    Use the **zpa_service_edge_group** data source to get information about a service edge group in the Zscaler Private Access cloud. This data source can then be referenced in an App Connector Group. This data source can then be referenced in the following resources:

    * Create a server group
    * Provisioning Key
    * Access policy rule

    ## Example Usage

    ```python
    import pulumi
    import pulumi_zpa as zpa

    foo = zpa.get_service_edge_group(name="DataCenter")
    ```

    ```python
    import pulumi
    import pulumi_zpa as zpa

    foo = zpa.get_service_edge_group(id="123456789")
    ```


    :param str id: The ID of the service edge group to be exported.
    :param str name: The name of the service edge group to be exported.
    """
    __args__ = dict()
    __args__['id'] = id
    __args__['name'] = name
    opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
    __ret__ = pulumi.runtime.invoke('zpa:index/getServiceEdgeGroup:getServiceEdgeGroup', __args__, opts=opts, typ=GetServiceEdgeGroupResult).value

    return AwaitableGetServiceEdgeGroupResult(
        city_country=pulumi.get(__ret__, 'city_country'),
        country_code=pulumi.get(__ret__, 'country_code'),
        creation_time=pulumi.get(__ret__, 'creation_time'),
        description=pulumi.get(__ret__, 'description'),
        enabled=pulumi.get(__ret__, 'enabled'),
        geo_location_id=pulumi.get(__ret__, 'geo_location_id'),
        id=pulumi.get(__ret__, 'id'),
        is_public=pulumi.get(__ret__, 'is_public'),
        latitude=pulumi.get(__ret__, 'latitude'),
        location=pulumi.get(__ret__, 'location'),
        longitude=pulumi.get(__ret__, 'longitude'),
        modified_time=pulumi.get(__ret__, 'modified_time'),
        modifiedby=pulumi.get(__ret__, 'modifiedby'),
        name=pulumi.get(__ret__, 'name'),
        override_version_profile=pulumi.get(__ret__, 'override_version_profile'),
        service_edges=pulumi.get(__ret__, 'service_edges'),
        trusted_networks=pulumi.get(__ret__, 'trusted_networks'),
        upgrade_day=pulumi.get(__ret__, 'upgrade_day'),
        upgrade_time_in_secs=pulumi.get(__ret__, 'upgrade_time_in_secs'),
        version_profile_id=pulumi.get(__ret__, 'version_profile_id'),
        version_profile_name=pulumi.get(__ret__, 'version_profile_name'),
        version_profile_visibility_scope=pulumi.get(__ret__, 'version_profile_visibility_scope'))


@_utilities.lift_output_func(get_service_edge_group)
def get_service_edge_group_output(id: Optional[pulumi.Input[Optional[str]]] = None,
                                  name: Optional[pulumi.Input[Optional[str]]] = None,
                                  opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetServiceEdgeGroupResult]:
    """
    Use the **zpa_service_edge_group** data source to get information about a service edge group in the Zscaler Private Access cloud. This data source can then be referenced in an App Connector Group. This data source can then be referenced in the following resources:

    * Create a server group
    * Provisioning Key
    * Access policy rule

    ## Example Usage

    ```python
    import pulumi
    import pulumi_zpa as zpa

    foo = zpa.get_service_edge_group(name="DataCenter")
    ```

    ```python
    import pulumi
    import pulumi_zpa as zpa

    foo = zpa.get_service_edge_group(id="123456789")
    ```


    :param str id: The ID of the service edge group to be exported.
    :param str name: The name of the service edge group to be exported.
    """
    ...
