<filename>sdk/python/pulumi_aws_native/ec2/get_ipam.py
# coding=utf-8
# *** WARNING: this file was generated by the Pulumi SDK Generator. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

import warnings
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
from .. import _utilities
from . import outputs

__all__ = [
    'GetIPAMResult',
    'AwaitableGetIPAMResult',
    'get_ipam',
    'get_ipam_output',
]

@pulumi.output_type
class GetIPAMResult:
    def __init__(__self__, arn=None, description=None, ipam_id=None, operating_regions=None, private_default_scope_id=None, public_default_scope_id=None, scope_count=None, tags=None):
        if arn and not isinstance(arn, str):
            raise TypeError("Expected argument 'arn' to be a str")
        pulumi.set(__self__, "arn", arn)
        if description and not isinstance(description, str):
            raise TypeError("Expected argument 'description' to be a str")
        pulumi.set(__self__, "description", description)
        if ipam_id and not isinstance(ipam_id, str):
            raise TypeError("Expected argument 'ipam_id' to be a str")
        pulumi.set(__self__, "ipam_id", ipam_id)
        if operating_regions and not isinstance(operating_regions, list):
            raise TypeError("Expected argument 'operating_regions' to be a list")
        pulumi.set(__self__, "operating_regions", operating_regions)
        if private_default_scope_id and not isinstance(private_default_scope_id, str):
            raise TypeError("Expected argument 'private_default_scope_id' to be a str")
        pulumi.set(__self__, "private_default_scope_id", private_default_scope_id)
        if public_default_scope_id and not isinstance(public_default_scope_id, str):
            raise TypeError("Expected argument 'public_default_scope_id' to be a str")
        pulumi.set(__self__, "public_default_scope_id", public_default_scope_id)
        if scope_count and not isinstance(scope_count, int):
            raise TypeError("Expected argument 'scope_count' to be a int")
        pulumi.set(__self__, "scope_count", scope_count)
        if tags and not isinstance(tags, list):
            raise TypeError("Expected argument 'tags' to be a list")
        pulumi.set(__self__, "tags", tags)

    @property
    @pulumi.getter
    def arn(self) -> Optional[str]:
        """
        The Amazon Resource Name (ARN) of the IPAM.
        """
        return pulumi.get(self, "arn")

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

    @property
    @pulumi.getter(name="ipamId")
    def ipam_id(self) -> Optional[str]:
        """
        Id of the IPAM.
        """
        return pulumi.get(self, "ipam_id")

    @property
    @pulumi.getter(name="operatingRegions")
    def operating_regions(self) -> Optional[Sequence['outputs.IPAMIpamOperatingRegion']]:
        """
        The regions IPAM is enabled for. Allows pools to be created in these regions, as well as enabling monitoring
        """
        return pulumi.get(self, "operating_regions")

    @property
    @pulumi.getter(name="privateDefaultScopeId")
    def private_default_scope_id(self) -> Optional[str]:
        """
        The Id of the default scope for publicly routable IP space, created with this IPAM.
        """
        return pulumi.get(self, "private_default_scope_id")

    @property
    @pulumi.getter(name="publicDefaultScopeId")
    def public_default_scope_id(self) -> Optional[str]:
        """
        The Id of the default scope for publicly routable IP space, created with this IPAM.
        """
        return pulumi.get(self, "public_default_scope_id")

    @property
    @pulumi.getter(name="scopeCount")
    def scope_count(self) -> Optional[int]:
        """
        The number of scopes that currently exist in this IPAM.
        """
        return pulumi.get(self, "scope_count")

    @property
    @pulumi.getter
    def tags(self) -> Optional[Sequence['outputs.IPAMTag']]:
        """
        An array of key-value pairs to apply to this resource.
        """
        return pulumi.get(self, "tags")


class AwaitableGetIPAMResult(GetIPAMResult):
    # pylint: disable=using-constant-test
    def __await__(self):
        if False:
            yield self
        return GetIPAMResult(
            arn=self.arn,
            description=self.description,
            ipam_id=self.ipam_id,
            operating_regions=self.operating_regions,
            private_default_scope_id=self.private_default_scope_id,
            public_default_scope_id=self.public_default_scope_id,
            scope_count=self.scope_count,
            tags=self.tags)


def get_ipam(ipam_id: Optional[str] = None,
             opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetIPAMResult:
    """
    Resource Schema of AWS::EC2::IPAM Type


    :param str ipam_id: Id of the IPAM.
    """
    __args__ = dict()
    __args__['ipamId'] = ipam_id
    if opts is None:
        opts = pulumi.InvokeOptions()
    if opts.version is None:
        opts.version = _utilities.get_version()
    __ret__ = pulumi.runtime.invoke('aws-native:ec2:getIPAM', __args__, opts=opts, typ=GetIPAMResult).value

    return AwaitableGetIPAMResult(
        arn=__ret__.arn,
        description=__ret__.description,
        ipam_id=__ret__.ipam_id,
        operating_regions=__ret__.operating_regions,
        private_default_scope_id=__ret__.private_default_scope_id,
        public_default_scope_id=__ret__.public_default_scope_id,
        scope_count=__ret__.scope_count,
        tags=__ret__.tags)


@_utilities.lift_output_func(get_ipam)
def get_ipam_output(ipam_id: Optional[pulumi.Input[str]] = None,
                    opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetIPAMResult]:
    """
    Resource Schema of AWS::EC2::IPAM Type


    :param str ipam_id: Id of the IPAM.
    """
    ...
