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

__all__ = [
    'GetStreatGovernanceClusterResult',
    'AwaitableGetStreatGovernanceClusterResult',
    'get_streat_governance_cluster',
    'get_streat_governance_cluster_output',
]

@pulumi.output_type
class GetStreatGovernanceClusterResult:
    """
    A collection of values returned by getStreatGovernanceCluster.
    """
    def __init__(__self__, api_version=None, display_name=None, environment=None, http_endpoint=None, id=None, kind=None, package=None, regions=None, resource_name=None):
        if api_version and not isinstance(api_version, str):
            raise TypeError("Expected argument 'api_version' to be a str")
        pulumi.set(__self__, "api_version", api_version)
        if display_name and not isinstance(display_name, str):
            raise TypeError("Expected argument 'display_name' to be a str")
        pulumi.set(__self__, "display_name", display_name)
        if environment and not isinstance(environment, dict):
            raise TypeError("Expected argument 'environment' to be a dict")
        pulumi.set(__self__, "environment", environment)
        if http_endpoint and not isinstance(http_endpoint, str):
            raise TypeError("Expected argument 'http_endpoint' to be a str")
        pulumi.set(__self__, "http_endpoint", http_endpoint)
        if id and not isinstance(id, str):
            raise TypeError("Expected argument 'id' to be a str")
        pulumi.set(__self__, "id", id)
        if kind and not isinstance(kind, str):
            raise TypeError("Expected argument 'kind' to be a str")
        pulumi.set(__self__, "kind", kind)
        if package and not isinstance(package, str):
            raise TypeError("Expected argument 'package' to be a str")
        pulumi.set(__self__, "package", package)
        if regions and not isinstance(regions, list):
            raise TypeError("Expected argument 'regions' to be a list")
        pulumi.set(__self__, "regions", regions)
        if resource_name and not isinstance(resource_name, str):
            raise TypeError("Expected argument 'resource_name' to be a str")
        pulumi.set(__self__, "resource_name", resource_name)

    @property
    @pulumi.getter(name="apiVersion")
    def api_version(self) -> str:
        """
        (Required String) An API Version of the schema version of the Stream Governance cluster, for example, `stream-governance/v2`.
        """
        return pulumi.get(self, "api_version")

    @property
    @pulumi.getter(name="displayName")
    def display_name(self) -> str:
        """
        (Required String) The name of the Stream Governance cluster, for example, `Stream Governance Package`.
        """
        return pulumi.get(self, "display_name")

    @property
    @pulumi.getter
    def environment(self) -> 'outputs.GetStreatGovernanceClusterEnvironmentResult':
        return pulumi.get(self, "environment")

    @property
    @pulumi.getter(name="httpEndpoint")
    def http_endpoint(self) -> str:
        """
        (Required String) The HTTP endpoint of the Stream Governance cluster, for example, `https://psrc-00000.us-west-2.aws.confluent.cloud`.
        """
        return pulumi.get(self, "http_endpoint")

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

    @property
    @pulumi.getter
    def kind(self) -> str:
        """
        (Required String) A kind of the Stream Governance cluster, for example, `Cluster`.
        """
        return pulumi.get(self, "kind")

    @property
    @pulumi.getter
    def package(self) -> str:
        """
        (Required String) The type of the billing package. Accepted values are: `ESSENTIALS` and `ADVANCED`.
        - `region` (Required Configuration Block) supports the following:
        """
        return pulumi.get(self, "package")

    @property
    @pulumi.getter
    def regions(self) -> Sequence['outputs.GetStreatGovernanceClusterRegionResult']:
        return pulumi.get(self, "regions")

    @property
    @pulumi.getter(name="resourceName")
    def resource_name(self) -> str:
        """
        (Required String) The Confluent Resource Name of the Stream Governance cluster, for example, `crn://confluent.cloud/organization=1111aaaa-11aa-11aa-11aa-111111aaaaaa/environment=env-abc123/schema-registry=lsrc-abc123`.
        """
        return pulumi.get(self, "resource_name")


class AwaitableGetStreatGovernanceClusterResult(GetStreatGovernanceClusterResult):
    # pylint: disable=using-constant-test
    def __await__(self):
        if False:
            yield self
        return GetStreatGovernanceClusterResult(
            api_version=self.api_version,
            display_name=self.display_name,
            environment=self.environment,
            http_endpoint=self.http_endpoint,
            id=self.id,
            kind=self.kind,
            package=self.package,
            regions=self.regions,
            resource_name=self.resource_name)


