inputPathsMap;
private final String inputTemplate;
private InputTransformer(BuilderImpl builder) {
this.inputPathsMap = builder.inputPathsMap;
this.inputTemplate = builder.inputTemplate;
}
/**
*
* Map of JSON paths to be extracted from the event. You can then insert these in the template in
* InputTemplate
to produce the output you want to be sent to the target.
*
*
* InputPathsMap
is an array key-value pairs, where each value is a valid JSON path. You can have as
* many as 10 key-value pairs. You must use JSON dot notation, not bracket notation.
*
*
* The keys cannot start with "AWS."
*
*
* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
*
*
* @return Map of JSON paths to be extracted from the event. You can then insert these in the template in
* InputTemplate
to produce the output you want to be sent to the target.
*
* InputPathsMap
is an array key-value pairs, where each value is a valid JSON path. You can
* have as many as 10 key-value pairs. You must use JSON dot notation, not bracket notation.
*
*
* The keys cannot start with "AWS."
*/
public Map inputPathsMap() {
return inputPathsMap;
}
/**
*
* Input template where you specify placeholders that will be filled with the values of the keys from
* InputPathsMap
to customize the data sent to the target. Enclose each InputPathsMaps
* value in brackets: <value > The InputTemplate must be valid JSON.
*
*
* If InputTemplate
is a JSON object (surrounded by curly braces), the following restrictions apply:
*
*
*
* The following example shows the syntax for using InputPathsMap
and InputTemplate
.
*
*
* "InputTransformer":
*
*
* {
*
*
* "InputPathsMap": {"instance": "$.detail.instance","status": "$.detail.status"},
*
*
* "InputTemplate": "<instance> is in state <status>"
*
*
* }
*
*
* To have the InputTemplate
include quote marks within a JSON string, escape each quote marks with a
* slash, as in the following example:
*
*
* "InputTransformer":
*
*
* {
*
*
* "InputPathsMap": {"instance": "$.detail.instance","status": "$.detail.status"},
*
*
* "InputTemplate": "<instance> is in state \"<status>\""
*
*
* }
*
*
* @return Input template where you specify placeholders that will be filled with the values of the keys from
* InputPathsMap
to customize the data sent to the target. Enclose each
* InputPathsMaps
value in brackets: <value > The InputTemplate must be valid
* JSON.
*
* If InputTemplate
is a JSON object (surrounded by curly braces), the following restrictions
* apply:
*
*
*
* The following example shows the syntax for using InputPathsMap
and
* InputTemplate
.
*
*
* "InputTransformer":
*
*
* {
*
*
* "InputPathsMap": {"instance": "$.detail.instance","status": "$.detail.status"},
*
*
* "InputTemplate": "<instance> is in state <status>"
*
*
* }
*
*
* To have the InputTemplate
include quote marks within a JSON string, escape each quote marks
* with a slash, as in the following example:
*
*
* "InputTransformer":
*
*
* {
*
*
* "InputPathsMap": {"instance": "$.detail.instance","status": "$.detail.status"},
*
*
* "InputTemplate": "<instance> is in state \"<status>\""
*
*
* }
*/
public String inputTemplate() {
return inputTemplate;
}
@Override
public Builder toBuilder() {
return new BuilderImpl(this);
}
public static Builder builder() {
return new BuilderImpl();
}
public static Class extends Builder> serializableBuilderClass() {
return BuilderImpl.class;
}
@Override
public int hashCode() {
int hashCode = 1;
hashCode = 31 * hashCode + Objects.hashCode(inputPathsMap());
hashCode = 31 * hashCode + Objects.hashCode(inputTemplate());
return hashCode;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (!(obj instanceof InputTransformer)) {
return false;
}
InputTransformer other = (InputTransformer) obj;
return Objects.equals(inputPathsMap(), other.inputPathsMap()) && Objects.equals(inputTemplate(), other.inputTemplate());
}
/**
* Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be
* redacted from this string using a placeholder value.
*/
@Override
public String toString() {
return ToString.builder("InputTransformer").add("InputPathsMap", inputPathsMap()).add("InputTemplate", inputTemplate())
.build();
}
public Optional getValueForField(String fieldName, Class clazz) {
switch (fieldName) {
case "InputPathsMap":
return Optional.ofNullable(clazz.cast(inputPathsMap()));
case "InputTemplate":
return Optional.ofNullable(clazz.cast(inputTemplate()));
default:
return Optional.empty();
}
}
@Override
public List> sdkFields() {
return SDK_FIELDS;
}
private static Function getter(Function g) {
return obj -> g.apply((InputTransformer) obj);
}
private static BiConsumer setter(BiConsumer s) {
return (obj, val) -> s.accept((Builder) obj, val);
}
public interface Builder extends SdkPojo, CopyableBuilder {
/**
*
* Map of JSON paths to be extracted from the event. You can then insert these in the template in
* InputTemplate
to produce the output you want to be sent to the target.
*
*
* InputPathsMap
is an array key-value pairs, where each value is a valid JSON path. You can have
* as many as 10 key-value pairs. You must use JSON dot notation, not bracket notation.
*
*
* The keys cannot start with "AWS."
*
*
* @param inputPathsMap
* Map of JSON paths to be extracted from the event. You can then insert these in the template in
* InputTemplate
to produce the output you want to be sent to the target.
*
* InputPathsMap
is an array key-value pairs, where each value is a valid JSON path. You can
* have as many as 10 key-value pairs. You must use JSON dot notation, not bracket notation.
*
*
* The keys cannot start with "AWS."
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder inputPathsMap(Map inputPathsMap);
/**
*
* Input template where you specify placeholders that will be filled with the values of the keys from
* InputPathsMap
to customize the data sent to the target. Enclose each InputPathsMaps
* value in brackets: <value > The InputTemplate must be valid JSON.
*
*
* If InputTemplate
is a JSON object (surrounded by curly braces), the following restrictions
* apply:
*
*
*
* The following example shows the syntax for using InputPathsMap
and InputTemplate
.
*
*
* "InputTransformer":
*
*
* {
*
*
* "InputPathsMap": {"instance": "$.detail.instance","status": "$.detail.status"},
*
*
* "InputTemplate": "<instance> is in state <status>"
*
*
* }
*
*
* To have the InputTemplate
include quote marks within a JSON string, escape each quote marks with
* a slash, as in the following example:
*
*
* "InputTransformer":
*
*
* {
*
*
* "InputPathsMap": {"instance": "$.detail.instance","status": "$.detail.status"},
*
*
* "InputTemplate": "<instance> is in state \"<status>\""
*
*
* }
*
*
* @param inputTemplate
* Input template where you specify placeholders that will be filled with the values of the keys from
* InputPathsMap
to customize the data sent to the target. Enclose each
* InputPathsMaps
value in brackets: <value > The InputTemplate must be valid
* JSON.
*
* If InputTemplate
is a JSON object (surrounded by curly braces), the following
* restrictions apply:
*
*
*
* The following example shows the syntax for using InputPathsMap
and
* InputTemplate
.
*
*
* "InputTransformer":
*
*
* {
*
*
* "InputPathsMap": {"instance": "$.detail.instance","status": "$.detail.status"},
*
*
* "InputTemplate": "<instance> is in state <status>"
*
*
* }
*
*
* To have the InputTemplate
include quote marks within a JSON string, escape each quote
* marks with a slash, as in the following example:
*
*
* "InputTransformer":
*
*
* {
*
*
* "InputPathsMap": {"instance": "$.detail.instance","status": "$.detail.status"},
*
*
* "InputTemplate": "<instance> is in state \"<status>\""
*
*
* }
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder inputTemplate(String inputTemplate);
}
static final class BuilderImpl implements Builder {
private Map inputPathsMap = DefaultSdkAutoConstructMap.getInstance();
private String inputTemplate;
private BuilderImpl() {
}
private BuilderImpl(InputTransformer model) {
inputPathsMap(model.inputPathsMap);
inputTemplate(model.inputTemplate);
}
public final Map getInputPathsMap() {
return inputPathsMap;
}
@Override
public final Builder inputPathsMap(Map inputPathsMap) {
this.inputPathsMap = TransformerPathsCopier.copy(inputPathsMap);
return this;
}
public final void setInputPathsMap(Map inputPathsMap) {
this.inputPathsMap = TransformerPathsCopier.copy(inputPathsMap);
}
public final String getInputTemplate() {
return inputTemplate;
}
@Override
public final Builder inputTemplate(String inputTemplate) {
this.inputTemplate = inputTemplate;
return this;
}
public final void setInputTemplate(String inputTemplate) {
this.inputTemplate = inputTemplate;
}
@Override
public InputTransformer build() {
return new InputTransformer(this);
}
@Override
public List> sdkFields() {
return SDK_FIELDS;
}
}
}