<reponame>vincentbernat/pulumi-vultr
# 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 warnings
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
from . import _utilities
from . import outputs
from ._inputs import *

__all__ = [
    'GetBareMetalPlanResult',
    'AwaitableGetBareMetalPlanResult',
    'get_bare_metal_plan',
    'get_bare_metal_plan_output',
]

@pulumi.output_type
class GetBareMetalPlanResult:
    """
    A collection of values returned by getBareMetalPlan.
    """
    def __init__(__self__, bandwidth=None, cpu_count=None, cpu_model=None, cpu_threads=None, disk=None, disk_count=None, filters=None, id=None, locations=None, monthly_cost=None, ram=None, type=None):
        if bandwidth and not isinstance(bandwidth, int):
            raise TypeError("Expected argument 'bandwidth' to be a int")
        pulumi.set(__self__, "bandwidth", bandwidth)
        if cpu_count and not isinstance(cpu_count, int):
            raise TypeError("Expected argument 'cpu_count' to be a int")
        pulumi.set(__self__, "cpu_count", cpu_count)
        if cpu_model and not isinstance(cpu_model, str):
            raise TypeError("Expected argument 'cpu_model' to be a str")
        pulumi.set(__self__, "cpu_model", cpu_model)
        if cpu_threads and not isinstance(cpu_threads, int):
            raise TypeError("Expected argument 'cpu_threads' to be a int")
        pulumi.set(__self__, "cpu_threads", cpu_threads)
        if disk and not isinstance(disk, int):
            raise TypeError("Expected argument 'disk' to be a int")
        pulumi.set(__self__, "disk", disk)
        if disk_count and not isinstance(disk_count, int):
            raise TypeError("Expected argument 'disk_count' to be a int")
        pulumi.set(__self__, "disk_count", disk_count)
        if filters and not isinstance(filters, list):
            raise TypeError("Expected argument 'filters' to be a list")
        pulumi.set(__self__, "filters", filters)
        if id and not isinstance(id, str):
            raise TypeError("Expected argument 'id' to be a str")
        pulumi.set(__self__, "id", id)
        if locations and not isinstance(locations, list):
            raise TypeError("Expected argument 'locations' to be a list")
        pulumi.set(__self__, "locations", locations)
        if monthly_cost and not isinstance(monthly_cost, int):
            raise TypeError("Expected argument 'monthly_cost' to be a int")
        pulumi.set(__self__, "monthly_cost", monthly_cost)
        if ram and not isinstance(ram, int):
            raise TypeError("Expected argument 'ram' to be a int")
        pulumi.set(__self__, "ram", ram)
        if type and not isinstance(type, str):
            raise TypeError("Expected argument 'type' to be a str")
        pulumi.set(__self__, "type", type)

    @property
    @pulumi.getter
    def bandwidth(self) -> int:
        """
        The bandwidth available on the plan.
        """
        return pulumi.get(self, "bandwidth")

    @property
    @pulumi.getter(name="cpuCount")
    def cpu_count(self) -> int:
        """
        The number of CPUs available on the plan.
        """
        return pulumi.get(self, "cpu_count")

    @property
    @pulumi.getter(name="cpuModel")
    def cpu_model(self) -> str:
        """
        The CPU model of the plan.
        """
        return pulumi.get(self, "cpu_model")

    @property
    @pulumi.getter(name="cpuThreads")
    def cpu_threads(self) -> int:
        """
        The number of CPU threads.
        """
        return pulumi.get(self, "cpu_threads")

    @property
    @pulumi.getter
    def disk(self) -> int:
        """
        The description of the disk(s) on the plan.
        """
        return pulumi.get(self, "disk")

    @property
    @pulumi.getter(name="diskCount")
    def disk_count(self) -> int:
        """
        The number of disks that this plan offers.
        """
        return pulumi.get(self, "disk_count")

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

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

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

    @property
    @pulumi.getter(name="monthlyCost")
    def monthly_cost(self) -> int:
        """
        The price per month of the plan in USD.
        """
        return pulumi.get(self, "monthly_cost")

    @property
    @pulumi.getter
    def ram(self) -> int:
        """
        The amount of memory available on the plan in MB.
        """
        return pulumi.get(self, "ram")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The type of plan it is.
        """
        return pulumi.get(self, "type")


class AwaitableGetBareMetalPlanResult(GetBareMetalPlanResult):
    # pylint: disable=using-constant-test
    def __await__(self):
        if False:
            yield self
        return GetBareMetalPlanResult(
            bandwidth=self.bandwidth,
            cpu_count=self.cpu_count,
            cpu_model=self.cpu_model,
            cpu_threads=self.cpu_threads,
            disk=self.disk,
            disk_count=self.disk_count,
            filters=self.filters,
            id=self.id,
            locations=self.locations,
            monthly_cost=self.monthly_cost,
            ram=self.ram,
            type=self.type)


def get_bare_metal_plan(filters: Optional[Sequence[pulumi.InputType['GetBareMetalPlanFilterArgs']]] = None,
                        opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetBareMetalPlanResult:
    """
    Get information about a Vultr bare metal server plan.

    ## Example Usage

    Get the information for a plan by `id`:

    ```python
    import pulumi
    import pulumi_vultr as vultr

    my_plan = vultr.get_bare_metal_plan(filters=[vultr.GetBareMetalPlanFilterArgs(
        name="id",
        values=["vbm-4c-32gb"],
    )])
    ```


    :param Sequence[pulumi.InputType['GetBareMetalPlanFilterArgs']] filters: Query parameters for finding plans.
    """
    __args__ = dict()
    __args__['filters'] = filters
    if opts is None:
        opts = pulumi.InvokeOptions()
    if opts.version is None:
        opts.version = _utilities.get_version()
    __ret__ = pulumi.runtime.invoke('vultr:index/getBareMetalPlan:getBareMetalPlan', __args__, opts=opts, typ=GetBareMetalPlanResult).value

    return AwaitableGetBareMetalPlanResult(
        bandwidth=__ret__.bandwidth,
        cpu_count=__ret__.cpu_count,
        cpu_model=__ret__.cpu_model,
        cpu_threads=__ret__.cpu_threads,
        disk=__ret__.disk,
        disk_count=__ret__.disk_count,
        filters=__ret__.filters,
        id=__ret__.id,
        locations=__ret__.locations,
        monthly_cost=__ret__.monthly_cost,
        ram=__ret__.ram,
        type=__ret__.type)


@_utilities.lift_output_func(get_bare_metal_plan)
def get_bare_metal_plan_output(filters: Optional[pulumi.Input[Optional[Sequence[pulumi.InputType['GetBareMetalPlanFilterArgs']]]]] = None,
                               opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetBareMetalPlanResult]:
    """
    Get information about a Vultr bare metal server plan.

    ## Example Usage

    Get the information for a plan by `id`:

    ```python
    import pulumi
    import pulumi_vultr as vultr

    my_plan = vultr.get_bare_metal_plan(filters=[vultr.GetBareMetalPlanFilterArgs(
        name="id",
        values=["vbm-4c-32gb"],
    )])
    ```


    :param Sequence[pulumi.InputType['GetBareMetalPlanFilterArgs']] filters: Query parameters for finding plans.
    """
    ...

# 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 warnings
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
from . import _utilities
from . import outputs
from ._inputs import *

__all__ = [
    'GetBareMetalPlanResult',
    'AwaitableGetBareMetalPlanResult',
    'get_bare_metal_plan',
    'get_bare_metal_plan_output',
]

@pulumi.output_type
class GetBareMetalPlanResult:
    """
    A collection of values returned by getBareMetalPlan.
    """
    def __init__(__self__, bandwidth=None, cpu_count=None, cpu_model=None, cpu_threads=None, disk=None, disk_count=None, filters=None, id=None, locations=None, monthly_cost=None, ram=None, type=None):
        if bandwidth and not isinstance(bandwidth, int):
            raise TypeError("Expected argument 'bandwidth' to be a int")
        pulumi.set(__self__, "bandwidth", bandwidth)
        if cpu_count and not isinstance(cpu_count, int):
            raise TypeError("Expected argument 'cpu_count' to be a int")
        pulumi.set(__self__, "cpu_count", cpu_count)
        if cpu_model and not isinstance(cpu_model, str):
            raise TypeError("Expected argument 'cpu_model' to be a str")
        pulumi.set(__self__, "cpu_model", cpu_model)
        if cpu_threads and not isinstance(cpu_threads, int):
            raise TypeError("Expected argument 'cpu_threads' to be a int")
        pulumi.set(__self__, "cpu_threads", cpu_threads)
        if disk and not isinstance(disk, int):
            raise TypeError("Expected argument 'disk' to be a int")
        pulumi.set(__self__, "disk", disk)
        if disk_count and not isinstance(disk_count, int):
            raise TypeError("Expected argument 'disk_count' to be a int")
        pulumi.set(__self__, "disk_count", disk_count)
        if filters and not isinstance(filters, list):
            raise TypeError("Expected argument 'filters' to be a list")
        pulumi.set(__self__, "filters", filters)
        if id and not isinstance(id, str):
            raise TypeError("Expected argument 'id' to be a str")
        pulumi.set(__self__, "id", id)
        if locations and not isinstance(locations, list):
            raise TypeError("Expected argument 'locations' to be a list")
        pulumi.set(__self__, "locations", locations)
        if monthly_cost and not isinstance(monthly_cost, int):
            raise TypeError("Expected argument 'monthly_cost' to be a int")
        pulumi.set(__self__, "monthly_cost", monthly_cost)
        if ram and not isinstance(ram, int):
            raise TypeError("Expected argument 'ram' to be a int")
        pulumi.set(__self__, "ram", ram)
        if type and not isinstance(type, str):
            raise TypeError("Expected argument 'type' to be a str")
        pulumi.set(__self__, "type", type)

    @property
    @pulumi.getter
    def bandwidth(self) -> int:
        """
        The bandwidth available on the plan.
        """
        return pulumi.get(self, "bandwidth")

    @property
    @pulumi.getter(name="cpuCount")
    def cpu_count(self) -> int:
        """
        The number of CPUs available on the plan.
        """
        return pulumi.get(self, "cpu_count")

    @property
    @pulumi.getter(name="cpuModel")
    def cpu_model(self) -> str:
        """
        The CPU model of the plan.
        """
        return pulumi.get(self, "cpu_model")

    @property
    @pulumi.getter(name="cpuThreads")
    def cpu_threads(self) -> int:
        """
        The number of CPU threads.
        """
        return pulumi.get(self, "cpu_threads")

    @property
    @pulumi.getter
    def disk(self) -> int:
        """
        The description of the disk(s) on the plan.
        """
        return pulumi.get(self, "disk")

    @property
    @pulumi.getter(name="diskCount")
    def disk_count(self) -> int:
        """
        The number of disks that this plan offers.
        """
        return pulumi.get(self, "disk_count")

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

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

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

    @property
    @pulumi.getter(name="monthlyCost")
    def monthly_cost(self) -> int:
        """
        The price per month of the plan in USD.
        """
        return pulumi.get(self, "monthly_cost")

    @property
    @pulumi.getter
    def ram(self) -> int:
        """
        The amount of memory available on the plan in MB.
        """
        return pulumi.get(self, "ram")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The type of plan it is.
        """
        return pulumi.get(self, "type")


