package awscodepipelineactions import ( _init_ "github.com/aws/aws-cdk-go/awscdk/v2/jsii" _jsii_ "github.com/aws/jsii-runtime-go/runtime" "github.com/aws/aws-cdk-go/awscdk/v2/awscodepipeline" "github.com/aws/aws-cdk-go/awscdk/v2/awsevents" "github.com/aws/constructs-go/constructs/v10" ) // CodePipeline Source that is provided by an AWS CodeCommit repository. // // If the CodeCommit repository is in a different account, you must use // `CodeCommitTrigger.EVENTS` to trigger the pipeline. // // (That is because the Pipeline structure normally only has a `RepositoryName` // field, and that is not enough for the pipeline to locate the repository's // source account. However, if the pipeline is triggered via an EventBridge // event, the event itself has the full repository ARN in there, allowing the // pipeline to locate the repository). // // Example: // // Source stage: read from repository // repo := codecommit.NewRepository(stack, jsii.String("TemplateRepo"), &RepositoryProps{ // RepositoryName: jsii.String("template-repo"), // }) // sourceOutput := codepipeline.NewArtifact(jsii.String("SourceArtifact")) // source := cpactions.NewCodeCommitSourceAction(&CodeCommitSourceActionProps{ // ActionName: jsii.String("Source"), // Repository: repo, // Output: sourceOutput, // Trigger: cpactions.CodeCommitTrigger_POLL, // }) // sourceStage := map[string]interface{}{ // "stageName": jsii.String("Source"), // "actions": []CodeCommitSourceAction{ // source, // }, // } // // // Deployment stage: create and deploy changeset with manual approval // stackName := "OurStack" // changeSetName := "StagedChangeSet" // // prodStage := map[string]interface{}{ // "stageName": jsii.String("Deploy"), // "actions": []interface{}{ // cpactions.NewCloudFormationCreateReplaceChangeSetAction(&CloudFormationCreateReplaceChangeSetActionProps{ // "actionName": jsii.String("PrepareChanges"), // "stackName": jsii.String(stackName), // "changeSetName": jsii.String(changeSetName), // "adminPermissions": jsii.Boolean(true), // "templatePath": sourceOutput.atPath(jsii.String("template.yaml")), // "runOrder": jsii.Number(1), // }), // cpactions.NewManualApprovalAction(&ManualApprovalActionProps{ // "actionName": jsii.String("ApproveChanges"), // "runOrder": jsii.Number(2), // }), // cpactions.NewCloudFormationExecuteChangeSetAction(&CloudFormationExecuteChangeSetActionProps{ // "actionName": jsii.String("ExecuteChanges"), // "stackName": jsii.String(stackName), // "changeSetName": jsii.String(changeSetName), // "runOrder": jsii.Number(3), // }), // }, // } // // codepipeline.NewPipeline(stack, jsii.String("Pipeline"), &PipelineProps{ // Stages: []stageProps{ // sourceStage, // prodStage, // }, // }) // type CodeCommitSourceAction interface { Action // The simple properties of the Action, like its Owner, name, etc. // // Note that this accessor will be called before the `bind` callback. ActionProperties() *awscodepipeline.ActionProperties // This is a renamed version of the `IAction.actionProperties` property. ProvidedActionProperties() *awscodepipeline.ActionProperties // The variables emitted by this action. Variables() *CodeCommitSourceVariables // The callback invoked when this Action is added to a Pipeline. Bind(scope constructs.Construct, stage awscodepipeline.IStage, options *awscodepipeline.ActionBindOptions) *awscodepipeline.ActionConfig // This is a renamed version of the `IAction.bind` method. Bound(_scope constructs.Construct, stage awscodepipeline.IStage, options *awscodepipeline.ActionBindOptions) *awscodepipeline.ActionConfig // Creates an Event that will be triggered whenever the state of this Action changes. OnStateChange(name *string, target awsevents.IRuleTarget, options *awsevents.RuleProps) awsevents.Rule VariableExpression(variableName *string) *string } // The jsii proxy struct for CodeCommitSourceAction type jsiiProxy_CodeCommitSourceAction struct { jsiiProxy_Action } func (j *jsiiProxy_CodeCommitSourceAction) ActionProperties() *awscodepipeline.ActionProperties { var returns *awscodepipeline.ActionProperties _jsii_.Get( j, "actionProperties", &returns, ) return returns } func (j *jsiiProxy_CodeCommitSourceAction) ProvidedActionProperties() *awscodepipeline.ActionProperties { var returns *awscodepipeline.ActionProperties _jsii_.Get( j, "providedActionProperties", &returns, ) return returns } func (j *jsiiProxy_CodeCommitSourceAction) Variables() *CodeCommitSourceVariables { var returns *CodeCommitSourceVariables _jsii_.Get( j, "variables", &returns, ) return returns } func NewCodeCommitSourceAction(props *CodeCommitSourceActionProps) CodeCommitSourceAction { _init_.Initialize() if err := validateNewCodeCommitSourceActionParameters(props); err != nil { panic(err) } j := jsiiProxy_CodeCommitSourceAction{} _jsii_.Create( "aws-cdk-lib.aws_codepipeline_actions.CodeCommitSourceAction", []interface{}{props}, &j, ) return &j } func NewCodeCommitSourceAction_Override(c CodeCommitSourceAction, props *CodeCommitSourceActionProps) { _init_.Initialize() _jsii_.Create( "aws-cdk-lib.aws_codepipeline_actions.CodeCommitSourceAction", []interface{}{props}, c, ) } func (c *jsiiProxy_CodeCommitSourceAction) Bind(scope constructs.Construct, stage awscodepipeline.IStage, options *awscodepipeline.ActionBindOptions) *awscodepipeline.ActionConfig { if err := c.validateBindParameters(scope, stage, options); err != nil { panic(err) } var returns *awscodepipeline.ActionConfig _jsii_.Invoke( c, "bind", []interface{}{scope, stage, options}, &returns, ) return returns } func (c *jsiiProxy_CodeCommitSourceAction) Bound(_scope constructs.Construct, stage awscodepipeline.IStage, options *awscodepipeline.ActionBindOptions) *awscodepipeline.ActionConfig { if err := c.validateBoundParameters(_scope, stage, options); err != nil { panic(err) } var returns *awscodepipeline.ActionConfig _jsii_.Invoke( c, "bound", []interface{}{_scope, stage, options}, &returns, ) return returns } func (c *jsiiProxy_CodeCommitSourceAction) OnStateChange(name *string, target awsevents.IRuleTarget, options *awsevents.RuleProps) awsevents.Rule { if err := c.validateOnStateChangeParameters(name, options); err != nil { panic(err) } var returns awsevents.Rule _jsii_.Invoke( c, "onStateChange", []interface{}{name, target, options}, &returns, ) return returns } func (c *jsiiProxy_CodeCommitSourceAction) VariableExpression(variableName *string) *string { if err := c.validateVariableExpressionParameters(variableName); err != nil { panic(err) } var returns *string _jsii_.Invoke( c, "variableExpression", []interface{}{variableName}, &returns, ) return returns }