<reponame>pulumiverse/pulumi-vra// *** 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.Vra.Blueprint
{
    public static class GetVersion
    {
        /// <summary>
        /// This data source provides information about a cloud template (blueprint) version in vRA.
        /// 
        /// {{% examples %}}
        /// ## Example Usage
        /// {{% example %}}
        /// ### S
        /// 
        /// ```csharp
        /// using System.Collections.Generic;
        /// using Pulumi;
        /// using Vra = Pulumi.Vra;
        /// 
        /// return await Deployment.RunAsync(() =&gt; 
        /// {
        ///     var @this = Vra.Blueprint.GetVersion.Invoke(new()
        ///     {
        ///         BlueprintId = @var.Blueprint_id,
        ///         Id = @var.Blueprint_version_id,
        ///     });
        /// 
        /// });
        /// ```
        /// {{% /example %}}
        /// {{% /examples %}}
        /// </summary>
        public static Task<GetVersionResult> InvokeAsync(GetVersionArgs args, InvokeOptions? options = null)
            => Pulumi.Deployment.Instance.InvokeAsync<GetVersionResult>("vra:blueprint/getVersion:getVersion", args ?? new GetVersionArgs(), options.WithDefaults());

        /// <summary>
        /// This data source provides information about a cloud template (blueprint) version in vRA.
        /// 
        /// {{% examples %}}
        /// ## Example Usage
        /// {{% example %}}
        /// ### S
        /// 
        /// ```csharp
        /// using System.Collections.Generic;
        /// using Pulumi;
        /// using Vra = Pulumi.Vra;
        /// 
        /// return await Deployment.RunAsync(() =&gt; 
        /// {
        ///     var @this = Vra.Blueprint.GetVersion.Invoke(new()
        ///     {
        ///         BlueprintId = @var.Blueprint_id,
        ///         Id = @var.Blueprint_version_id,
        ///     });
        /// 
        /// });
        /// ```
        /// {{% /example %}}
        /// {{% /examples %}}
        /// </summary>
        public static Output<GetVersionResult> Invoke(GetVersionInvokeArgs args, InvokeOptions? options = null)
            => Pulumi.Deployment.Instance.Invoke<GetVersionResult>("vra:blueprint/getVersion:getVersion", args ?? new GetVersionInvokeArgs(), options.WithDefaults());
    }


    public sealed class GetVersionArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// Name of the cloud template. One of `id` or `name` must be provided.
        /// </summary>
        [Input("blueprintId", required: true)]
        public string BlueprintId { get; set; } = null!;

        /// <summary>
        /// The id of the cloud template version.
        /// </summary>
        [Input("id", required: true)]
        public string Id { get; set; } = null!;

        public GetVersionArgs()
        {
        }
        public static new GetVersionArgs Empty => new GetVersionArgs();
    }

    public sealed class GetVersionInvokeArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// Name of the cloud template. One of `id` or `name` must be provided.
        /// </summary>
        [Input("blueprintId", required: true)]
        public Input<string> BlueprintId { get; set; } = null!;

        /// <summary>
        /// The id of the cloud template version.
        /// </summary>
        [Input("id", required: true)]
        public Input<string> Id { get; set; } = null!;

        public GetVersionInvokeArgs()
        {
        }
        public static new GetVersionInvokeArgs Empty => new GetVersionInvokeArgs();
    }


    [OutputType]
    public sealed class GetVersionResult
    {
        /// <summary>
        /// Description of the cloud template.
        /// </summary>
        public readonly string BlueprintDescription;
        public readonly string BlueprintId;
        /// <summary>
        /// Blueprint YAML content.
        /// </summary>
        public readonly string Content;
        /// <summary>
        /// Date when the entity was created. The date is in ISO 6801 and UTC.
        /// </summary>
        public readonly string CreatedAt;
        /// <summary>
        /// The user the entity was created by.
        /// </summary>
        public readonly string CreatedBy;
        /// <summary>
        /// (Optional) Cloud template version description.
        /// </summary>
        public readonly string Description;
        public readonly string Id;
        /// <summary>
        /// Name of the cloud template version.
        /// </summary>
        public readonly string Name;
        /// <summary>
        /// The id of the organization this entity belongs to.
        /// </summary>
        public readonly string OrgId;
        /// <summary>
        /// The id of the project this entity belongs to.
        /// </summary>
        public readonly string ProjectId;
        /// <summary>
        /// The name of the project the entity belongs to.
        /// </summary>
        public readonly string ProjectName;
        /// <summary>
        /// Status of the cloud template. Supported values: `DRAFT`, `VERSIONED`, `RELEASED`.
        /// </summary>
        public readonly string Status;
        /// <summary>
        /// Date when the entity was last updated. The date is ISO 8601 and UTC.
        /// </summary>
        public readonly string UpdatedAt;
        /// <summary>
        /// The user the entity was last updated by.
        /// </summary>
        public readonly string UpdatedBy;
        /// <summary>
        /// Flag to indicate if the current content of the cloud template is valid.
        /// </summary>
        public readonly string Valid;
        /// <summary>
        /// Cloud template version.
        /// </summary>
        public readonly string Version;
        /// <summary>
        /// Cloud template version change log.
        /// </summary>
        public readonly string VersionChangeLog;

        [OutputConstructor]
        private GetVersionResult(
            string blueprintDescription,

            string blueprintId,

            string content,

            string createdAt,

            string createdBy,

            string description,

            string id,

            string name,

            string orgId,

            string projectId,

            string projectName,

            string status,

            string updatedAt,

            string updatedBy,

            string valid,

            string version,

            string versionChangeLog)
        {
            BlueprintDescription = blueprintDescription;
            BlueprintId = blueprintId;
            Content = content;
            CreatedAt = createdAt;
            CreatedBy = createdBy;
            Description = description;
            Id = id;
            Name = name;
            OrgId = orgId;
            ProjectId = projectId;
            ProjectName = projectName;
            Status = status;
            UpdatedAt = updatedAt;
            UpdatedBy = updatedBy;
            Valid = valid;
            Version = version;
            VersionChangeLog = versionChangeLog;
        }
    }
}
