All Downloads are FREE. Search and download functionalities are using the official Maven repository.

software.amazon.awssdk.services.cloudwatchevents.model.InputTransformer Maven / Gradle / Ivy

Go to download

The AWS Java SDK for Amazon CloudWatch Events module holds the client classes that are used for communicating with Amazon CloudWatch Events Service

There is a newer version: 2.29.39
Show newest version
/*
 * Copyright 2014-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
 * the License. A copy of the License is located at
 * 
 * http://aws.amazon.com/apache2.0
 * 
 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
 * and limitations under the License.
 */

package software.amazon.awssdk.services.cloudwatchevents.model;

import java.io.Serializable;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.function.BiConsumer;
import java.util.function.Function;
import software.amazon.awssdk.annotations.Generated;
import software.amazon.awssdk.core.SdkField;
import software.amazon.awssdk.core.SdkPojo;
import software.amazon.awssdk.core.protocol.MarshallLocation;
import software.amazon.awssdk.core.protocol.MarshallingType;
import software.amazon.awssdk.core.traits.LocationTrait;
import software.amazon.awssdk.core.traits.MapTrait;
import software.amazon.awssdk.core.util.DefaultSdkAutoConstructMap;
import software.amazon.awssdk.utils.ToString;
import software.amazon.awssdk.utils.builder.CopyableBuilder;
import software.amazon.awssdk.utils.builder.ToCopyableBuilder;

/**
 * 

* Contains the parameters needed for you to provide custom input to a target based on one or more pieces of data * extracted from the event. *

*/ @Generated("software.amazon.awssdk:codegen") public final class InputTransformer implements SdkPojo, Serializable, ToCopyableBuilder { private static final SdkField> INPUT_PATHS_MAP_FIELD = SdkField .> builder(MarshallingType.MAP) .getter(getter(InputTransformer::inputPathsMap)) .setter(setter(Builder::inputPathsMap)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("InputPathsMap").build(), MapTrait.builder() .keyLocationName("key") .valueLocationName("value") .valueFieldInfo( SdkField. builder(MarshallingType.STRING) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD) .locationName("value").build()).build()).build()).build(); private static final SdkField INPUT_TEMPLATE_FIELD = SdkField. builder(MarshallingType.STRING) .getter(getter(InputTransformer::inputTemplate)).setter(setter(Builder::inputTemplate)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("InputTemplate").build()).build(); private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(INPUT_PATHS_MAP_FIELD, INPUT_TEMPLATE_FIELD)); private static final long serialVersionUID = 1L; private final Map 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 placeholder cannot be used as an object key. *

    *
  • *
  • *

    * Object values cannot include quote marks. *

    *
  • *
*

* 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 placeholder cannot be used as an object key. *

    *
  • *
  • *

    * Object values cannot include quote marks. *

    *
  • *
*

* 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 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 placeholder cannot be used as an object key. *

    *
  • *
  • *

    * Object values cannot include quote marks. *

    *
  • *
*

* 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 placeholder cannot be used as an object key. *

    *
  • *
  • *

    * Object values cannot include quote marks. *

    *
  • *
*

* 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; } } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy