1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #pragma once
7 #include <aws/pinpoint/Pinpoint_EXPORTS.h>
8 #include <aws/pinpoint/model/CampaignStatus.h>
9 #include <utility>
10 
11 namespace Aws
12 {
13 namespace Utils
14 {
15 namespace Json
16 {
17   class JsonValue;
18   class JsonView;
19 } // namespace Json
20 } // namespace Utils
21 namespace Pinpoint
22 {
23 namespace Model
24 {
25 
26   /**
27    * <p>Provides information about the status of a campaign.</p><p><h3>See Also:</h3>
28    * <a
29    * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/CampaignState">AWS
30    * API Reference</a></p>
31    */
32   class AWS_PINPOINT_API CampaignState
33   {
34   public:
35     CampaignState();
36     CampaignState(Aws::Utils::Json::JsonView jsonValue);
37     CampaignState& operator=(Aws::Utils::Json::JsonView jsonValue);
38     Aws::Utils::Json::JsonValue Jsonize() const;
39 
40 
41     /**
42      * <p>The current status of the campaign, or the current status of a treatment that
43      * belongs to an A/B test campaign.</p> <p>If a campaign uses A/B testing, the
44      * campaign has a status of COMPLETED only if all campaign treatments have a status
45      * of COMPLETED. If you delete the segment that's associated with a campaign, the
46      * campaign fails and has a status of DELETED.</p>
47      */
GetCampaignStatus()48     inline const CampaignStatus& GetCampaignStatus() const{ return m_campaignStatus; }
49 
50     /**
51      * <p>The current status of the campaign, or the current status of a treatment that
52      * belongs to an A/B test campaign.</p> <p>If a campaign uses A/B testing, the
53      * campaign has a status of COMPLETED only if all campaign treatments have a status
54      * of COMPLETED. If you delete the segment that's associated with a campaign, the
55      * campaign fails and has a status of DELETED.</p>
56      */
CampaignStatusHasBeenSet()57     inline bool CampaignStatusHasBeenSet() const { return m_campaignStatusHasBeenSet; }
58 
59     /**
60      * <p>The current status of the campaign, or the current status of a treatment that
61      * belongs to an A/B test campaign.</p> <p>If a campaign uses A/B testing, the
62      * campaign has a status of COMPLETED only if all campaign treatments have a status
63      * of COMPLETED. If you delete the segment that's associated with a campaign, the
64      * campaign fails and has a status of DELETED.</p>
65      */
SetCampaignStatus(const CampaignStatus & value)66     inline void SetCampaignStatus(const CampaignStatus& value) { m_campaignStatusHasBeenSet = true; m_campaignStatus = value; }
67 
68     /**
69      * <p>The current status of the campaign, or the current status of a treatment that
70      * belongs to an A/B test campaign.</p> <p>If a campaign uses A/B testing, the
71      * campaign has a status of COMPLETED only if all campaign treatments have a status
72      * of COMPLETED. If you delete the segment that's associated with a campaign, the
73      * campaign fails and has a status of DELETED.</p>
74      */
SetCampaignStatus(CampaignStatus && value)75     inline void SetCampaignStatus(CampaignStatus&& value) { m_campaignStatusHasBeenSet = true; m_campaignStatus = std::move(value); }
76 
77     /**
78      * <p>The current status of the campaign, or the current status of a treatment that
79      * belongs to an A/B test campaign.</p> <p>If a campaign uses A/B testing, the
80      * campaign has a status of COMPLETED only if all campaign treatments have a status
81      * of COMPLETED. If you delete the segment that's associated with a campaign, the
82      * campaign fails and has a status of DELETED.</p>
83      */
WithCampaignStatus(const CampaignStatus & value)84     inline CampaignState& WithCampaignStatus(const CampaignStatus& value) { SetCampaignStatus(value); return *this;}
85 
86     /**
87      * <p>The current status of the campaign, or the current status of a treatment that
88      * belongs to an A/B test campaign.</p> <p>If a campaign uses A/B testing, the
89      * campaign has a status of COMPLETED only if all campaign treatments have a status
90      * of COMPLETED. If you delete the segment that's associated with a campaign, the
91      * campaign fails and has a status of DELETED.</p>
92      */
WithCampaignStatus(CampaignStatus && value)93     inline CampaignState& WithCampaignStatus(CampaignStatus&& value) { SetCampaignStatus(std::move(value)); return *this;}
94 
95   private:
96 
97     CampaignStatus m_campaignStatus;
98     bool m_campaignStatusHasBeenSet;
99   };
100 
101 } // namespace Model
102 } // namespace Pinpoint
103 } // namespace Aws
104