<reponame>yzpocket/WebProject<filename>sdk/dotnet/Inputs/DeploymentProcessStepArgs.cs<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.Inputs
{

    public sealed class DeploymentProcessStepArgs : global::Pulumi.ResourceArgs
    {
        [Input("actions")]
        private InputList<Inputs.DeploymentProcessStepActionArgs>? _actions;
        public InputList<Inputs.DeploymentProcessStepActionArgs> Actions
        {
            get => _actions ?? (_actions = new InputList<Inputs.DeploymentProcessStepActionArgs>());
            set => _actions = value;
        }

        [Input("applyTerraformTemplateActions")]
        private InputList<Inputs.DeploymentProcessStepApplyTerraformTemplateActionArgs>? _applyTerraformTemplateActions;
        public InputList<Inputs.DeploymentProcessStepApplyTerraformTemplateActionArgs> ApplyTerraformTemplateActions
        {
            get => _applyTerraformTemplateActions ?? (_applyTerraformTemplateActions = new InputList<Inputs.DeploymentProcessStepApplyTerraformTemplateActionArgs>());
            set => _applyTerraformTemplateActions = value;
        }

        /// <summary>
        /// When to run the step, one of 'Success', 'Failure', 'Always' or 'Variable'
        /// </summary>
        [Input("condition")]
        public Input<string>? Condition { get; set; }

        /// <summary>
        /// The expression to evaluate to determine whether to run this step when 'condition' is 'Variable'
        /// </summary>
        [Input("conditionExpression")]
        public Input<string>? ConditionExpression { get; set; }

        [Input("deployKubernetesSecretActions")]
        private InputList<Inputs.DeploymentProcessStepDeployKubernetesSecretActionArgs>? _deployKubernetesSecretActions;
        public InputList<Inputs.DeploymentProcessStepDeployKubernetesSecretActionArgs> DeployKubernetesSecretActions
        {
            get => _deployKubernetesSecretActions ?? (_deployKubernetesSecretActions = new InputList<Inputs.DeploymentProcessStepDeployKubernetesSecretActionArgs>());
            set => _deployKubernetesSecretActions = value;
        }

        [Input("deployPackageActions")]
        private InputList<Inputs.DeploymentProcessStepDeployPackageActionArgs>? _deployPackageActions;
        public InputList<Inputs.DeploymentProcessStepDeployPackageActionArgs> DeployPackageActions
        {
            get => _deployPackageActions ?? (_deployPackageActions = new InputList<Inputs.DeploymentProcessStepDeployPackageActionArgs>());
            set => _deployPackageActions = value;
        }

        [Input("deployWindowsServiceActions")]
        private InputList<Inputs.DeploymentProcessStepDeployWindowsServiceActionArgs>? _deployWindowsServiceActions;
        public InputList<Inputs.DeploymentProcessStepDeployWindowsServiceActionArgs> DeployWindowsServiceActions
        {
            get => _deployWindowsServiceActions ?? (_deployWindowsServiceActions = new InputList<Inputs.DeploymentProcessStepDeployWindowsServiceActionArgs>());
            set => _deployWindowsServiceActions = value;
        }

        /// <summary>
        /// The unique ID for this resource.
        /// </summary>
        [Input("id")]
        public Input<string>? Id { get; set; }

        [Input("manualInterventionActions")]
        private InputList<Inputs.DeploymentProcessStepManualInterventionActionArgs>? _manualInterventionActions;
        public InputList<Inputs.DeploymentProcessStepManualInterventionActionArgs> ManualInterventionActions
        {
            get => _manualInterventionActions ?? (_manualInterventionActions = new InputList<Inputs.DeploymentProcessStepManualInterventionActionArgs>());
            set => _manualInterventionActions = value;
        }

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

        /// <summary>
        /// Whether to run this step before or after package acquisition (if possible)
        /// </summary>
        [Input("packageRequirement")]
        public Input<string>? PackageRequirement { get; set; }

        [Input("properties")]
        private InputMap<object>? _properties;
        public InputMap<object> Properties
        {
            get => _properties ?? (_properties = new InputMap<object>());
            set => _properties = value;
        }

        [Input("runKubectlScriptActions")]
        private InputList<Inputs.DeploymentProcessStepRunKubectlScriptActionArgs>? _runKubectlScriptActions;
        public InputList<Inputs.DeploymentProcessStepRunKubectlScriptActionArgs> RunKubectlScriptActions
        {
            get => _runKubectlScriptActions ?? (_runKubectlScriptActions = new InputList<Inputs.DeploymentProcessStepRunKubectlScriptActionArgs>());
            set => _runKubectlScriptActions = value;
        }

        [Input("runScriptActions")]
        private InputList<Inputs.DeploymentProcessStepRunScriptActionArgs>? _runScriptActions;
        public InputList<Inputs.DeploymentProcessStepRunScriptActionArgs> RunScriptActions
        {
            get => _runScriptActions ?? (_runScriptActions = new InputList<Inputs.DeploymentProcessStepRunScriptActionArgs>());
            set => _runScriptActions = value;
        }

        /// <summary>
        /// Whether to run this step after the previous step ('StartAfterPrevious') or at the same time as the previous step ('StartWithPrevious')
        /// </summary>
        [Input("startTrigger")]
        public Input<string>? StartTrigger { get; set; }

        [Input("targetRoles")]
        private InputList<string>? _targetRoles;

        /// <summary>
        /// The roles that this step run against, or runs on behalf of
        /// </summary>
        public InputList<string> TargetRoles
        {
            get => _targetRoles ?? (_targetRoles = new InputList<string>());
            set => _targetRoles = value;
        }

        /// <summary>
        /// The maximum number of targets to deploy to simultaneously
        /// </summary>
        [Input("windowSize")]
        public Input<string>? WindowSize { get; set; }

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