<reponame>SimCubeLtd/pulumi-onepassword// *** 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;

namespace Pulumi.Onepassword
{
    public static class GetVault
    {
        /// <summary>
        /// Use this data source to get details of a vault by either its name or uuid.
        /// </summary>
        public static Task<GetVaultResult> InvokeAsync(GetVaultArgs? args = null, InvokeOptions? options = null)
            => Pulumi.Deployment.Instance.InvokeAsync<GetVaultResult>("onepassword:index/getVault:GetVault", args ?? new GetVaultArgs(), options.WithDefaults());

        /// <summary>
        /// Use this data source to get details of a vault by either its name or uuid.
        /// </summary>
        public static Output<GetVaultResult> Invoke(GetVaultInvokeArgs? args = null, InvokeOptions? options = null)
            => Pulumi.Deployment.Instance.Invoke<GetVaultResult>("onepassword:index/getVault:GetVault", args ?? new GetVaultInvokeArgs(), options.WithDefaults());
    }


    public sealed class GetVaultArgs : Pulumi.InvokeArgs
    {
        /// <summary>
        /// The name of the vault to retrieve. This field will be populated with the name of the vault if the vault it looked up by its UUID.
        /// </summary>
        [Input("name")]
        public string? Name { get; set; }

        /// <summary>
        /// The UUID of the vault to retrieve. This field will be populated with the UUID of the vault if the vault it looked up by its name.
        /// </summary>
        [Input("uuid")]
        public string? Uuid { get; set; }

        public GetVaultArgs()
        {
        }
    }

    public sealed class GetVaultInvokeArgs : Pulumi.InvokeArgs
    {
        /// <summary>
        /// The name of the vault to retrieve. This field will be populated with the name of the vault if the vault it looked up by its UUID.
        /// </summary>
        [Input("name")]
        public Input<string>? Name { get; set; }

        /// <summary>
        /// The UUID of the vault to retrieve. This field will be populated with the UUID of the vault if the vault it looked up by its name.
        /// </summary>
        [Input("uuid")]
        public Input<string>? Uuid { get; set; }

        public GetVaultInvokeArgs()
        {
        }
    }


    [OutputType]
    public sealed class GetVaultResult
    {
        /// <summary>
        /// The description of the vault.
        /// </summary>
        public readonly string Description;
        public readonly string Id;
        /// <summary>
        /// The name of the vault to retrieve. This field will be populated with the name of the vault if the vault it looked up by its UUID.
        /// </summary>
        public readonly string Name;
        /// <summary>
        /// The UUID of the vault to retrieve. This field will be populated with the UUID of the vault if the vault it looked up by its name.
        /// </summary>
        public readonly string Uuid;

        [OutputConstructor]
        private GetVaultResult(
            string description,

            string id,

            string name,

            string uuid)
        {
            Description = description;
            Id = id;
            Name = name;
            Uuid = uuid;
        }
    }
}
