Package com.pulumi.aws.codepipeline
Class Pipeline
- java.lang.Object
-
- com.pulumi.resources.Resource
-
- com.pulumi.resources.CustomResource
-
- com.pulumi.aws.codepipeline.Pipeline
-
public class Pipeline extends com.pulumi.resources.CustomResource
Provides a CodePipeline. ## Example Usage <!--Start PulumiCodeChooser -->package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.codestarconnections.Connection; import com.pulumi.aws.codestarconnections.ConnectionArgs; import com.pulumi.aws.s3.BucketV2; import com.pulumi.aws.s3.BucketV2Args; import com.pulumi.aws.iam.IamFunctions; import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs; import com.pulumi.aws.iam.Role; import com.pulumi.aws.iam.RoleArgs; import com.pulumi.aws.kms.KmsFunctions; import com.pulumi.aws.kms.inputs.GetAliasArgs; import com.pulumi.aws.codepipeline.Pipeline; import com.pulumi.aws.codepipeline.PipelineArgs; import com.pulumi.aws.codepipeline.inputs.PipelineArtifactStoreArgs; import com.pulumi.aws.codepipeline.inputs.PipelineArtifactStoreEncryptionKeyArgs; import com.pulumi.aws.codepipeline.inputs.PipelineStageArgs; import com.pulumi.aws.s3.BucketPublicAccessBlock; import com.pulumi.aws.s3.BucketPublicAccessBlockArgs; import com.pulumi.aws.iam.RolePolicy; import com.pulumi.aws.iam.RolePolicyArgs; import java.util.List; import java.util.ArrayList; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { var example = new Connection("example", ConnectionArgs.builder() .name("example-connection") .providerType("GitHub") .build()); var codepipelineBucket = new BucketV2("codepipelineBucket", BucketV2Args.builder() .bucket("test-bucket") .build()); final var assumeRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder() .statements(GetPolicyDocumentStatementArgs.builder() .effect("Allow") .principals(GetPolicyDocumentStatementPrincipalArgs.builder() .type("Service") .identifiers("codepipeline.amazonaws.com") .build()) .actions("sts:AssumeRole") .build()) .build()); var codepipelineRole = new Role("codepipelineRole", RoleArgs.builder() .name("test-role") .assumeRolePolicy(assumeRole.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult.json())) .build()); final var s3kmskey = KmsFunctions.getAlias(GetAliasArgs.builder() .name("alias/myKmsKey") .build()); var codepipeline = new Pipeline("codepipeline", PipelineArgs.builder() .name("tf-test-pipeline") .roleArn(codepipelineRole.arn()) .artifactStores(PipelineArtifactStoreArgs.builder() .location(codepipelineBucket.bucket()) .type("S3") .encryptionKey(PipelineArtifactStoreEncryptionKeyArgs.builder() .id(s3kmskey.applyValue(getAliasResult -> getAliasResult.arn())) .type("KMS") .build()) .build()) .stages( PipelineStageArgs.builder() .name("Source") .actions(PipelineStageActionArgs.builder() .name("Source") .category("Source") .owner("AWS") .provider("CodeStarSourceConnection") .version("1") .outputArtifacts("source_output") .configuration(Map.ofEntries( Map.entry("ConnectionArn", example.arn()), Map.entry("FullRepositoryId", "my-organization/example"), Map.entry("BranchName", "main") )) .build()) .build(), PipelineStageArgs.builder() .name("Build") .actions(PipelineStageActionArgs.builder() .name("Build") .category("Build") .owner("AWS") .provider("CodeBuild") .inputArtifacts("source_output") .outputArtifacts("build_output") .version("1") .configuration(Map.of("ProjectName", "test")) .build()) .build(), PipelineStageArgs.builder() .name("Deploy") .actions(PipelineStageActionArgs.builder() .name("Deploy") .category("Deploy") .owner("AWS") .provider("CloudFormation") .inputArtifacts("build_output") .version("1") .configuration(Map.ofEntries( Map.entry("ActionMode", "REPLACE_ON_FAILURE"), Map.entry("Capabilities", "CAPABILITY_AUTO_EXPAND,CAPABILITY_IAM"), Map.entry("OutputFileName", "CreateStackOutput.json"), Map.entry("StackName", "MyStack"), Map.entry("TemplatePath", "build_output::sam-templated.yaml") )) .build()) .build()) .build()); var codepipelineBucketPab = new BucketPublicAccessBlock("codepipelineBucketPab", BucketPublicAccessBlockArgs.builder() .bucket(codepipelineBucket.id()) .blockPublicAcls(true) .blockPublicPolicy(true) .ignorePublicAcls(true) .restrictPublicBuckets(true) .build()); final var codepipelinePolicy = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder() .statements( GetPolicyDocumentStatementArgs.builder() .effect("Allow") .actions( "s3:GetObject", "s3:GetObjectVersion", "s3:GetBucketVersioning", "s3:PutObjectAcl", "s3:PutObject") .resources( codepipelineBucket.arn(), codepipelineBucket.arn().applyValue(arn -> String.format("%s/*", arn))) .build(), GetPolicyDocumentStatementArgs.builder() .effect("Allow") .actions("codestar-connections:UseConnection") .resources(example.arn()) .build(), GetPolicyDocumentStatementArgs.builder() .effect("Allow") .actions( "codebuild:BatchGetBuilds", "codebuild:StartBuild") .resources("*") .build()) .build()); var codepipelinePolicyRolePolicy = new RolePolicy("codepipelinePolicyRolePolicy", RolePolicyArgs.builder() .name("codepipeline_policy") .role(codepipelineRole.id()) .policy(codepipelinePolicy.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult).applyValue(codepipelinePolicy -> codepipelinePolicy.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult.json()))) .build()); } }
-
-
Constructor Summary
Constructors Constructor Description Pipeline(java.lang.String name)
Pipeline(java.lang.String name, PipelineArgs args)
Pipeline(java.lang.String name, PipelineArgs args, com.pulumi.resources.CustomResourceOptions options)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description com.pulumi.core.Output<java.lang.String>
arn()
com.pulumi.core.Output<java.util.List<PipelineArtifactStore>>
artifactStores()
com.pulumi.core.Output<java.util.Optional<java.lang.String>>
executionMode()
static Pipeline
get(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, PipelineState state, com.pulumi.resources.CustomResourceOptions options)
Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.com.pulumi.core.Output<java.lang.String>
name()
com.pulumi.core.Output<java.util.Optional<java.lang.String>>
pipelineType()
com.pulumi.core.Output<java.lang.String>
roleArn()
com.pulumi.core.Output<java.util.List<PipelineStage>>
stages()
com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>>
tags()
com.pulumi.core.Output<java.util.Map<java.lang.String,java.lang.String>>
tagsAll()
com.pulumi.core.Output<java.util.Optional<java.util.List<PipelineTrigger>>>
triggers()
com.pulumi.core.Output<java.util.Optional<java.util.List<PipelineVariable>>>
variables()
-
-
-
Constructor Detail
-
Pipeline
public Pipeline(java.lang.String name)
- Parameters:
name
- The _unique_ name of the resulting resource.
-
Pipeline
public Pipeline(java.lang.String name, PipelineArgs args)
- Parameters:
name
- The _unique_ name of the resulting resource.args
- The arguments to use to populate this resource's properties.
-
Pipeline
public Pipeline(java.lang.String name, PipelineArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options)
- Parameters:
name
- The _unique_ name of the resulting resource.args
- The arguments to use to populate this resource's properties.options
- A bag of options that control this resource's behavior.
-
-
Method Detail
-
arn
public com.pulumi.core.Output<java.lang.String> arn()
- Returns:
- The codepipeline ARN.
-
artifactStores
public com.pulumi.core.Output<java.util.List<PipelineArtifactStore>> artifactStores()
- Returns:
- One or more artifact_store blocks. Artifact stores are documented below.
-
executionMode
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> executionMode()
- Returns:
- The method that the pipeline will use to handle multiple executions. The default mode is `SUPERSEDED`. For value values, refer to the [AWS documentation](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_PipelineDeclaration.html#CodePipeline-Type-PipelineDeclaration-executionMode). **Note:** `QUEUED` or `PARALLEL` mode can only be used with V2 pipelines.
-
name
public com.pulumi.core.Output<java.lang.String> name()
- Returns:
- The name of the pipeline.
-
pipelineType
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> pipelineType()
- Returns:
- Type of the pipeline. Possible values are: `V1` and `V2`. Default value is `V1`.
-
roleArn
public com.pulumi.core.Output<java.lang.String> roleArn()
- Returns:
- A service role Amazon Resource Name (ARN) that grants AWS CodePipeline permission to make calls to AWS services on your behalf.
-
stages
public com.pulumi.core.Output<java.util.List<PipelineStage>> stages()
- Returns:
- A stage block. Stages are documented below.
-
tags
public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>> tags()
- Returns:
- A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
-
tagsAll
public com.pulumi.core.Output<java.util.Map<java.lang.String,java.lang.String>> tagsAll()
- Returns:
- A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.
-
triggers
public com.pulumi.core.Output<java.util.Optional<java.util.List<PipelineTrigger>>> triggers()
- Returns:
- A trigger block. Valid only when `pipeline_type` is `V2`. Triggers are documented below.
-
variables
public com.pulumi.core.Output<java.util.Optional<java.util.List<PipelineVariable>>> variables()
- Returns:
- A pipeline-level variable block. Valid only when `pipeline_type` is `V2`. Variable are documented below.
-
get
public static Pipeline get(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, @Nullable PipelineState state, @Nullable com.pulumi.resources.CustomResourceOptions options)
Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.- Parameters:
name
- The _unique_ name of the resulting resource.id
- The _unique_ provider ID of the resource to lookup.state
-options
- Optional settings to control the behavior of the CustomResource.
-
-