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

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


    public sealed class GetSystemIpv6neighborcacheArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// Specify the fosid of the desired system ipv6neighborcache.
        /// </summary>
        [Input("fosid", required: true)]
        public int Fosid { get; set; }

        /// <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 GetSystemIpv6neighborcacheArgs()
        {
        }
        public static new GetSystemIpv6neighborcacheArgs Empty => new GetSystemIpv6neighborcacheArgs();
    }

    public sealed class GetSystemIpv6neighborcacheInvokeArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// Specify the fosid of the desired system ipv6neighborcache.
        /// </summary>
        [Input("fosid", required: true)]
        public Input<int> Fosid { 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 GetSystemIpv6neighborcacheInvokeArgs()
        {
        }
        public static new GetSystemIpv6neighborcacheInvokeArgs Empty => new GetSystemIpv6neighborcacheInvokeArgs();
    }


    [OutputType]
    public sealed class GetSystemIpv6neighborcacheResult
    {
        /// <summary>
        /// Unique integer ID of the entry.
        /// </summary>
        public readonly int Fosid;
        /// <summary>
        /// The provider-assigned unique ID for this managed resource.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// Select the associated interface name from available options.
        /// </summary>
        public readonly string Interface;
        /// <summary>
        /// IPv6 address (format: xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx).
        /// </summary>
        public readonly string Ipv6;
        /// <summary>
        /// MAC address (format: xx:xx:xx:xx:xx:xx).
        /// </summary>
        public readonly string Mac;
        public readonly string? Vdomparam;

        [OutputConstructor]
        private GetSystemIpv6neighborcacheResult(
            int fosid,

            string id,

            string @interface,

            string ipv6,

            string mac,

            string? vdomparam)
        {
            Fosid = fosid;
            Id = id;
            Interface = @interface;
            Ipv6 = ipv6;
            Mac = mac;
            Vdomparam = vdomparam;
        }
    }
}
