# 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

__all__ = [
    'GetProjectFunctionCpuResult',
    'AwaitableGetProjectFunctionCpuResult',
    'get_project_function_cpu',
    'get_project_function_cpu_output',
]

@pulumi.output_type
class GetProjectFunctionCpuResult:
    """
    A collection of values returned by getProjectFunctionCpu.
    """
    def __init__(__self__, cpu=None, id=None, project_id=None, team_id=None):
        if cpu and not isinstance(cpu, str):
            raise TypeError("Expected argument 'cpu' to be a str")
        pulumi.set(__self__, "cpu", cpu)
        if id and not isinstance(id, str):
            raise TypeError("Expected argument 'id' to be a str")
        pulumi.set(__self__, "id", id)
        if project_id and not isinstance(project_id, str):
            raise TypeError("Expected argument 'project_id' to be a str")
        pulumi.set(__self__, "project_id", project_id)
        if team_id and not isinstance(team_id, str):
            raise TypeError("Expected argument 'team_id' to be a str")
        pulumi.set(__self__, "team_id", team_id)

    @property
    @pulumi.getter
    def cpu(self) -> str:
        """
        The amount of CPU available to your Serverless Functions. Should be one of 'basic' (0.6vCPU), 'standard' (1vCPU) or 'performance' (1.7vCPUs).
        """
        return pulumi.get(self, "cpu")

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

    @property
    @pulumi.getter(name="projectId")
    def project_id(self) -> str:
        """
        The ID of the Project to read the Function CPU setting for.
        """
        return pulumi.get(self, "project_id")

    @property
    @pulumi.getter(name="teamId")
    def team_id(self) -> str:
        """
        The ID of the team the Project exists under. Required when configuring a team resource if a default team has not been set in the provider.
        """
        return pulumi.get(self, "team_id")


class AwaitableGetProjectFunctionCpuResult(GetProjectFunctionCpuResult):
    # pylint: disable=using-constant-test
    def __await__(self):
        if False:
            yield self
        return GetProjectFunctionCpuResult(
            cpu=self.cpu,
            id=self.id,
            project_id=self.project_id,
            team_id=self.team_id)


def get_project_function_cpu(project_id: Optional[str] = None,
                             team_id: Optional[str] = None,
                             opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetProjectFunctionCpuResult:
    """
    Provides information about a Project's Function CPU setting.

    This controls the maximum amount of CPU utilization your Serverless Functions can use while executing. Standard is optimal for most frontend workloads. You can override this per function using the vercel.json file.

    ## Example Usage

    ```python
    import pulumi
    import pulumi_vercel as vercel

    example_project = vercel.get_project(name="example")
    example_project_function_cpu = vercel.get_project_function_cpu(project_id=example_project.id)
    ```


    :param str project_id: The ID of the Project to read the Function CPU setting for.
    :param str team_id: The ID of the team the Project exists under. Required when configuring a team resource if a default team has not been set in the provider.
    """
    __args__ = dict()
    __args__['projectId'] = project_id
    __args__['teamId'] = team_id
    opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
    __ret__ = pulumi.runtime.invoke('vercel:index/getProjectFunctionCpu:getProjectFunctionCpu', __args__, opts=opts, typ=GetProjectFunctionCpuResult).value

    return AwaitableGetProjectFunctionCpuResult(
        cpu=pulumi.get(__ret__, 'cpu'),
        id=pulumi.get(__ret__, 'id'),
        project_id=pulumi.get(__ret__, 'project_id'),
        team_id=pulumi.get(__ret__, 'team_id'))


@_utilities.lift_output_func(get_project_function_cpu)
def get_project_function_cpu_output(project_id: Optional[pulumi.Input[str]] = None,
                                    team_id: Optional[pulumi.Input[Optional[str]]] = None,
                                    opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetProjectFunctionCpuResult]:
    """
    Provides information about a Project's Function CPU setting.

    This controls the maximum amount of CPU utilization your Serverless Functions can use while executing. Standard is optimal for most frontend workloads. You can override this per function using the vercel.json file.

    ## Example Usage

    ```python
    import pulumi
    import pulumi_vercel as vercel

    example_project = vercel.get_project(name="example")
    example_project_function_cpu = vercel.get_project_function_cpu(project_id=example_project.id)
    ```


    :param str project_id: The ID of the Project to read the Function CPU setting for.
    :param str team_id: The ID of the team the Project exists under. Required when configuring a team resource if a default team has not been set in the provider.
    """
    ...