def get_streat_governance_cluster(display_name: Optional[str] = None,
                                  environment: Optional[pulumi.InputType['GetStreatGovernanceClusterEnvironmentArgs']] = None,
                                  id: Optional[str] = None,
                                  opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetStreatGovernanceClusterResult:
    """
    [![Open Preview](https://img.shields.io/badge/Lifecycle%20Stage-Open%20Preview-%2300afba)](https://docs.confluent.io/cloud/current/api.html#section/Versioning/API-Lifecycle-Policy)

    !> **WARNING:** `StreamGovernanceCluster` data source is deprecated and will be removed in the next version. Use `SchemaRegistryCluster` instead.

    > **Note:** `StreamGovernanceCluster` resource is available in **Open Preview** for early adopters. Open Preview features are introduced to gather customer feedback. This feature should be used only for evaluation and non-production testing purposes or to provide feedback to Confluent, particularly as it becomes more widely available in follow-on editions.\\
    **Open Preview** features are intended for evaluation use in development and testing environments only, and not for production use. The warranty, SLA, and Support Services provisions of your agreement with Confluent do not apply to Open Preview features. Open Preview features are considered to be a Proof of Concept as defined in the Confluent Cloud Terms of Service. Confluent may discontinue providing preview releases of the Open Preview features at any time in Confluent’s sole discretion.

    `StreamGovernanceCluster` describes a Stream Governance cluster data source.

    ## Example Usage

    ```python
    import pulumi
    import pulumi_confluentcloud as confluentcloud

    example_using_id_streat_governance_cluster = confluentcloud.get_streat_governance_cluster(id="lsrc-abc123",
        environment=confluentcloud.GetStreatGovernanceClusterEnvironmentArgs(
            id="env-xyz456",
        ))
    pulumi.export("exampleUsingId", example_using_id_streat_governance_cluster)
    example_using_name_streat_governance_cluster = confluentcloud.get_streat_governance_cluster(display_name="Stream Governance Package",
        environment=confluentcloud.GetStreatGovernanceClusterEnvironmentArgs(
            id="env-xyz456",
        ))
    pulumi.export("exampleUsingName", example_using_name_streat_governance_cluster)
    ```


    :param str display_name: The name for the Stream Governance cluster.
    :param str id: The ID of the Environment that the Stream Governance cluster belongs to, for example, `env-xyz456`.
    """
    __args__ = dict()
    __args__['displayName'] = display_name
    __args__['environment'] = environment
    __args__['id'] = id
    opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
    __ret__ = pulumi.runtime.invoke('confluentcloud:index/getStreatGovernanceCluster:getStreatGovernanceCluster', __args__, opts=opts, typ=GetStreatGovernanceClusterResult).value

    return AwaitableGetStreatGovernanceClusterResult(
        api_version=__ret__.api_version,
        display_name=__ret__.display_name,
        environment=__ret__.environment,
        http_endpoint=__ret__.http_endpoint,
        id=__ret__.id,
        kind=__ret__.kind,
        package=__ret__.package,
        regions=__ret__.regions,
        resource_name=__ret__.resource_name)


@_utilities.lift_output_func(get_streat_governance_cluster)
def get_streat_governance_cluster_output(display_name: Optional[pulumi.Input[Optional[str]]] = None,
                                         environment: Optional[pulumi.Input[pulumi.InputType['GetStreatGovernanceClusterEnvironmentArgs']]] = None,
                                         id: Optional[pulumi.Input[Optional[str]]] = None,
                                         opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetStreatGovernanceClusterResult]:
    """
    [![Open Preview](https://img.shields.io/badge/Lifecycle%20Stage-Open%20Preview-%2300afba)](https://docs.confluent.io/cloud/current/api.html#section/Versioning/API-Lifecycle-Policy)

    !> **WARNING:** `StreamGovernanceCluster` data source is deprecated and will be removed in the next version. Use `SchemaRegistryCluster` instead.

    > **Note:** `StreamGovernanceCluster` resource is available in **Open Preview** for early adopters. Open Preview features are introduced to gather customer feedback. This feature should be used only for evaluation and non-production testing purposes or to provide feedback to Confluent, particularly as it becomes more widely available in follow-on editions.\\
    **Open Preview** features are intended for evaluation use in development and testing environments only, and not for production use. The warranty, SLA, and Support Services provisions of your agreement with Confluent do not apply to Open Preview features. Open Preview features are considered to be a Proof of Concept as defined in the Confluent Cloud Terms of Service. Confluent may discontinue providing preview releases of the Open Preview features at any time in Confluent’s sole discretion.

    `StreamGovernanceCluster` describes a Stream Governance cluster data source.

    ## Example Usage

    ```python
    import pulumi
    import pulumi_confluentcloud as confluentcloud

    example_using_id_streat_governance_cluster = confluentcloud.get_streat_governance_cluster(id="lsrc-abc123",
        environment=confluentcloud.GetStreatGovernanceClusterEnvironmentArgs(
            id="env-xyz456",
        ))
    pulumi.export("exampleUsingId", example_using_id_streat_governance_cluster)
    example_using_name_streat_governance_cluster = confluentcloud.get_streat_governance_cluster(display_name="Stream Governance Package",
        environment=confluentcloud.GetStreatGovernanceClusterEnvironmentArgs(
            id="env-xyz456",
        ))
    pulumi.export("exampleUsingName", example_using_name_streat_governance_cluster)
    ```


    :param str display_name: The name for the Stream Governance cluster.
    :param str id: The ID of the Environment that the Stream Governance cluster belongs to, for example, `env-xyz456`.
    """
    ...
