<gh_stars>0// *** 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.Nexus
{
    public static class GetNexusRepository
    {
        public static Task<GetNexusRepositoryResult> InvokeAsync(GetNexusRepositoryArgs args, InvokeOptions? options = null)
            => Pulumi.Deployment.Instance.InvokeAsync<GetNexusRepositoryResult>("nexus:index/getNexusRepository:GetNexusRepository", args ?? new GetNexusRepositoryArgs(), options.WithDefaults());

        public static Output<GetNexusRepositoryResult> Invoke(GetNexusRepositoryInvokeArgs args, InvokeOptions? options = null)
            => Pulumi.Deployment.Instance.Invoke<GetNexusRepositoryResult>("nexus:index/getNexusRepository:GetNexusRepository", args ?? new GetNexusRepositoryInvokeArgs(), options.WithDefaults());
    }


    public sealed class GetNexusRepositoryArgs : Pulumi.InvokeArgs
    {
        [Input("aptSignings")]
        private List<Inputs.GetNexusRepositoryAptSigningArgs>? _aptSignings;
        public List<Inputs.GetNexusRepositoryAptSigningArgs> AptSignings
        {
            get => _aptSignings ?? (_aptSignings = new List<Inputs.GetNexusRepositoryAptSigningArgs>());
            set => _aptSignings = value;
        }

        [Input("apts")]
        private List<Inputs.GetNexusRepositoryAptArgs>? _apts;
        public List<Inputs.GetNexusRepositoryAptArgs> Apts
        {
            get => _apts ?? (_apts = new List<Inputs.GetNexusRepositoryAptArgs>());
            set => _apts = value;
        }

        [Input("cleanups")]
        private List<Inputs.GetNexusRepositoryCleanupArgs>? _cleanups;
        public List<Inputs.GetNexusRepositoryCleanupArgs> Cleanups
        {
            get => _cleanups ?? (_cleanups = new List<Inputs.GetNexusRepositoryCleanupArgs>());
            set => _cleanups = value;
        }

        [Input("dockers")]
        private List<Inputs.GetNexusRepositoryDockerArgs>? _dockers;
        public List<Inputs.GetNexusRepositoryDockerArgs> Dockers
        {
            get => _dockers ?? (_dockers = new List<Inputs.GetNexusRepositoryDockerArgs>());
            set => _dockers = value;
        }

        [Input("format")]
        public string? Format { get; set; }

        [Input("group")]
        public Inputs.GetNexusRepositoryGroupArgs? Group { get; set; }

        [Input("httpClient")]
        public Inputs.GetNexusRepositoryHttpClientArgs? HttpClient { get; set; }

        [Input("maven")]
        public Inputs.GetNexusRepositoryMavenArgs? Maven { get; set; }

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

        [Input("negativeCache")]
        public Inputs.GetNexusRepositoryNegativeCacheArgs? NegativeCache { get; set; }

        [Input("online")]
        public bool? Online { get; set; }

        [Input("proxy")]
        public Inputs.GetNexusRepositoryProxyArgs? Proxy { get; set; }

        [Input("storage")]
        public Inputs.GetNexusRepositoryStorageArgs? Storage { get; set; }

        [Input("type")]
        public string? Type { get; set; }

        public GetNexusRepositoryArgs()
        {
        }
    }

    public sealed class GetNexusRepositoryInvokeArgs : Pulumi.InvokeArgs
    {
        [Input("aptSignings")]
        private InputList<Inputs.GetNexusRepositoryAptSigningInputArgs>? _aptSignings;
        public InputList<Inputs.GetNexusRepositoryAptSigningInputArgs> AptSignings
        {
            get => _aptSignings ?? (_aptSignings = new InputList<Inputs.GetNexusRepositoryAptSigningInputArgs>());
            set => _aptSignings = value;
        }

        [Input("apts")]
        private InputList<Inputs.GetNexusRepositoryAptInputArgs>? _apts;
        public InputList<Inputs.GetNexusRepositoryAptInputArgs> Apts
        {
            get => _apts ?? (_apts = new InputList<Inputs.GetNexusRepositoryAptInputArgs>());
            set => _apts = value;
        }

        [Input("cleanups")]
        private InputList<Inputs.GetNexusRepositoryCleanupInputArgs>? _cleanups;
        public InputList<Inputs.GetNexusRepositoryCleanupInputArgs> Cleanups
        {
            get => _cleanups ?? (_cleanups = new InputList<Inputs.GetNexusRepositoryCleanupInputArgs>());
            set => _cleanups = value;
        }

        [Input("dockers")]
        private InputList<Inputs.GetNexusRepositoryDockerInputArgs>? _dockers;
        public InputList<Inputs.GetNexusRepositoryDockerInputArgs> Dockers
        {
            get => _dockers ?? (_dockers = new InputList<Inputs.GetNexusRepositoryDockerInputArgs>());
            set => _dockers = value;
        }

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

        [Input("group")]
        public Input<Inputs.GetNexusRepositoryGroupInputArgs>? Group { get; set; }

        [Input("httpClient")]
        public Input<Inputs.GetNexusRepositoryHttpClientInputArgs>? HttpClient { get; set; }

        [Input("maven")]
        public Input<Inputs.GetNexusRepositoryMavenInputArgs>? Maven { get; set; }

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

        [Input("negativeCache")]
        public Input<Inputs.GetNexusRepositoryNegativeCacheInputArgs>? NegativeCache { get; set; }

        [Input("online")]
        public Input<bool>? Online { get; set; }

        [Input("proxy")]
        public Input<Inputs.GetNexusRepositoryProxyInputArgs>? Proxy { get; set; }

        [Input("storage")]
        public Input<Inputs.GetNexusRepositoryStorageInputArgs>? Storage { get; set; }

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

        public GetNexusRepositoryInvokeArgs()
        {
        }
    }


    [OutputType]
    public sealed class GetNexusRepositoryResult
    {
        public readonly ImmutableArray<Outputs.GetNexusRepositoryAptSigningResult> AptSignings;
        public readonly ImmutableArray<Outputs.GetNexusRepositoryAptResult> Apts;
        public readonly ImmutableArray<Outputs.GetNexusRepositoryCleanupResult> Cleanups;
        public readonly ImmutableArray<Outputs.GetNexusRepositoryDockerResult> Dockers;
        public readonly string? Format;
        public readonly Outputs.GetNexusRepositoryGroupResult? Group;
        public readonly Outputs.GetNexusRepositoryHttpClientResult? HttpClient;
        public readonly string Id;
        public readonly Outputs.GetNexusRepositoryMavenResult? Maven;
        public readonly string Name;
        public readonly Outputs.GetNexusRepositoryNegativeCacheResult? NegativeCache;
        public readonly bool? Online;
        public readonly Outputs.GetNexusRepositoryProxyResult? Proxy;
        public readonly Outputs.GetNexusRepositoryStorageResult? Storage;
        public readonly string? Type;

        [OutputConstructor]
        private GetNexusRepositoryResult(
            ImmutableArray<Outputs.GetNexusRepositoryAptSigningResult> aptSignings,

            ImmutableArray<Outputs.GetNexusRepositoryAptResult> apts,

            ImmutableArray<Outputs.GetNexusRepositoryCleanupResult> cleanups,

            ImmutableArray<Outputs.GetNexusRepositoryDockerResult> dockers,

            string? format,

            Outputs.GetNexusRepositoryGroupResult? group,

            Outputs.GetNexusRepositoryHttpClientResult? httpClient,

            string id,

            Outputs.GetNexusRepositoryMavenResult? maven,

            string name,

            Outputs.GetNexusRepositoryNegativeCacheResult? negativeCache,

            bool? online,

            Outputs.GetNexusRepositoryProxyResult? proxy,

            Outputs.GetNexusRepositoryStorageResult? storage,

            string? type)
        {
            AptSignings = aptSignings;
            Apts = apts;
            Cleanups = cleanups;
            Dockers = dockers;
            Format = format;
            Group = group;
            HttpClient = httpClient;
            Id = id;
            Maven = maven;
            Name = name;
            NegativeCache = negativeCache;
            Online = online;
            Proxy = proxy;
            Storage = storage;
            Type = type;
        }
    }
}
