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

namespace PiersKarsenbarg.Octopusdeploy.Outputs
{

    [OutputType]
    public sealed class DeploymentProcessStep
    {
        public readonly ImmutableArray<Outputs.DeploymentProcessStepAction> Actions;
        public readonly ImmutableArray<Outputs.DeploymentProcessStepApplyTerraformTemplateAction> ApplyTerraformTemplateActions;
        /// <summary>
        /// When to run the step, one of 'Success', 'Failure', 'Always' or 'Variable'
        /// </summary>
        public readonly string? Condition;
        /// <summary>
        /// The expression to evaluate to determine whether to run this step when 'condition' is 'Variable'
        /// </summary>
        public readonly string? ConditionExpression;
        public readonly ImmutableArray<Outputs.DeploymentProcessStepDeployKubernetesSecretAction> DeployKubernetesSecretActions;
        public readonly ImmutableArray<Outputs.DeploymentProcessStepDeployPackageAction> DeployPackageActions;
        public readonly ImmutableArray<Outputs.DeploymentProcessStepDeployWindowsServiceAction> DeployWindowsServiceActions;
        /// <summary>
        /// The unique ID for this resource.
        /// </summary>
        public readonly string? Id;
        public readonly ImmutableArray<Outputs.DeploymentProcessStepManualInterventionAction> ManualInterventionActions;
        /// <summary>
        /// The name of this resource.
        /// </summary>
        public readonly string Name;
        /// <summary>
        /// Whether to run this step before or after package acquisition (if possible)
        /// </summary>
        public readonly string? PackageRequirement;
        public readonly ImmutableDictionary<string, object>? Properties;
        public readonly ImmutableArray<Outputs.DeploymentProcessStepRunKubectlScriptAction> RunKubectlScriptActions;
        public readonly ImmutableArray<Outputs.DeploymentProcessStepRunScriptAction> RunScriptActions;
        /// <summary>
        /// Whether to run this step after the previous step ('StartAfterPrevious') or at the same time as the previous step ('StartWithPrevious')
        /// </summary>
        public readonly string? StartTrigger;
        /// <summary>
        /// The roles that this step run against, or runs on behalf of
        /// </summary>
        public readonly ImmutableArray<string> TargetRoles;
        /// <summary>
        /// The maximum number of targets to deploy to simultaneously
        /// </summary>
        public readonly string? WindowSize;

        [OutputConstructor]
        private DeploymentProcessStep(
            ImmutableArray<Outputs.DeploymentProcessStepAction> actions,

            ImmutableArray<Outputs.DeploymentProcessStepApplyTerraformTemplateAction> applyTerraformTemplateActions,

            string? condition,

            string? conditionExpression,

            ImmutableArray<Outputs.DeploymentProcessStepDeployKubernetesSecretAction> deployKubernetesSecretActions,

            ImmutableArray<Outputs.DeploymentProcessStepDeployPackageAction> deployPackageActions,

            ImmutableArray<Outputs.DeploymentProcessStepDeployWindowsServiceAction> deployWindowsServiceActions,

            string? id,

            ImmutableArray<Outputs.DeploymentProcessStepManualInterventionAction> manualInterventionActions,

            string name,

            string? packageRequirement,

            ImmutableDictionary<string, object>? properties,

            ImmutableArray<Outputs.DeploymentProcessStepRunKubectlScriptAction> runKubectlScriptActions,

            ImmutableArray<Outputs.DeploymentProcessStepRunScriptAction> runScriptActions,

            string? startTrigger,

            ImmutableArray<string> targetRoles,

            string? windowSize)
        {
            Actions = actions;
            ApplyTerraformTemplateActions = applyTerraformTemplateActions;
            Condition = condition;
            ConditionExpression = conditionExpression;
            DeployKubernetesSecretActions = deployKubernetesSecretActions;
            DeployPackageActions = deployPackageActions;
            DeployWindowsServiceActions = deployWindowsServiceActions;
            Id = id;
            ManualInterventionActions = manualInterventionActions;
            Name = name;
            PackageRequirement = packageRequirement;
            Properties = properties;
            RunKubectlScriptActions = runKubectlScriptActions;
            RunScriptActions = runScriptActions;
            StartTrigger = startTrigger;
            TargetRoles = targetRoles;
            WindowSize = windowSize;
        }
    }
}
