class RuleTargetInput
| Language | Type name |
|---|---|
.NET | Amazon.CDK.AWS.Events.RuleTargetInput |
Go | github.com/aws/aws-cdk-go/awscdk/v2/awsevents#RuleTargetInput |
Java | software.amazon.awscdk.services.events.RuleTargetInput |
Python | aws_cdk.aws_events.RuleTargetInput |
TypeScript (source) | aws-cdk-lib » aws_events » RuleTargetInput |
Obtainable from
Log.fromObject()
The input to send to the event target.
This class abstracts over the three different ways CloudFormation lets you shape a target's input, so you do not have to choose between them yourself:
Input- a literal value, emitted when the input does not reference the event.InputPath- a single JSONPath into the event, emitted byfromEventPath().InputTransformer- anInputPathsMapplus anInputTemplate, emitted automatically when the input references parts of the event viaEventField.
You pick a factory method based on the shape you want the target to receive, and
whether you reference EventField determines which of the above is synthesized.
For example, fromObject({ foo: 'bar' }) produces a literal Input, while
fromObject({ id: EventField.fromPath('$.detail.instance-id') }) produces an
InputTransformer with the path lifted into InputPathsMap.
Example
declare const rule: events.Rule;
declare const topic: sns.Topic;
// Without EventField this is a literal `Input`:
// {"source":"my-app"}
rule.addTarget(new targets.SnsTopic(topic, {
message: events.RuleTargetInput.fromObject({ source: 'my-app' }),
}));
// Referencing the event inserts those fields from each matched event.
rule.addTarget(new targets.SnsTopic(topic, {
message: events.RuleTargetInput.fromObject({
instance: events.EventField.fromPath('$.detail.instance-id'),
state: events.EventField.fromPath('$.detail.state'),
}),
}));
Initializer
new RuleTargetInput()
Methods
| Name | Description |
|---|---|
| bind(rule) | Return the input properties for this input object. |
| static from | Take the event target input from a path in the event JSON. |
| static from | Pass text to the event target, splitting on newlines. |
| static from | Pass a JSON object to the event target. |
| static from | Pass text to the event target. |
bind(rule)
public bind(rule: IRuleRef): RuleTargetInputProperties
Parameters
- rule
IRuleRef
Returns
Return the input properties for this input object.
static fromEventPath(path)
public static fromEventPath(path: string): RuleTargetInput
Parameters
- path
string
Returns
Take the event target input from a path in the event JSON.
This emits CloudFormation's InputPath directly, so the target receives only
the selected fragment of the event. Use this when you want to forward part of
the event unchanged; use fromObject() when you need to reshape it.
static fromMultilineText(text)
public static fromMultilineText(text: string): RuleTargetInput
Parameters
- text
string
Returns
Pass text to the event target, splitting on newlines.
This is only useful when passing to a target that does not take a single argument.
May contain strings returned by EventField.from() to substitute in parts
of the matched event.
As with fromText, each line is JSON-encoded, so every line is wrapped in
double quotes in the synthesized template. Whether those quotes are visible
to the recipient depends on the target service.
static fromObject(obj)
public static fromObject(obj: any): RuleTargetInput
Parameters
- obj
any
Returns
Pass a JSON object to the event target.
May contain strings returned by EventField.from() to substitute in parts of the
matched event.
Example
declare const rule: events.Rule;
declare const topic: sns.Topic;
// Without EventField this is a literal `Input`:
// {"source":"my-app"}
rule.addTarget(new targets.SnsTopic(topic, {
message: events.RuleTargetInput.fromObject({ source: 'my-app' }),
}));
// Referencing the event inserts those fields from each matched event.
rule.addTarget(new targets.SnsTopic(topic, {
message: events.RuleTargetInput.fromObject({
instance: events.EventField.fromPath('$.detail.instance-id'),
state: events.EventField.fromPath('$.detail.state'),
}),
}));
static fromText(text)
public static fromText(text: string): RuleTargetInput
Parameters
- text
string
Returns
Pass text to the event target.
May contain strings returned by EventField.from() to substitute in parts of the
matched event.
The Rule Target input value will be a single string: the string you pass
here. Do not use this method to pass a complex value like a JSON object to
a Rule Target. Use RuleTargetInput.fromObject() instead.
The target Input field must be valid JSON, so the text is JSON-encoded
when the template is synthesized. As a result a plain string is wrapped in
double quotes: fromText('something') renders as Input: '"something"'.
The quotes are part of the required JSON encoding, not an extra value added
by CDK, and cannot be removed.
Whether those quotes are visible to the recipient depends on the target
service. Some targets deliver the JSON-encoded value as-is, so the recipient
sees the surrounding quotes (for example, an SNS topic delivering to an
email subscriber shows "something"). To send a structured payload, use
RuleTargetInput.fromObject() instead.

.NET
Go
Java
Python
TypeScript (