// *** 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.Vcd
{
    public static class GetTask
    {
        public static Task<GetTaskResult> InvokeAsync(GetTaskArgs args, InvokeOptions? options = null)
            => Pulumi.Deployment.Instance.InvokeAsync<GetTaskResult>("vcd:index/getTask:getTask", args ?? new GetTaskArgs(), options.WithDefaults());

        public static Output<GetTaskResult> Invoke(GetTaskInvokeArgs args, InvokeOptions? options = null)
            => Pulumi.Deployment.Instance.Invoke<GetTaskResult>("vcd:index/getTask:getTask", args ?? new GetTaskInvokeArgs(), options.WithDefaults());
    }


    public sealed class GetTaskArgs : global::Pulumi.InvokeArgs
    {
        [Input("id", required: true)]
        public string Id { get; set; } = null!;

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

    public sealed class GetTaskInvokeArgs : global::Pulumi.InvokeArgs
    {
        [Input("id", required: true)]
        public Input<string> Id { get; set; } = null!;

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


    [OutputType]
    public sealed class GetTaskResult
    {
        public readonly bool CancelRequested;
        public readonly string Description;
        public readonly string EndTime;
        public readonly string Error;
        public readonly string ExpiryTime;
        public readonly string Href;
        public readonly string Id;
        public readonly string Name;
        public readonly string Operation;
        public readonly string OperationName;
        public readonly string OrgId;
        public readonly string OrgName;
        public readonly string OwnerId;
        public readonly string OwnerName;
        public readonly string OwnerType;
        public readonly int Progress;
        public readonly string StartTime;
        public readonly string Status;
        public readonly string Type;
        public readonly string UserId;
        public readonly string UserName;

        [OutputConstructor]
        private GetTaskResult(
            bool cancelRequested,

            string description,

            string endTime,

            string error,

            string expiryTime,

            string href,

            string id,

            string name,

            string operation,

            string operationName,

            string orgId,

            string orgName,

            string ownerId,

            string ownerName,

            string ownerType,

            int progress,

            string startTime,

            string status,

            string type,

            string userId,

            string userName)
        {
            CancelRequested = cancelRequested;
            Description = description;
            EndTime = endTime;
            Error = error;
            ExpiryTime = expiryTime;
            Href = href;
            Id = id;
            Name = name;
            Operation = operation;
            OperationName = operationName;
            OrgId = orgId;
            OrgName = orgName;
            OwnerId = ownerId;
            OwnerName = ownerName;
            OwnerType = ownerType;
            Progress = progress;
            StartTime = startTime;
            Status = status;
            Type = type;
            UserId = userId;
            UserName = userName;
        }
    }
}
