import events = require('@aws-cdk/aws-events'); import iam = require('@aws-cdk/aws-iam'); import cdk = require('@aws-cdk/cdk'); import { Artifact } from './artifact'; export declare enum ActionCategory { Source = "Source", Build = "Build", Test = "Test", Approval = "Approval", Deploy = "Deploy", Invoke = "Invoke" } /** * Specifies the constraints on the number of input and output * artifacts an action can have. * * The constraints for each action type are documented on the * {@link https://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html Pipeline Structure Reference} page. */ export interface ActionArtifactBounds { readonly minInputs: number; readonly maxInputs: number; readonly minOutputs: number; readonly maxOutputs: number; } export declare function defaultBounds(): ActionArtifactBounds; /** * The abstract interface of a Pipeline Stage that is used by Actions. */ export interface IStage { /** * The physical, human-readable name of this Pipeline Stage. */ readonly name: string; /** * The ARN of the Pipeline. */ readonly pipelineArn: cdk.Arn; /** * The service Role of the Pipeline. */ readonly pipelineRole: iam.Role; /** * Grants read & write permissions to the Pipeline's S3 Bucket to the given Identity. * * @param identity the IAM Identity to grant the permissions to */ grantPipelineBucketReadWrite(identity: iam.IPrincipal): void; /** * Adds an Action to this Stage. * This is an internal operation - * an Action is added to a Stage when it's constructed, * so there's no need to call this method explicitly. * * @param action the Action to add to this Stage */ _addAction(action: Action): void; } /** * Common properties shared by all Actions. */ export interface CommonActionProps { /** * The Pipeline Stage to add this Action to. */ stage: IStage; } /** * Construction properties of the low-level {@link Action Action class}. */ export interface ActionProps extends CommonActionProps { category: ActionCategory; provider: string; artifactBounds: ActionArtifactBounds; configuration?: any; version?: string; owner?: string; } /** * Low-level class for generic CodePipeline Actions. * It is recommended that concrete types are used instead, such as {@link codecommit.PipelineSource} or * {@link codebuild.PipelineBuildAction}. */ export declare abstract class Action extends cdk.Construct { /** * The category of the action. * The category defines which action type the owner * (the entity that performs the action) performs. */ readonly category: ActionCategory; /** * The service provider that the action calls. */ readonly provider: string; /** * The action's configuration. These are key-value pairs that specify input values for an action. * For more information, see the AWS CodePipeline User Guide. * * http://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements */ readonly configuration?: any; /** * The order in which AWS CodePipeline runs this action. * For more information, see the AWS CodePipeline User Guide. * * https://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements */ runOrder: number; readonly owner: string; readonly version: string; private readonly _inputArtifacts; private readonly _outputArtifacts; private readonly artifactBounds; private readonly stage; constructor(parent: cdk.Construct, id: string, props: ActionProps); validate(): string[]; onStateChange(name: string, target?: events.IEventRuleTarget, options?: events.EventRuleProps): events.EventRule; readonly inputArtifacts: Artifact[]; readonly outputArtifacts: Artifact[]; protected addChild(child: cdk.Construct, name: string): void; protected addOutputArtifact(name: string): Artifact; protected addInputArtifact(artifact: Artifact): Action; }