// *** 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 GetSubscribedCatalog
    {
        public static Task<GetSubscribedCatalogResult> InvokeAsync(GetSubscribedCatalogArgs args, InvokeOptions? options = null)
            => Pulumi.Deployment.Instance.InvokeAsync<GetSubscribedCatalogResult>("vcd:index/getSubscribedCatalog:getSubscribedCatalog", args ?? new GetSubscribedCatalogArgs(), options.WithDefaults());

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


    public sealed class GetSubscribedCatalogArgs : global::Pulumi.InvokeArgs
    {
        [Input("filter")]
        public Inputs.GetSubscribedCatalogFilterArgs? Filter { get; set; }

        [Input("name", required: true)]
        public string Name { get; set; } = null!;

        [Input("org")]
        public string? Org { get; set; }

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

    public sealed class GetSubscribedCatalogInvokeArgs : global::Pulumi.InvokeArgs
    {
        [Input("filter")]
        public Input<Inputs.GetSubscribedCatalogFilterInputArgs>? Filter { get; set; }

        [Input("name", required: true)]
        public Input<string> Name { get; set; } = null!;

        [Input("org")]
        public Input<string>? Org { get; set; }

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


    [OutputType]
    public sealed class GetSubscribedCatalogResult
    {
        public readonly int CatalogVersion;
        public readonly string Created;
        public readonly string Description;
        public readonly ImmutableArray<string> FailedTasks;
        public readonly Outputs.GetSubscribedCatalogFilterResult? Filter;
        public readonly string Href;
        /// <summary>
        /// The provider-assigned unique ID for this managed resource.
        /// </summary>
        public readonly string Id;
        public readonly bool IsLocal;
        public readonly bool IsPublished;
        public readonly bool IsShared;
        public readonly bool MakeLocalCopy;
        public readonly ImmutableArray<string> MediaItemLists;
        public readonly string Name;
        public readonly int NumberOfMedia;
        public readonly int NumberOfVappTemplates;
        public readonly string? Org;
        public readonly string OwnerName;
        public readonly string PublishSubscriptionType;
        public readonly ImmutableArray<string> RunningTasks;
        public readonly string StorageProfileId;
        public readonly string SubscriptionUrl;
        public readonly ImmutableArray<string> VappTemplateLists;

        [OutputConstructor]
        private GetSubscribedCatalogResult(
            int catalogVersion,

            string created,

            string description,

            ImmutableArray<string> failedTasks,

            Outputs.GetSubscribedCatalogFilterResult? filter,

            string href,

            string id,

            bool isLocal,

            bool isPublished,

            bool isShared,

            bool makeLocalCopy,

            ImmutableArray<string> mediaItemLists,

            string name,

            int numberOfMedia,

            int numberOfVappTemplates,

            string? org,

            string ownerName,

            string publishSubscriptionType,

            ImmutableArray<string> runningTasks,

            string storageProfileId,

            string subscriptionUrl,

            ImmutableArray<string> vappTemplateLists)
        {
            CatalogVersion = catalogVersion;
            Created = created;
            Description = description;
            FailedTasks = failedTasks;
            Filter = filter;
            Href = href;
            Id = id;
            IsLocal = isLocal;
            IsPublished = isPublished;
            IsShared = isShared;
            MakeLocalCopy = makeLocalCopy;
            MediaItemLists = mediaItemLists;
            Name = name;
            NumberOfMedia = numberOfMedia;
            NumberOfVappTemplates = numberOfVappTemplates;
            Org = org;
            OwnerName = ownerName;
            PublishSubscriptionType = publishSubscriptionType;
            RunningTasks = runningTasks;
            StorageProfileId = storageProfileId;
            SubscriptionUrl = subscriptionUrl;
            VappTemplateLists = vappTemplateLists;
        }
    }
}
