# 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

__all__ = [
    'GetInterfacesFilterResult',
    'GetInterfacesInterfaceResult',
    'GetInterfacesInterfaceTaggedVlanResult',
    'GetInterfacesInterfaceUntaggedVlanResult',
    'GetIpAddressesFilterResult',
    'GetIpAddressesIpAddressResult',
    'GetIpAddressesIpAddressTenantResult',
    'GetRegionFilterResult',
    'GetTenantsFilterResult',
    'GetTenantsTenantResult',
    'GetTenantsTenantTenantGroupResult',
    'GetVirtualMachinesFilterResult',
    'GetVirtualMachinesVmResult',
]

@pulumi.output_type
class GetInterfacesFilterResult(dict):
    def __init__(__self__, *,
                 name: str,
                 value: str):
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "value", value)

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

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


@pulumi.output_type
class GetInterfacesInterfaceResult(dict):
    def __init__(__self__, *,
                 description: str,
                 enabled: bool,
                 mac_address: str,
                 mode: Mapping[str, str],
                 mtu: int,
                 name: str,
                 tag_ids: Sequence[int],
                 tagged_vlans: Sequence['outputs.GetInterfacesInterfaceTaggedVlanResult'],
                 untagged_vlans: Sequence['outputs.GetInterfacesInterfaceUntaggedVlanResult'],
                 vm_id: int):
        pulumi.set(__self__, "description", description)
        pulumi.set(__self__, "enabled", enabled)
        pulumi.set(__self__, "mac_address", mac_address)
        pulumi.set(__self__, "mode", mode)
        pulumi.set(__self__, "mtu", mtu)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "tag_ids", tag_ids)
        pulumi.set(__self__, "tagged_vlans", tagged_vlans)
        pulumi.set(__self__, "untagged_vlans", untagged_vlans)
        pulumi.set(__self__, "vm_id", vm_id)

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

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

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

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

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

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

    @property
    @pulumi.getter(name="tagIds")
    def tag_ids(self) -> Sequence[int]:
        return pulumi.get(self, "tag_ids")

    @property
    @pulumi.getter(name="taggedVlans")
    def tagged_vlans(self) -> Sequence['outputs.GetInterfacesInterfaceTaggedVlanResult']:
        return pulumi.get(self, "tagged_vlans")

    @property
    @pulumi.getter(name="untaggedVlans")
    def untagged_vlans(self) -> Sequence['outputs.GetInterfacesInterfaceUntaggedVlanResult']:
        return pulumi.get(self, "untagged_vlans")

    @property
    @pulumi.getter(name="vmId")
    def vm_id(self) -> int:
        return pulumi.get(self, "vm_id")


@pulumi.output_type
class GetInterfacesInterfaceTaggedVlanResult(dict):
    def __init__(__self__, *,
                 id: int,
                 name: str,
                 vid: int):
        """
        :param int id: The ID of this resource.
        """
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "vid", vid)

    @property
    @pulumi.getter
    def id(self) -> int:
        """
        The ID of this resource.
        """
        return pulumi.get(self, "id")

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

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


@pulumi.output_type
class GetInterfacesInterfaceUntaggedVlanResult(dict):
    def __init__(__self__, *,
                 id: int,
                 name: str,
                 vid: int):
        """
        :param int id: The ID of this resource.
        """
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "vid", vid)

    @property
    @pulumi.getter
    def id(self) -> int:
        """
        The ID of this resource.
        """
        return pulumi.get(self, "id")

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

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


@pulumi.output_type
class GetIpAddressesFilterResult(dict):
    def __init__(__self__, *,
                 name: str,
                 value: str):
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "value", value)

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

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


@pulumi.output_type
class GetIpAddressesIpAddressResult(dict):
    def __init__(__self__, *,
                 address_family: str,
                 created: str,
                 custom_fields: Mapping[str, Any],
                 description: str,
                 dns_name: str,
                 id: int,
                 ip_address: str,
                 last_updated: str,
                 role: str,
                 status: str,
                 tenants: Sequence['outputs.GetIpAddressesIpAddressTenantResult']):
        """
        :param int id: The ID of this resource.
        """
        pulumi.set(__self__, "address_family", address_family)
        pulumi.set(__self__, "created", created)
        pulumi.set(__self__, "custom_fields", custom_fields)
        pulumi.set(__self__, "description", description)
        pulumi.set(__self__, "dns_name", dns_name)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "ip_address", ip_address)
        pulumi.set(__self__, "last_updated", last_updated)
        pulumi.set(__self__, "role", role)
        pulumi.set(__self__, "status", status)
        pulumi.set(__self__, "tenants", tenants)

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

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

    @property
    @pulumi.getter(name="customFields")
    def custom_fields(self) -> Mapping[str, Any]:
        return pulumi.get(self, "custom_fields")

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

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

    @property
    @pulumi.getter
    def id(self) -> int:
        """
        The ID of this resource.
        """
        return pulumi.get(self, "id")

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

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

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

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

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


