# coding=utf-8
# *** WARNING: this file was generated by pulumi-language-python. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

import builtins as _builtins
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__ = [
    'ContainerHealthCheckArgs',
    'ContainerHealthCheckArgsDict',
    'ContainerHealthCheckHttpArgs',
    'ContainerHealthCheckHttpArgsDict',
    'ContainerScalingOptionArgs',
    'ContainerScalingOptionArgsDict',
    'TriggerNatsArgs',
    'TriggerNatsArgsDict',
    'TriggerSqsArgs',
    'TriggerSqsArgsDict',
]

MYPY = False

if not MYPY:
    class ContainerHealthCheckArgsDict(TypedDict):
        failure_threshold: pulumi.Input[_builtins.int]
        """
        Number of consecutive health check failures before considering the container unhealthy.
        """
        https: pulumi.Input[Sequence[pulumi.Input['ContainerHealthCheckHttpArgsDict']]]
        """
        HTTP health check configuration.
        """
        interval: pulumi.Input[_builtins.str]
        """
        Period between health checks (in seconds).
        """
elif False:
    ContainerHealthCheckArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ContainerHealthCheckArgs:
    def __init__(__self__, *,
                 failure_threshold: pulumi.Input[_builtins.int],
                 https: pulumi.Input[Sequence[pulumi.Input['ContainerHealthCheckHttpArgs']]],
                 interval: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.int] failure_threshold: Number of consecutive health check failures before considering the container unhealthy.
        :param pulumi.Input[Sequence[pulumi.Input['ContainerHealthCheckHttpArgs']]] https: HTTP health check configuration.
        :param pulumi.Input[_builtins.str] interval: Period between health checks (in seconds).
        """
        pulumi.set(__self__, "failure_threshold", failure_threshold)
        pulumi.set(__self__, "https", https)
        pulumi.set(__self__, "interval", interval)

    @_builtins.property
    @pulumi.getter(name="failureThreshold")
    def failure_threshold(self) -> pulumi.Input[_builtins.int]:
        """
        Number of consecutive health check failures before considering the container unhealthy.
        """
        return pulumi.get(self, "failure_threshold")

    @failure_threshold.setter
    def failure_threshold(self, value: pulumi.Input[_builtins.int]):
        pulumi.set(self, "failure_threshold", value)

    @_builtins.property
    @pulumi.getter
    def https(self) -> pulumi.Input[Sequence[pulumi.Input['ContainerHealthCheckHttpArgs']]]:
        """
        HTTP health check configuration.
        """
        return pulumi.get(self, "https")

    @https.setter
    def https(self, value: pulumi.Input[Sequence[pulumi.Input['ContainerHealthCheckHttpArgs']]]):
        pulumi.set(self, "https", value)

    @_builtins.property
    @pulumi.getter
    def interval(self) -> pulumi.Input[_builtins.str]:
        """
        Period between health checks (in seconds).
        """
        return pulumi.get(self, "interval")

    @interval.setter
    def interval(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "interval", value)


if not MYPY:
    class ContainerHealthCheckHttpArgsDict(TypedDict):
        path: pulumi.Input[_builtins.str]
        """
        Path to use for the HTTP health check.
        """
elif False:
    ContainerHealthCheckHttpArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ContainerHealthCheckHttpArgs:
    def __init__(__self__, *,
                 path: pulumi.Input[_builtins.str]):
        """
        :param pulumi.Input[_builtins.str] path: Path to use for the HTTP health check.
        """
        pulumi.set(__self__, "path", path)

    @_builtins.property
    @pulumi.getter
    def path(self) -> pulumi.Input[_builtins.str]:
        """
        Path to use for the HTTP health check.
        """
        return pulumi.get(self, "path")

    @path.setter
    def path(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "path", value)


if not MYPY:
    class ContainerScalingOptionArgsDict(TypedDict):
        concurrent_requests_threshold: NotRequired[pulumi.Input[_builtins.int]]
        """
        Scale depending on the number of concurrent requests being processed per container instance.
        """
        cpu_usage_threshold: NotRequired[pulumi.Input[_builtins.int]]
        """
        Scale depending on the CPU usage of a container instance.
        """
        memory_usage_threshold: NotRequired[pulumi.Input[_builtins.int]]
        """
        Scale depending on the memory usage of a container instance.
        """
elif False:
    ContainerScalingOptionArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ContainerScalingOptionArgs:
    def __init__(__self__, *,
                 concurrent_requests_threshold: Optional[pulumi.Input[_builtins.int]] = None,
                 cpu_usage_threshold: Optional[pulumi.Input[_builtins.int]] = None,
                 memory_usage_threshold: Optional[pulumi.Input[_builtins.int]] = None):
        """
        :param pulumi.Input[_builtins.int] concurrent_requests_threshold: Scale depending on the number of concurrent requests being processed per container instance.
        :param pulumi.Input[_builtins.int] cpu_usage_threshold: Scale depending on the CPU usage of a container instance.
        :param pulumi.Input[_builtins.int] memory_usage_threshold: Scale depending on the memory usage of a container instance.
        """
        if concurrent_requests_threshold is not None:
            pulumi.set(__self__, "concurrent_requests_threshold", concurrent_requests_threshold)
        if cpu_usage_threshold is not None:
            pulumi.set(__self__, "cpu_usage_threshold", cpu_usage_threshold)
        if memory_usage_threshold is not None:
            pulumi.set(__self__, "memory_usage_threshold", memory_usage_threshold)

    @_builtins.property
    @pulumi.getter(name="concurrentRequestsThreshold")
    def concurrent_requests_threshold(self) -> Optional[pulumi.Input[_builtins.int]]:
        """
        Scale depending on the number of concurrent requests being processed per container instance.
        """
        return pulumi.get(self, "concurrent_requests_threshold")

    @concurrent_requests_threshold.setter
    def concurrent_requests_threshold(self, value: Optional[pulumi.Input[_builtins.int]]):
        pulumi.set(self, "concurrent_requests_threshold", value)

    @_builtins.property
    @pulumi.getter(name="cpuUsageThreshold")
    def cpu_usage_threshold(self) -> Optional[pulumi.Input[_builtins.int]]:
        """
        Scale depending on the CPU usage of a container instance.
        """
        return pulumi.get(self, "cpu_usage_threshold")

    @cpu_usage_threshold.setter
    def cpu_usage_threshold(self, value: Optional[pulumi.Input[_builtins.int]]):
        pulumi.set(self, "cpu_usage_threshold", value)

    @_builtins.property
    @pulumi.getter(name="memoryUsageThreshold")
    def memory_usage_threshold(self) -> Optional[pulumi.Input[_builtins.int]]:
        """
        Scale depending on the memory usage of a container instance.
        """
        return pulumi.get(self, "memory_usage_threshold")

    @memory_usage_threshold.setter
    def memory_usage_threshold(self, value: Optional[pulumi.Input[_builtins.int]]):
        pulumi.set(self, "memory_usage_threshold", value)


if not MYPY:
    class TriggerNatsArgsDict(TypedDict):
        subject: pulumi.Input[_builtins.str]
        """
        The subject to listen to.
        """
        account_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        unique identifier of the Messaging and Queuing NATS account.
        """
        project_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        THe ID of the project that contains the Messaging and Queuing NATS account (defaults to provider `project_id`)
        """
        region: NotRequired[pulumi.Input[_builtins.str]]
        """
        Region where the Messaging and Queuing NATS account is enabled (defaults to provider `region`)
        """
elif False:
    TriggerNatsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class TriggerNatsArgs:
    def __init__(__self__, *,
                 subject: pulumi.Input[_builtins.str],
                 account_id: Optional[pulumi.Input[_builtins.str]] = None,
                 project_id: Optional[pulumi.Input[_builtins.str]] = None,
                 region: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] subject: The subject to listen to.
        :param pulumi.Input[_builtins.str] account_id: unique identifier of the Messaging and Queuing NATS account.
        :param pulumi.Input[_builtins.str] project_id: THe ID of the project that contains the Messaging and Queuing NATS account (defaults to provider `project_id`)
        :param pulumi.Input[_builtins.str] region: Region where the Messaging and Queuing NATS account is enabled (defaults to provider `region`)
        """
        pulumi.set(__self__, "subject", subject)
        if account_id is not None:
            pulumi.set(__self__, "account_id", account_id)
        if project_id is not None:
            pulumi.set(__self__, "project_id", project_id)
        if region is not None:
            pulumi.set(__self__, "region", region)

    @_builtins.property
    @pulumi.getter
    def subject(self) -> pulumi.Input[_builtins.str]:
        """
        The subject to listen to.
        """
        return pulumi.get(self, "subject")

    @subject.setter
    def subject(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "subject", value)

    @_builtins.property
    @pulumi.getter(name="accountId")
    def account_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        unique identifier of the Messaging and Queuing NATS account.
        """
        return pulumi.get(self, "account_id")

    @account_id.setter
    def account_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "account_id", value)

    @_builtins.property
    @pulumi.getter(name="projectId")
    def project_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        THe ID of the project that contains the Messaging and Queuing NATS account (defaults to provider `project_id`)
        """
        return pulumi.get(self, "project_id")

    @project_id.setter
    def project_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project_id", value)

    @_builtins.property
    @pulumi.getter
    def region(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Region where the Messaging and Queuing NATS account is enabled (defaults to provider `region`)
        """
        return pulumi.get(self, "region")

    @region.setter
    def region(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "region", value)


if not MYPY:
    class TriggerSqsArgsDict(TypedDict):
        queue: pulumi.Input[_builtins.str]
        """
        The name of the SQS queue.
        """
        namespace_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        ID of the Messaging and Queuing namespace. This argument is deprecated.
        """
        project_id: NotRequired[pulumi.Input[_builtins.str]]
        """
        The ID of the project in which SQS is enabled, (defaults to provider `project_id`)
        """
        region: NotRequired[pulumi.Input[_builtins.str]]
        """
        Region where SQS is enabled (defaults to provider `region`)
        """
elif False:
    TriggerSqsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class TriggerSqsArgs:
    def __init__(__self__, *,
                 queue: pulumi.Input[_builtins.str],
                 namespace_id: Optional[pulumi.Input[_builtins.str]] = None,
                 project_id: Optional[pulumi.Input[_builtins.str]] = None,
                 region: Optional[pulumi.Input[_builtins.str]] = None):
        """
        :param pulumi.Input[_builtins.str] queue: The name of the SQS queue.
        :param pulumi.Input[_builtins.str] namespace_id: ID of the Messaging and Queuing namespace. This argument is deprecated.
        :param pulumi.Input[_builtins.str] project_id: The ID of the project in which SQS is enabled, (defaults to provider `project_id`)
        :param pulumi.Input[_builtins.str] region: Region where SQS is enabled (defaults to provider `region`)
        """
        pulumi.set(__self__, "queue", queue)
        if namespace_id is not None:
            warnings.warn("""The 'namespace_id' field is deprecated and will be removed in the next major version. It is no longer necessary to specify it""", DeprecationWarning)
            pulumi.log.warn("""namespace_id is deprecated: The 'namespace_id' field is deprecated and will be removed in the next major version. It is no longer necessary to specify it""")
        if namespace_id is not None:
            pulumi.set(__self__, "namespace_id", namespace_id)
        if project_id is not None:
            pulumi.set(__self__, "project_id", project_id)
        if region is not None:
            pulumi.set(__self__, "region", region)

    @_builtins.property
    @pulumi.getter
    def queue(self) -> pulumi.Input[_builtins.str]:
        """
        The name of the SQS queue.
        """
        return pulumi.get(self, "queue")

    @queue.setter
    def queue(self, value: pulumi.Input[_builtins.str]):
        pulumi.set(self, "queue", value)

    @_builtins.property
    @pulumi.getter(name="namespaceId")
    @_utilities.deprecated("""The 'namespace_id' field is deprecated and will be removed in the next major version. It is no longer necessary to specify it""")
    def namespace_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        ID of the Messaging and Queuing namespace. This argument is deprecated.
        """
        return pulumi.get(self, "namespace_id")

    @namespace_id.setter
    def namespace_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "namespace_id", value)

    @_builtins.property
    @pulumi.getter(name="projectId")
    def project_id(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        The ID of the project in which SQS is enabled, (defaults to provider `project_id`)
        """
        return pulumi.get(self, "project_id")

    @project_id.setter
    def project_id(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "project_id", value)

    @_builtins.property
    @pulumi.getter
    def region(self) -> Optional[pulumi.Input[_builtins.str]]:
        """
        Region where SQS is enabled (defaults to provider `region`)
        """
        return pulumi.get(self, "region")

    @region.setter
    def region(self, value: Optional[pulumi.Input[_builtins.str]]):
        pulumi.set(self, "region", value)


