/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace IoT { namespace Model { /** */ class CreateSecurityProfileRequest : public IoTRequest { public: AWS_IOT_API CreateSecurityProfileRequest(); // 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 "CreateSecurityProfile"; } AWS_IOT_API Aws::String SerializePayload() const override; /** *

The name you are giving to the security profile.

*/ inline const Aws::String& GetSecurityProfileName() const{ return m_securityProfileName; } /** *

The name you are giving to the security profile.

*/ inline bool SecurityProfileNameHasBeenSet() const { return m_securityProfileNameHasBeenSet; } /** *

The name you are giving to the security profile.

*/ inline void SetSecurityProfileName(const Aws::String& value) { m_securityProfileNameHasBeenSet = true; m_securityProfileName = value; } /** *

The name you are giving to the security profile.

*/ inline void SetSecurityProfileName(Aws::String&& value) { m_securityProfileNameHasBeenSet = true; m_securityProfileName = std::move(value); } /** *

The name you are giving to the security profile.

*/ inline void SetSecurityProfileName(const char* value) { m_securityProfileNameHasBeenSet = true; m_securityProfileName.assign(value); } /** *

The name you are giving to the security profile.

*/ inline CreateSecurityProfileRequest& WithSecurityProfileName(const Aws::String& value) { SetSecurityProfileName(value); return *this;} /** *

The name you are giving to the security profile.

*/ inline CreateSecurityProfileRequest& WithSecurityProfileName(Aws::String&& value) { SetSecurityProfileName(std::move(value)); return *this;} /** *

The name you are giving to the security profile.

*/ inline CreateSecurityProfileRequest& WithSecurityProfileName(const char* value) { SetSecurityProfileName(value); return *this;} /** *

A description of the security profile.

*/ inline const Aws::String& GetSecurityProfileDescription() const{ return m_securityProfileDescription; } /** *

A description of the security profile.

*/ inline bool SecurityProfileDescriptionHasBeenSet() const { return m_securityProfileDescriptionHasBeenSet; } /** *

A description of the security profile.

*/ inline void SetSecurityProfileDescription(const Aws::String& value) { m_securityProfileDescriptionHasBeenSet = true; m_securityProfileDescription = value; } /** *

A description of the security profile.

*/ inline void SetSecurityProfileDescription(Aws::String&& value) { m_securityProfileDescriptionHasBeenSet = true; m_securityProfileDescription = std::move(value); } /** *

A description of the security profile.

*/ inline void SetSecurityProfileDescription(const char* value) { m_securityProfileDescriptionHasBeenSet = true; m_securityProfileDescription.assign(value); } /** *

A description of the security profile.

*/ inline CreateSecurityProfileRequest& WithSecurityProfileDescription(const Aws::String& value) { SetSecurityProfileDescription(value); return *this;} /** *

A description of the security profile.

*/ inline CreateSecurityProfileRequest& WithSecurityProfileDescription(Aws::String&& value) { SetSecurityProfileDescription(std::move(value)); return *this;} /** *

A description of the security profile.

*/ inline CreateSecurityProfileRequest& WithSecurityProfileDescription(const char* value) { SetSecurityProfileDescription(value); return *this;} /** *

Specifies the behaviors that, when violated by a device (thing), cause an * alert.

*/ inline const Aws::Vector& GetBehaviors() const{ return m_behaviors; } /** *

Specifies the behaviors that, when violated by a device (thing), cause an * alert.

*/ inline bool BehaviorsHasBeenSet() const { return m_behaviorsHasBeenSet; } /** *

Specifies the behaviors that, when violated by a device (thing), cause an * alert.

*/ inline void SetBehaviors(const Aws::Vector& value) { m_behaviorsHasBeenSet = true; m_behaviors = value; } /** *

Specifies the behaviors that, when violated by a device (thing), cause an * alert.

*/ inline void SetBehaviors(Aws::Vector&& value) { m_behaviorsHasBeenSet = true; m_behaviors = std::move(value); } /** *

Specifies the behaviors that, when violated by a device (thing), cause an * alert.

*/ inline CreateSecurityProfileRequest& WithBehaviors(const Aws::Vector& value) { SetBehaviors(value); return *this;} /** *

Specifies the behaviors that, when violated by a device (thing), cause an * alert.

*/ inline CreateSecurityProfileRequest& WithBehaviors(Aws::Vector&& value) { SetBehaviors(std::move(value)); return *this;} /** *

Specifies the behaviors that, when violated by a device (thing), cause an * alert.

*/ inline CreateSecurityProfileRequest& AddBehaviors(const Behavior& value) { m_behaviorsHasBeenSet = true; m_behaviors.push_back(value); return *this; } /** *

Specifies the behaviors that, when violated by a device (thing), cause an * alert.

*/ inline CreateSecurityProfileRequest& AddBehaviors(Behavior&& value) { m_behaviorsHasBeenSet = true; m_behaviors.push_back(std::move(value)); return *this; } /** *

Specifies the destinations to which alerts are sent. (Alerts are always sent * to the console.) Alerts are generated when a device (thing) violates a * behavior.

*/ inline const Aws::Map& GetAlertTargets() const{ return m_alertTargets; } /** *

Specifies the destinations to which alerts are sent. (Alerts are always sent * to the console.) Alerts are generated when a device (thing) violates a * behavior.

*/ inline bool AlertTargetsHasBeenSet() const { return m_alertTargetsHasBeenSet; } /** *

Specifies the destinations to which alerts are sent. (Alerts are always sent * to the console.) Alerts are generated when a device (thing) violates a * behavior.

*/ inline void SetAlertTargets(const Aws::Map& value) { m_alertTargetsHasBeenSet = true; m_alertTargets = value; } /** *

Specifies the destinations to which alerts are sent. (Alerts are always sent * to the console.) Alerts are generated when a device (thing) violates a * behavior.

*/ inline void SetAlertTargets(Aws::Map&& value) { m_alertTargetsHasBeenSet = true; m_alertTargets = std::move(value); } /** *

Specifies the destinations to which alerts are sent. (Alerts are always sent * to the console.) Alerts are generated when a device (thing) violates a * behavior.

*/ inline CreateSecurityProfileRequest& WithAlertTargets(const Aws::Map& value) { SetAlertTargets(value); return *this;} /** *

Specifies the destinations to which alerts are sent. (Alerts are always sent * to the console.) Alerts are generated when a device (thing) violates a * behavior.

*/ inline CreateSecurityProfileRequest& WithAlertTargets(Aws::Map&& value) { SetAlertTargets(std::move(value)); return *this;} /** *

Specifies the destinations to which alerts are sent. (Alerts are always sent * to the console.) Alerts are generated when a device (thing) violates a * behavior.

*/ inline CreateSecurityProfileRequest& AddAlertTargets(const AlertTargetType& key, const AlertTarget& value) { m_alertTargetsHasBeenSet = true; m_alertTargets.emplace(key, value); return *this; } /** *

Specifies the destinations to which alerts are sent. (Alerts are always sent * to the console.) Alerts are generated when a device (thing) violates a * behavior.

*/ inline CreateSecurityProfileRequest& AddAlertTargets(AlertTargetType&& key, const AlertTarget& value) { m_alertTargetsHasBeenSet = true; m_alertTargets.emplace(std::move(key), value); return *this; } /** *

Specifies the destinations to which alerts are sent. (Alerts are always sent * to the console.) Alerts are generated when a device (thing) violates a * behavior.

*/ inline CreateSecurityProfileRequest& AddAlertTargets(const AlertTargetType& key, AlertTarget&& value) { m_alertTargetsHasBeenSet = true; m_alertTargets.emplace(key, std::move(value)); return *this; } /** *

Specifies the destinations to which alerts are sent. (Alerts are always sent * to the console.) Alerts are generated when a device (thing) violates a * behavior.

*/ inline CreateSecurityProfileRequest& AddAlertTargets(AlertTargetType&& key, AlertTarget&& value) { m_alertTargetsHasBeenSet = true; m_alertTargets.emplace(std::move(key), std::move(value)); return *this; } /** *

A list of metrics whose data is retained (stored). By default, data is * retained for any metric used in the profile's behaviors, but it is * also retained for any metric specified here. Can be used with custom metrics; * cannot be used with dimensions.

*/ inline const Aws::Vector& GetAdditionalMetricsToRetainV2() const{ return m_additionalMetricsToRetainV2; } /** *

A list of metrics whose data is retained (stored). By default, data is * retained for any metric used in the profile's behaviors, but it is * also retained for any metric specified here. Can be used with custom metrics; * cannot be used with dimensions.

*/ inline bool AdditionalMetricsToRetainV2HasBeenSet() const { return m_additionalMetricsToRetainV2HasBeenSet; } /** *

A list of metrics whose data is retained (stored). By default, data is * retained for any metric used in the profile's behaviors, but it is * also retained for any metric specified here. Can be used with custom metrics; * cannot be used with dimensions.

*/ inline void SetAdditionalMetricsToRetainV2(const Aws::Vector& value) { m_additionalMetricsToRetainV2HasBeenSet = true; m_additionalMetricsToRetainV2 = value; } /** *

A list of metrics whose data is retained (stored). By default, data is * retained for any metric used in the profile's behaviors, but it is * also retained for any metric specified here. Can be used with custom metrics; * cannot be used with dimensions.

*/ inline void SetAdditionalMetricsToRetainV2(Aws::Vector&& value) { m_additionalMetricsToRetainV2HasBeenSet = true; m_additionalMetricsToRetainV2 = std::move(value); } /** *

A list of metrics whose data is retained (stored). By default, data is * retained for any metric used in the profile's behaviors, but it is * also retained for any metric specified here. Can be used with custom metrics; * cannot be used with dimensions.

*/ inline CreateSecurityProfileRequest& WithAdditionalMetricsToRetainV2(const Aws::Vector& value) { SetAdditionalMetricsToRetainV2(value); return *this;} /** *

A list of metrics whose data is retained (stored). By default, data is * retained for any metric used in the profile's behaviors, but it is * also retained for any metric specified here. Can be used with custom metrics; * cannot be used with dimensions.

*/ inline CreateSecurityProfileRequest& WithAdditionalMetricsToRetainV2(Aws::Vector&& value) { SetAdditionalMetricsToRetainV2(std::move(value)); return *this;} /** *

A list of metrics whose data is retained (stored). By default, data is * retained for any metric used in the profile's behaviors, but it is * also retained for any metric specified here. Can be used with custom metrics; * cannot be used with dimensions.

*/ inline CreateSecurityProfileRequest& AddAdditionalMetricsToRetainV2(const MetricToRetain& value) { m_additionalMetricsToRetainV2HasBeenSet = true; m_additionalMetricsToRetainV2.push_back(value); return *this; } /** *

A list of metrics whose data is retained (stored). By default, data is * retained for any metric used in the profile's behaviors, but it is * also retained for any metric specified here. Can be used with custom metrics; * cannot be used with dimensions.

*/ inline CreateSecurityProfileRequest& AddAdditionalMetricsToRetainV2(MetricToRetain&& value) { m_additionalMetricsToRetainV2HasBeenSet = true; m_additionalMetricsToRetainV2.push_back(std::move(value)); return *this; } /** *

Metadata that can be used to manage the security profile.

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

Metadata that can be used to manage the security profile.

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

Metadata that can be used to manage the security profile.

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

Metadata that can be used to manage the security profile.

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

Metadata that can be used to manage the security profile.

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

Metadata that can be used to manage the security profile.

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

Metadata that can be used to manage the security profile.

*/ inline CreateSecurityProfileRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

Metadata that can be used to manage the security profile.

*/ inline CreateSecurityProfileRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } private: Aws::String m_securityProfileName; bool m_securityProfileNameHasBeenSet = false; Aws::String m_securityProfileDescription; bool m_securityProfileDescriptionHasBeenSet = false; Aws::Vector m_behaviors; bool m_behaviorsHasBeenSet = false; Aws::Map m_alertTargets; bool m_alertTargetsHasBeenSet = false; Aws::Vector m_additionalMetricsToRetainV2; bool m_additionalMetricsToRetainV2HasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; }; } // namespace Model } // namespace IoT } // namespace Aws