@pulumi.output_type
class GetIpAddressesIpAddressTenantResult(dict):
    def __init__(__self__, *,
                 id: int,
                 name: str,
                 slug: str):
        """
        :param int id: The ID of this resource.
        """
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "slug", slug)

    @property
    @pulumi.getter
    def id(self) -> int:
        """
        The ID of this resource.
        """
        return pulumi.get(self, "id")

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

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


@pulumi.output_type
class GetRegionFilterResult(dict):
    def __init__(__self__, *,
                 id: Optional[int] = None,
                 name: Optional[str] = None,
                 slug: Optional[str] = None):
        """
        :param int id: The ID of this resource.
        """
        if id is not None:
            pulumi.set(__self__, "id", id)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if slug is not None:
            pulumi.set(__self__, "slug", slug)

    @property
    @pulumi.getter
    def id(self) -> Optional[int]:
        """
        The ID of this resource.
        """
        return pulumi.get(self, "id")

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

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


@pulumi.output_type
class GetTenantsFilterResult(dict):
    def __init__(__self__, *,
                 name: str,
                 value: str):
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "value", value)

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

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


@pulumi.output_type
class GetTenantsTenantResult(dict):
    def __init__(__self__, *,
                 circuit_count: int,
                 cluster_count: int,
                 comments: str,
                 created: str,
                 custom_fields: Mapping[str, Any],
                 description: str,
                 device_count: int,
                 id: int,
                 ip_address_count: int,
                 last_updated: str,
                 name: str,
                 prefix_count: int,
                 rack_count: int,
                 site_count: int,
                 slug: str,
                 tenant_groups: Sequence['outputs.GetTenantsTenantTenantGroupResult'],
                 vlan_count: int,
                 vm_count: int,
                 vrf_count: int):
        """
        :param int id: The ID of this resource.
        """
        pulumi.set(__self__, "circuit_count", circuit_count)
        pulumi.set(__self__, "cluster_count", cluster_count)
        pulumi.set(__self__, "comments", comments)
        pulumi.set(__self__, "created", created)
        pulumi.set(__self__, "custom_fields", custom_fields)
        pulumi.set(__self__, "description", description)
        pulumi.set(__self__, "device_count", device_count)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "ip_address_count", ip_address_count)
        pulumi.set(__self__, "last_updated", last_updated)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "prefix_count", prefix_count)
        pulumi.set(__self__, "rack_count", rack_count)
        pulumi.set(__self__, "site_count", site_count)
        pulumi.set(__self__, "slug", slug)
        pulumi.set(__self__, "tenant_groups", tenant_groups)
        pulumi.set(__self__, "vlan_count", vlan_count)
        pulumi.set(__self__, "vm_count", vm_count)
        pulumi.set(__self__, "vrf_count", vrf_count)

    @property
    @pulumi.getter(name="circuitCount")
    def circuit_count(self) -> int:
        return pulumi.get(self, "circuit_count")

    @property
    @pulumi.getter(name="clusterCount")
    def cluster_count(self) -> int:
        return pulumi.get(self, "cluster_count")

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

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

    @property
    @pulumi.getter(name="customFields")
    def custom_fields(self) -> Mapping[str, Any]:
        return pulumi.get(self, "custom_fields")

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

    @property
    @pulumi.getter(name="deviceCount")
    def device_count(self) -> int:
        return pulumi.get(self, "device_count")

    @property
    @pulumi.getter
    def id(self) -> int:
        """
        The ID of this resource.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="ipAddressCount")
    def ip_address_count(self) -> int:
        return pulumi.get(self, "ip_address_count")

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

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

    @property
    @pulumi.getter(name="prefixCount")
    def prefix_count(self) -> int:
        return pulumi.get(self, "prefix_count")

    @property
    @pulumi.getter(name="rackCount")
    def rack_count(self) -> int:
        return pulumi.get(self, "rack_count")

    @property
    @pulumi.getter(name="siteCount")
    def site_count(self) -> int:
        return pulumi.get(self, "site_count")

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

    @property
    @pulumi.getter(name="tenantGroups")
    def tenant_groups(self) -> Sequence['outputs.GetTenantsTenantTenantGroupResult']:
        return pulumi.get(self, "tenant_groups")

    @property
    @pulumi.getter(name="vlanCount")
    def vlan_count(self) -> int:
        return pulumi.get(self, "vlan_count")

    @property
    @pulumi.getter(name="vmCount")
    def vm_count(self) -> int:
        return pulumi.get(self, "vm_count")

    @property
    @pulumi.getter(name="vrfCount")
    def vrf_count(self) -> int:
        return pulumi.get(self, "vrf_count")


@pulumi.output_type
class GetTenantsTenantTenantGroupResult(dict):
    def __init__(__self__, *,
                 id: int,
                 name: str,
                 slug: str,
                 tenant_count: int):
        """
        :param int id: The ID of this resource.
        """
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "slug", slug)
        pulumi.set(__self__, "tenant_count", tenant_count)

    @property
    @pulumi.getter
    def id(self) -> int:
        """
        The ID of this resource.
        """
        return pulumi.get(self, "id")

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

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

    @property
    @pulumi.getter(name="tenantCount")
    def tenant_count(self) -> int:
        return pulumi.get(self, "tenant_count")


@pulumi.output_type
class GetVirtualMachinesFilterResult(dict):
    def __init__(__self__, *,
                 name: str,
                 value: str):
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "value", value)

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

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


@pulumi.output_type
class GetVirtualMachinesVmResult(dict):
    def __init__(__self__, *,
                 cluster_id: int,
                 comments: str,
                 config_context: str,
                 custom_fields: Mapping[str, Any],
                 disk_size_gb: int,
                 local_context_data: str,
                 memory_mb: int,
                 name: str,
                 platform_id: int,
                 primary_ip: str,
                 primary_ip4: str,
                 primary_ip6: str,
                 role_id: int,
                 site_id: int,
                 status: str,
                 tag_ids: Sequence[int],
                 tenant_id: int,
                 vcpus: float,
                 vm_id: int):
        pulumi.set(__self__, "cluster_id", cluster_id)
        pulumi.set(__self__, "comments", comments)
        pulumi.set(__self__, "config_context", config_context)
        pulumi.set(__self__, "custom_fields", custom_fields)
        pulumi.set(__self__, "disk_size_gb", disk_size_gb)
        pulumi.set(__self__, "local_context_data", local_context_data)
        pulumi.set(__self__, "memory_mb", memory_mb)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "platform_id", platform_id)
        pulumi.set(__self__, "primary_ip", primary_ip)
        pulumi.set(__self__, "primary_ip4", primary_ip4)
        pulumi.set(__self__, "primary_ip6", primary_ip6)
        pulumi.set(__self__, "role_id", role_id)
        pulumi.set(__self__, "site_id", site_id)
        pulumi.set(__self__, "status", status)
        pulumi.set(__self__, "tag_ids", tag_ids)
        pulumi.set(__self__, "tenant_id", tenant_id)
        pulumi.set(__self__, "vcpus", vcpus)
        pulumi.set(__self__, "vm_id", vm_id)

    @property
    @pulumi.getter(name="clusterId")
    def cluster_id(self) -> int:
        return pulumi.get(self, "cluster_id")

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

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

    @property
    @pulumi.getter(name="customFields")
    def custom_fields(self) -> Mapping[str, Any]:
        return pulumi.get(self, "custom_fields")

    @property
    @pulumi.getter(name="diskSizeGb")
    def disk_size_gb(self) -> int:
        return pulumi.get(self, "disk_size_gb")

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

    @property
    @pulumi.getter(name="memoryMb")
    def memory_mb(self) -> int:
        return pulumi.get(self, "memory_mb")

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

    @property
    @pulumi.getter(name="platformId")
    def platform_id(self) -> int:
        return pulumi.get(self, "platform_id")

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

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

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

    @property
    @pulumi.getter(name="roleId")
    def role_id(self) -> int:
        return pulumi.get(self, "role_id")

    @property
    @pulumi.getter(name="siteId")
    def site_id(self) -> int:
        return pulumi.get(self, "site_id")

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

    @property
    @pulumi.getter(name="tagIds")
    def tag_ids(self) -> Sequence[int]:
        return pulumi.get(self, "tag_ids")

    @property
    @pulumi.getter(name="tenantId")
    def tenant_id(self) -> int:
        return pulumi.get(self, "tenant_id")

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

    @property
    @pulumi.getter(name="vmId")
    def vm_id(self) -> int:
        return pulumi.get(self, "vm_id")


