import cdk = require('@aws-cdk/cdk');
export declare namespace cloudformation {
    /**
     * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html
     */
    interface CustomActionTypeResourceProps {
        /**
         * ``AWS::CodePipeline::CustomActionType.Category``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html#cfn-codepipeline-customactiontype-category
         */
        category: string | cdk.Token;
        /**
         * ``AWS::CodePipeline::CustomActionType.InputArtifactDetails``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html#cfn-codepipeline-customactiontype-inputartifactdetails
         */
        inputArtifactDetails: CustomActionTypeResource.ArtifactDetailsProperty | cdk.Token;
        /**
         * ``AWS::CodePipeline::CustomActionType.OutputArtifactDetails``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html#cfn-codepipeline-customactiontype-outputartifactdetails
         */
        outputArtifactDetails: CustomActionTypeResource.ArtifactDetailsProperty | cdk.Token;
        /**
         * ``AWS::CodePipeline::CustomActionType.Provider``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html#cfn-codepipeline-customactiontype-provider
         */
        provider: string | cdk.Token;
        /**
         * ``AWS::CodePipeline::CustomActionType.ConfigurationProperties``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html#cfn-codepipeline-customactiontype-configurationproperties
         */
        configurationProperties?: Array<CustomActionTypeResource.ConfigurationPropertiesProperty | cdk.Token> | cdk.Token;
        /**
         * ``AWS::CodePipeline::CustomActionType.Settings``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html#cfn-codepipeline-customactiontype-settings
         */
        settings?: CustomActionTypeResource.SettingsProperty | cdk.Token;
        /**
         * ``AWS::CodePipeline::CustomActionType.Version``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html#cfn-codepipeline-customactiontype-version
         */
        version?: string | cdk.Token;
    }
    /**
     * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-customactiontype.html
     */
    class CustomActionTypeResource extends cdk.Resource {
        /**
         * The CloudFormation resource type name for this resource class.
         */
        static readonly resourceTypeName: string;
        /**
         * Creates a new ``AWS::CodePipeline::CustomActionType``.
         *
         * @param parent     the ``cdk.Construct`` this ``CustomActionTypeResource`` is a part of
         * @param name       the name of the resource in the ``cdk.Construct`` tree
         * @param properties the properties of this ``CustomActionTypeResource``
         */
        constructor(parent: cdk.Construct, name: string, properties: CustomActionTypeResourceProps);
        protected renderProperties(): {
            [key: string]: any;
        };
    }
    namespace CustomActionTypeResource {
        /**
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-artifactdetails.html
         */
        interface ArtifactDetailsProperty {
            /**
             * ``CustomActionTypeResource.ArtifactDetailsProperty.MaximumCount``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-artifactdetails.html#cfn-codepipeline-customactiontype-artifactdetails-maximumcount
             */
            maximumCount: number | cdk.Token;
            /**
             * ``CustomActionTypeResource.ArtifactDetailsProperty.MinimumCount``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-artifactdetails.html#cfn-codepipeline-customactiontype-artifactdetails-minimumcount
             */
            minimumCount: number | cdk.Token;
        }
    }
    namespace CustomActionTypeResource {
        /**
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-configurationproperties.html
         */
        interface ConfigurationPropertiesProperty {
            /**
             * ``CustomActionTypeResource.ConfigurationPropertiesProperty.Description``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-configurationproperties.html#cfn-codepipeline-customactiontype-configurationproperties-description
             */
            description?: string | cdk.Token;
            /**
             * ``CustomActionTypeResource.ConfigurationPropertiesProperty.Key``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-configurationproperties.html#cfn-codepipeline-customactiontype-configurationproperties-key
             */
            key: boolean | cdk.Token;
            /**
             * ``CustomActionTypeResource.ConfigurationPropertiesProperty.Name``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-configurationproperties.html#cfn-codepipeline-customactiontype-configurationproperties-name
             */
            name: string | cdk.Token;
            /**
             * ``CustomActionTypeResource.ConfigurationPropertiesProperty.Queryable``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-configurationproperties.html#cfn-codepipeline-customactiontype-configurationproperties-queryable
             */
            queryable?: boolean | cdk.Token;
            /**
             * ``CustomActionTypeResource.ConfigurationPropertiesProperty.Required``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-configurationproperties.html#cfn-codepipeline-customactiontype-configurationproperties-required
             */
            required: boolean | cdk.Token;
            /**
             * ``CustomActionTypeResource.ConfigurationPropertiesProperty.Secret``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-configurationproperties.html#cfn-codepipeline-customactiontype-configurationproperties-secret
             */
            secret: boolean | cdk.Token;
            /**
             * ``CustomActionTypeResource.ConfigurationPropertiesProperty.Type``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-configurationproperties.html#cfn-codepipeline-customactiontype-configurationproperties-type
             */
            type?: string | cdk.Token;
        }
    }
    namespace CustomActionTypeResource {
        /**
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-settings.html
         */
        interface SettingsProperty {
            /**
             * ``CustomActionTypeResource.SettingsProperty.EntityUrlTemplate``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-settings.html#cfn-codepipeline-customactiontype-settings-entityurltemplate
             */
            entityUrlTemplate?: string | cdk.Token;
            /**
             * ``CustomActionTypeResource.SettingsProperty.ExecutionUrlTemplate``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-settings.html#cfn-codepipeline-customactiontype-settings-executionurltemplate
             */
            executionUrlTemplate?: string | cdk.Token;
            /**
             * ``CustomActionTypeResource.SettingsProperty.RevisionUrlTemplate``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-settings.html#cfn-codepipeline-customactiontype-settings-revisionurltemplate
             */
            revisionUrlTemplate?: string | cdk.Token;
            /**
             * ``CustomActionTypeResource.SettingsProperty.ThirdPartyConfigurationUrl``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-customactiontype-settings.html#cfn-codepipeline-customactiontype-settings-thirdpartyconfigurationurl
             */
            thirdPartyConfigurationUrl?: string | cdk.Token;
        }
    }
}
export declare namespace cloudformation {
    /**
     * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html
     */
    interface PipelineResourceProps {
        /**
         * ``AWS::CodePipeline::Pipeline.ArtifactStore``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html#cfn-codepipeline-pipeline-artifactstore
         */
        artifactStore: PipelineResource.ArtifactStoreProperty | cdk.Token;
        /**
         * ``AWS::CodePipeline::Pipeline.RoleArn``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html#cfn-codepipeline-pipeline-rolearn
         */
        roleArn: string | cdk.Token;
        /**
         * ``AWS::CodePipeline::Pipeline.Stages``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html#cfn-codepipeline-pipeline-stages
         */
        stages: Array<PipelineResource.StageDeclarationProperty | cdk.Token> | cdk.Token;
        /**
         * ``AWS::CodePipeline::Pipeline.DisableInboundStageTransitions``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html#cfn-codepipeline-pipeline-disableinboundstagetransitions
         */
        disableInboundStageTransitions?: Array<PipelineResource.StageTransitionProperty | cdk.Token> | cdk.Token;
        /**
         * ``AWS::CodePipeline::Pipeline.Name``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html#cfn-codepipeline-pipeline-name
         */
        pipelineName?: string | cdk.Token;
        /**
         * ``AWS::CodePipeline::Pipeline.RestartExecutionOnUpdate``
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html#cfn-codepipeline-pipeline-restartexecutiononupdate
         */
        restartExecutionOnUpdate?: boolean | cdk.Token;
    }
    /**
     * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html
     */
    class PipelineResource extends cdk.Resource {
        /**
         * The CloudFormation resource type name for this resource class.
         */
        static readonly resourceTypeName: string;
        /**
         * Creates a new ``AWS::CodePipeline::Pipeline``.
         *
         * @param parent     the ``cdk.Construct`` this ``PipelineResource`` is a part of
         * @param name       the name of the resource in the ``cdk.Construct`` tree
         * @param properties the properties of this ``PipelineResource``
         */
        constructor(parent: cdk.Construct, name: string, properties: PipelineResourceProps);
        protected renderProperties(): {
            [key: string]: any;
        };
    }
    namespace PipelineResource {
        /**
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions.html
         */
        interface ActionDeclarationProperty {
            /**
             * ``PipelineResource.ActionDeclarationProperty.ActionTypeId``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions.html#cfn-codepipeline-pipeline-stages-actions-actiontypeid
             */
            actionTypeId: ActionTypeIdProperty | cdk.Token;
            /**
             * ``PipelineResource.ActionDeclarationProperty.Configuration``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions.html#cfn-codepipeline-pipeline-stages-actions-configuration
             */
            configuration?: object | cdk.Token;
            /**
             * ``PipelineResource.ActionDeclarationProperty.InputArtifacts``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions.html#cfn-codepipeline-pipeline-stages-actions-inputartifacts
             */
            inputArtifacts?: Array<InputArtifactProperty | cdk.Token> | cdk.Token;
            /**
             * ``PipelineResource.ActionDeclarationProperty.Name``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions.html#cfn-codepipeline-pipeline-stages-actions-name
             */
            name: string | cdk.Token;
            /**
             * ``PipelineResource.ActionDeclarationProperty.OutputArtifacts``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions.html#cfn-codepipeline-pipeline-stages-actions-outputartifacts
             */
            outputArtifacts?: Array<OutputArtifactProperty | cdk.Token> | cdk.Token;
            /**
             * ``PipelineResource.ActionDeclarationProperty.RoleArn``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions.html#cfn-codepipeline-pipeline-stages-actions-rolearn
             */
            roleArn?: string | cdk.Token;
            /**
             * ``PipelineResource.ActionDeclarationProperty.RunOrder``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions.html#cfn-codepipeline-pipeline-stages-actions-runorder
             */
            runOrder?: number | cdk.Token;
        }
    }
    namespace PipelineResource {
        /**
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-actiontypeid.html
         */
        interface ActionTypeIdProperty {
            /**
             * ``PipelineResource.ActionTypeIdProperty.Category``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-actiontypeid.html#cfn-codepipeline-pipeline-stages-actions-actiontypeid-category
             */
            category: string | cdk.Token;
            /**
             * ``PipelineResource.ActionTypeIdProperty.Owner``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-actiontypeid.html#cfn-codepipeline-pipeline-stages-actions-actiontypeid-owner
             */
            owner: string | cdk.Token;
            /**
             * ``PipelineResource.ActionTypeIdProperty.Provider``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-actiontypeid.html#cfn-codepipeline-pipeline-stages-actions-actiontypeid-provider
             */
            provider: string | cdk.Token;
            /**
             * ``PipelineResource.ActionTypeIdProperty.Version``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-actiontypeid.html#cfn-codepipeline-pipeline-stages-actions-actiontypeid-version
             */
            version: string | cdk.Token;
        }
    }
    namespace PipelineResource {
        /**
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-artifactstore.html
         */
        interface ArtifactStoreProperty {
            /**
             * ``PipelineResource.ArtifactStoreProperty.EncryptionKey``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-artifactstore.html#cfn-codepipeline-pipeline-artifactstore-encryptionkey
             */
            encryptionKey?: EncryptionKeyProperty | cdk.Token;
            /**
             * ``PipelineResource.ArtifactStoreProperty.Location``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-artifactstore.html#cfn-codepipeline-pipeline-artifactstore-location
             */
            location: string | cdk.Token;
            /**
             * ``PipelineResource.ArtifactStoreProperty.Type``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-artifactstore.html#cfn-codepipeline-pipeline-artifactstore-type
             */
            type: string | cdk.Token;
        }
    }
    namespace PipelineResource {
        /**
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-blockers.html
         */
        interface BlockerDeclarationProperty {
            /**
             * ``PipelineResource.BlockerDeclarationProperty.Name``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-blockers.html#cfn-codepipeline-pipeline-stages-blockers-name
             */
            name: string | cdk.Token;
            /**
             * ``PipelineResource.BlockerDeclarationProperty.Type``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-blockers.html#cfn-codepipeline-pipeline-stages-blockers-type
             */
            type: string | cdk.Token;
        }
    }
    namespace PipelineResource {
        /**
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-artifactstore-encryptionkey.html
         */
        interface EncryptionKeyProperty {
            /**
             * ``PipelineResource.EncryptionKeyProperty.Id``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-artifactstore-encryptionkey.html#cfn-codepipeline-pipeline-artifactstore-encryptionkey-id
             */
            id: string | cdk.Token;
            /**
             * ``PipelineResource.EncryptionKeyProperty.Type``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-artifactstore-encryptionkey.html#cfn-codepipeline-pipeline-artifactstore-encryptionkey-type
             */
            type: string | cdk.Token;
        }
    }
    namespace PipelineResource {
        /**
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-inputartifacts.html
         */
        interface InputArtifactProperty {
            /**
             * ``PipelineResource.InputArtifactProperty.Name``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-inputartifacts.html#cfn-codepipeline-pipeline-stages-actions-inputartifacts-name
             */
            name: string | cdk.Token;
        }
    }
    namespace PipelineResource {
        /**
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-outputartifacts.html
         */
        interface OutputArtifactProperty {
            /**
             * ``PipelineResource.OutputArtifactProperty.Name``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages-actions-outputartifacts.html#cfn-codepipeline-pipeline-stages-actions-outputartifacts-name
             */
            name: string | cdk.Token;
        }
    }
    namespace PipelineResource {
        /**
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages.html
         */
        interface StageDeclarationProperty {
            /**
             * ``PipelineResource.StageDeclarationProperty.Actions``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages.html#cfn-codepipeline-pipeline-stages-actions
             */
            actions: Array<ActionDeclarationProperty | cdk.Token> | cdk.Token;
            /**
             * ``PipelineResource.StageDeclarationProperty.Blockers``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages.html#cfn-codepipeline-pipeline-stages-blockers
             */
            blockers?: Array<BlockerDeclarationProperty | cdk.Token> | cdk.Token;
            /**
             * ``PipelineResource.StageDeclarationProperty.Name``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-stages.html#cfn-codepipeline-pipeline-stages-name
             */
            name: string | cdk.Token;
        }
    }
    namespace PipelineResource {
        /**
         * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-disableinboundstagetransitions.html
         */
        interface StageTransitionProperty {
            /**
             * ``PipelineResource.StageTransitionProperty.Reason``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-disableinboundstagetransitions.html#cfn-codepipeline-pipeline-disableinboundstagetransitions-reason
             */
            reason: string | cdk.Token;
            /**
             * ``PipelineResource.StageTransitionProperty.StageName``
             * @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codepipeline-pipeline-disableinboundstagetransitions.html#cfn-codepipeline-pipeline-disableinboundstagetransitions-stagename
             */
            stageName: string | cdk.Token;
        }
    }
}
