/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include namespace Aws { namespace IoT { namespace Model { /** *

The input for the CreateTopicRule operation.

See Also:

AWS * API Reference

*/ class CreateTopicRuleRequest : public IoTRequest { public: AWS_IOT_API CreateTopicRuleRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "CreateTopicRule"; } AWS_IOT_API Aws::String SerializePayload() const override; AWS_IOT_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

The name of the rule.

*/ inline const Aws::String& GetRuleName() const{ return m_ruleName; } /** *

The name of the rule.

*/ inline bool RuleNameHasBeenSet() const { return m_ruleNameHasBeenSet; } /** *

The name of the rule.

*/ inline void SetRuleName(const Aws::String& value) { m_ruleNameHasBeenSet = true; m_ruleName = value; } /** *

The name of the rule.

*/ inline void SetRuleName(Aws::String&& value) { m_ruleNameHasBeenSet = true; m_ruleName = std::move(value); } /** *

The name of the rule.

*/ inline void SetRuleName(const char* value) { m_ruleNameHasBeenSet = true; m_ruleName.assign(value); } /** *

The name of the rule.

*/ inline CreateTopicRuleRequest& WithRuleName(const Aws::String& value) { SetRuleName(value); return *this;} /** *

The name of the rule.

*/ inline CreateTopicRuleRequest& WithRuleName(Aws::String&& value) { SetRuleName(std::move(value)); return *this;} /** *

The name of the rule.

*/ inline CreateTopicRuleRequest& WithRuleName(const char* value) { SetRuleName(value); return *this;} /** *

The rule payload.

*/ inline const TopicRulePayload& GetTopicRulePayload() const{ return m_topicRulePayload; } /** *

The rule payload.

*/ inline bool TopicRulePayloadHasBeenSet() const { return m_topicRulePayloadHasBeenSet; } /** *

The rule payload.

*/ inline void SetTopicRulePayload(const TopicRulePayload& value) { m_topicRulePayloadHasBeenSet = true; m_topicRulePayload = value; } /** *

The rule payload.

*/ inline void SetTopicRulePayload(TopicRulePayload&& value) { m_topicRulePayloadHasBeenSet = true; m_topicRulePayload = std::move(value); } /** *

The rule payload.

*/ inline CreateTopicRuleRequest& WithTopicRulePayload(const TopicRulePayload& value) { SetTopicRulePayload(value); return *this;} /** *

The rule payload.

*/ inline CreateTopicRuleRequest& WithTopicRulePayload(TopicRulePayload&& value) { SetTopicRulePayload(std::move(value)); return *this;} /** *

Metadata which can be used to manage the topic rule.

For URI * Request parameters use format: ...key1=value1&key2=value2...

For the * CLI command-line parameter use format: --tags * "key1=value1&key2=value2..."

For the cli-input-json file use format: * "tags": "key1=value1&key2=value2..."

*/ inline const Aws::String& GetTags() const{ return m_tags; } /** *

Metadata which can be used to manage the topic rule.

For URI * Request parameters use format: ...key1=value1&key2=value2...

For the * CLI command-line parameter use format: --tags * "key1=value1&key2=value2..."

For the cli-input-json file use format: * "tags": "key1=value1&key2=value2..."

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

Metadata which can be used to manage the topic rule.

For URI * Request parameters use format: ...key1=value1&key2=value2...

For the * CLI command-line parameter use format: --tags * "key1=value1&key2=value2..."

For the cli-input-json file use format: * "tags": "key1=value1&key2=value2..."

*/ inline void SetTags(const Aws::String& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

Metadata which can be used to manage the topic rule.

For URI * Request parameters use format: ...key1=value1&key2=value2...

For the * CLI command-line parameter use format: --tags * "key1=value1&key2=value2..."

For the cli-input-json file use format: * "tags": "key1=value1&key2=value2..."

*/ inline void SetTags(Aws::String&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

Metadata which can be used to manage the topic rule.

For URI * Request parameters use format: ...key1=value1&key2=value2...

For the * CLI command-line parameter use format: --tags * "key1=value1&key2=value2..."

For the cli-input-json file use format: * "tags": "key1=value1&key2=value2..."

*/ inline void SetTags(const char* value) { m_tagsHasBeenSet = true; m_tags.assign(value); } /** *

Metadata which can be used to manage the topic rule.

For URI * Request parameters use format: ...key1=value1&key2=value2...

For the * CLI command-line parameter use format: --tags * "key1=value1&key2=value2..."

For the cli-input-json file use format: * "tags": "key1=value1&key2=value2..."

*/ inline CreateTopicRuleRequest& WithTags(const Aws::String& value) { SetTags(value); return *this;} /** *

Metadata which can be used to manage the topic rule.

For URI * Request parameters use format: ...key1=value1&key2=value2...

For the * CLI command-line parameter use format: --tags * "key1=value1&key2=value2..."

For the cli-input-json file use format: * "tags": "key1=value1&key2=value2..."

*/ inline CreateTopicRuleRequest& WithTags(Aws::String&& value) { SetTags(std::move(value)); return *this;} /** *

Metadata which can be used to manage the topic rule.

For URI * Request parameters use format: ...key1=value1&key2=value2...

For the * CLI command-line parameter use format: --tags * "key1=value1&key2=value2..."

For the cli-input-json file use format: * "tags": "key1=value1&key2=value2..."

*/ inline CreateTopicRuleRequest& WithTags(const char* value) { SetTags(value); return *this;} private: Aws::String m_ruleName; bool m_ruleNameHasBeenSet = false; TopicRulePayload m_topicRulePayload; bool m_topicRulePayloadHasBeenSet = false; Aws::String m_tags; bool m_tagsHasBeenSet = false; }; } // namespace Model } // namespace IoT } // namespace Aws