// *** 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! ***

using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
using Pulumi;

namespace Pulumiverse.Fortios
{
    public static class GetSystemAutomationtrigger
    {
        /// <summary>
        /// Use this data source to get information on an fortios system automationtrigger
        /// </summary>
        public static Task<GetSystemAutomationtriggerResult> InvokeAsync(GetSystemAutomationtriggerArgs args, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.InvokeAsync<GetSystemAutomationtriggerResult>("fortios:index/getSystemAutomationtrigger:getSystemAutomationtrigger", args ?? new GetSystemAutomationtriggerArgs(), options.WithDefaults());

        /// <summary>
        /// Use this data source to get information on an fortios system automationtrigger
        /// </summary>
        public static Output<GetSystemAutomationtriggerResult> Invoke(GetSystemAutomationtriggerInvokeArgs args, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.Invoke<GetSystemAutomationtriggerResult>("fortios:index/getSystemAutomationtrigger:getSystemAutomationtrigger", args ?? new GetSystemAutomationtriggerInvokeArgs(), options.WithDefaults());
    }


    public sealed class GetSystemAutomationtriggerArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// Specify the name of the desired system automationtrigger.
        /// </summary>
        [Input("name", required: true)]
        public string Name { get; set; } = null!;

        /// <summary>
        /// Specifies the vdom to which the data source will be applied when the FortiGate unit is running in VDOM mode. Only one vdom can be specified. If you want to inherit the vdom configuration of the provider, please do not set this parameter.
        /// </summary>
        [Input("vdomparam")]
        public string? Vdomparam { get; set; }

        public GetSystemAutomationtriggerArgs()
        {
        }
        public static new GetSystemAutomationtriggerArgs Empty => new GetSystemAutomationtriggerArgs();
    }

    public sealed class GetSystemAutomationtriggerInvokeArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// Specify the name of the desired system automationtrigger.
        /// </summary>
        [Input("name", required: true)]
        public Input<string> Name { get; set; } = null!;

        /// <summary>
        /// Specifies the vdom to which the data source will be applied when the FortiGate unit is running in VDOM mode. Only one vdom can be specified. If you want to inherit the vdom configuration of the provider, please do not set this parameter.
        /// </summary>
        [Input("vdomparam")]
        public Input<string>? Vdomparam { get; set; }

        public GetSystemAutomationtriggerInvokeArgs()
        {
        }
        public static new GetSystemAutomationtriggerInvokeArgs Empty => new GetSystemAutomationtriggerInvokeArgs();
    }


    [OutputType]
    public sealed class GetSystemAutomationtriggerResult
    {
        /// <summary>
        /// Description.
        /// </summary>
        public readonly string Description;
        /// <summary>
        /// Event type.
        /// </summary>
        public readonly string EventType;
        /// <summary>
        /// Fabric connector event handler name.
        /// </summary>
        public readonly string FabricEventName;
        /// <summary>
        /// Fabric connector event severity.
        /// </summary>
        public readonly string FabricEventSeverity;
        /// <summary>
        /// FortiAnalyzer event handler name.
        /// </summary>
        public readonly string FazEventName;
        /// <summary>
        /// FortiAnalyzer event severity.
        /// </summary>
        public readonly string FazEventSeverity;
        /// <summary>
        /// FortiAnalyzer event tags.
        /// </summary>
        public readonly string FazEventTags;
        /// <summary>
        /// Customized trigger field settings. The structure of `fields` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetSystemAutomationtriggerFieldResult> Fields;
        /// <summary>
        /// The provider-assigned unique ID for this managed resource.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// IOC threat level.
        /// </summary>
        public readonly string IocLevel;
        /// <summary>
        /// License type.
        /// </summary>
        public readonly string LicenseType;
        /// <summary>
        /// Log ID to trigger event.
        /// </summary>
        public readonly int Logid;
        /// <summary>
        /// Log ID to trigger event. Only applies on FortiOS v7.0.0+. The structure of `logid_block` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetSystemAutomationtriggerLogidBlockResult> LogidBlocks;
        /// <summary>
        /// Name.
        /// </summary>
        public readonly string Name;
        /// <summary>
        /// Security Rating report.
        /// </summary>
        public readonly string ReportType;
        /// <summary>
        /// Fabric connector serial number.
        /// </summary>
        public readonly string Serial;
        /// <summary>
        /// Trigger date and time (YYYY-MM-DD HH:MM:SS).
        /// </summary>
        public readonly string TriggerDatetime;
        /// <summary>
        /// Day within a month to trigger.
        /// </summary>
        public readonly int TriggerDay;
        /// <summary>
        /// Scheduled trigger frequency (default = daily).
        /// </summary>
        public readonly string TriggerFrequency;
        /// <summary>
        /// Hour of the day on which to trigger (0 - 23, default = 1).
        /// </summary>
        public readonly int TriggerHour;
        /// <summary>
        /// Minute of the hour on which to trigger (0 - 59, 60 to randomize).
        /// </summary>
        public readonly int TriggerMinute;
        /// <summary>
        /// Trigger type.
        /// </summary>
        public readonly string TriggerType;
        /// <summary>
        /// Day of week for trigger.
        /// </summary>
        public readonly string TriggerWeekday;
        public readonly string? Vdomparam;
        /// <summary>
        /// Virtual domain(s) that this trigger is valid for. The structure of `vdom` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetSystemAutomationtriggerVdomResult> Vdoms;

        [OutputConstructor]
        private GetSystemAutomationtriggerResult(
            string description,

            string eventType,

            string fabricEventName,

            string fabricEventSeverity,

            string fazEventName,

            string fazEventSeverity,

            string fazEventTags,

            ImmutableArray<Outputs.GetSystemAutomationtriggerFieldResult> fields,

            string id,

            string iocLevel,

            string licenseType,

            int logid,

            ImmutableArray<Outputs.GetSystemAutomationtriggerLogidBlockResult> logidBlocks,

            string name,

            string reportType,

            string serial,

            string triggerDatetime,

            int triggerDay,

            string triggerFrequency,

            int triggerHour,

            int triggerMinute,

            string triggerType,

            string triggerWeekday,

            string? vdomparam,

            ImmutableArray<Outputs.GetSystemAutomationtriggerVdomResult> vdoms)
        {
            Description = description;
            EventType = eventType;
            FabricEventName = fabricEventName;
            FabricEventSeverity = fabricEventSeverity;
            FazEventName = fazEventName;
            FazEventSeverity = fazEventSeverity;
            FazEventTags = fazEventTags;
            Fields = fields;
            Id = id;
            IocLevel = iocLevel;
            LicenseType = licenseType;
            Logid = logid;
            LogidBlocks = logidBlocks;
            Name = name;
            ReportType = reportType;
            Serial = serial;
            TriggerDatetime = triggerDatetime;
            TriggerDay = triggerDay;
            TriggerFrequency = triggerFrequency;
            TriggerHour = triggerHour;
            TriggerMinute = triggerMinute;
            TriggerType = triggerType;
            TriggerWeekday = triggerWeekday;
            Vdomparam = vdomparam;
            Vdoms = vdoms;
        }
    }
}