class AwaitableGetBareMetalPlanResult(GetBareMetalPlanResult):
    # pylint: disable=using-constant-test
    def __await__(self):
        if False:
            yield self
        return GetBareMetalPlanResult(
            bandwidth=self.bandwidth,
            cpu_count=self.cpu_count,
            cpu_model=self.cpu_model,
            cpu_threads=self.cpu_threads,
            disk=self.disk,
            disk_count=self.disk_count,
            filters=self.filters,
            id=self.id,
            locations=self.locations,
            monthly_cost=self.monthly_cost,
            ram=self.ram,
            type=self.type)


def get_bare_metal_plan(filters: Optional[Sequence[pulumi.InputType['GetBareMetalPlanFilterArgs']]] = None,
                        opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetBareMetalPlanResult:
    """
    Get information about a Vultr bare metal server plan.

    ## Example Usage

    Get the information for a plan by `id`:

    ```python
    import pulumi
    import pulumi_vultr as vultr

    my_plan = vultr.get_bare_metal_plan(filters=[vultr.GetBareMetalPlanFilterArgs(
        name="id",
        values=["vbm-4c-32gb"],
    )])
    ```


    :param Sequence[pulumi.InputType['GetBareMetalPlanFilterArgs']] filters: Query parameters for finding plans.
    """
    __args__ = dict()
    __args__['filters'] = filters
    if opts is None:
        opts = pulumi.InvokeOptions()
    if opts.version is None:
        opts.version = _utilities.get_version()
    __ret__ = pulumi.runtime.invoke('vultr:index/getBareMetalPlan:getBareMetalPlan', __args__, opts=opts, typ=GetBareMetalPlanResult).value

    return AwaitableGetBareMetalPlanResult(
        bandwidth=__ret__.bandwidth,
        cpu_count=__ret__.cpu_count,
        cpu_model=__ret__.cpu_model,
        cpu_threads=__ret__.cpu_threads,
        disk=__ret__.disk,
        disk_count=__ret__.disk_count,
        filters=__ret__.filters,
        id=__ret__.id,
        locations=__ret__.locations,
        monthly_cost=__ret__.monthly_cost,
        ram=__ret__.ram,
        type=__ret__.type)


@_utilities.lift_output_func(get_bare_metal_plan)
def get_bare_metal_plan_output(filters: Optional[pulumi.Input[Optional[Sequence[pulumi.InputType['GetBareMetalPlanFilterArgs']]]]] = None,
                               opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetBareMetalPlanResult]:
    """
    Get information about a Vultr bare metal server plan.

    ## Example Usage

    Get the information for a plan by `id`:

    ```python
    import pulumi
    import pulumi_vultr as vultr

    my_plan = vultr.get_bare_metal_plan(filters=[vultr.GetBareMetalPlanFilterArgs(
        name="id",
        values=["vbm-4c-32gb"],
    )])
    ```


    :param Sequence[pulumi.InputType['GetBareMetalPlanFilterArgs']] filters: Query parameters for finding plans.
    """
    ...
# 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! *** A collection of values returned by getBareMetalPlan. The bandwidth available on the plan. The number of CPUs available on the plan. The CPU model of the plan. The number of CPU threads. The description of the disk(s) on the plan. The number of disks that this plan offers. The provider-assigned unique ID for this managed resource. The price per month of the plan in USD. The amount of memory available on the plan in MB. The type of plan it is. # pylint: disable=using-constant-test Get information about a Vultr bare metal server plan.      ## Example Usage      Get the information for a plan by `id`:      ```python     import pulumi     import pulumi_vultr as vultr      my_plan = vultr.get_bare_metal_plan(filters=[vultr.GetBareMetalPlanFilterArgs(         name="id",         values=["vbm-4c-32gb"],     )])     ```       :param Sequence[pulumi.InputType['GetBareMetalPlanFilterArgs']] filters: Query parameters for finding plans. Get information about a Vultr bare metal server plan.      ## Example Usage      Get the information for a plan by `id`:      ```python     import pulumi     import pulumi_vultr as vultr      my_plan = vultr.get_bare_metal_plan(filters=[vultr.GetBareMetalPlanFilterArgs(         name="id",         values=["vbm-4c-32gb"],     )])     ```       :param Sequence[pulumi.InputType['GetBareMetalPlanFilterArgs']] filters: Query parameters for finding plans.