/** * 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 SecurityHub { namespace Model { /** *

Details for an S3 bucket notification configuration.

See Also:

* AWS * API Reference

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

The list of events that trigger a notification.

*/ inline const Aws::Vector& GetEvents() const{ return m_events; } /** *

The list of events that trigger a notification.

*/ inline bool EventsHasBeenSet() const { return m_eventsHasBeenSet; } /** *

The list of events that trigger a notification.

*/ inline void SetEvents(const Aws::Vector& value) { m_eventsHasBeenSet = true; m_events = value; } /** *

The list of events that trigger a notification.

*/ inline void SetEvents(Aws::Vector&& value) { m_eventsHasBeenSet = true; m_events = std::move(value); } /** *

The list of events that trigger a notification.

*/ inline AwsS3BucketNotificationConfigurationDetail& WithEvents(const Aws::Vector& value) { SetEvents(value); return *this;} /** *

The list of events that trigger a notification.

*/ inline AwsS3BucketNotificationConfigurationDetail& WithEvents(Aws::Vector&& value) { SetEvents(std::move(value)); return *this;} /** *

The list of events that trigger a notification.

*/ inline AwsS3BucketNotificationConfigurationDetail& AddEvents(const Aws::String& value) { m_eventsHasBeenSet = true; m_events.push_back(value); return *this; } /** *

The list of events that trigger a notification.

*/ inline AwsS3BucketNotificationConfigurationDetail& AddEvents(Aws::String&& value) { m_eventsHasBeenSet = true; m_events.push_back(std::move(value)); return *this; } /** *

The list of events that trigger a notification.

*/ inline AwsS3BucketNotificationConfigurationDetail& AddEvents(const char* value) { m_eventsHasBeenSet = true; m_events.push_back(value); return *this; } /** *

The filters that determine which S3 buckets generate notifications.

*/ inline const AwsS3BucketNotificationConfigurationFilter& GetFilter() const{ return m_filter; } /** *

The filters that determine which S3 buckets generate notifications.

*/ inline bool FilterHasBeenSet() const { return m_filterHasBeenSet; } /** *

The filters that determine which S3 buckets generate notifications.

*/ inline void SetFilter(const AwsS3BucketNotificationConfigurationFilter& value) { m_filterHasBeenSet = true; m_filter = value; } /** *

The filters that determine which S3 buckets generate notifications.

*/ inline void SetFilter(AwsS3BucketNotificationConfigurationFilter&& value) { m_filterHasBeenSet = true; m_filter = std::move(value); } /** *

The filters that determine which S3 buckets generate notifications.

*/ inline AwsS3BucketNotificationConfigurationDetail& WithFilter(const AwsS3BucketNotificationConfigurationFilter& value) { SetFilter(value); return *this;} /** *

The filters that determine which S3 buckets generate notifications.

*/ inline AwsS3BucketNotificationConfigurationDetail& WithFilter(AwsS3BucketNotificationConfigurationFilter&& value) { SetFilter(std::move(value)); return *this;} /** *

The ARN of the Lambda function, Amazon SQS queue, or Amazon SNS topic that * generates the notification.

*/ inline const Aws::String& GetDestination() const{ return m_destination; } /** *

The ARN of the Lambda function, Amazon SQS queue, or Amazon SNS topic that * generates the notification.

*/ inline bool DestinationHasBeenSet() const { return m_destinationHasBeenSet; } /** *

The ARN of the Lambda function, Amazon SQS queue, or Amazon SNS topic that * generates the notification.

*/ inline void SetDestination(const Aws::String& value) { m_destinationHasBeenSet = true; m_destination = value; } /** *

The ARN of the Lambda function, Amazon SQS queue, or Amazon SNS topic that * generates the notification.

*/ inline void SetDestination(Aws::String&& value) { m_destinationHasBeenSet = true; m_destination = std::move(value); } /** *

The ARN of the Lambda function, Amazon SQS queue, or Amazon SNS topic that * generates the notification.

*/ inline void SetDestination(const char* value) { m_destinationHasBeenSet = true; m_destination.assign(value); } /** *

The ARN of the Lambda function, Amazon SQS queue, or Amazon SNS topic that * generates the notification.

*/ inline AwsS3BucketNotificationConfigurationDetail& WithDestination(const Aws::String& value) { SetDestination(value); return *this;} /** *

The ARN of the Lambda function, Amazon SQS queue, or Amazon SNS topic that * generates the notification.

*/ inline AwsS3BucketNotificationConfigurationDetail& WithDestination(Aws::String&& value) { SetDestination(std::move(value)); return *this;} /** *

The ARN of the Lambda function, Amazon SQS queue, or Amazon SNS topic that * generates the notification.

*/ inline AwsS3BucketNotificationConfigurationDetail& WithDestination(const char* value) { SetDestination(value); return *this;} /** *

Indicates the type of notification. Notifications can be generated using * Lambda functions, Amazon SQS queues, or Amazon SNS topics, with corresponding * valid values as follows:

  • LambdaConfiguration

    *
  • QueueConfiguration

  • * TopicConfiguration

*/ inline const Aws::String& GetType() const{ return m_type; } /** *

Indicates the type of notification. Notifications can be generated using * Lambda functions, Amazon SQS queues, or Amazon SNS topics, with corresponding * valid values as follows:

  • LambdaConfiguration

    *
  • QueueConfiguration

  • * TopicConfiguration

*/ inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; } /** *

Indicates the type of notification. Notifications can be generated using * Lambda functions, Amazon SQS queues, or Amazon SNS topics, with corresponding * valid values as follows:

  • LambdaConfiguration

    *
  • QueueConfiguration

  • * TopicConfiguration

*/ inline void SetType(const Aws::String& value) { m_typeHasBeenSet = true; m_type = value; } /** *

Indicates the type of notification. Notifications can be generated using * Lambda functions, Amazon SQS queues, or Amazon SNS topics, with corresponding * valid values as follows:

  • LambdaConfiguration

    *
  • QueueConfiguration

  • * TopicConfiguration

*/ inline void SetType(Aws::String&& value) { m_typeHasBeenSet = true; m_type = std::move(value); } /** *

Indicates the type of notification. Notifications can be generated using * Lambda functions, Amazon SQS queues, or Amazon SNS topics, with corresponding * valid values as follows:

  • LambdaConfiguration

    *
  • QueueConfiguration

  • * TopicConfiguration

*/ inline void SetType(const char* value) { m_typeHasBeenSet = true; m_type.assign(value); } /** *

Indicates the type of notification. Notifications can be generated using * Lambda functions, Amazon SQS queues, or Amazon SNS topics, with corresponding * valid values as follows:

  • LambdaConfiguration

    *
  • QueueConfiguration

  • * TopicConfiguration

*/ inline AwsS3BucketNotificationConfigurationDetail& WithType(const Aws::String& value) { SetType(value); return *this;} /** *

Indicates the type of notification. Notifications can be generated using * Lambda functions, Amazon SQS queues, or Amazon SNS topics, with corresponding * valid values as follows:

  • LambdaConfiguration

    *
  • QueueConfiguration

  • * TopicConfiguration

*/ inline AwsS3BucketNotificationConfigurationDetail& WithType(Aws::String&& value) { SetType(std::move(value)); return *this;} /** *

Indicates the type of notification. Notifications can be generated using * Lambda functions, Amazon SQS queues, or Amazon SNS topics, with corresponding * valid values as follows:

  • LambdaConfiguration

    *
  • QueueConfiguration

  • * TopicConfiguration

*/ inline AwsS3BucketNotificationConfigurationDetail& WithType(const char* value) { SetType(value); return *this;} private: Aws::Vector m_events; bool m_eventsHasBeenSet = false; AwsS3BucketNotificationConfigurationFilter m_filter; bool m_filterHasBeenSet = false; Aws::String m_destination; bool m_destinationHasBeenSet = false; Aws::String m_type; bool m_typeHasBeenSet = false; }; } // namespace Model } // namespace SecurityHub } // namespace Aws