// *** 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 GetRouterPrefixlist6
    {
        /// <summary>
        /// Use this data source to get information on an fortios router prefixlist6
        /// </summary>
        public static Task<GetRouterPrefixlist6Result> InvokeAsync(GetRouterPrefixlist6Args args, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.InvokeAsync<GetRouterPrefixlist6Result>("fortios:index/getRouterPrefixlist6:getRouterPrefixlist6", args ?? new GetRouterPrefixlist6Args(), options.WithDefaults());

        /// <summary>
        /// Use this data source to get information on an fortios router prefixlist6
        /// </summary>
        public static Output<GetRouterPrefixlist6Result> Invoke(GetRouterPrefixlist6InvokeArgs args, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.Invoke<GetRouterPrefixlist6Result>("fortios:index/getRouterPrefixlist6:getRouterPrefixlist6", args ?? new GetRouterPrefixlist6InvokeArgs(), options.WithDefaults());
    }


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

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


    [OutputType]
    public sealed class GetRouterPrefixlist6Result
    {
        /// <summary>
        /// Comment.
        /// </summary>
        public readonly string Comments;
        /// <summary>
        /// The provider-assigned unique ID for this managed resource.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// Name.
        /// </summary>
        public readonly string Name;
        /// <summary>
        /// IPv6 prefix list rule. The structure of `rule` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetRouterPrefixlist6RuleResult> Rules;
        public readonly string? Vdomparam;

        [OutputConstructor]
        private GetRouterPrefixlist6Result(
            string comments,

            string id,

            string name,

            ImmutableArray<Outputs.GetRouterPrefixlist6RuleResult> rules,

            string? vdomparam)
        {
            Comments = comments;
            Id = id;
            Name = name;
            Rules = rules;
            Vdomparam = vdomparam;
        }
    }
}
