# Action

Low-level class for generic CodePipeline Actions implementing the `IAction` interface.

Contains some common logic that can be re-used by all `IAction` implementations.
If you're writing your own Action class,
feel free to extend this class.

Extends: Action
Implements: IAction
Superclass of: Action, AlexaSkillDeployAction, CloudFormationCreateReplaceChangeSetAction, CloudFormationCreateUpdateStackAction, CloudFormationDeleteStackAction, CloudFormationDeployStackInstancesAction, CloudFormationDeployStackSetAction, CloudFormationExecuteChangeSetAction, CodeBuildAction, CodeCommitSourceAction, CodeDeployEcsDeployAction, CodeDeployServerDeployAction, CodeStarConnectionsSourceAction, CommandsAction, Ec2DeployAction, EcrBuildAndPublishAction, EcrSourceAction, EcsDeployAction, ElasticBeanstalkDeployAction, GitHubSourceAction, InspectorEcrImageScanAction, InspectorScanActionBase, InspectorSourceCodeScanAction, JenkinsAction, LambdaInvokeAction, ManualApprovalAction, PipelineInvokeAction, S3DeployAction, S3SourceAction, ServiceCatalogDeployActionBeta1, StepFunctionInvokeAction

- Source: [`aws-codepipeline/lib/action.ts`](https://github.com/aws/aws-cdk/blob/v2.274.0/packages/aws-cdk-lib/aws-codepipeline/lib/action.ts#L385)

## Initializer

```ts
new Action()
```

## Properties

- `actionProperties`: [ActionProperties](/cdk/api/v2/docs/aws-cdk-lib.aws_codepipeline.ActionProperties.html) (required) — The simple properties of the Action, like its Owner, name, etc.

  Note that this accessor will be called before the `bind` callback.

## Methods

- `bind(scope: Construct, stage: IStage, options: ActionBindOptions): ActionConfig` — The callback invoked when this Action is added to a Pipeline.

- `onStateChange(name: string, target?: IRuleTarget, options?: RuleProps): Rule` — Creates an Event that will be triggered whenever the state of this Action changes.
