/** * 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 AWS Config to evaluate * your AWS resources against a rule. It also provides the frequency with which you * want AWS 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 AWS_CONFIGSERVICE_API SourceDetail { public: SourceDetail(); SourceDetail(Aws::Utils::Json::JsonView jsonValue); SourceDetail& operator=(Aws::Utils::Json::JsonView jsonValue); Aws::Utils::Json::JsonValue Jsonize() const; /** *

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    *
  • OversizedConfigurationItemChangeNotification - * Triggers an evaluation when AWS Config delivers an oversized configuration item. * AWS 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 AWS 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 AWS Config to run an evaluation for a * rule. You can specify the following notification types:

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

    *
  • OversizedConfigurationItemChangeNotification - * Triggers an evaluation when AWS Config delivers an oversized configuration item. * AWS 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 AWS 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 AWS Config to run an evaluation for a * rule. You can specify the following notification types:

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

    *
  • OversizedConfigurationItemChangeNotification - * Triggers an evaluation when AWS Config delivers an oversized configuration item. * AWS 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 AWS 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 AWS Config to run an evaluation for a * rule. You can specify the following notification types:

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

    *
  • OversizedConfigurationItemChangeNotification - * Triggers an evaluation when AWS Config delivers an oversized configuration item. * AWS 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 AWS 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 AWS Config to run an evaluation for a * rule. You can specify the following notification types:

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

    *
  • OversizedConfigurationItemChangeNotification - * Triggers an evaluation when AWS Config delivers an oversized configuration item. * AWS 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 AWS 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 AWS Config to run an evaluation for a * rule. You can specify the following notification types:

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

    *
  • OversizedConfigurationItemChangeNotification - * Triggers an evaluation when AWS Config delivers an oversized configuration item. * AWS 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 AWS 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 AWS 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, AWS Config runs * evaluations once for each valid value. For example, if you choose * Three_Hours, AWS 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 AWS 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, AWS Config runs * evaluations once for each valid value. For example, if you choose * Three_Hours, AWS 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 AWS 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, AWS Config runs * evaluations once for each valid value. For example, if you choose * Three_Hours, AWS 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 AWS 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, AWS Config runs * evaluations once for each valid value. For example, if you choose * Three_Hours, AWS 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 AWS 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, AWS Config runs * evaluations once for each valid value. For example, if you choose * Three_Hours, AWS 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 AWS 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, AWS Config runs * evaluations once for each valid value. For example, if you choose * Three_Hours, AWS 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; MessageType m_messageType; bool m_messageTypeHasBeenSet; MaximumExecutionFrequency m_maximumExecutionFrequency; bool m_maximumExecutionFrequencyHasBeenSet; }; } // namespace Model } // namespace ConfigService } // namespace Aws