// *** 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 GetSystemAutomationdestination
    {
        /// <summary>
        /// Use this data source to get information on an fortios system automationdestination
        /// </summary>
        public static Task<GetSystemAutomationdestinationResult> InvokeAsync(GetSystemAutomationdestinationArgs args, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.InvokeAsync<GetSystemAutomationdestinationResult>("fortios:index/getSystemAutomationdestination:getSystemAutomationdestination", args ?? new GetSystemAutomationdestinationArgs(), options.WithDefaults());

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


    public sealed class GetSystemAutomationdestinationArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// Specify the name of the desired system automationdestination.
        /// </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 GetSystemAutomationdestinationArgs()
        {
        }
        public static new GetSystemAutomationdestinationArgs Empty => new GetSystemAutomationdestinationArgs();
    }

    public sealed class GetSystemAutomationdestinationInvokeArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// Specify the name of the desired system automationdestination.
        /// </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 GetSystemAutomationdestinationInvokeArgs()
        {
        }
        public static new GetSystemAutomationdestinationInvokeArgs Empty => new GetSystemAutomationdestinationInvokeArgs();
    }


    [OutputType]
    public sealed class GetSystemAutomationdestinationResult
    {
        /// <summary>
        /// Destinations. The structure of `destination` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetSystemAutomationdestinationDestinationResult> Destinations;
        /// <summary>
        /// Cluster group ID set for this destination (default = 0).
        /// </summary>
        public readonly int HaGroupId;
        /// <summary>
        /// The provider-assigned unique ID for this managed resource.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// Destination.
        /// </summary>
        public readonly string Name;
        /// <summary>
        /// Destination type.
        /// </summary>
        public readonly string Type;
        public readonly string? Vdomparam;

        [OutputConstructor]
        private GetSystemAutomationdestinationResult(
            ImmutableArray<Outputs.GetSystemAutomationdestinationDestinationResult> destinations,

            int haGroupId,

            string id,

            string name,

            string type,

            string? vdomparam)
        {
            Destinations = destinations;
            HaGroupId = haGroupId;
            Id = id;
            Name = name;
            Type = type;
            Vdomparam = vdomparam;
        }
    }
}
