<filename>sdk/dotnet/GetRouterKeychain.cs// *** 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 GetRouterKeychain
    {
        /// <summary>
        /// Use this data source to get information on an fortios router keychain
        /// </summary>
        public static Task<GetRouterKeychainResult> InvokeAsync(GetRouterKeychainArgs args, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.InvokeAsync<GetRouterKeychainResult>("fortios:index/getRouterKeychain:getRouterKeychain", args ?? new GetRouterKeychainArgs(), options.WithDefaults());

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


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

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


    [OutputType]
    public sealed class GetRouterKeychainResult
    {
        /// <summary>
        /// The provider-assigned unique ID for this managed resource.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// Configuration method to edit key settings. The structure of `key` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetRouterKeychainKeyResult> Keys;
        /// <summary>
        /// Key-chain name.
        /// </summary>
        public readonly string Name;
        public readonly string? Vdomparam;

        [OutputConstructor]
        private GetRouterKeychainResult(
            string id,

            ImmutableArray<Outputs.GetRouterKeychainKeyResult> keys,

            string name,

            string? vdomparam)
        {
            Id = id;
            Keys = keys;
            Name = name;
            Vdomparam = vdomparam;
        }
    }
}
