/**
* 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 S3
{
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_S3_API GetBucketNotificationConfigurationResult();
AWS_S3_API GetBucketNotificationConfigurationResult(const Aws::AmazonWebServiceResult& result);
AWS_S3_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; }
inline void SetTopicConfigurations(const Aws::Vector& value) { m_topicConfigurations = value; }
inline void SetTopicConfigurations(Aws::Vector&& value) { m_topicConfigurations = std::move(value); }
inline GetBucketNotificationConfigurationResult& WithTopicConfigurations(const Aws::Vector& value) { SetTopicConfigurations(value); return *this;}
inline GetBucketNotificationConfigurationResult& WithTopicConfigurations(Aws::Vector&& value) { SetTopicConfigurations(std::move(value)); return *this;}
inline GetBucketNotificationConfigurationResult& AddTopicConfigurations(const TopicConfiguration& value) { m_topicConfigurations.push_back(value); return *this; }
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; }
inline void SetQueueConfigurations(const Aws::Vector& value) { m_queueConfigurations = value; }
inline void SetQueueConfigurations(Aws::Vector&& value) { m_queueConfigurations = std::move(value); }
inline GetBucketNotificationConfigurationResult& WithQueueConfigurations(const Aws::Vector& value) { SetQueueConfigurations(value); return *this;}
inline GetBucketNotificationConfigurationResult& WithQueueConfigurations(Aws::Vector&& value) { SetQueueConfigurations(std::move(value)); return *this;}
inline GetBucketNotificationConfigurationResult& AddQueueConfigurations(const QueueConfiguration& value) { m_queueConfigurations.push_back(value); return *this; }
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; }
inline void SetLambdaFunctionConfigurations(const Aws::Vector& value) { m_lambdaFunctionConfigurations = value; }
inline void SetLambdaFunctionConfigurations(Aws::Vector&& value) { m_lambdaFunctionConfigurations = std::move(value); }
inline GetBucketNotificationConfigurationResult& WithLambdaFunctionConfigurations(const Aws::Vector& value) { SetLambdaFunctionConfigurations(value); return *this;}
inline GetBucketNotificationConfigurationResult& WithLambdaFunctionConfigurations(Aws::Vector&& value) { SetLambdaFunctionConfigurations(std::move(value)); return *this;}
inline GetBucketNotificationConfigurationResult& AddLambdaFunctionConfigurations(const LambdaFunctionConfiguration& value) { m_lambdaFunctionConfigurations.push_back(value); return *this; }
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; }
inline void SetEventBridgeConfiguration(const EventBridgeConfiguration& value) { m_eventBridgeConfiguration = value; }
inline void SetEventBridgeConfiguration(EventBridgeConfiguration&& value) { m_eventBridgeConfiguration = std::move(value); }
inline GetBucketNotificationConfigurationResult& WithEventBridgeConfiguration(const EventBridgeConfiguration& value) { SetEventBridgeConfiguration(value); return *this;}
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 S3
} // namespace Aws