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

namespace PiersKarsenbarg.Octopusdeploy.Inputs
{

    public sealed class GetLifecyclesLifecyclePhaseArgs : global::Pulumi.InvokeArgs
    {
        [Input("automaticDeploymentTargets")]
        private List<string>? _automaticDeploymentTargets;
        public List<string> AutomaticDeploymentTargets
        {
            get => _automaticDeploymentTargets ?? (_automaticDeploymentTargets = new List<string>());
            set => _automaticDeploymentTargets = value;
        }

        /// <summary>
        /// The ID of this resource.
        /// </summary>
        [Input("id", required: true)]
        public string Id { get; set; } = null!;

        [Input("isOptionalPhase")]
        public bool? IsOptionalPhase { get; set; }

        [Input("minimumEnvironmentsBeforePromotion")]
        public int? MinimumEnvironmentsBeforePromotion { get; set; }

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

        [Input("optionalDeploymentTargets")]
        private List<string>? _optionalDeploymentTargets;
        public List<string> OptionalDeploymentTargets
        {
            get => _optionalDeploymentTargets ?? (_optionalDeploymentTargets = new List<string>());
            set => _optionalDeploymentTargets = value;
        }

        [Input("releaseRetentionPolicy")]
        public Inputs.GetLifecyclesLifecyclePhaseReleaseRetentionPolicyArgs? ReleaseRetentionPolicy { get; set; }

        [Input("tentacleRetentionPolicy")]
        public Inputs.GetLifecyclesLifecyclePhaseTentacleRetentionPolicyArgs? TentacleRetentionPolicy { get; set; }

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