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

__all__ = [
    'GetPartnerAttachmentResult',
    'AwaitableGetPartnerAttachmentResult',
    'get_partner_attachment',
    'get_partner_attachment_output',
]

@pulumi.output_type
class GetPartnerAttachmentResult:
    """
    A collection of values returned by getPartnerAttachment.
    """
    def __init__(__self__, bgp=None, childrens=None, connection_bandwidth_in_mbps=None, created_at=None, id=None, naas_provider=None, name=None, parent_uuid=None, redundancy_zone=None, region=None, state=None, vpc_ids=None):
        if bgp and not isinstance(bgp, dict):
            raise TypeError("Expected argument 'bgp' to be a dict")
        pulumi.set(__self__, "bgp", bgp)
        if childrens and not isinstance(childrens, list):
            raise TypeError("Expected argument 'childrens' to be a list")
        pulumi.set(__self__, "childrens", childrens)
        if connection_bandwidth_in_mbps and not isinstance(connection_bandwidth_in_mbps, int):
            raise TypeError("Expected argument 'connection_bandwidth_in_mbps' to be a int")
        pulumi.set(__self__, "connection_bandwidth_in_mbps", connection_bandwidth_in_mbps)
        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 naas_provider and not isinstance(naas_provider, str):
            raise TypeError("Expected argument 'naas_provider' to be a str")
        pulumi.set(__self__, "naas_provider", naas_provider)
        if name and not isinstance(name, str):
            raise TypeError("Expected argument 'name' to be a str")
        pulumi.set(__self__, "name", name)
        if parent_uuid and not isinstance(parent_uuid, str):
            raise TypeError("Expected argument 'parent_uuid' to be a str")
        pulumi.set(__self__, "parent_uuid", parent_uuid)
        if redundancy_zone and not isinstance(redundancy_zone, str):
            raise TypeError("Expected argument 'redundancy_zone' to be a str")
        pulumi.set(__self__, "redundancy_zone", redundancy_zone)
        if region and not isinstance(region, str):
            raise TypeError("Expected argument 'region' to be a str")
        pulumi.set(__self__, "region", region)
        if state and not isinstance(state, str):
            raise TypeError("Expected argument 'state' to be a str")
        pulumi.set(__self__, "state", state)
        if vpc_ids and not isinstance(vpc_ids, list):
            raise TypeError("Expected argument 'vpc_ids' to be a list")
        pulumi.set(__self__, "vpc_ids", vpc_ids)

    @_builtins.property
    @pulumi.getter
    def bgp(self) -> Optional['outputs.GetPartnerAttachmentBgpResult']:
        return pulumi.get(self, "bgp")

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

    @_builtins.property
    @pulumi.getter(name="connectionBandwidthInMbps")
    def connection_bandwidth_in_mbps(self) -> _builtins.int:
        return pulumi.get(self, "connection_bandwidth_in_mbps")

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

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

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

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

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

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

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

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

    @_builtins.property
    @pulumi.getter(name="vpcIds")
    def vpc_ids(self) -> Sequence[_builtins.str]:
        return pulumi.get(self, "vpc_ids")


class AwaitableGetPartnerAttachmentResult(GetPartnerAttachmentResult):
    # pylint: disable=using-constant-test
    def __await__(self):
        if False:
            yield self
        return GetPartnerAttachmentResult(
            bgp=self.bgp,
            childrens=self.childrens,
            connection_bandwidth_in_mbps=self.connection_bandwidth_in_mbps,
            created_at=self.created_at,
            id=self.id,
            naas_provider=self.naas_provider,
            name=self.name,
            parent_uuid=self.parent_uuid,
            redundancy_zone=self.redundancy_zone,
            region=self.region,
            state=self.state,
            vpc_ids=self.vpc_ids)


def get_partner_attachment(bgp: Optional[Union['GetPartnerAttachmentBgpArgs', 'GetPartnerAttachmentBgpArgsDict']] = None,
                           id: Optional[_builtins.str] = None,
                           name: Optional[_builtins.str] = None,
                           redundancy_zone: Optional[_builtins.str] = None,
                           opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetPartnerAttachmentResult:
    """
    Use this data source to access information about an existing resource.
    """
    __args__ = dict()
    __args__['bgp'] = bgp
    __args__['id'] = id
    __args__['name'] = name
    __args__['redundancyZone'] = redundancy_zone
    opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
    __ret__ = pulumi.runtime.invoke('digitalocean:index/getPartnerAttachment:getPartnerAttachment', __args__, opts=opts, typ=GetPartnerAttachmentResult).value

    return AwaitableGetPartnerAttachmentResult(
        bgp=pulumi.get(__ret__, 'bgp'),
        childrens=pulumi.get(__ret__, 'childrens'),
        connection_bandwidth_in_mbps=pulumi.get(__ret__, 'connection_bandwidth_in_mbps'),
        created_at=pulumi.get(__ret__, 'created_at'),
        id=pulumi.get(__ret__, 'id'),
        naas_provider=pulumi.get(__ret__, 'naas_provider'),
        name=pulumi.get(__ret__, 'name'),
        parent_uuid=pulumi.get(__ret__, 'parent_uuid'),
        redundancy_zone=pulumi.get(__ret__, 'redundancy_zone'),
        region=pulumi.get(__ret__, 'region'),
        state=pulumi.get(__ret__, 'state'),
        vpc_ids=pulumi.get(__ret__, 'vpc_ids'))
def get_partner_attachment_output(bgp: Optional[pulumi.Input[Optional[Union['GetPartnerAttachmentBgpArgs', 'GetPartnerAttachmentBgpArgsDict']]]] = None,
                                  id: Optional[pulumi.Input[Optional[_builtins.str]]] = None,
                                  name: Optional[pulumi.Input[Optional[_builtins.str]]] = None,
                                  redundancy_zone: Optional[pulumi.Input[Optional[_builtins.str]]] = None,
                                  opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetPartnerAttachmentResult]:
    """
    Use this data source to access information about an existing resource.
    """
    __args__ = dict()
    __args__['bgp'] = bgp
    __args__['id'] = id
    __args__['name'] = name
    __args__['redundancyZone'] = redundancy_zone
    opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
    __ret__ = pulumi.runtime.invoke_output('digitalocean:index/getPartnerAttachment:getPartnerAttachment', __args__, opts=opts, typ=GetPartnerAttachmentResult)
    return __ret__.apply(lambda __response__: GetPartnerAttachmentResult(
        bgp=pulumi.get(__response__, 'bgp'),
        childrens=pulumi.get(__response__, 'childrens'),
        connection_bandwidth_in_mbps=pulumi.get(__response__, 'connection_bandwidth_in_mbps'),
        created_at=pulumi.get(__response__, 'created_at'),
        id=pulumi.get(__response__, 'id'),
        naas_provider=pulumi.get(__response__, 'naas_provider'),
        name=pulumi.get(__response__, 'name'),
        parent_uuid=pulumi.get(__response__, 'parent_uuid'),
        redundancy_zone=pulumi.get(__response__, 'redundancy_zone'),
        region=pulumi.get(__response__, 'region'),
        state=pulumi.get(__response__, 'state'),
        vpc_ids=pulumi.get(__response__, 'vpc_ids')))
