# 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 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__ = [
    'GetAwsOrgVpcPeeringConnectionResult',
    'AwaitableGetAwsOrgVpcPeeringConnectionResult',
    'get_aws_org_vpc_peering_connection',
    'get_aws_org_vpc_peering_connection_output',
]

@pulumi.output_type
class GetAwsOrgVpcPeeringConnectionResult:
    """
    A collection of values returned by getAwsOrgVpcPeeringConnection.
    """
    def __init__(__self__, aws_account_id=None, aws_vpc_id=None, aws_vpc_peering_connection_id=None, aws_vpc_region=None, id=None, organization_id=None, organization_vpc_id=None, peering_connection_id=None, state=None):
        if aws_account_id and not isinstance(aws_account_id, str):
            raise TypeError("Expected argument 'aws_account_id' to be a str")
        pulumi.set(__self__, "aws_account_id", aws_account_id)
        if aws_vpc_id and not isinstance(aws_vpc_id, str):
            raise TypeError("Expected argument 'aws_vpc_id' to be a str")
        pulumi.set(__self__, "aws_vpc_id", aws_vpc_id)
        if aws_vpc_peering_connection_id and not isinstance(aws_vpc_peering_connection_id, str):
            raise TypeError("Expected argument 'aws_vpc_peering_connection_id' to be a str")
        pulumi.set(__self__, "aws_vpc_peering_connection_id", aws_vpc_peering_connection_id)
        if aws_vpc_region and not isinstance(aws_vpc_region, str):
            raise TypeError("Expected argument 'aws_vpc_region' to be a str")
        pulumi.set(__self__, "aws_vpc_region", aws_vpc_region)
        if id and not isinstance(id, str):
            raise TypeError("Expected argument 'id' to be a str")
        pulumi.set(__self__, "id", id)
        if organization_id and not isinstance(organization_id, str):
            raise TypeError("Expected argument 'organization_id' to be a str")
        pulumi.set(__self__, "organization_id", organization_id)
        if organization_vpc_id and not isinstance(organization_vpc_id, str):
            raise TypeError("Expected argument 'organization_vpc_id' to be a str")
        pulumi.set(__self__, "organization_vpc_id", organization_vpc_id)
        if peering_connection_id and not isinstance(peering_connection_id, str):
            raise TypeError("Expected argument 'peering_connection_id' to be a str")
        pulumi.set(__self__, "peering_connection_id", peering_connection_id)
        if state and not isinstance(state, str):
            raise TypeError("Expected argument 'state' to be a str")
        pulumi.set(__self__, "state", state)

    @property
    @pulumi.getter(name="awsAccountId")
    def aws_account_id(self) -> str:
        """
        AWS account ID. Changing this property forces recreation of the resource.
        """
        return pulumi.get(self, "aws_account_id")

    @property
    @pulumi.getter(name="awsVpcId")
    def aws_vpc_id(self) -> str:
        """
        AWS VPC ID. Changing this property forces recreation of the resource.
        """
        return pulumi.get(self, "aws_vpc_id")

    @property
    @pulumi.getter(name="awsVpcPeeringConnectionId")
    def aws_vpc_peering_connection_id(self) -> str:
        """
        The ID of the AWS VPC peering connection.
        """
        return pulumi.get(self, "aws_vpc_peering_connection_id")

    @property
    @pulumi.getter(name="awsVpcRegion")
    def aws_vpc_region(self) -> str:
        """
        The AWS region of the peered VPC. For example, `eu-central-1`.
        """
        return pulumi.get(self, "aws_vpc_region")

    @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="organizationId")
    def organization_id(self) -> str:
        """
        Identifier of the organization.
        """
        return pulumi.get(self, "organization_id")

    @property
    @pulumi.getter(name="organizationVpcId")
    def organization_vpc_id(self) -> str:
        """
        Identifier of the organization VPC.
        """
        return pulumi.get(self, "organization_vpc_id")

    @property
    @pulumi.getter(name="peeringConnectionId")
    def peering_connection_id(self) -> str:
        """
        The ID of the peering connection.
        """
        return pulumi.get(self, "peering_connection_id")

    @property
    @pulumi.getter
    def state(self) -> str:
        """
        State of the peering connection. The possible values are `ACTIVE`, `APPROVED`, `APPROVED_PEER_REQUESTED`, `DELETED`, `DELETED_BY_PEER`, `DELETING`, `ERROR`, `INVALID_SPECIFICATION`, `PENDING_PEER` and `REJECTED_BY_PEER`.
        """
        return pulumi.get(self, "state")


class AwaitableGetAwsOrgVpcPeeringConnectionResult(GetAwsOrgVpcPeeringConnectionResult):
    # pylint: disable=using-constant-test
    def __await__(self):
        if False:
            yield self
        return GetAwsOrgVpcPeeringConnectionResult(
            aws_account_id=self.aws_account_id,
            aws_vpc_id=self.aws_vpc_id,
            aws_vpc_peering_connection_id=self.aws_vpc_peering_connection_id,
            aws_vpc_region=self.aws_vpc_region,
            id=self.id,
            organization_id=self.organization_id,
            organization_vpc_id=self.organization_vpc_id,
            peering_connection_id=self.peering_connection_id,
            state=self.state)


