/** * 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 Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace ConfigService { namespace Model { /** *

Provides the source and the message types that trigger Config to evaluate * your Amazon Web Services resources against a rule. It also provides the * frequency with which you want Config to run evaluations for the rule if the * trigger type is periodic. You can specify the parameter values for * SourceDetail only for custom rules.

See Also:

AWS * API Reference

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

The source of the event, such as an Amazon Web Services service, that * triggers Config to evaluate your Amazon Web Services resources.

*/ inline const EventSource& GetEventSource() const{ return m_eventSource; } /** *

The source of the event, such as an Amazon Web Services service, that * triggers Config to evaluate your Amazon Web Services resources.

*/ inline bool EventSourceHasBeenSet() const { return m_eventSourceHasBeenSet; } /** *

The source of the event, such as an Amazon Web Services service, that * triggers Config to evaluate your Amazon Web Services resources.

*/ inline void SetEventSource(const EventSource& value) { m_eventSourceHasBeenSet = true; m_eventSource = value; } /** *

The source of the event, such as an Amazon Web Services service, that * triggers Config to evaluate your Amazon Web Services resources.

*/ inline void SetEventSource(EventSource&& value) { m_eventSourceHasBeenSet = true; m_eventSource = std::move(value); } /** *

The source of the event, such as an Amazon Web Services service, that * triggers Config to evaluate your Amazon Web Services resources.

*/ inline SourceDetail& WithEventSource(const EventSource& value) { SetEventSource(value); return *this;} /** *

The source of the event, such as an Amazon Web Services service, that * triggers Config to evaluate your Amazon Web Services resources.

*/ inline SourceDetail& WithEventSource(EventSource&& value) { SetEventSource(std::move(value)); return *this;} /** *

The type of notification that triggers Config to run an evaluation for a * rule. You can specify the following notification types:

  • * ConfigurationItemChangeNotification - Triggers an evaluation when * Config delivers a configuration item as a result of a resource change.

  • *
  • OversizedConfigurationItemChangeNotification - Triggers an * evaluation when Config delivers an oversized configuration item. Config may * generate this notification type when a resource changes and the notification * exceeds the maximum size allowed by Amazon SNS.

  • * ScheduledNotification - Triggers a periodic evaluation at the * frequency specified for MaximumExecutionFrequency.

  • *

    ConfigurationSnapshotDeliveryCompleted - Triggers a periodic * evaluation when Config delivers a configuration snapshot.

If * you want your custom rule to be triggered by configuration changes, specify two * SourceDetail objects, one for ConfigurationItemChangeNotification * and one for OversizedConfigurationItemChangeNotification.

*/ inline const MessageType& GetMessageType() const{ return m_messageType; } /** *

The type of notification that triggers Config to run an evaluation for a * rule. You can specify the following notification types:

  • * ConfigurationItemChangeNotification - Triggers an evaluation when * Config delivers a configuration item as a result of a resource change.

  • *
  • OversizedConfigurationItemChangeNotification - Triggers an * evaluation when Config delivers an oversized configuration item. Config may * generate this notification type when a resource changes and the notification * exceeds the maximum size allowed by Amazon SNS.

  • * ScheduledNotification - Triggers a periodic evaluation at the * frequency specified for MaximumExecutionFrequency.

  • *

    ConfigurationSnapshotDeliveryCompleted - Triggers a periodic * evaluation when Config delivers a configuration snapshot.

If * you want your custom rule to be triggered by configuration changes, specify two * SourceDetail objects, one for ConfigurationItemChangeNotification * and one for OversizedConfigurationItemChangeNotification.

*/ inline bool MessageTypeHasBeenSet() const { return m_messageTypeHasBeenSet; } /** *

The type of notification that triggers Config to run an evaluation for a * rule. You can specify the following notification types:

  • * ConfigurationItemChangeNotification - Triggers an evaluation when * Config delivers a configuration item as a result of a resource change.

  • *
  • OversizedConfigurationItemChangeNotification - Triggers an * evaluation when Config delivers an oversized configuration item. Config may * generate this notification type when a resource changes and the notification * exceeds the maximum size allowed by Amazon SNS.

  • * ScheduledNotification - Triggers a periodic evaluation at the * frequency specified for MaximumExecutionFrequency.

  • *

    ConfigurationSnapshotDeliveryCompleted - Triggers a periodic * evaluation when Config delivers a configuration snapshot.

If * you want your custom rule to be triggered by configuration changes, specify two * SourceDetail objects, one for ConfigurationItemChangeNotification * and one for OversizedConfigurationItemChangeNotification.

*/ inline void SetMessageType(const MessageType& value) { m_messageTypeHasBeenSet = true; m_messageType = value; } /** *

The type of notification that triggers Config to run an evaluation for a * rule. You can specify the following notification types:

  • * ConfigurationItemChangeNotification - Triggers an evaluation when * Config delivers a configuration item as a result of a resource change.

  • *
  • OversizedConfigurationItemChangeNotification - Triggers an * evaluation when Config delivers an oversized configuration item. Config may * generate this notification type when a resource changes and the notification * exceeds the maximum size allowed by Amazon SNS.

  • * ScheduledNotification - Triggers a periodic evaluation at the * frequency specified for MaximumExecutionFrequency.

  • *

    ConfigurationSnapshotDeliveryCompleted - Triggers a periodic * evaluation when Config delivers a configuration snapshot.

If * you want your custom rule to be triggered by configuration changes, specify two * SourceDetail objects, one for ConfigurationItemChangeNotification * and one for OversizedConfigurationItemChangeNotification.

*/ inline void SetMessageType(MessageType&& value) { m_messageTypeHasBeenSet = true; m_messageType = std::move(value); } /** *

The type of notification that triggers Config to run an evaluation for a * rule. You can specify the following notification types:

  • * ConfigurationItemChangeNotification - Triggers an evaluation when * Config delivers a configuration item as a result of a resource change.

  • *
  • OversizedConfigurationItemChangeNotification - Triggers an * evaluation when Config delivers an oversized configuration item. Config may * generate this notification type when a resource changes and the notification * exceeds the maximum size allowed by Amazon SNS.

  • * ScheduledNotification - Triggers a periodic evaluation at the * frequency specified for MaximumExecutionFrequency.

  • *

    ConfigurationSnapshotDeliveryCompleted - Triggers a periodic * evaluation when Config delivers a configuration snapshot.

If * you want your custom rule to be triggered by configuration changes, specify two * SourceDetail objects, one for ConfigurationItemChangeNotification * and one for OversizedConfigurationItemChangeNotification.

*/ inline SourceDetail& WithMessageType(const MessageType& value) { SetMessageType(value); return *this;} /** *

The type of notification that triggers Config to run an evaluation for a * rule. You can specify the following notification types:

  • * ConfigurationItemChangeNotification - Triggers an evaluation when * Config delivers a configuration item as a result of a resource change.

  • *
  • OversizedConfigurationItemChangeNotification - Triggers an * evaluation when Config delivers an oversized configuration item. Config may * generate this notification type when a resource changes and the notification * exceeds the maximum size allowed by Amazon SNS.

  • * ScheduledNotification - Triggers a periodic evaluation at the * frequency specified for MaximumExecutionFrequency.

  • *

    ConfigurationSnapshotDeliveryCompleted - Triggers a periodic * evaluation when Config delivers a configuration snapshot.

If * you want your custom rule to be triggered by configuration changes, specify two * SourceDetail objects, one for ConfigurationItemChangeNotification * and one for OversizedConfigurationItemChangeNotification.

*/ inline SourceDetail& WithMessageType(MessageType&& value) { SetMessageType(std::move(value)); return *this;} /** *

The frequency at which you want Config to run evaluations for a custom rule * with a periodic trigger. If you specify a value for * MaximumExecutionFrequency, then MessageType must use * the ScheduledNotification value.

By default, rules * with a periodic trigger are evaluated every 24 hours. To change the frequency, * specify a valid value for the MaximumExecutionFrequency * parameter.

Based on the valid value you choose, Config runs evaluations * once for each valid value. For example, if you choose Three_Hours, * Config runs evaluations once every three hours. In this case, * Three_Hours is the frequency of this rule.

*/ inline const MaximumExecutionFrequency& GetMaximumExecutionFrequency() const{ return m_maximumExecutionFrequency; } /** *

The frequency at which you want Config to run evaluations for a custom rule * with a periodic trigger. If you specify a value for * MaximumExecutionFrequency, then MessageType must use * the ScheduledNotification value.

By default, rules * with a periodic trigger are evaluated every 24 hours. To change the frequency, * specify a valid value for the MaximumExecutionFrequency * parameter.

Based on the valid value you choose, Config runs evaluations * once for each valid value. For example, if you choose Three_Hours, * Config runs evaluations once every three hours. In this case, * Three_Hours is the frequency of this rule.

*/ inline bool MaximumExecutionFrequencyHasBeenSet() const { return m_maximumExecutionFrequencyHasBeenSet; } /** *

The frequency at which you want Config to run evaluations for a custom rule * with a periodic trigger. If you specify a value for * MaximumExecutionFrequency, then MessageType must use * the ScheduledNotification value.

By default, rules * with a periodic trigger are evaluated every 24 hours. To change the frequency, * specify a valid value for the MaximumExecutionFrequency * parameter.

Based on the valid value you choose, Config runs evaluations * once for each valid value. For example, if you choose Three_Hours, * Config runs evaluations once every three hours. In this case, * Three_Hours is the frequency of this rule.

*/ inline void SetMaximumExecutionFrequency(const MaximumExecutionFrequency& value) { m_maximumExecutionFrequencyHasBeenSet = true; m_maximumExecutionFrequency = value; } /** *

The frequency at which you want Config to run evaluations for a custom rule * with a periodic trigger. If you specify a value for * MaximumExecutionFrequency, then MessageType must use * the ScheduledNotification value.

By default, rules * with a periodic trigger are evaluated every 24 hours. To change the frequency, * specify a valid value for the MaximumExecutionFrequency * parameter.

Based on the valid value you choose, Config runs evaluations * once for each valid value. For example, if you choose Three_Hours, * Config runs evaluations once every three hours. In this case, * Three_Hours is the frequency of this rule.

*/ inline void SetMaximumExecutionFrequency(MaximumExecutionFrequency&& value) { m_maximumExecutionFrequencyHasBeenSet = true; m_maximumExecutionFrequency = std::move(value); } /** *

The frequency at which you want Config to run evaluations for a custom rule * with a periodic trigger. If you specify a value for * MaximumExecutionFrequency, then MessageType must use * the ScheduledNotification value.

By default, rules * with a periodic trigger are evaluated every 24 hours. To change the frequency, * specify a valid value for the MaximumExecutionFrequency * parameter.

Based on the valid value you choose, Config runs evaluations * once for each valid value. For example, if you choose Three_Hours, * Config runs evaluations once every three hours. In this case, * Three_Hours is the frequency of this rule.

*/ inline SourceDetail& WithMaximumExecutionFrequency(const MaximumExecutionFrequency& value) { SetMaximumExecutionFrequency(value); return *this;} /** *

The frequency at which you want Config to run evaluations for a custom rule * with a periodic trigger. If you specify a value for * MaximumExecutionFrequency, then MessageType must use * the ScheduledNotification value.

By default, rules * with a periodic trigger are evaluated every 24 hours. To change the frequency, * specify a valid value for the MaximumExecutionFrequency * parameter.

Based on the valid value you choose, Config runs evaluations * once for each valid value. For example, if you choose Three_Hours, * Config runs evaluations once every three hours. In this case, * Three_Hours is the frequency of this rule.

*/ inline SourceDetail& WithMaximumExecutionFrequency(MaximumExecutionFrequency&& value) { SetMaximumExecutionFrequency(std::move(value)); return *this;} private: EventSource m_eventSource; bool m_eventSourceHasBeenSet = false; MessageType m_messageType; bool m_messageTypeHasBeenSet = false; MaximumExecutionFrequency m_maximumExecutionFrequency; bool m_maximumExecutionFrequencyHasBeenSet = false; }; } // namespace Model } // namespace ConfigService } // namespace Aws