// *** 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;
using Pulumi;

namespace Other.Example.Inputs
{

    public sealed class ObjectArgs : global::Pulumi.ResourceArgs
    {
        [Input("bar")]
        public Input<string>? Bar { get; set; }

        [Input("configs")]
        private InputList<Inputs.ConfigMapArgs>? _configs;
        public InputList<Inputs.ConfigMapArgs> Configs
        {
            get => _configs ?? (_configs = new InputList<Inputs.ConfigMapArgs>());
            set => _configs = value;
        }

        [Input("foo")]
        public Input<Other.Example.Resource>? Foo { get; set; }

        [Input("others")]
        private InputList<ImmutableArray<Inputs.SomeOtherObjectArgs>>? _others;

        /// <summary>
        /// List of lists of other objects
        /// </summary>
        public InputList<ImmutableArray<Inputs.SomeOtherObjectArgs>> Others
        {
            get => _others ?? (_others = new InputList<ImmutableArray<Inputs.SomeOtherObjectArgs>>());
            set => _others = value;
        }

        [Input("stillOthers")]
        private InputMap<ImmutableArray<Inputs.SomeOtherObjectArgs>>? _stillOthers;

        /// <summary>
        /// Mapping from string to list of some other object
        /// </summary>
        public InputMap<ImmutableArray<Inputs.SomeOtherObjectArgs>> StillOthers
        {
            get => _stillOthers ?? (_stillOthers = new InputMap<ImmutableArray<Inputs.SomeOtherObjectArgs>>());
            set => _stillOthers = value;
        }

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