import { ActionTypeIdProps } from './ActionTypeIdProps';
import { Value } from '../../../cloudformation/Value';
import { InputArtifactProps } from './InputArtifactProps';
import { OutputArtifactProps } from './OutputArtifactProps';
/**
  Represents information about an action declaration.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions.html">the AWS Docs</a>
*/
export interface ActionDeclarationProps {
    /** <code>ActionTypeId</code>  <a name="cfn-codepipeline-pipeline-stages-actions-actiontypeid"></a>
  Specifies the action type and the provider of the action.<br />
  
  Required: Yes<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    actionTypeId: ActionTypeIdProps;
    /** <code>Configuration</code>  <a name="cfn-codepipeline-pipeline-stages-actions-configuration"></a>
  The action’s configuration. These are key-value pairs that specify input values for an action. For more information, see <a href="https://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements">Action Structure Requirements in CodePipeline</a>. For the list of configuration properties for the AWS CloudFormation action type in CodePipeline, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-action-reference.html">Configuration Properties Reference</a> in the * AWS CloudFormation User Guide*. For template snippets with examples, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-parameter-override-functions.html">Using Parameter Override Functions with CodePipeline Pipelines</a> in the * AWS CloudFormation User Guide*.<br />
  The values can be represented in either JSON or YAML format. For example, the JSON configuration item format is as follows:<br />
  
  JSON:: r />
  <code>&quot;Configuration&quot; : { Key : Value },</code><br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    configuration?: Value<any>;
    /** <code>InputArtifacts</code>  <a name="cfn-codepipeline-pipeline-stages-actions-inputartifacts"></a>
  The name or ID of the artifact consumed by the action, such as a test or build artifact. While the field is not a required parameter, most actions have an action configuration that requires a specified quantity of input artifacts. To refer to the action configuration specification by action provider, see the <a href="https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html">Action structure reference</a> in the
  AWS CodePipeline User Guide:
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    inputArtifacts?: InputArtifactProps[];
    /** <code>Name</code>  <a name="cfn-codepipeline-pipeline-stages-actions-name"></a>
  The action declaration’s name.<br />
  
  Required: Yes<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>100</code><br />
  
  Pattern: <code>[A-Za-z0-9.@\-_]+</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    name: Value<string>;
    /** <code>Namespace</code>  <a name="cfn-codepipeline-pipeline-actiondeclaration-namespace"></a>
  The variable namespace associated with the action. All variables produced as output by this action fall under this namespace.<br />
  
  Required: No<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>100</code><br />
  
  Pattern: <code>[A-Za-z0-9@\-_]+</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    namespace?: Value<string>;
    /** <code>OutputArtifacts</code>  <a name="cfn-codepipeline-pipeline-stages-actions-outputartifacts"></a>
  The name or ID of the result of the action declaration, such as a test or build artifact. While the field is not a required parameter, most actions have an action configuration that requires a specified quantity of output artifacts. To refer to the action configuration specification by action provider, see the <a href="https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html">Action structure reference</a> in the
  AWS CodePipeline User Guide: br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    outputArtifacts?: OutputArtifactProps[];
    /** <code>Region</code>  <a name="cfn-codepipeline-pipeline-stages-actions-region"></a>
  The action declaration’s AWS Region, such as us-east-1.<br />
  
  Required: No<br />
  
  Minimum: <code>4</code><br />
  
  Maximum: <code>30</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    region?: Value<string>;
    /** <code>RoleArn</code>  <a name="cfn-codepipeline-pipeline-stages-actions-rolearn"></a>
  The ARN of the IAM service role that performs the declared action. This is assumed through the roleArn for the pipeline.<br />
  
  Required: No<br />
  
  Maximum: <code>1024</code><br />
  
  Pattern: <code>arn:aws(-[\w]+)*:iam::[0-9]{12}:role/.*</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    roleArn?: Value<string>;
    /** <code>RunOrder</code>  <a name="cfn-codepipeline-pipeline-stages-actions-runorder"></a>
  The order in which actions are run.<br />
  
  Required: No<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>999</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    runOrder?: Value<number>;
}
