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

The Amazon Simple Notification Service (Amazon SNS) notification settings * associated with a specific job. The Notification object is returned * as a part of the response syntax of the DescribeJob action in the * JobMetadata data type.

When the notification settings are * defined during job creation, you can choose to notify based on a specific set of * job states using the JobStatesToNotify array of strings, or you can * specify that you want to have Amazon SNS notifications sent out for all job * states with NotifyAll set to true.

See Also:

AWS * API Reference

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

The new SNS TopicArn that you want to associate with this job. * You can create Amazon Resource Names (ARNs) for topics by using the CreateTopic * Amazon SNS API action.

You can subscribe email addresses to an Amazon SNS * topic through the Amazon Web Services Management Console, or by using the Subscribe * Amazon Simple Notification Service (Amazon SNS) API action.

*/ inline const Aws::String& GetSnsTopicARN() const{ return m_snsTopicARN; } /** *

The new SNS TopicArn that you want to associate with this job. * You can create Amazon Resource Names (ARNs) for topics by using the CreateTopic * Amazon SNS API action.

You can subscribe email addresses to an Amazon SNS * topic through the Amazon Web Services Management Console, or by using the Subscribe * Amazon Simple Notification Service (Amazon SNS) API action.

*/ inline bool SnsTopicARNHasBeenSet() const { return m_snsTopicARNHasBeenSet; } /** *

The new SNS TopicArn that you want to associate with this job. * You can create Amazon Resource Names (ARNs) for topics by using the CreateTopic * Amazon SNS API action.

You can subscribe email addresses to an Amazon SNS * topic through the Amazon Web Services Management Console, or by using the Subscribe * Amazon Simple Notification Service (Amazon SNS) API action.

*/ inline void SetSnsTopicARN(const Aws::String& value) { m_snsTopicARNHasBeenSet = true; m_snsTopicARN = value; } /** *

The new SNS TopicArn that you want to associate with this job. * You can create Amazon Resource Names (ARNs) for topics by using the CreateTopic * Amazon SNS API action.

You can subscribe email addresses to an Amazon SNS * topic through the Amazon Web Services Management Console, or by using the Subscribe * Amazon Simple Notification Service (Amazon SNS) API action.

*/ inline void SetSnsTopicARN(Aws::String&& value) { m_snsTopicARNHasBeenSet = true; m_snsTopicARN = std::move(value); } /** *

The new SNS TopicArn that you want to associate with this job. * You can create Amazon Resource Names (ARNs) for topics by using the CreateTopic * Amazon SNS API action.

You can subscribe email addresses to an Amazon SNS * topic through the Amazon Web Services Management Console, or by using the Subscribe * Amazon Simple Notification Service (Amazon SNS) API action.

*/ inline void SetSnsTopicARN(const char* value) { m_snsTopicARNHasBeenSet = true; m_snsTopicARN.assign(value); } /** *

The new SNS TopicArn that you want to associate with this job. * You can create Amazon Resource Names (ARNs) for topics by using the CreateTopic * Amazon SNS API action.

You can subscribe email addresses to an Amazon SNS * topic through the Amazon Web Services Management Console, or by using the Subscribe * Amazon Simple Notification Service (Amazon SNS) API action.

*/ inline Notification& WithSnsTopicARN(const Aws::String& value) { SetSnsTopicARN(value); return *this;} /** *

The new SNS TopicArn that you want to associate with this job. * You can create Amazon Resource Names (ARNs) for topics by using the CreateTopic * Amazon SNS API action.

You can subscribe email addresses to an Amazon SNS * topic through the Amazon Web Services Management Console, or by using the Subscribe * Amazon Simple Notification Service (Amazon SNS) API action.

*/ inline Notification& WithSnsTopicARN(Aws::String&& value) { SetSnsTopicARN(std::move(value)); return *this;} /** *

The new SNS TopicArn that you want to associate with this job. * You can create Amazon Resource Names (ARNs) for topics by using the CreateTopic * Amazon SNS API action.

You can subscribe email addresses to an Amazon SNS * topic through the Amazon Web Services Management Console, or by using the Subscribe * Amazon Simple Notification Service (Amazon SNS) API action.

*/ inline Notification& WithSnsTopicARN(const char* value) { SetSnsTopicARN(value); return *this;} /** *

The list of job states that will trigger a notification for this job.

*/ inline const Aws::Vector& GetJobStatesToNotify() const{ return m_jobStatesToNotify; } /** *

The list of job states that will trigger a notification for this job.

*/ inline bool JobStatesToNotifyHasBeenSet() const { return m_jobStatesToNotifyHasBeenSet; } /** *

The list of job states that will trigger a notification for this job.

*/ inline void SetJobStatesToNotify(const Aws::Vector& value) { m_jobStatesToNotifyHasBeenSet = true; m_jobStatesToNotify = value; } /** *

The list of job states that will trigger a notification for this job.

*/ inline void SetJobStatesToNotify(Aws::Vector&& value) { m_jobStatesToNotifyHasBeenSet = true; m_jobStatesToNotify = std::move(value); } /** *

The list of job states that will trigger a notification for this job.

*/ inline Notification& WithJobStatesToNotify(const Aws::Vector& value) { SetJobStatesToNotify(value); return *this;} /** *

The list of job states that will trigger a notification for this job.

*/ inline Notification& WithJobStatesToNotify(Aws::Vector&& value) { SetJobStatesToNotify(std::move(value)); return *this;} /** *

The list of job states that will trigger a notification for this job.

*/ inline Notification& AddJobStatesToNotify(const JobState& value) { m_jobStatesToNotifyHasBeenSet = true; m_jobStatesToNotify.push_back(value); return *this; } /** *

The list of job states that will trigger a notification for this job.

*/ inline Notification& AddJobStatesToNotify(JobState&& value) { m_jobStatesToNotifyHasBeenSet = true; m_jobStatesToNotify.push_back(std::move(value)); return *this; } /** *

Any change in job state will trigger a notification for this job.

*/ inline bool GetNotifyAll() const{ return m_notifyAll; } /** *

Any change in job state will trigger a notification for this job.

*/ inline bool NotifyAllHasBeenSet() const { return m_notifyAllHasBeenSet; } /** *

Any change in job state will trigger a notification for this job.

*/ inline void SetNotifyAll(bool value) { m_notifyAllHasBeenSet = true; m_notifyAll = value; } /** *

Any change in job state will trigger a notification for this job.

*/ inline Notification& WithNotifyAll(bool value) { SetNotifyAll(value); return *this;} /** *

Used to send SNS notifications for the person picking up the device * (identified during job creation).

*/ inline const Aws::String& GetDevicePickupSnsTopicARN() const{ return m_devicePickupSnsTopicARN; } /** *

Used to send SNS notifications for the person picking up the device * (identified during job creation).

*/ inline bool DevicePickupSnsTopicARNHasBeenSet() const { return m_devicePickupSnsTopicARNHasBeenSet; } /** *

Used to send SNS notifications for the person picking up the device * (identified during job creation).

*/ inline void SetDevicePickupSnsTopicARN(const Aws::String& value) { m_devicePickupSnsTopicARNHasBeenSet = true; m_devicePickupSnsTopicARN = value; } /** *

Used to send SNS notifications for the person picking up the device * (identified during job creation).

*/ inline void SetDevicePickupSnsTopicARN(Aws::String&& value) { m_devicePickupSnsTopicARNHasBeenSet = true; m_devicePickupSnsTopicARN = std::move(value); } /** *

Used to send SNS notifications for the person picking up the device * (identified during job creation).

*/ inline void SetDevicePickupSnsTopicARN(const char* value) { m_devicePickupSnsTopicARNHasBeenSet = true; m_devicePickupSnsTopicARN.assign(value); } /** *

Used to send SNS notifications for the person picking up the device * (identified during job creation).

*/ inline Notification& WithDevicePickupSnsTopicARN(const Aws::String& value) { SetDevicePickupSnsTopicARN(value); return *this;} /** *

Used to send SNS notifications for the person picking up the device * (identified during job creation).

*/ inline Notification& WithDevicePickupSnsTopicARN(Aws::String&& value) { SetDevicePickupSnsTopicARN(std::move(value)); return *this;} /** *

Used to send SNS notifications for the person picking up the device * (identified during job creation).

*/ inline Notification& WithDevicePickupSnsTopicARN(const char* value) { SetDevicePickupSnsTopicARN(value); return *this;} private: Aws::String m_snsTopicARN; bool m_snsTopicARNHasBeenSet = false; Aws::Vector m_jobStatesToNotify; bool m_jobStatesToNotifyHasBeenSet = false; bool m_notifyAll; bool m_notifyAllHasBeenSet = false; Aws::String m_devicePickupSnsTopicARN; bool m_devicePickupSnsTopicARNHasBeenSet = false; }; } // namespace Model } // namespace Snowball } // namespace Aws