import * as pulumi from "@pulumi/pulumi";
/**
 * Creates and manages Scaleway Transactional Email Webhooks.
 * For more information, refer to the [API documentation](https://www.scaleway.com/en/developers/api/transactional-email).
 *
 * ## Example Usage
 *
 * ### Basic
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as scaleway from "@pulumiverse/scaleway";
 *
 * const main = new scaleway.tem.Webhook("main", {
 *     domainId: "your-domain-id",
 *     eventTypes: [
 *         "email_delivered",
 *         "email_bounced",
 *     ],
 *     snsArn: "arn:scw:sns:fr-par:project-xxxx:your-sns-topic",
 *     name: "example-webhook",
 * });
 * ```
 *
 * ### Complete Example with Dependencies
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as scaleway from "@pulumiverse/scaleway";
 *
 * const config = new pulumi.Config();
 * const domainName = config.require("domainName");
 * const sns = new scaleway.mnq.Sns("sns", {});
 * const snsCredentials = new scaleway.mnq.SnsCredentials("sns_credentials", {permissions: {
 *     canManage: true,
 * }});
 * const snsTopic = new scaleway.mnq.SnsTopic("sns_topic", {
 *     name: "test-mnq-sns-topic-basic",
 *     accessKey: snsCredentials.accessKey,
 *     secretKey: snsCredentials.secretKey,
 * });
 * const cr01 = new scaleway.tem.Domain("cr01", {
 *     name: domainName,
 *     acceptTos: true,
 * });
 * const spf = new scaleway.domain.Record("spf", {
 *     dnsZone: domainName,
 *     type: "TXT",
 *     data: pulumi.interpolate`v=spf1 ${cr01.spfConfig} -all`,
 * });
 * const dkim = new scaleway.domain.Record("dkim", {
 *     dnsZone: domainName,
 *     name: pulumi.interpolate`${cr01.projectId}._domainkey`,
 *     type: "TXT",
 *     data: cr01.dkimConfig,
 * });
 * const mx = new scaleway.domain.Record("mx", {
 *     dnsZone: domainName,
 *     type: "MX",
 *     data: ".",
 * });
 * const dmarc = new scaleway.domain.Record("dmarc", {
 *     dnsZone: domainName,
 *     name: cr01.dmarcName,
 *     type: "TXT",
 *     data: cr01.dmarcConfig,
 * });
 * const valid = new scaleway.tem.DomainValidation("valid", {
 *     domainId: cr01.id,
 *     region: cr01.region,
 *     timeout: 3600,
 * });
 * const webhook = new scaleway.tem.Webhook("webhook", {
 *     name: "example-webhook",
 *     domainId: cr01.id,
 *     eventTypes: [
 *         "email_delivered",
 *         "email_bounced",
 *     ],
 *     snsArn: snsTopic.arn,
 * }, {
 *     dependsOn: [
 *         valid,
 *         snsTopic,
 *     ],
 * });
 * ```
 *
 * ## Import
 *
 * Webhooks can be imported using the {region}/{id}, e.g.
 *
 * bash
 *
 * ```sh
 * $ pulumi import scaleway:tem/webhook:Webhook main fr-par/11111111-1111-1111-1111-111111111111
 * ```
 */
export declare class Webhook extends pulumi.CustomResource {
    /**
     * Get an existing Webhook resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param state Any extra arguments used during the lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, state?: WebhookState, opts?: pulumi.CustomResourceOptions): Webhook;
    /**
     * Returns true if the given object is an instance of Webhook.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj: any): obj is Webhook;
    /**
     * The date and time of the webhook's creation (RFC 3339 format).
     */
    readonly createdAt: pulumi.Output<string>;
    /**
     * The ID of the domain the webhook is associated with.
     */
    readonly domainId: pulumi.Output<string>;
    /**
     * A list of event types that trigger the webhook.
     */
    readonly eventTypes: pulumi.Output<string[]>;
    /**
     * The name of the webhook. Defaults to an autogenerated name if not provided.
     */
    readonly name: pulumi.Output<string>;
    /**
     * The ID of the organization the webhook belongs to.
     */
    readonly organizationId: pulumi.Output<string>;
    /**
     * The ID of the project the webhook is associated with.
     */
    readonly projectId: pulumi.Output<string>;
    /**
     * . The region in which the webhook should be created.
     */
    readonly region: pulumi.Output<string>;
    /**
     * The Amazon Resource Name (ARN) of the SNS topic.
     */
    readonly snsArn: pulumi.Output<string>;
    /**
     * The date and time of the webhook's last update (RFC 3339 format).
     */
    readonly updatedAt: pulumi.Output<string>;
    /**
     * Create a Webhook resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    constructor(name: string, args: WebhookArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering Webhook resources.
 */
export interface WebhookState {
    /**
     * The date and time of the webhook's creation (RFC 3339 format).
     */
    createdAt?: pulumi.Input<string>;
    /**
     * The ID of the domain the webhook is associated with.
     */
    domainId?: pulumi.Input<string>;
    /**
     * A list of event types that trigger the webhook.
     */
    eventTypes?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The name of the webhook. Defaults to an autogenerated name if not provided.
     */
    name?: pulumi.Input<string>;
    /**
     * The ID of the organization the webhook belongs to.
     */
    organizationId?: pulumi.Input<string>;
    /**
     * The ID of the project the webhook is associated with.
     */
    projectId?: pulumi.Input<string>;
    /**
     * . The region in which the webhook should be created.
     */
    region?: pulumi.Input<string>;
    /**
     * The Amazon Resource Name (ARN) of the SNS topic.
     */
    snsArn?: pulumi.Input<string>;
    /**
     * The date and time of the webhook's last update (RFC 3339 format).
     */
    updatedAt?: pulumi.Input<string>;
}
/**
 * The set of arguments for constructing a Webhook resource.
 */
export interface WebhookArgs {
    /**
     * The ID of the domain the webhook is associated with.
     */
    domainId: pulumi.Input<string>;
    /**
     * A list of event types that trigger the webhook.
     */
    eventTypes: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The name of the webhook. Defaults to an autogenerated name if not provided.
     */
    name?: pulumi.Input<string>;
    /**
     * The ID of the project the webhook is associated with.
     */
    projectId?: pulumi.Input<string>;
    /**
     * . The region in which the webhook should be created.
     */
    region?: pulumi.Input<string>;
    /**
     * The Amazon Resource Name (ARN) of the SNS topic.
     */
    snsArn: pulumi.Input<string>;
}
