# 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, Dict, List, Mapping, Optional, Tuple, Union
from .. import _utilities, _tables

__all__ = [
    'HookAuthArgs',
    'HookChannelArgs',
    'HookHeaderArgs',
]

@pulumi.input_type
class HookAuthArgs:
    def __init__(__self__, *,
                 key: Optional[pulumi.Input[str]] = None,
                 type: Optional[pulumi.Input[str]] = None,
                 value: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] key: Key to use for authentication, usually the header name, for example `"Authorization"`.
        :param pulumi.Input[str] type: The type of hook to trigger. Currently only `"HTTP"` is supported.
        :param pulumi.Input[str] value: Authentication secret.
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if type is not None:
            pulumi.set(__self__, "type", type)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def key(self) -> Optional[pulumi.Input[str]]:
        """
        Key to use for authentication, usually the header name, for example `"Authorization"`.
        """
        return pulumi.get(self, "key")

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

    @property
    @pulumi.getter
    def type(self) -> Optional[pulumi.Input[str]]:
        """
        The type of hook to trigger. Currently only `"HTTP"` is supported.
        """
        return pulumi.get(self, "type")

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

    @property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[str]]:
        """
        Authentication secret.
        """
        return pulumi.get(self, "value")

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


@pulumi.input_type
class HookChannelArgs:
    def __init__(__self__, *,
                 uri: pulumi.Input[str],
                 version: pulumi.Input[str],
                 method: Optional[pulumi.Input[str]] = None,
                 type: Optional[pulumi.Input[bool]] = None):
        """
        :param pulumi.Input[str] uri: The URI the hook will hit.
        :param pulumi.Input[str] version: The version of the endpoint.
        :param pulumi.Input[str] method: The request method to use. Default is `"POST"`.
        :param pulumi.Input[bool] type: The type of hook to trigger. Currently only `"HTTP"` is supported.
        """
        pulumi.set(__self__, "uri", uri)
        pulumi.set(__self__, "version", version)
        if method is not None:
            pulumi.set(__self__, "method", method)
        if type is not None:
            pulumi.set(__self__, "type", type)

    @property
    @pulumi.getter
    def uri(self) -> pulumi.Input[str]:
        """
        The URI the hook will hit.
        """
        return pulumi.get(self, "uri")

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

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

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

    @property
    @pulumi.getter
    def method(self) -> Optional[pulumi.Input[str]]:
        """
        The request method to use. Default is `"POST"`.
        """
        return pulumi.get(self, "method")

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

    @property
    @pulumi.getter
    def type(self) -> Optional[pulumi.Input[bool]]:
        """
        The type of hook to trigger. Currently only `"HTTP"` is supported.
        """
        return pulumi.get(self, "type")

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


@pulumi.input_type
class HookHeaderArgs:
    def __init__(__self__, *,
                 key: Optional[pulumi.Input[str]] = None,
                 value: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] key: Key to use for authentication, usually the header name, for example `"Authorization"`.
        :param pulumi.Input[str] value: Authentication secret.
        """
        if key is not None:
            pulumi.set(__self__, "key", key)
        if value is not None:
            pulumi.set(__self__, "value", value)

    @property
    @pulumi.getter
    def key(self) -> Optional[pulumi.Input[str]]:
        """
        Key to use for authentication, usually the header name, for example `"Authorization"`.
        """
        return pulumi.get(self, "key")

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

    @property
    @pulumi.getter
    def value(self) -> Optional[pulumi.Input[str]]:
        """
        Authentication secret.
        """
        return pulumi.get(self, "value")

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