def get_aws_org_vpc_peering_connection(aws_account_id: Optional[str] = None,
                                       aws_vpc_id: Optional[str] = None,
                                       aws_vpc_region: Optional[str] = None,
                                       organization_id: Optional[str] = None,
                                       organization_vpc_id: Optional[str] = None,
                                       opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetAwsOrgVpcPeeringConnectionResult:
    """
    Gets information about an AWS VPC peering connection.

    **This resource is in the beta stage and may change without notice.** Set
    the `PROVIDER_AIVEN_ENABLE_BETA` environment variable to use the resource.


    :param str aws_account_id: AWS account ID. Changing this property forces recreation of the resource.
    :param str aws_vpc_id: AWS VPC ID. Changing this property forces recreation of the resource.
    :param str aws_vpc_region: The AWS region of the peered VPC. For example, `eu-central-1`.
    :param str organization_id: Identifier of the organization.
    :param str organization_vpc_id: Identifier of the organization VPC.
    """
    __args__ = dict()
    __args__['awsAccountId'] = aws_account_id
    __args__['awsVpcId'] = aws_vpc_id
    __args__['awsVpcRegion'] = aws_vpc_region
    __args__['organizationId'] = organization_id
    __args__['organizationVpcId'] = organization_vpc_id
    opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
    __ret__ = pulumi.runtime.invoke('aiven:index/getAwsOrgVpcPeeringConnection:getAwsOrgVpcPeeringConnection', __args__, opts=opts, typ=GetAwsOrgVpcPeeringConnectionResult).value

    return AwaitableGetAwsOrgVpcPeeringConnectionResult(
        aws_account_id=pulumi.get(__ret__, 'aws_account_id'),
        aws_vpc_id=pulumi.get(__ret__, 'aws_vpc_id'),
        aws_vpc_peering_connection_id=pulumi.get(__ret__, 'aws_vpc_peering_connection_id'),
        aws_vpc_region=pulumi.get(__ret__, 'aws_vpc_region'),
        id=pulumi.get(__ret__, 'id'),
        organization_id=pulumi.get(__ret__, 'organization_id'),
        organization_vpc_id=pulumi.get(__ret__, 'organization_vpc_id'),
        peering_connection_id=pulumi.get(__ret__, 'peering_connection_id'),
        state=pulumi.get(__ret__, 'state'))
def get_aws_org_vpc_peering_connection_output(aws_account_id: Optional[pulumi.Input[str]] = None,
                                              aws_vpc_id: Optional[pulumi.Input[str]] = None,
                                              aws_vpc_region: Optional[pulumi.Input[str]] = None,
                                              organization_id: Optional[pulumi.Input[str]] = None,
                                              organization_vpc_id: Optional[pulumi.Input[str]] = None,
                                              opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetAwsOrgVpcPeeringConnectionResult]:
    """
    Gets information about an AWS VPC peering connection.

    **This resource is in the beta stage and may change without notice.** Set
    the `PROVIDER_AIVEN_ENABLE_BETA` environment variable to use the resource.


    :param str aws_account_id: AWS account ID. Changing this property forces recreation of the resource.
    :param str aws_vpc_id: AWS VPC ID. Changing this property forces recreation of the resource.
    :param str aws_vpc_region: The AWS region of the peered VPC. For example, `eu-central-1`.
    :param str organization_id: Identifier of the organization.
    :param str organization_vpc_id: Identifier of the organization VPC.
    """
    __args__ = dict()
    __args__['awsAccountId'] = aws_account_id
    __args__['awsVpcId'] = aws_vpc_id
    __args__['awsVpcRegion'] = aws_vpc_region
    __args__['organizationId'] = organization_id
    __args__['organizationVpcId'] = organization_vpc_id
    opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
    __ret__ = pulumi.runtime.invoke_output('aiven:index/getAwsOrgVpcPeeringConnection:getAwsOrgVpcPeeringConnection', __args__, opts=opts, typ=GetAwsOrgVpcPeeringConnectionResult)
    return __ret__.apply(lambda __response__: GetAwsOrgVpcPeeringConnectionResult(
        aws_account_id=pulumi.get(__response__, 'aws_account_id'),
        aws_vpc_id=pulumi.get(__response__, 'aws_vpc_id'),
        aws_vpc_peering_connection_id=pulumi.get(__response__, 'aws_vpc_peering_connection_id'),
        aws_vpc_region=pulumi.get(__response__, 'aws_vpc_region'),
        id=pulumi.get(__response__, 'id'),
        organization_id=pulumi.get(__response__, 'organization_id'),
        organization_vpc_id=pulumi.get(__response__, 'organization_vpc_id'),
        peering_connection_id=pulumi.get(__response__, 'peering_connection_id'),
        state=pulumi.get(__response__, 'state')))
