/** * 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 CloudWatchEvents { 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_CLOUDWATCHEVENTS_API InputTransformer(); AWS_CLOUDWATCHEVENTS_API InputTransformer(Aws::Utils::Json::JsonView jsonValue); AWS_CLOUDWATCHEVENTS_API InputTransformer& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_CLOUDWATCHEVENTS_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> 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.

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> 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.

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> 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.

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> 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.

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> 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.

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> 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.

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> 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.

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> 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.

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 CloudWatchEvents } // namespace Aws