/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace EventBridge { namespace Model { /** *

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.

See * Also:

AWS * API Reference

*/ class InputTransformer { public: AWS_EVENTBRIDGE_API InputTransformer(); AWS_EVENTBRIDGE_API InputTransformer(Aws::Utils::Json::JsonView jsonValue); AWS_EVENTBRIDGE_API InputTransformer& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_EVENTBRIDGE_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

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 100 * key-value pairs. You must use JSON dot notation, not bracket notation.

*

The keys cannot start with "Amazon Web Services."

*/ inline const Aws::Map& GetInputPathsMap() const{ return m_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 100 * key-value pairs. You must use JSON dot notation, not bracket notation.

*

The keys cannot start with "Amazon Web Services."

*/ inline bool InputPathsMapHasBeenSet() const { return m_inputPathsMapHasBeenSet; } /** *

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 100 * key-value pairs. You must use JSON dot notation, not bracket notation.

*

The keys cannot start with "Amazon Web Services."

*/ inline void SetInputPathsMap(const Aws::Map& value) { m_inputPathsMapHasBeenSet = true; m_inputPathsMap = value; } /** *

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 100 * key-value pairs. You must use JSON dot notation, not bracket notation.

*

The keys cannot start with "Amazon Web Services."

*/ inline void SetInputPathsMap(Aws::Map&& value) { m_inputPathsMapHasBeenSet = true; m_inputPathsMap = std::move(value); } /** *

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 100 * key-value pairs. You must use JSON dot notation, not bracket notation.

*

The keys cannot start with "Amazon Web Services."

*/ inline InputTransformer& WithInputPathsMap(const Aws::Map& value) { SetInputPathsMap(value); return *this;} /** *

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 100 * key-value pairs. You must use JSON dot notation, not bracket notation.

*

The keys cannot start with "Amazon Web Services."

*/ inline InputTransformer& WithInputPathsMap(Aws::Map&& value) { SetInputPathsMap(std::move(value)); return *this;} /** *

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 100 * key-value pairs. You must use JSON dot notation, not bracket notation.

*

The keys cannot start with "Amazon Web Services."

*/ inline InputTransformer& AddInputPathsMap(const Aws::String& key, const Aws::String& value) { m_inputPathsMapHasBeenSet = true; m_inputPathsMap.emplace(key, value); return *this; } /** *

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 100 * key-value pairs. You must use JSON dot notation, not bracket notation.

*

The keys cannot start with "Amazon Web Services."

*/ inline InputTransformer& AddInputPathsMap(Aws::String&& key, const Aws::String& value) { m_inputPathsMapHasBeenSet = true; m_inputPathsMap.emplace(std::move(key), value); return *this; } /** *

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 100 * key-value pairs. You must use JSON dot notation, not bracket notation.

*

The keys cannot start with "Amazon Web Services."

*/ inline InputTransformer& AddInputPathsMap(const Aws::String& key, Aws::String&& value) { m_inputPathsMapHasBeenSet = true; m_inputPathsMap.emplace(key, std::move(value)); return *this; } /** *

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 100 * key-value pairs. You must use JSON dot notation, not bracket notation.

*

The keys cannot start with "Amazon Web Services."

*/ inline InputTransformer& AddInputPathsMap(Aws::String&& key, Aws::String&& value) { m_inputPathsMapHasBeenSet = true; m_inputPathsMap.emplace(std::move(key), std::move(value)); return *this; } /** *

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 100 * key-value pairs. You must use JSON dot notation, not bracket notation.

*

The keys cannot start with "Amazon Web Services."

*/ inline InputTransformer& AddInputPathsMap(const char* key, Aws::String&& value) { m_inputPathsMapHasBeenSet = true; m_inputPathsMap.emplace(key, std::move(value)); return *this; } /** *

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 100 * key-value pairs. You must use JSON dot notation, not bracket notation.

*

The keys cannot start with "Amazon Web Services."

*/ inline InputTransformer& AddInputPathsMap(Aws::String&& key, const char* value) { m_inputPathsMapHasBeenSet = true; m_inputPathsMap.emplace(std::move(key), value); return *this; } /** *

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 100 * key-value pairs. You must use JSON dot notation, not bracket notation.

*

The keys cannot start with "Amazon Web Services."

*/ inline InputTransformer& AddInputPathsMap(const char* key, const char* value) { m_inputPathsMapHasBeenSet = true; m_inputPathsMap.emplace(key, value); return *this; } /** *

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>

If InputTemplate is a JSON object * (surrounded by curly braces), the following restrictions apply:

  • *

    The placeholder cannot be used as an object key.

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>\"" *

}

The InputTemplate can also be valid * JSON with varibles in quotes or out, as in the following example:

* "InputTransformer":

{

* "InputPathsMap": {"instance": "$.detail.instance","status": * "$.detail.status"},

"InputTemplate": '{"myInstance": * <instance>,"myStatus": "<instance> is in state * \"<status>\""}'

}

*/ inline const Aws::String& GetInputTemplate() const{ return m_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>

If InputTemplate is a JSON object * (surrounded by curly braces), the following restrictions apply:

  • *

    The placeholder cannot be used as an object key.

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>\"" *

}

The InputTemplate can also be valid * JSON with varibles in quotes or out, as in the following example:

* "InputTransformer":

{

* "InputPathsMap": {"instance": "$.detail.instance","status": * "$.detail.status"},

"InputTemplate": '{"myInstance": * <instance>,"myStatus": "<instance> is in state * \"<status>\""}'

}

*/ inline bool InputTemplateHasBeenSet() const { return m_inputTemplateHasBeenSet; } /** *

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>

If InputTemplate is a JSON object * (surrounded by curly braces), the following restrictions apply:

  • *

    The placeholder cannot be used as an object key.

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>\"" *

}

The InputTemplate can also be valid * JSON with varibles in quotes or out, as in the following example:

* "InputTransformer":

{

* "InputPathsMap": {"instance": "$.detail.instance","status": * "$.detail.status"},

"InputTemplate": '{"myInstance": * <instance>,"myStatus": "<instance> is in state * \"<status>\""}'

}

*/ inline void SetInputTemplate(const Aws::String& value) { m_inputTemplateHasBeenSet = true; m_inputTemplate = value; } /** *

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>

If InputTemplate is a JSON object * (surrounded by curly braces), the following restrictions apply:

  • *

    The placeholder cannot be used as an object key.

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>\"" *

}

The InputTemplate can also be valid * JSON with varibles in quotes or out, as in the following example:

* "InputTransformer":

{

* "InputPathsMap": {"instance": "$.detail.instance","status": * "$.detail.status"},

"InputTemplate": '{"myInstance": * <instance>,"myStatus": "<instance> is in state * \"<status>\""}'

}

*/ inline void SetInputTemplate(Aws::String&& value) { m_inputTemplateHasBeenSet = true; m_inputTemplate = std::move(value); } /** *

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>

If InputTemplate is a JSON object * (surrounded by curly braces), the following restrictions apply:

  • *

    The placeholder cannot be used as an object key.

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>\"" *

}

The InputTemplate can also be valid * JSON with varibles in quotes or out, as in the following example:

* "InputTransformer":

{

* "InputPathsMap": {"instance": "$.detail.instance","status": * "$.detail.status"},

"InputTemplate": '{"myInstance": * <instance>,"myStatus": "<instance> is in state * \"<status>\""}'

}

*/ inline void SetInputTemplate(const char* value) { m_inputTemplateHasBeenSet = true; m_inputTemplate.assign(value); } /** *

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>

If InputTemplate is a JSON object * (surrounded by curly braces), the following restrictions apply:

  • *

    The placeholder cannot be used as an object key.

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>\"" *

}

The InputTemplate can also be valid * JSON with varibles in quotes or out, as in the following example:

* "InputTransformer":

{

* "InputPathsMap": {"instance": "$.detail.instance","status": * "$.detail.status"},

"InputTemplate": '{"myInstance": * <instance>,"myStatus": "<instance> is in state * \"<status>\""}'

}

*/ inline InputTransformer& WithInputTemplate(const Aws::String& value) { SetInputTemplate(value); return *this;} /** *

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>

If InputTemplate is a JSON object * (surrounded by curly braces), the following restrictions apply:

  • *

    The placeholder cannot be used as an object key.

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>\"" *

}

The InputTemplate can also be valid * JSON with varibles in quotes or out, as in the following example:

* "InputTransformer":

{

* "InputPathsMap": {"instance": "$.detail.instance","status": * "$.detail.status"},

"InputTemplate": '{"myInstance": * <instance>,"myStatus": "<instance> is in state * \"<status>\""}'

}

*/ inline InputTransformer& WithInputTemplate(Aws::String&& value) { SetInputTemplate(std::move(value)); return *this;} /** *

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>

If InputTemplate is a JSON object * (surrounded by curly braces), the following restrictions apply:

  • *

    The placeholder cannot be used as an object key.

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>\"" *

}

The InputTemplate can also be valid * JSON with varibles in quotes or out, as in the following example:

* "InputTransformer":

{

* "InputPathsMap": {"instance": "$.detail.instance","status": * "$.detail.status"},

"InputTemplate": '{"myInstance": * <instance>,"myStatus": "<instance> is in state * \"<status>\""}'

}

*/ inline InputTransformer& WithInputTemplate(const char* value) { SetInputTemplate(value); return *this;} private: Aws::Map m_inputPathsMap; bool m_inputPathsMapHasBeenSet = false; Aws::String m_inputTemplate; bool m_inputTemplateHasBeenSet = false; }; } // namespace Model } // namespace EventBridge } // namespace Aws