# 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__ = [
    'SnsCredentialsPermissionsArgs',
    'SnsCredentialsPermissionsArgsDict',
    'SqsCredentialsPermissionsArgs',
    'SqsCredentialsPermissionsArgsDict',
    'SqsQueueDeadLetterQueueArgs',
    'SqsQueueDeadLetterQueueArgsDict',
]

MYPY = False

if not MYPY:
    class SnsCredentialsPermissionsArgsDict(TypedDict):
        can_manage: NotRequired[pulumi.Input[_builtins.bool]]
        """
        . Defines whether the user can manage the associated resource(s).
        """
        can_publish: NotRequired[pulumi.Input[_builtins.bool]]
        """
        . Defines whether the user can publish messages to the service.
        """
        can_receive: NotRequired[pulumi.Input[_builtins.bool]]
        """
        . Defines whether the user can receive messages from the service.
        """
elif False:
    SnsCredentialsPermissionsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class SnsCredentialsPermissionsArgs:
    def __init__(__self__, *,
                 can_manage: Optional[pulumi.Input[_builtins.bool]] = None,
                 can_publish: Optional[pulumi.Input[_builtins.bool]] = None,
                 can_receive: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] can_manage: . Defines whether the user can manage the associated resource(s).
        :param pulumi.Input[_builtins.bool] can_publish: . Defines whether the user can publish messages to the service.
        :param pulumi.Input[_builtins.bool] can_receive: . Defines whether the user can receive messages from the service.
        """
        if can_manage is not None:
            pulumi.set(__self__, "can_manage", can_manage)
        if can_publish is not None:
            pulumi.set(__self__, "can_publish", can_publish)
        if can_receive is not None:
            pulumi.set(__self__, "can_receive", can_receive)

    @_builtins.property
    @pulumi.getter(name="canManage")
    def can_manage(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        . Defines whether the user can manage the associated resource(s).
        """
        return pulumi.get(self, "can_manage")

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

    @_builtins.property
    @pulumi.getter(name="canPublish")
    def can_publish(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        . Defines whether the user can publish messages to the service.
        """
        return pulumi.get(self, "can_publish")

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

    @_builtins.property
    @pulumi.getter(name="canReceive")
    def can_receive(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        . Defines whether the user can receive messages from the service.
        """
        return pulumi.get(self, "can_receive")

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


if not MYPY:
    class SqsCredentialsPermissionsArgsDict(TypedDict):
        can_manage: NotRequired[pulumi.Input[_builtins.bool]]
        """
        . Defines whether the user can manage the associated resource(s).
        """
        can_publish: NotRequired[pulumi.Input[_builtins.bool]]
        """
        . Defines whether the user can publish messages to the service.
        """
        can_receive: NotRequired[pulumi.Input[_builtins.bool]]
        """
        . Defines whether the user can receive messages from the service.
        """
elif False:
    SqsCredentialsPermissionsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class SqsCredentialsPermissionsArgs:
    def __init__(__self__, *,
                 can_manage: Optional[pulumi.Input[_builtins.bool]] = None,
                 can_publish: Optional[pulumi.Input[_builtins.bool]] = None,
                 can_receive: Optional[pulumi.Input[_builtins.bool]] = None):
        """
        :param pulumi.Input[_builtins.bool] can_manage: . Defines whether the user can manage the associated resource(s).
        :param pulumi.Input[_builtins.bool] can_publish: . Defines whether the user can publish messages to the service.
        :param pulumi.Input[_builtins.bool] can_receive: . Defines whether the user can receive messages from the service.
        """
        if can_manage is not None:
            pulumi.set(__self__, "can_manage", can_manage)
        if can_publish is not None:
            pulumi.set(__self__, "can_publish", can_publish)
        if can_receive is not None:
            pulumi.set(__self__, "can_receive", can_receive)

    @_builtins.property
    @pulumi.getter(name="canManage")
    def can_manage(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        . Defines whether the user can manage the associated resource(s).
        """
        return pulumi.get(self, "can_manage")

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

    @_builtins.property
    @pulumi.getter(name="canPublish")
    def can_publish(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        . Defines whether the user can publish messages to the service.
        """
        return pulumi.get(self, "can_publish")

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

    @_builtins.property
    @pulumi.getter(name="canReceive")
    def can_receive(self) -> Optional[pulumi.Input[_builtins.bool]]:
        """
        . Defines whether the user can receive messages from the service.
        """
        return pulumi.get(self, "can_receive")

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


if not MYPY:
    class SqsQueueDeadLetterQueueArgsDict(TypedDict):
        id: pulumi.Input[_builtins.str]
        """
        The ID of the queue with format `{region/{project-id}/{queue-name}`
        """
        max_receive_count: pulumi.Input[_builtins.int]
        """
        The number of times a message is delivered to the source queue before being sent to the dead-letter queue. Must be between 1 and 1,000.
        """
elif False:
    SqsQueueDeadLetterQueueArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class SqsQueueDeadLetterQueueArgs:
    def __init__(__self__, *,
                 id: pulumi.Input[_builtins.str],
                 max_receive_count: pulumi.Input[_builtins.int]):
        """
        :param pulumi.Input[_builtins.str] id: The ID of the queue with format `{region/{project-id}/{queue-name}`
        :param pulumi.Input[_builtins.int] max_receive_count: The number of times a message is delivered to the source queue before being sent to the dead-letter queue. Must be between 1 and 1,000.
        """
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "max_receive_count", max_receive_count)

    @_builtins.property
    @pulumi.getter
    def id(self) -> pulumi.Input[_builtins.str]:
        """
        The ID of the queue with format `{region/{project-id}/{queue-name}`
        """
        return pulumi.get(self, "id")

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

    @_builtins.property
    @pulumi.getter(name="maxReceiveCount")
    def max_receive_count(self) -> pulumi.Input[_builtins.int]:
        """
        The number of times a message is delivered to the source queue before being sent to the dead-letter queue. Must be between 1 and 1,000.
        """
        return pulumi.get(self, "max_receive_count")

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


