// *** WARNING: this file was generated by test. ***
// *** 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.Example
{
    public static class GetAssets
    {
        public static Task<GetAssetsResult> InvokeAsync(GetAssetsArgs args, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.InvokeAsync<GetAssetsResult>("example::GetAssets", args ?? new GetAssetsArgs(), options.WithDefaults());

        public static Output<GetAssetsResult> Invoke(GetAssetsInvokeArgs args, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.Invoke<GetAssetsResult>("example::GetAssets", args ?? new GetAssetsInvokeArgs(), options.WithDefaults());
    }


    public sealed class GetAssetsArgs : global::Pulumi.InvokeArgs
    {
        [Input("archive", required: true)]
        public Archive Archive { get; set; } = null!;

        [Input("source", required: true)]
        public AssetOrArchive Source { get; set; } = null!;

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

    public sealed class GetAssetsInvokeArgs : global::Pulumi.InvokeArgs
    {
        [Input("archive", required: true)]
        public Input<Archive> Archive { get; set; } = null!;

        [Input("source", required: true)]
        public Input<AssetOrArchive> Source { get; set; } = null!;

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


    [OutputType]
    public sealed class GetAssetsResult
    {
        public readonly Archive Archive;
        public readonly AssetOrArchive Source;

        [OutputConstructor]
        private GetAssetsResult(
            Archive archive,

            AssetOrArchive source)
        {
            Archive = archive;
            Source = source;
        }
    }
}