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.CustomResourceProvides a CodePipeline. ## Example Usage
## Import ### Identity Schema #### Required * `name` - (String) Name of the pipeline. #### Optional * `accountId` (String) AWS Account where this resource is managed. * `region` (String) Region where this resource is managed. Using `pulumi import`, import CodePipelines using the `name`. For example: ```sh $ pulumi import aws:codepipeline/pipeline:Pipeline example example-pipeline ```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.Bucket; import com.pulumi.aws.s3.BucketArgs; import com.pulumi.aws.iam.IamFunctions; import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs; import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementArgs; import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementPrincipalArgs; 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.codepipeline.inputs.PipelineStageActionArgs; 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.ArrayList; import java.util.Arrays; 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 Bucket("codepipelineBucket", BucketArgs.builder() .bucket("test-bucket") .build()); final var assumeRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder() .statements(GetPolicyDocumentStatementArgs.builder() .principals(GetPolicyDocumentStatementPrincipalArgs.builder() .type("Service") .identifiers("codepipeline.amazonaws.com") .build()) .effect("Allow") .actions("sts:AssumeRole") .build()) .build()); var codepipelineRole = new Role("codepipelineRole", RoleArgs.builder() .name("test-role") .assumeRolePolicy(assumeRole.json()) .build()); final var s3kmskey = KmsFunctions.getAlias(GetAliasArgs.builder() .name("alias/myKmsKey") .build()); var codepipeline = new Pipeline("codepipeline", PipelineArgs.builder() .artifactStores(PipelineArtifactStoreArgs.builder() .encryptionKey(PipelineArtifactStoreEncryptionKeyArgs.builder() .id(s3kmskey.arn()) .type("KMS") .build()) .location(codepipelineBucket.bucket()) .type("S3") .build()) .stages( PipelineStageArgs.builder() .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()) .name("Source") .build(), PipelineStageArgs.builder() .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()) .name("Build") .build(), PipelineStageArgs.builder() .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()) .name("Deploy") .build()) .name("tf-test-pipeline") .roleArn(codepipelineRole.arn()) .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(_codepipelinePolicy -> _codepipelinePolicy.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 Pipelineget(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>region()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.List<PipelineTriggerAll>>triggerAlls()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:
- CodePipeline ARN.
-
artifactStores
public com.pulumi.core.Output<java.util.List<PipelineArtifactStore>> artifactStores()
- Returns:
- One or more artifactStore 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).
-
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`.
-
region
public com.pulumi.core.Output<java.lang.String> region()
- Returns:
- Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.
-
roleArn
public com.pulumi.core.Output<java.lang.String> roleArn()
- Returns:
- Service role 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 `defaultTags` 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 `defaultTags` configuration block.
-
triggerAlls
public com.pulumi.core.Output<java.util.List<PipelineTriggerAll>> triggerAlls()
- Returns:
- A list of all triggers present on the pipeline, including default triggers added by AWS for `V2` pipelines which omit an explicit `trigger` definition.
-
triggers
public com.pulumi.core.Output<java.util.Optional<java.util.List<PipelineTrigger>>> triggers()
- Returns:
- A trigger block. Valid only when `pipelineType` 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 `pipelineType` is `V2`. Variable are documented below. **Note:** `QUEUED` or `PARALLEL` mode can only be used with V2 pipelines.
-
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.
-
-