/** * 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 namespace Aws { template class AmazonWebServiceResult; namespace Utils { namespace Xml { class XmlDocument; } // namespace Xml } // namespace Utils namespace S3Crt { namespace Model { /** *

A container for specifying the notification configuration of the bucket. If * this element is empty, notifications are turned off for the * bucket.

See Also:

AWS * API Reference

*/ class GetBucketNotificationConfigurationResult { public: AWS_S3CRT_API GetBucketNotificationConfigurationResult(); AWS_S3CRT_API GetBucketNotificationConfigurationResult(const Aws::AmazonWebServiceResult& result); AWS_S3CRT_API GetBucketNotificationConfigurationResult& operator=(const Aws::AmazonWebServiceResult& result); /** *

The topic to which notifications are sent and the events for which * notifications are generated.

*/ inline const Aws::Vector& GetTopicConfigurations() const{ return m_topicConfigurations; } /** *

The topic to which notifications are sent and the events for which * notifications are generated.

*/ inline void SetTopicConfigurations(const Aws::Vector& value) { m_topicConfigurations = value; } /** *

The topic to which notifications are sent and the events for which * notifications are generated.

*/ inline void SetTopicConfigurations(Aws::Vector&& value) { m_topicConfigurations = std::move(value); } /** *

The topic to which notifications are sent and the events for which * notifications are generated.

*/ inline GetBucketNotificationConfigurationResult& WithTopicConfigurations(const Aws::Vector& value) { SetTopicConfigurations(value); return *this;} /** *

The topic to which notifications are sent and the events for which * notifications are generated.

*/ inline GetBucketNotificationConfigurationResult& WithTopicConfigurations(Aws::Vector&& value) { SetTopicConfigurations(std::move(value)); return *this;} /** *

The topic to which notifications are sent and the events for which * notifications are generated.

*/ inline GetBucketNotificationConfigurationResult& AddTopicConfigurations(const TopicConfiguration& value) { m_topicConfigurations.push_back(value); return *this; } /** *

The topic to which notifications are sent and the events for which * notifications are generated.

*/ inline GetBucketNotificationConfigurationResult& AddTopicConfigurations(TopicConfiguration&& value) { m_topicConfigurations.push_back(std::move(value)); return *this; } /** *

The Amazon Simple Queue Service queues to publish messages to and the events * for which to publish messages.

*/ inline const Aws::Vector& GetQueueConfigurations() const{ return m_queueConfigurations; } /** *

The Amazon Simple Queue Service queues to publish messages to and the events * for which to publish messages.

*/ inline void SetQueueConfigurations(const Aws::Vector& value) { m_queueConfigurations = value; } /** *

The Amazon Simple Queue Service queues to publish messages to and the events * for which to publish messages.

*/ inline void SetQueueConfigurations(Aws::Vector&& value) { m_queueConfigurations = std::move(value); } /** *

The Amazon Simple Queue Service queues to publish messages to and the events * for which to publish messages.

*/ inline GetBucketNotificationConfigurationResult& WithQueueConfigurations(const Aws::Vector& value) { SetQueueConfigurations(value); return *this;} /** *

The Amazon Simple Queue Service queues to publish messages to and the events * for which to publish messages.

*/ inline GetBucketNotificationConfigurationResult& WithQueueConfigurations(Aws::Vector&& value) { SetQueueConfigurations(std::move(value)); return *this;} /** *

The Amazon Simple Queue Service queues to publish messages to and the events * for which to publish messages.

*/ inline GetBucketNotificationConfigurationResult& AddQueueConfigurations(const QueueConfiguration& value) { m_queueConfigurations.push_back(value); return *this; } /** *

The Amazon Simple Queue Service queues to publish messages to and the events * for which to publish messages.

*/ inline GetBucketNotificationConfigurationResult& AddQueueConfigurations(QueueConfiguration&& value) { m_queueConfigurations.push_back(std::move(value)); return *this; } /** *

Describes the Lambda functions to invoke and the events for which to invoke * them.

*/ inline const Aws::Vector& GetLambdaFunctionConfigurations() const{ return m_lambdaFunctionConfigurations; } /** *

Describes the Lambda functions to invoke and the events for which to invoke * them.

*/ inline void SetLambdaFunctionConfigurations(const Aws::Vector& value) { m_lambdaFunctionConfigurations = value; } /** *

Describes the Lambda functions to invoke and the events for which to invoke * them.

*/ inline void SetLambdaFunctionConfigurations(Aws::Vector&& value) { m_lambdaFunctionConfigurations = std::move(value); } /** *

Describes the Lambda functions to invoke and the events for which to invoke * them.

*/ inline GetBucketNotificationConfigurationResult& WithLambdaFunctionConfigurations(const Aws::Vector& value) { SetLambdaFunctionConfigurations(value); return *this;} /** *

Describes the Lambda functions to invoke and the events for which to invoke * them.

*/ inline GetBucketNotificationConfigurationResult& WithLambdaFunctionConfigurations(Aws::Vector&& value) { SetLambdaFunctionConfigurations(std::move(value)); return *this;} /** *

Describes the Lambda functions to invoke and the events for which to invoke * them.

*/ inline GetBucketNotificationConfigurationResult& AddLambdaFunctionConfigurations(const LambdaFunctionConfiguration& value) { m_lambdaFunctionConfigurations.push_back(value); return *this; } /** *

Describes the Lambda functions to invoke and the events for which to invoke * them.

*/ inline GetBucketNotificationConfigurationResult& AddLambdaFunctionConfigurations(LambdaFunctionConfiguration&& value) { m_lambdaFunctionConfigurations.push_back(std::move(value)); return *this; } /** *

Enables delivery of events to Amazon EventBridge.

*/ inline const EventBridgeConfiguration& GetEventBridgeConfiguration() const{ return m_eventBridgeConfiguration; } /** *

Enables delivery of events to Amazon EventBridge.

*/ inline void SetEventBridgeConfiguration(const EventBridgeConfiguration& value) { m_eventBridgeConfiguration = value; } /** *

Enables delivery of events to Amazon EventBridge.

*/ inline void SetEventBridgeConfiguration(EventBridgeConfiguration&& value) { m_eventBridgeConfiguration = std::move(value); } /** *

Enables delivery of events to Amazon EventBridge.

*/ inline GetBucketNotificationConfigurationResult& WithEventBridgeConfiguration(const EventBridgeConfiguration& value) { SetEventBridgeConfiguration(value); return *this;} /** *

Enables delivery of events to Amazon EventBridge.

*/ inline GetBucketNotificationConfigurationResult& WithEventBridgeConfiguration(EventBridgeConfiguration&& value) { SetEventBridgeConfiguration(std::move(value)); return *this;} inline const Aws::String& GetRequestId() const{ return m_requestId; } inline void SetRequestId(const Aws::String& value) { m_requestId = value; } inline void SetRequestId(Aws::String&& value) { m_requestId = std::move(value); } inline void SetRequestId(const char* value) { m_requestId.assign(value); } inline GetBucketNotificationConfigurationResult& WithRequestId(const Aws::String& value) { SetRequestId(value); return *this;} inline GetBucketNotificationConfigurationResult& WithRequestId(Aws::String&& value) { SetRequestId(std::move(value)); return *this;} inline GetBucketNotificationConfigurationResult& WithRequestId(const char* value) { SetRequestId(value); return *this;} private: Aws::Vector m_topicConfigurations; Aws::Vector m_queueConfigurations; Aws::Vector m_lambdaFunctionConfigurations; EventBridgeConfiguration m_eventBridgeConfiguration; Aws::String m_requestId; }; } // namespace Model } // namespace S3Crt } // namespace Aws