<reponame>rhysmdnz/pulumi-alicloud-rhys-hacks<filename>sdk/dotnet/Eci/Inputs/ContainerGroupContainerArgs.cs// *** 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.AliCloud.Eci.Inputs
{

    public sealed class ContainerGroupContainerArgs : global::Pulumi.ResourceArgs
    {
        [Input("args")]
        private InputList<string>? _args;

        /// <summary>
        /// The arguments passed to the commands.
        /// </summary>
        public InputList<string> Args
        {
            get => _args ?? (_args = new InputList<string>());
            set => _args = value;
        }

        [Input("commands")]
        private InputList<string>? _commands;

        /// <summary>
        /// Commands to be executed inside the container when performing health checks using the command line method.
        /// </summary>
        public InputList<string> Commands
        {
            get => _commands ?? (_commands = new InputList<string>());
            set => _commands = value;
        }

        /// <summary>
        /// The amount of CPU resources allocated to the container.
        /// </summary>
        [Input("cpu")]
        public Input<double>? Cpu { get; set; }

        [Input("environmentVars")]
        private InputList<Inputs.ContainerGroupContainerEnvironmentVarArgs>? _environmentVars;

        /// <summary>
        /// The structure of environmentVars.
        /// </summary>
        public InputList<Inputs.ContainerGroupContainerEnvironmentVarArgs> EnvironmentVars
        {
            get => _environmentVars ?? (_environmentVars = new InputList<Inputs.ContainerGroupContainerEnvironmentVarArgs>());
            set => _environmentVars = value;
        }

        /// <summary>
        /// The number GPUs.
        /// </summary>
        [Input("gpu")]
        public Input<int>? Gpu { get; set; }

        /// <summary>
        /// The image of the container.
        /// </summary>
        [Input("image", required: true)]
        public Input<string> Image { get; set; } = null!;

        /// <summary>
        /// The restart policy of the image.
        /// </summary>
        [Input("imagePullPolicy")]
        public Input<string>? ImagePullPolicy { get; set; }

        [Input("livenessProbes")]
        private InputList<Inputs.ContainerGroupContainerLivenessProbeArgs>? _livenessProbes;

        /// <summary>
        /// The health check of the container.
        /// </summary>
        public InputList<Inputs.ContainerGroupContainerLivenessProbeArgs> LivenessProbes
        {
            get => _livenessProbes ?? (_livenessProbes = new InputList<Inputs.ContainerGroupContainerLivenessProbeArgs>());
            set => _livenessProbes = value;
        }

        /// <summary>
        /// The amount of memory resources allocated to the container.
        /// </summary>
        [Input("memory")]
        public Input<double>? Memory { get; set; }

        /// <summary>
        /// The name of the security context that the container group runs.
        /// </summary>
        [Input("name", required: true)]
        public Input<string> Name { get; set; } = null!;

        [Input("ports")]
        private InputList<Inputs.ContainerGroupContainerPortArgs>? _ports;

        /// <summary>
        /// The structure of port.
        /// </summary>
        public InputList<Inputs.ContainerGroupContainerPortArgs> Ports
        {
            get => _ports ?? (_ports = new InputList<Inputs.ContainerGroupContainerPortArgs>());
            set => _ports = value;
        }

        [Input("readinessProbes")]
        private InputList<Inputs.ContainerGroupContainerReadinessProbeArgs>? _readinessProbes;

        /// <summary>
        /// The health check of the container.
        /// </summary>
        public InputList<Inputs.ContainerGroupContainerReadinessProbeArgs> ReadinessProbes
        {
            get => _readinessProbes ?? (_readinessProbes = new InputList<Inputs.ContainerGroupContainerReadinessProbeArgs>());
            set => _readinessProbes = value;
        }

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

        [Input("restartCount")]
        public Input<int>? RestartCount { get; set; }

        [Input("volumeMounts")]
        private InputList<Inputs.ContainerGroupContainerVolumeMountArgs>? _volumeMounts;

        /// <summary>
        /// The structure of volumeMounts.
        /// </summary>
        public InputList<Inputs.ContainerGroupContainerVolumeMountArgs> VolumeMounts
        {
            get => _volumeMounts ?? (_volumeMounts = new InputList<Inputs.ContainerGroupContainerVolumeMountArgs>());
            set => _volumeMounts = value;
        }

        /// <summary>
        /// The working directory of the container.
        /// </summary>
        [Input("workingDir")]
        public Input<string>? WorkingDir { get; set; }

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