// *** 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.Outputs
{

    [OutputType]
    public sealed class ContainerGroupContainerLivenessProbe
    {
        /// <summary>
        /// Health check using command line method.
        /// </summary>
        public readonly ImmutableArray<Outputs.ContainerGroupContainerLivenessProbeExec> Execs;
        /// <summary>
        /// Threshold for the number of checks that are determined to have failed since the last successful check (must be consecutive failures), default is 3.
        /// </summary>
        public readonly int? FailureThreshold;
        /// <summary>
        /// Health check using HTTP request method.
        /// </summary>
        public readonly ImmutableArray<Outputs.ContainerGroupContainerLivenessProbeHttpGet> HttpGets;
        /// <summary>
        /// Check the time to start execution, calculated from the completion of container startup.
        /// </summary>
        public readonly int? InitialDelaySeconds;
        /// <summary>
        /// Buffer time for the program to handle operations before closing.
        /// </summary>
        public readonly int? PeriodSeconds;
        /// <summary>
        /// The check count threshold for re-identifying successful checks since the last failed check (must be consecutive successes), default is 1. Current must be 1.
        /// </summary>
        public readonly int? SuccessThreshold;
        /// <summary>
        /// Health check using TCP socket method.
        /// </summary>
        public readonly ImmutableArray<Outputs.ContainerGroupContainerLivenessProbeTcpSocket> TcpSockets;
        /// <summary>
        /// Check the timeout, the default is 1 second, the minimum is 1 second.
        /// </summary>
        public readonly int? TimeoutSeconds;

        [OutputConstructor]
        private ContainerGroupContainerLivenessProbe(
            ImmutableArray<Outputs.ContainerGroupContainerLivenessProbeExec> execs,

            int? failureThreshold,

            ImmutableArray<Outputs.ContainerGroupContainerLivenessProbeHttpGet> httpGets,

            int? initialDelaySeconds,

            int? periodSeconds,

            int? successThreshold,

            ImmutableArray<Outputs.ContainerGroupContainerLivenessProbeTcpSocket> tcpSockets,

            int? timeoutSeconds)
        {
            Execs = execs;
            FailureThreshold = failureThreshold;
            HttpGets = httpGets;
            InitialDelaySeconds = initialDelaySeconds;
            PeriodSeconds = periodSeconds;
            SuccessThreshold = successThreshold;
            TcpSockets = tcpSockets;
            TimeoutSeconds = timeoutSeconds;
        }
    }
}
