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/RecencyDimension.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>Specifies dimension settings for including or excluding endpoints from a
28    * segment based on how recently an endpoint was active.</p><p><h3>See Also:</h3>
29    * <a
30    * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/SegmentBehaviors">AWS
31    * API Reference</a></p>
32    */
33   class AWS_PINPOINT_API SegmentBehaviors
34   {
35   public:
36     SegmentBehaviors();
37     SegmentBehaviors(Aws::Utils::Json::JsonView jsonValue);
38     SegmentBehaviors& operator=(Aws::Utils::Json::JsonView jsonValue);
39     Aws::Utils::Json::JsonValue Jsonize() const;
40 
41 
42     /**
43      * <p>The dimension settings that are based on how recently an endpoint was
44      * active.</p>
45      */
GetRecency()46     inline const RecencyDimension& GetRecency() const{ return m_recency; }
47 
48     /**
49      * <p>The dimension settings that are based on how recently an endpoint was
50      * active.</p>
51      */
RecencyHasBeenSet()52     inline bool RecencyHasBeenSet() const { return m_recencyHasBeenSet; }
53 
54     /**
55      * <p>The dimension settings that are based on how recently an endpoint was
56      * active.</p>
57      */
SetRecency(const RecencyDimension & value)58     inline void SetRecency(const RecencyDimension& value) { m_recencyHasBeenSet = true; m_recency = value; }
59 
60     /**
61      * <p>The dimension settings that are based on how recently an endpoint was
62      * active.</p>
63      */
SetRecency(RecencyDimension && value)64     inline void SetRecency(RecencyDimension&& value) { m_recencyHasBeenSet = true; m_recency = std::move(value); }
65 
66     /**
67      * <p>The dimension settings that are based on how recently an endpoint was
68      * active.</p>
69      */
WithRecency(const RecencyDimension & value)70     inline SegmentBehaviors& WithRecency(const RecencyDimension& value) { SetRecency(value); return *this;}
71 
72     /**
73      * <p>The dimension settings that are based on how recently an endpoint was
74      * active.</p>
75      */
WithRecency(RecencyDimension && value)76     inline SegmentBehaviors& WithRecency(RecencyDimension&& value) { SetRecency(std::move(value)); return *this;}
77 
78   private:
79 
80     RecencyDimension m_recency;
81     bool m_recencyHasBeenSet;
82   };
83 
84 } // namespace Model
85 } // namespace Pinpoint
86 } // namespace Aws
87