# 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 builtins
import copy
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__ = [
    'EventEventArgs',
    'EventEventArgsDict',
    'EventEventAttributeArgs',
    'EventEventAttributeArgsDict',
]

MYPY = False

if not MYPY:
    class EventEventArgsDict(TypedDict):
        attributes: pulumi.Input[Sequence[pulumi.Input['EventEventAttributeArgsDict']]]
        """
        An attribute to include in your event payload. Multiple attribute blocks can be defined for an event.
        """
        type: pulumi.Input[builtins.str]
        """
        The event's name. Can be a combination of alphanumeric characters, underscores, and colons.
        """
        timestamp: NotRequired[pulumi.Input[builtins.int]]
        """
        Must be a Unix epoch timestamp. You can define timestamps either in seconds or in milliseconds.
        """
elif False:
    EventEventArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class EventEventArgs:
    def __init__(__self__, *,
                 attributes: pulumi.Input[Sequence[pulumi.Input['EventEventAttributeArgs']]],
                 type: pulumi.Input[builtins.str],
                 timestamp: Optional[pulumi.Input[builtins.int]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['EventEventAttributeArgs']]] attributes: An attribute to include in your event payload. Multiple attribute blocks can be defined for an event.
        :param pulumi.Input[builtins.str] type: The event's name. Can be a combination of alphanumeric characters, underscores, and colons.
        :param pulumi.Input[builtins.int] timestamp: Must be a Unix epoch timestamp. You can define timestamps either in seconds or in milliseconds.
        """
        pulumi.set(__self__, "attributes", attributes)
        pulumi.set(__self__, "type", type)
        if timestamp is not None:
            pulumi.set(__self__, "timestamp", timestamp)

    @property
    @pulumi.getter
    def attributes(self) -> pulumi.Input[Sequence[pulumi.Input['EventEventAttributeArgs']]]:
        """
        An attribute to include in your event payload. Multiple attribute blocks can be defined for an event.
        """
        return pulumi.get(self, "attributes")

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

    @property
    @pulumi.getter
    def type(self) -> pulumi.Input[builtins.str]:
        """
        The event's name. Can be a combination of alphanumeric characters, underscores, and colons.
        """
        return pulumi.get(self, "type")

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

    @property
    @pulumi.getter
    def timestamp(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        Must be a Unix epoch timestamp. You can define timestamps either in seconds or in milliseconds.
        """
        return pulumi.get(self, "timestamp")

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


if not MYPY:
    class EventEventAttributeArgsDict(TypedDict):
        key: pulumi.Input[builtins.str]
        """
        The name of the attribute.
        """
        value: pulumi.Input[builtins.str]
        """
        The value of the attribute.
        """
        type: NotRequired[pulumi.Input[builtins.str]]
        """
        Specify the type for the attribute value. This is useful when passing integer or float values to Insights. Allowed values are string, int, or float. Defaults to string.
        """
elif False:
    EventEventAttributeArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class EventEventAttributeArgs:
    def __init__(__self__, *,
                 key: pulumi.Input[builtins.str],
                 value: pulumi.Input[builtins.str],
                 type: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] key: The name of the attribute.
        :param pulumi.Input[builtins.str] value: The value of the attribute.
        :param pulumi.Input[builtins.str] type: Specify the type for the attribute value. This is useful when passing integer or float values to Insights. Allowed values are string, int, or float. Defaults to string.
        """
        pulumi.set(__self__, "key", key)
        pulumi.set(__self__, "value", value)
        if type is not None:
            pulumi.set(__self__, "type", type)

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

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

    @property
    @pulumi.getter
    def value(self) -> pulumi.Input[builtins.str]:
        """
        The value of the attribute.
        """
        return pulumi.get(self, "value")

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

    @property
    @pulumi.getter
    def type(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        Specify the type for the attribute value. This is useful when passing integer or float values to Insights. Allowed values are string, int, or float. Defaults to string.
        """
        return pulumi.get(self, "type")

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


