import { ArtifactStoreProps } from './pipeline/ArtifactStoreProps';
import { ArtifactStoreMapProps } from './pipeline/ArtifactStoreMapProps';
import { StageTransitionProps } from './pipeline/StageTransitionProps';
import { Value } from '../../cloudformation/Value';
import { StageDeclarationProps } from './pipeline/StageDeclarationProps';
import { Tag } from '../Tag';
import { Attribute } from '../../cloudformation/Attribute';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
export type PipelineAttributes = {
    Version: Attribute<string>;
};
export type Pipeline = AwsResource<'AWS::CodePipeline::Pipeline', PipelineProperties, PipelineAttributes>;
/**
  The <code>AWS::CodePipeline::Pipeline</code> resource creates a CodePipeline pipeline that describes how software changes go through a release process. For more information, see <a href="https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html">What Is CodePipeline?</a> in the <em>AWS CodePipeline User Guide</em>.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html">the AWS Docs</a>
*/
export declare function pipeline(pipelineProps: PipelineProperties): Pipeline;
/**
  The <code>AWS::CodePipeline::Pipeline</code> resource creates a CodePipeline pipeline that describes how software changes go through a release process. For more information, see <a href="https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html">What Is CodePipeline?</a> in the <em>AWS CodePipeline User Guide</em>.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html">the AWS Docs</a>
*/
export interface PipelineProperties {
    /** <code>ArtifactStore</code>  <a name="cfn-codepipeline-pipeline-artifactstore"></a>
  The S3 bucket where artifacts for the pipeline are stored.<br />
  You must include either <code>artifactStore</code> or <code>artifactStores</code> in your pipeline, but you cannot use both. If you create a cross-region action in your pipeline, you must use <code>artifactStores</code>.
  
  Required: Conditional<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> */
    artifactStore?: ArtifactStoreProps;
    /** <code>ArtifactStores</code>  <a name="cfn-codepipeline-pipeline-artifactstores"></a>
  A mapping of <code>artifactStore</code> objects and their corresponding AWS Regions. There must be an artifact store for the pipeline Region and for each cross-region action in the pipeline.<br />
  You must include either <code>artifactStore</code> or <code>artifactStores</code> in your pipeline, but you cannot use both. If you create a cross-region action in your pipeline, you must use <code>artifactStores</code>.
  
  Required: Conditional<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> */
    artifactStores?: ArtifactStoreMapProps[];
    /** <code>DisableInboundStageTransitions</code>  <a name="cfn-codepipeline-pipeline-disableinboundstagetransitions"></a>
  Represents the input of a <code>DisableStageTransition</code> action.<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> */
    disableInboundStageTransitions?: StageTransitionProps[];
    /** <code>Name</code>  <a name="cfn-codepipeline-pipeline-name"></a>
  The name of the pipeline.<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-replacement">Replacement</a> */
    name?: Value<string>;
    /** <code>RestartExecutionOnUpdate</code>  <a name="cfn-codepipeline-pipeline-restartexecutiononupdate"></a>
  Indicates whether to rerun the CodePipeline pipeline after you update it.<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> */
    restartExecutionOnUpdate?: Value<boolean>;
    /** <code>RoleArn</code>  <a name="cfn-codepipeline-pipeline-rolearn"></a>
  The Amazon Resource Name (ARN) for CodePipeline to use to either perform actions with no <code>actionRoleArn</code>, or to use to assume roles for actions with an <code>actionRoleArn</code>.<br />
  
  Required: Yes<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>Stages</code>  <a name="cfn-codepipeline-pipeline-stages"></a>
  Represents information about a stage and its definition.<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> */
    stages: StageDeclarationProps[];
    /** <code>Tags</code>  <a name="cfn-codepipeline-pipeline-tags"></a>
  Specifies the tags applied to the pipeline.<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> */
    tags?: Tag[];
}
