Webhook Args
data class WebhookArgs(val authentication: Output<String>? = null, val authenticationConfiguration: Output<WebhookAuthenticationConfigurationArgs>? = null, val filters: Output<List<WebhookFilterArgs>>? = null, val name: Output<String>? = null, val tags: Output<Map<String, String>>? = null, val targetAction: Output<String>? = null, val targetPipeline: Output<String>? = null) : ConvertibleToJava<WebhookArgs>
Provides a CodePipeline Webhook.
Example Usage
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
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.Webhook;
import com.pulumi.aws.codepipeline.WebhookArgs;
import com.pulumi.aws.codepipeline.inputs.WebhookAuthenticationConfigurationArgs;
import com.pulumi.aws.codepipeline.inputs.WebhookFilterArgs;
import com.pulumi.github.RepositoryWebhook;
import com.pulumi.github.RepositoryWebhookArgs;
import com.pulumi.github.inputs.RepositoryWebhookConfigurationArgs;
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 barPipeline = new Pipeline("barPipeline", PipelineArgs.builder()
.roleArn(aws_iam_role.bar().arn())
.artifactStores(PipelineArtifactStoreArgs.builder()
.location(aws_s3_bucket.bar().bucket())
.type("S3")
.encryptionKey(PipelineArtifactStoreEncryptionKeyArgs.builder()
.id(data.aws_kms_alias().s3kmskey().arn())
.type("KMS")
.build())
.build())
.stages(
PipelineStageArgs.builder()
.name("Source")
.actions(PipelineStageActionArgs.builder()
.name("Source")
.category("Source")
.owner("ThirdParty")
.provider("GitHub")
.version("1")
.outputArtifacts("test")
.configuration(Map.ofEntries(
Map.entry("Owner", "my-organization"),
Map.entry("Repo", "test"),
Map.entry("Branch", "master")
))
.build())
.build(),
PipelineStageArgs.builder()
.name("Build")
.actions(PipelineStageActionArgs.builder()
.name("Build")
.category("Build")
.owner("AWS")
.provider("CodeBuild")
.inputArtifacts("test")
.version("1")
.configuration(Map.of("ProjectName", "test"))
.build())
.build())
.build());
final var webhookSecret = "super-secret";
var barWebhook = new Webhook("barWebhook", WebhookArgs.builder()
.authentication("GITHUB_HMAC")
.targetAction("Source")
.targetPipeline(barPipeline.name())
.authenticationConfiguration(WebhookAuthenticationConfigurationArgs.builder()
.secretToken(webhookSecret)
.build())
.filters(WebhookFilterArgs.builder()
.jsonPath("$.ref")
.matchEquals("refs/heads/{Branch}")
.build())
.build());
var barRepositoryWebhook = new RepositoryWebhook("barRepositoryWebhook", RepositoryWebhookArgs.builder()
.repository(github_repository.repo().name())
.configuration(RepositoryWebhookConfigurationArgs.builder()
.url(barWebhook.url())
.contentType("json")
.insecureSsl(true)
.secret(webhookSecret)
.build())
.events("push")
.build());
}
}
Content copied to clipboard
Import
CodePipeline Webhooks can be imported by their ARN, e.g.,
$ pulumi import aws:codepipeline/webhook:Webhook example arn:aws:codepipeline:us-west-2:123456789012:webhook:example
Content copied to clipboard
Constructors
Link copied to clipboard
constructor(authentication: Output<String>? = null, authenticationConfiguration: Output<WebhookAuthenticationConfigurationArgs>? = null, filters: Output<List<WebhookFilterArgs>>? = null, name: Output<String>? = null, tags: Output<Map<String, String>>? = null, targetAction: Output<String>? = null, targetPipeline: Output<String>? = null)
Properties
Link copied to clipboard
The type of authentication to use. One of IP
, GITHUB_HMAC
, or UNAUTHENTICATED
.
Link copied to clipboard
An auth
block. Required for IP
and GITHUB_HMAC
. Auth blocks are documented below.
Link copied to clipboard
One or more filter
blocks. Filter blocks are documented below.
Link copied to clipboard
The name of the action in a pipeline you want to connect to the webhook. The action must be from the source (first) stage of the pipeline.
Link copied to clipboard
The name of the pipeline.