Package com.pulumi.aws.cloudwatch
Class EventTarget
- java.lang.Object
-
- com.pulumi.resources.Resource
-
- com.pulumi.resources.CustomResource
-
- com.pulumi.aws.cloudwatch.EventTarget
-
public class EventTarget extends com.pulumi.resources.CustomResourceProvides an EventBridge Target resource. > **Note:** EventBridge was formerly known as CloudWatch Events. The functionality is identical. > **Note:** In order to be able to have your AWS Lambda function or SNS topic invoked by an EventBridge rule, you must set up the right permissions using `aws.lambda.Permission` or `aws.sns.TopicPolicy`. More info [here](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-use-resource-based.html). ## Example Usage ### Kinesis Usage
### SSM Document Usagepackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.cloudwatch.EventRule; import com.pulumi.aws.cloudwatch.EventRuleArgs; import com.pulumi.aws.kinesis.Stream; import com.pulumi.aws.kinesis.StreamArgs; import com.pulumi.aws.kinesis.inputs.StreamStreamModeDetailsArgs; import com.pulumi.aws.cloudwatch.EventTarget; import com.pulumi.aws.cloudwatch.EventTargetArgs; import com.pulumi.aws.cloudwatch.inputs.EventTargetRunCommandTargetArgs; import static com.pulumi.codegen.internal.Serialization.*; 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 console = new EventRule("console", EventRuleArgs.builder() .name("capture-ec2-scaling-events") .description("Capture all EC2 scaling events") .eventPattern(serializeJson( jsonObject( jsonProperty("source", jsonArray("aws.autoscaling")), jsonProperty("detail-type", jsonArray( "EC2 Instance Launch Successful", "EC2 Instance Terminate Successful", "EC2 Instance Launch Unsuccessful", "EC2 Instance Terminate Unsuccessful" )) ))) .build()); var testStream = new Stream("testStream", StreamArgs.builder() .streamModeDetails(StreamStreamModeDetailsArgs.builder() .streamMode("ON_DEMAND") .build()) .name("pulumi-kinesis-test") .build()); var yada = new EventTarget("yada", EventTargetArgs.builder() .runCommandTargets( EventTargetRunCommandTargetArgs.builder() .key("tag:Name") .values("FooBar") .build(), EventTargetRunCommandTargetArgs.builder() .key("InstanceIds") .values("i-162058cd308bffec2") .build()) .targetId("Yada") .rule(console.name()) .arn(testStream.arn()) .build()); } }
### RunCommand Usagepackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; 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.ssm.Document; import com.pulumi.aws.ssm.DocumentArgs; import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementConditionArgs; import com.pulumi.aws.iam.Role; import com.pulumi.aws.iam.RoleArgs; import com.pulumi.aws.iam.Policy; import com.pulumi.aws.iam.PolicyArgs; import com.pulumi.aws.iam.RolePolicyAttachment; import com.pulumi.aws.iam.RolePolicyAttachmentArgs; import com.pulumi.aws.cloudwatch.EventRule; import com.pulumi.aws.cloudwatch.EventRuleArgs; import com.pulumi.aws.cloudwatch.EventTarget; import com.pulumi.aws.cloudwatch.EventTargetArgs; import com.pulumi.aws.cloudwatch.inputs.EventTargetRunCommandTargetArgs; import static com.pulumi.codegen.internal.Serialization.*; 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) { final var ssmLifecycleTrust = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder() .statements(GetPolicyDocumentStatementArgs.builder() .principals(GetPolicyDocumentStatementPrincipalArgs.builder() .type("Service") .identifiers("events.amazonaws.com") .build()) .actions("sts:AssumeRole") .build()) .build()); var stopInstance = new Document("stopInstance", DocumentArgs.builder() .name("stop_instance") .documentType("Command") .content(serializeJson( jsonObject( jsonProperty("schemaVersion", "1.2"), jsonProperty("description", "Stop an instance"), jsonProperty("parameters", jsonObject( )), jsonProperty("runtimeConfig", jsonObject( jsonProperty("aws:runShellScript", jsonObject( jsonProperty("properties", jsonArray(jsonObject( jsonProperty("id", "0.aws:runShellScript"), jsonProperty("runCommand", jsonArray("halt")) ))) )) )) ))) .build()); final var ssmLifecycle = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder() .statements( GetPolicyDocumentStatementArgs.builder() .conditions(GetPolicyDocumentStatementConditionArgs.builder() .test("StringEquals") .variable("ec2:ResourceTag/Terminate") .values("*") .build()) .effect("Allow") .actions("ssm:SendCommand") .resources("arn:aws:ec2:eu-west-1:1234567890:instance/*") .build(), GetPolicyDocumentStatementArgs.builder() .effect("Allow") .actions("ssm:SendCommand") .resources(stopInstance.arn()) .build()) .build()); var ssmLifecycleRole = new Role("ssmLifecycleRole", RoleArgs.builder() .name("SSMLifecycle") .assumeRolePolicy(ssmLifecycleTrust.json()) .build()); var ssmLifecyclePolicy = new Policy("ssmLifecyclePolicy", PolicyArgs.builder() .name("SSMLifecycle") .policy(ssmLifecycle.applyValue(_ssmLifecycle -> _ssmLifecycle.json())) .build()); var ssmLifecycleRolePolicyAttachment = new RolePolicyAttachment("ssmLifecycleRolePolicyAttachment", RolePolicyAttachmentArgs.builder() .policyArn(ssmLifecyclePolicy.arn()) .role(ssmLifecycleRole.name()) .build()); var stopInstances = new EventRule("stopInstances", EventRuleArgs.builder() .name("StopInstance") .description("Stop instances nightly") .scheduleExpression("cron(0 0 * * ? *)") .build()); var stopInstancesEventTarget = new EventTarget("stopInstancesEventTarget", EventTargetArgs.builder() .runCommandTargets(EventTargetRunCommandTargetArgs.builder() .key("tag:Terminate") .values("midnight") .build()) .targetId("StopInstance") .arn(stopInstance.arn()) .rule(stopInstances.name()) .roleArn(ssmLifecycleRole.arn()) .build()); } }
### ECS Run Task with Role and Task Override Usagepackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.cloudwatch.EventRule; import com.pulumi.aws.cloudwatch.EventRuleArgs; import com.pulumi.aws.cloudwatch.EventTarget; import com.pulumi.aws.cloudwatch.EventTargetArgs; import com.pulumi.aws.cloudwatch.inputs.EventTargetRunCommandTargetArgs; 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 stopInstances = new EventRule("stopInstances", EventRuleArgs.builder() .name("StopInstance") .description("Stop instances nightly") .scheduleExpression("cron(0 0 * * ? *)") .build()); var stopInstancesEventTarget = new EventTarget("stopInstancesEventTarget", EventTargetArgs.builder() .runCommandTargets(EventTargetRunCommandTargetArgs.builder() .key("tag:Terminate") .values("midnight") .build()) .targetId("StopInstance") .arn(String.format("arn:aws:ssm:%s::document/AWS-RunShellScript", awsRegion)) .input("{\"commands\":[\"halt\"]}") .rule(stopInstances.name()) .roleArn(ssmLifecycle.arn()) .build()); } }
### API Gateway targetpackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; 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.std.StdFunctions; import com.pulumi.std.inputs.ReplaceArgs; import com.pulumi.aws.iam.RolePolicy; import com.pulumi.aws.iam.RolePolicyArgs; import com.pulumi.aws.cloudwatch.EventTarget; import com.pulumi.aws.cloudwatch.EventTargetArgs; import com.pulumi.aws.cloudwatch.inputs.EventTargetEcsTargetArgs; import static com.pulumi.codegen.internal.Serialization.*; 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) { final var assumeRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder() .statements(GetPolicyDocumentStatementArgs.builder() .principals(GetPolicyDocumentStatementPrincipalArgs.builder() .type("Service") .identifiers("events.amazonaws.com") .build()) .effect("Allow") .actions("sts:AssumeRole") .build()) .build()); var ecsEvents = new Role("ecsEvents", RoleArgs.builder() .name("ecs_events") .assumeRolePolicy(assumeRole.json()) .build()); final var ecsEventsRunTaskWithAnyRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder() .statements( GetPolicyDocumentStatementArgs.builder() .effect("Allow") .actions("iam:PassRole") .resources("*") .build(), GetPolicyDocumentStatementArgs.builder() .effect("Allow") .actions("ecs:RunTask") .resources(StdFunctions.replace(ReplaceArgs.builder() .text(taskName.arn()) .search("/:\\d+$/") .replace(":*") .build()).result()) .build()) .build()); var ecsEventsRunTaskWithAnyRoleRolePolicy = new RolePolicy("ecsEventsRunTaskWithAnyRoleRolePolicy", RolePolicyArgs.builder() .name("ecs_events_run_task_with_any_role") .role(ecsEvents.id()) .policy(ecsEventsRunTaskWithAnyRole.json()) .build()); var ecsScheduledTask = new EventTarget("ecsScheduledTask", EventTargetArgs.builder() .ecsTarget(EventTargetEcsTargetArgs.builder() .taskCount(1) .taskDefinitionArn(taskName.arn()) .build()) .targetId("run-scheduled-task-every-hour") .arn(clusterName.arn()) .rule(everyHour.name()) .roleArn(ecsEvents.arn()) .input(serializeJson( jsonObject( jsonProperty("containerOverrides", jsonArray(jsonObject( jsonProperty("name", "name-of-container-to-override"), jsonProperty("command", jsonArray( "bin/console", "scheduled-task" )) ))) ))) .build()); } }
### Cross-Account Event Bus targetpackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.cloudwatch.EventRule; import com.pulumi.aws.apigateway.Deployment; import com.pulumi.aws.apigateway.DeploymentArgs; import com.pulumi.aws.apigateway.Stage; import com.pulumi.aws.apigateway.StageArgs; import com.pulumi.aws.cloudwatch.EventTarget; import com.pulumi.aws.cloudwatch.EventTargetArgs; import com.pulumi.aws.cloudwatch.inputs.EventTargetHttpTargetArgs; 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 exampleEventRule = new EventRule("exampleEventRule"); var exampleDeployment = new Deployment("exampleDeployment", DeploymentArgs.builder() .restApi(exampleAwsApiGatewayRestApi.id()) .build()); var exampleStage = new Stage("exampleStage", StageArgs.builder() .restApi(exampleAwsApiGatewayRestApi.id()) .deployment(exampleDeployment.id()) .build()); var example = new EventTarget("example", EventTargetArgs.builder() .httpTarget(EventTargetHttpTargetArgs.builder() .queryStringParameters(Map.of("Body", "$.detail.body")) .headerParameters(Map.of("Env", "Test")) .build()) .arn(exampleStage.executionArn().applyValue(_executionArn -> String.format("%s/GET", _executionArn))) .rule(exampleEventRule.name()) .build()); } }
### Input Transformer Usage - JSON Objectpackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; 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.iam.Policy; import com.pulumi.aws.iam.PolicyArgs; import com.pulumi.aws.iam.RolePolicyAttachment; import com.pulumi.aws.iam.RolePolicyAttachmentArgs; import com.pulumi.aws.cloudwatch.EventRule; import com.pulumi.aws.cloudwatch.EventRuleArgs; import com.pulumi.aws.cloudwatch.EventTarget; import com.pulumi.aws.cloudwatch.EventTargetArgs; 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) { final var assumeRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder() .statements(GetPolicyDocumentStatementArgs.builder() .principals(GetPolicyDocumentStatementPrincipalArgs.builder() .type("Service") .identifiers("events.amazonaws.com") .build()) .effect("Allow") .actions("sts:AssumeRole") .build()) .build()); var eventBusInvokeRemoteEventBusRole = new Role("eventBusInvokeRemoteEventBusRole", RoleArgs.builder() .name("event-bus-invoke-remote-event-bus") .assumeRolePolicy(assumeRole.json()) .build()); final var eventBusInvokeRemoteEventBus = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder() .statements(GetPolicyDocumentStatementArgs.builder() .effect("Allow") .actions("events:PutEvents") .resources("arn:aws:events:eu-west-1:1234567890:event-bus/My-Event-Bus") .build()) .build()); var eventBusInvokeRemoteEventBusPolicy = new Policy("eventBusInvokeRemoteEventBusPolicy", PolicyArgs.builder() .name("event_bus_invoke_remote_event_bus") .policy(eventBusInvokeRemoteEventBus.json()) .build()); var eventBusInvokeRemoteEventBusRolePolicyAttachment = new RolePolicyAttachment("eventBusInvokeRemoteEventBusRolePolicyAttachment", RolePolicyAttachmentArgs.builder() .role(eventBusInvokeRemoteEventBusRole.name()) .policyArn(eventBusInvokeRemoteEventBusPolicy.arn()) .build()); var stopInstances = new EventRule("stopInstances", EventRuleArgs.builder() .name("StopInstance") .description("Stop instances nightly") .scheduleExpression("cron(0 0 * * ? *)") .build()); var stopInstancesEventTarget = new EventTarget("stopInstancesEventTarget", EventTargetArgs.builder() .targetId("StopInstance") .arn("arn:aws:events:eu-west-1:1234567890:event-bus/My-Event-Bus") .rule(stopInstances.name()) .roleArn(eventBusInvokeRemoteEventBusRole.arn()) .build()); } }
### Input Transformer Usage - Simple Stringpackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.cloudwatch.EventRule; import com.pulumi.aws.cloudwatch.EventTarget; import com.pulumi.aws.cloudwatch.EventTargetArgs; import com.pulumi.aws.cloudwatch.inputs.EventTargetInputTransformerArgs; 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 exampleEventRule = new EventRule("exampleEventRule"); var example = new EventTarget("example", EventTargetArgs.builder() .inputTransformer(EventTargetInputTransformerArgs.builder() .inputPaths(Map.ofEntries( Map.entry("instance", "$.detail.instance"), Map.entry("status", "$.detail.status") )) .inputTemplate(""" { \"instance_id\": <instance>, \"instance_status\": <status> } """) .build()) .arn(exampleAwsLambdaFunction.arn()) .rule(exampleEventRule.name()) .build()); } }
### CloudWatch Log Group Usagepackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.cloudwatch.EventRule; import com.pulumi.aws.cloudwatch.EventTarget; import com.pulumi.aws.cloudwatch.EventTargetArgs; import com.pulumi.aws.cloudwatch.inputs.EventTargetInputTransformerArgs; 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 exampleEventRule = new EventRule("exampleEventRule"); var example = new EventTarget("example", EventTargetArgs.builder() .inputTransformer(EventTargetInputTransformerArgs.builder() .inputPaths(Map.ofEntries( Map.entry("instance", "$.detail.instance"), Map.entry("status", "$.detail.status") )) .inputTemplate("\"<instance> is in state <status>\"") .build()) .arn(exampleAwsLambdaFunction.arn()) .rule(exampleEventRule.name()) .build()); } }
### AppSync Usagepackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.cloudwatch.LogGroup; import com.pulumi.aws.cloudwatch.LogGroupArgs; import com.pulumi.aws.cloudwatch.EventRule; import com.pulumi.aws.cloudwatch.EventRuleArgs; 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.inputs.GetPolicyDocumentStatementConditionArgs; import com.pulumi.aws.cloudwatch.LogResourcePolicy; import com.pulumi.aws.cloudwatch.LogResourcePolicyArgs; import com.pulumi.aws.cloudwatch.EventTarget; import com.pulumi.aws.cloudwatch.EventTargetArgs; import static com.pulumi.codegen.internal.Serialization.*; 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 LogGroup("example", LogGroupArgs.builder() .name("/aws/events/guardduty/logs") .retentionInDays(1) .build()); var exampleEventRule = new EventRule("exampleEventRule", EventRuleArgs.builder() .name("guard-duty_event_rule") .description("GuardDuty Findings") .eventPattern(serializeJson( jsonObject( jsonProperty("source", jsonArray("aws.guardduty")) ))) .tags(Map.of("Environment", "example")) .build()); final var exampleLogPolicy = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder() .statements( GetPolicyDocumentStatementArgs.builder() .principals(GetPolicyDocumentStatementPrincipalArgs.builder() .type("Service") .identifiers( "events.amazonaws.com", "delivery.logs.amazonaws.com") .build()) .effect("Allow") .actions("logs:CreateLogStream") .resources(example.arn().applyValue(_arn -> String.format("%s:*", _arn))) .build(), GetPolicyDocumentStatementArgs.builder() .conditions(GetPolicyDocumentStatementConditionArgs.builder() .test("ArnEquals") .values(exampleEventRule.arn()) .variable("aws:SourceArn") .build()) .principals(GetPolicyDocumentStatementPrincipalArgs.builder() .type("Service") .identifiers( "events.amazonaws.com", "delivery.logs.amazonaws.com") .build()) .effect("Allow") .actions("logs:PutLogEvents") .resources(example.arn().applyValue(_arn -> String.format("%s:*:*", _arn))) .build()) .build()); var exampleLogResourcePolicy = new LogResourcePolicy("exampleLogResourcePolicy", LogResourcePolicyArgs.builder() .policyDocument(exampleLogPolicy.applyValue(_exampleLogPolicy -> _exampleLogPolicy.json())) .policyName("guardduty-log-publishing-policy") .build()); var exampleEventTarget = new EventTarget("exampleEventTarget", EventTargetArgs.builder() .rule(exampleEventRule.name()) .arn(example.arn()) .build()); } }
## Import ### Identity Schema #### Required * `eventBusName` (String) Event bus name for the target. * `rule` (String) Rule name for the target. * `targetId` (String) Target ID. #### Optional * `accountId` (String) AWS Account where this resource is managed. * `region` (String) Region where this resource is managed. Using `pulumi import`, import EventBridge Targets using `event_bus_name/rule-name/target-id` (if you omit `eventBusName`, the `default` event bus will be used). For example: ```sh $ pulumi import aws:cloudwatch/eventTarget:EventTarget example rule-name/target-id ```package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.cloudwatch.EventRule; import com.pulumi.aws.cloudwatch.EventRuleArgs; 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.appsync.GraphQLApi; import com.pulumi.aws.appsync.GraphQLApiArgs; import com.pulumi.aws.cloudwatch.EventTarget; import com.pulumi.aws.cloudwatch.EventTargetArgs; import com.pulumi.aws.cloudwatch.inputs.EventTargetInputTransformerArgs; import com.pulumi.aws.cloudwatch.inputs.EventTargetAppsyncTargetArgs; import com.pulumi.std.StdFunctions; import com.pulumi.std.inputs.ReplaceArgs; import com.pulumi.aws.iam.Policy; import com.pulumi.aws.iam.PolicyArgs; import com.pulumi.aws.iam.RolePolicyAttachment; import com.pulumi.aws.iam.RolePolicyAttachmentArgs; 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 invokeAppsyncMutation = new EventRule("invokeAppsyncMutation", EventRuleArgs.builder() .name("invoke-appsync-mutation") .description("schedule_batch_test") .scheduleExpression("rate(5 minutes)") .build()); final var appsyncMutationRoleTrust = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder() .statements(GetPolicyDocumentStatementArgs.builder() .principals(GetPolicyDocumentStatementPrincipalArgs.builder() .type("Service") .identifiers("events.amazonaws.com") .build()) .actions("sts:AssumeRole") .build()) .build()); var appsyncMutationRole = new Role("appsyncMutationRole", RoleArgs.builder() .name("appsync-mutation-role") .assumeRolePolicy(appsyncMutationRoleTrust.json()) .build()); var graphql_api = new GraphQLApi("graphql-api", GraphQLApiArgs.builder() .name("api") .authenticationType("AWS_IAM") .schema(""" schema { mutation: Mutation query: Query } type Query { testQuery: String } type Mutation { testMutation(input: MutationInput!): TestMutationResult } type TestMutationResult { test: String } input MutationInput { testInput: String } """) .build()); var invokeAppsyncMutationEventTarget = new EventTarget("invokeAppsyncMutationEventTarget", EventTargetArgs.builder() .inputTransformer(EventTargetInputTransformerArgs.builder() .inputPaths(Map.of("input", "$.detail.input")) .inputTemplate(""" { \"input\": <input> } """) .build()) .appsyncTarget(EventTargetAppsyncTargetArgs.builder() .graphqlOperation("mutation TestMutation($input:MutationInput!){testMutation(input: $input) {test}}") .build()) .arn(StdFunctions.replace(ReplaceArgs.builder() .text(graphql_api.arn()) .search("apis") .replace("endpoints/graphql-api") .build()).applyValue(_invoke -> _invoke.result())) .rule(invokeAppsyncMutation.name()) .roleArn(appsyncMutationRole.arn()) .build()); final var appsyncMutationRolePolicyDocument = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder() .statements(GetPolicyDocumentStatementArgs.builder() .actions("appsync:GraphQL") .effect("Allow") .resources(graphql_api.arn()) .build()) .build()); var appsyncMutationRolePolicy = new Policy("appsyncMutationRolePolicy", PolicyArgs.builder() .name("appsync-mutation-role-policy") .policy(appsyncMutationRolePolicyDocument.applyValue(_appsyncMutationRolePolicyDocument -> _appsyncMutationRolePolicyDocument.json())) .build()); var appsyncMutationRoleAttachment = new RolePolicyAttachment("appsyncMutationRoleAttachment", RolePolicyAttachmentArgs.builder() .policyArn(appsyncMutationRolePolicy.arn()) .role(appsyncMutationRole.name()) .build()); } }
-
-
Constructor Summary
Constructors Constructor Description EventTarget(java.lang.String name)EventTarget(java.lang.String name, EventTargetArgs args)EventTarget(java.lang.String name, EventTargetArgs 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.util.Optional<EventTargetAppsyncTarget>>appsyncTarget()com.pulumi.core.Output<java.lang.String>arn()com.pulumi.core.Output<java.util.Optional<EventTargetBatchTarget>>batchTarget()com.pulumi.core.Output<java.util.Optional<EventTargetDeadLetterConfig>>deadLetterConfig()com.pulumi.core.Output<java.util.Optional<EventTargetEcsTarget>>ecsTarget()com.pulumi.core.Output<java.util.Optional<java.lang.String>>eventBusName()com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>>forceDestroy()static EventTargetget(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, EventTargetState 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.util.Optional<EventTargetHttpTarget>>httpTarget()com.pulumi.core.Output<java.util.Optional<java.lang.String>>input()com.pulumi.core.Output<java.util.Optional<java.lang.String>>inputPath()com.pulumi.core.Output<java.util.Optional<EventTargetInputTransformer>>inputTransformer()com.pulumi.core.Output<java.util.Optional<EventTargetKinesisTarget>>kinesisTarget()com.pulumi.core.Output<java.util.Optional<EventTargetRedshiftTarget>>redshiftTarget()com.pulumi.core.Output<java.lang.String>region()com.pulumi.core.Output<java.util.Optional<EventTargetRetryPolicy>>retryPolicy()com.pulumi.core.Output<java.util.Optional<java.lang.String>>roleArn()com.pulumi.core.Output<java.lang.String>rule()com.pulumi.core.Output<java.util.Optional<java.util.List<EventTargetRunCommandTarget>>>runCommandTargets()com.pulumi.core.Output<java.util.Optional<EventTargetSagemakerPipelineTarget>>sagemakerPipelineTarget()com.pulumi.core.Output<java.util.Optional<EventTargetSqsTarget>>sqsTarget()com.pulumi.core.Output<java.lang.String>targetId()
-
-
-
Constructor Detail
-
EventTarget
public EventTarget(java.lang.String name)
- Parameters:
name- The _unique_ name of the resulting resource.
-
EventTarget
public EventTarget(java.lang.String name, EventTargetArgs args)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.
-
EventTarget
public EventTarget(java.lang.String name, EventTargetArgs 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
-
appsyncTarget
public com.pulumi.core.Output<java.util.Optional<EventTargetAppsyncTarget>> appsyncTarget()
- Returns:
- Parameters used when you are using the rule to invoke an AppSync GraphQL API mutation. Documented below. A maximum of 1 are allowed.
-
arn
public com.pulumi.core.Output<java.lang.String> arn()
- Returns:
- ARN of the target.
-
batchTarget
public com.pulumi.core.Output<java.util.Optional<EventTargetBatchTarget>> batchTarget()
- Returns:
- Parameters used when you are using the rule to invoke an Amazon Batch Job. Documented below. A maximum of 1 are allowed.
-
deadLetterConfig
public com.pulumi.core.Output<java.util.Optional<EventTargetDeadLetterConfig>> deadLetterConfig()
- Returns:
- Parameters used when you are providing a dead letter config. Documented below. A maximum of 1 are allowed.
-
ecsTarget
public com.pulumi.core.Output<java.util.Optional<EventTargetEcsTarget>> ecsTarget()
- Returns:
- Parameters used when you are using the rule to invoke Amazon ECS Task. Documented below. A maximum of 1 are allowed.
-
eventBusName
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> eventBusName()
- Returns:
- The name or ARN of the event bus to associate with the rule. If you omit this, the `default` event bus is used.
-
forceDestroy
public com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> forceDestroy()
- Returns:
- Used to delete managed rules created by AWS. Defaults to `false`.
-
httpTarget
public com.pulumi.core.Output<java.util.Optional<EventTargetHttpTarget>> httpTarget()
- Returns:
- Parameters used when you are using the rule to invoke an API Gateway REST endpoint. Documented below. A maximum of 1 is allowed.
-
input
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> input()
- Returns:
- Valid JSON text passed to the target. Conflicts with `inputPath` and `inputTransformer`.
-
inputPath
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> inputPath()
- Returns:
- The value of the [JSONPath](http://goessner.net/articles/JsonPath/) that is used for extracting part of the matched event when passing it to the target. Conflicts with `input` and `inputTransformer`.
-
inputTransformer
public com.pulumi.core.Output<java.util.Optional<EventTargetInputTransformer>> inputTransformer()
- Returns:
- Parameters used when you are providing a custom input to a target based on certain event data. Conflicts with `input` and `inputPath`.
-
kinesisTarget
public com.pulumi.core.Output<java.util.Optional<EventTargetKinesisTarget>> kinesisTarget()
- Returns:
- Parameters used when you are using the rule to invoke an Amazon Kinesis Stream. Documented below. A maximum of 1 are allowed.
-
redshiftTarget
public com.pulumi.core.Output<java.util.Optional<EventTargetRedshiftTarget>> redshiftTarget()
- Returns:
- Parameters used when you are using the rule to invoke an Amazon Redshift Statement. Documented below. A maximum of 1 are allowed.
-
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.
-
retryPolicy
public com.pulumi.core.Output<java.util.Optional<EventTargetRetryPolicy>> retryPolicy()
- Returns:
- Parameters used when you are providing retry policies. Documented below. A maximum of 1 are allowed.
-
roleArn
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> roleArn()
- Returns:
- ARN of the IAM role to be used for this target when the rule is triggered. Required if `ecsTarget` is used or target in `arn` is EC2 instance, Kinesis data stream, Step Functions state machine, or Event Bus in different account or region.
-
rule
public com.pulumi.core.Output<java.lang.String> rule()
- Returns:
- The name of the rule you want to add targets to. The following arguments are optional:
-
runCommandTargets
public com.pulumi.core.Output<java.util.Optional<java.util.List<EventTargetRunCommandTarget>>> runCommandTargets()
- Returns:
- Parameters used when you are using the rule to invoke Amazon EC2 Run Command. Documented below. A maximum of 5 are allowed.
-
sagemakerPipelineTarget
public com.pulumi.core.Output<java.util.Optional<EventTargetSagemakerPipelineTarget>> sagemakerPipelineTarget()
- Returns:
- Parameters used when you are using the rule to invoke an Amazon SageMaker AI Pipeline. Documented below. A maximum of 1 are allowed.
-
sqsTarget
public com.pulumi.core.Output<java.util.Optional<EventTargetSqsTarget>> sqsTarget()
- Returns:
- Parameters used when you are using the rule to invoke an Amazon SQS Queue. Documented below. A maximum of 1 are allowed.
-
targetId
public com.pulumi.core.Output<java.lang.String> targetId()
- Returns:
- The unique target assignment ID. If missing, will generate a random, unique ID.
-
get
public static EventTarget get(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, @Nullable EventTargetState 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.
-
-