# 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

__all__ = [
    'GetPartnerResult',
    'AwaitableGetPartnerResult',
    'get_partner',
    'get_partner_output',
]

@pulumi.output_type
class GetPartnerResult:
    """
    A collection of values returned by getPartner.
    """
    def __init__(__self__, contact_email=None, created_at=None, id=None, logo_url=None, name=None, partner_id=None, portal_url=None, region=None, updated_at=None):
        if contact_email and not isinstance(contact_email, str):
            raise TypeError("Expected argument 'contact_email' to be a str")
        pulumi.set(__self__, "contact_email", contact_email)
        if created_at and not isinstance(created_at, str):
            raise TypeError("Expected argument 'created_at' to be a str")
        pulumi.set(__self__, "created_at", created_at)
        if id and not isinstance(id, str):
            raise TypeError("Expected argument 'id' to be a str")
        pulumi.set(__self__, "id", id)
        if logo_url and not isinstance(logo_url, str):
            raise TypeError("Expected argument 'logo_url' to be a str")
        pulumi.set(__self__, "logo_url", logo_url)
        if name and not isinstance(name, str):
            raise TypeError("Expected argument 'name' to be a str")
        pulumi.set(__self__, "name", name)
        if partner_id and not isinstance(partner_id, str):
            raise TypeError("Expected argument 'partner_id' to be a str")
        pulumi.set(__self__, "partner_id", partner_id)
        if portal_url and not isinstance(portal_url, str):
            raise TypeError("Expected argument 'portal_url' to be a str")
        pulumi.set(__self__, "portal_url", portal_url)
        if region and not isinstance(region, str):
            raise TypeError("Expected argument 'region' to be a str")
        pulumi.set(__self__, "region", region)
        if updated_at and not isinstance(updated_at, str):
            raise TypeError("Expected argument 'updated_at' to be a str")
        pulumi.set(__self__, "updated_at", updated_at)

    @_builtins.property
    @pulumi.getter(name="contactEmail")
    def contact_email(self) -> _builtins.str:
        """
        Contact email address of the partner.
        """
        return pulumi.get(self, "contact_email")

    @_builtins.property
    @pulumi.getter(name="createdAt")
    def created_at(self) -> _builtins.str:
        """
        Creation date of the partner.
        """
        return pulumi.get(self, "created_at")

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

    @_builtins.property
    @pulumi.getter(name="logoUrl")
    def logo_url(self) -> _builtins.str:
        """
        URL of the partner's logo.
        """
        return pulumi.get(self, "logo_url")

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

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

    @_builtins.property
    @pulumi.getter(name="portalUrl")
    def portal_url(self) -> _builtins.str:
        """
        URL of the partner's portal.
        """
        return pulumi.get(self, "portal_url")

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

    @_builtins.property
    @pulumi.getter(name="updatedAt")
    def updated_at(self) -> _builtins.str:
        """
        Last update date of the partner.
        """
        return pulumi.get(self, "updated_at")


class AwaitableGetPartnerResult(GetPartnerResult):
    # pylint: disable=using-constant-test
    def __await__(self):
        if False:
            yield self
        return GetPartnerResult(
            contact_email=self.contact_email,
            created_at=self.created_at,
            id=self.id,
            logo_url=self.logo_url,
            name=self.name,
            partner_id=self.partner_id,
            portal_url=self.portal_url,
            region=self.region,
            updated_at=self.updated_at)


def get_partner(name: Optional[_builtins.str] = None,
                partner_id: Optional[_builtins.str] = None,
                region: Optional[_builtins.str] = None,
                opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetPartnerResult:
    """
    Gets information about an Interlink Partner.

    A partner is an organization that provides shared connections at PoPs, allowing you to create hosted links without owning physical infrastructure.

    ## Example Usage

    ```python
    import pulumi
    import pulumi_scaleway as scaleway

    # Retrieve a partner by its ID
    by_id = scaleway.interlink.get_partner(partner_id="fr-par/11111111-1111-1111-1111-111111111111")
    ```

    ```python
    import pulumi
    import pulumi_scaleway as scaleway

    # Retrieve a partner by name
    by_name = scaleway.interlink.get_partner(name="FreePro")
    ```


    :param _builtins.str name: The name of the partner to filter for. Conflicts with `partner_id`.
    :param _builtins.str partner_id: The ID of the partner. Can be a plain UUID or a regional ID. Conflicts with `name`.
    :param _builtins.str region: `region`) The region in which the partner operates.
    """
    __args__ = dict()
    __args__['name'] = name
    __args__['partnerId'] = partner_id
    __args__['region'] = region
    opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
    __ret__ = pulumi.runtime.invoke('scaleway:interlink/getPartner:getPartner', __args__, opts=opts, typ=GetPartnerResult).value

    return AwaitableGetPartnerResult(
        contact_email=pulumi.get(__ret__, 'contact_email'),
        created_at=pulumi.get(__ret__, 'created_at'),
        id=pulumi.get(__ret__, 'id'),
        logo_url=pulumi.get(__ret__, 'logo_url'),
        name=pulumi.get(__ret__, 'name'),
        partner_id=pulumi.get(__ret__, 'partner_id'),
        portal_url=pulumi.get(__ret__, 'portal_url'),
        region=pulumi.get(__ret__, 'region'),
        updated_at=pulumi.get(__ret__, 'updated_at'))
def get_partner_output(name: Optional[pulumi.Input[Optional[_builtins.str]]] = None,
                       partner_id: Optional[pulumi.Input[Optional[_builtins.str]]] = None,
                       region: Optional[pulumi.Input[Optional[_builtins.str]]] = None,
                       opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetPartnerResult]:
    """
    Gets information about an Interlink Partner.

    A partner is an organization that provides shared connections at PoPs, allowing you to create hosted links without owning physical infrastructure.

    ## Example Usage

    ```python
    import pulumi
    import pulumi_scaleway as scaleway

    # Retrieve a partner by its ID
    by_id = scaleway.interlink.get_partner(partner_id="fr-par/11111111-1111-1111-1111-111111111111")
    ```

    ```python
    import pulumi
    import pulumi_scaleway as scaleway

    # Retrieve a partner by name
    by_name = scaleway.interlink.get_partner(name="FreePro")
    ```


    :param _builtins.str name: The name of the partner to filter for. Conflicts with `partner_id`.
    :param _builtins.str partner_id: The ID of the partner. Can be a plain UUID or a regional ID. Conflicts with `name`.
    :param _builtins.str region: `region`) The region in which the partner operates.
    """
    __args__ = dict()
    __args__['name'] = name
    __args__['partnerId'] = partner_id
    __args__['region'] = region
    opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
    __ret__ = pulumi.runtime.invoke_output('scaleway:interlink/getPartner:getPartner', __args__, opts=opts, typ=GetPartnerResult)
    return __ret__.apply(lambda __response__: GetPartnerResult(
        contact_email=pulumi.get(__response__, 'contact_email'),
        created_at=pulumi.get(__response__, 'created_at'),
        id=pulumi.get(__response__, 'id'),
        logo_url=pulumi.get(__response__, 'logo_url'),
        name=pulumi.get(__response__, 'name'),
        partner_id=pulumi.get(__response__, 'partner_id'),
        portal_url=pulumi.get(__response__, 'portal_url'),
        region=pulumi.get(__response__, 'region'),
        updated_at=pulumi.get(__response__, 'updated_at')))
