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/DimensionType.h>
9 #include <aws/core/utils/memory/stl/AWSVector.h>
10 #include <aws/core/utils/memory/stl/AWSString.h>
11 #include <utility>
12 
13 namespace Aws
14 {
15 namespace Utils
16 {
17 namespace Json
18 {
19   class JsonValue;
20   class JsonView;
21 } // namespace Json
22 } // namespace Utils
23 namespace Pinpoint
24 {
25 namespace Model
26 {
27 
28   /**
29    * <p>Specifies the dimension type and values for a segment
30    * dimension.</p><p><h3>See Also:</h3>   <a
31    * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/SetDimension">AWS
32    * API Reference</a></p>
33    */
34   class AWS_PINPOINT_API SetDimension
35   {
36   public:
37     SetDimension();
38     SetDimension(Aws::Utils::Json::JsonView jsonValue);
39     SetDimension& operator=(Aws::Utils::Json::JsonView jsonValue);
40     Aws::Utils::Json::JsonValue Jsonize() const;
41 
42 
43     /**
44      * <p>The type of segment dimension to use. Valid values are: INCLUSIVE, endpoints
45      * that match the criteria are included in the segment; and, EXCLUSIVE, endpoints
46      * that match the criteria are excluded from the segment.</p>
47      */
GetDimensionType()48     inline const DimensionType& GetDimensionType() const{ return m_dimensionType; }
49 
50     /**
51      * <p>The type of segment dimension to use. Valid values are: INCLUSIVE, endpoints
52      * that match the criteria are included in the segment; and, EXCLUSIVE, endpoints
53      * that match the criteria are excluded from the segment.</p>
54      */
DimensionTypeHasBeenSet()55     inline bool DimensionTypeHasBeenSet() const { return m_dimensionTypeHasBeenSet; }
56 
57     /**
58      * <p>The type of segment dimension to use. Valid values are: INCLUSIVE, endpoints
59      * that match the criteria are included in the segment; and, EXCLUSIVE, endpoints
60      * that match the criteria are excluded from the segment.</p>
61      */
SetDimensionType(const DimensionType & value)62     inline void SetDimensionType(const DimensionType& value) { m_dimensionTypeHasBeenSet = true; m_dimensionType = value; }
63 
64     /**
65      * <p>The type of segment dimension to use. Valid values are: INCLUSIVE, endpoints
66      * that match the criteria are included in the segment; and, EXCLUSIVE, endpoints
67      * that match the criteria are excluded from the segment.</p>
68      */
SetDimensionType(DimensionType && value)69     inline void SetDimensionType(DimensionType&& value) { m_dimensionTypeHasBeenSet = true; m_dimensionType = std::move(value); }
70 
71     /**
72      * <p>The type of segment dimension to use. Valid values are: INCLUSIVE, endpoints
73      * that match the criteria are included in the segment; and, EXCLUSIVE, endpoints
74      * that match the criteria are excluded from the segment.</p>
75      */
WithDimensionType(const DimensionType & value)76     inline SetDimension& WithDimensionType(const DimensionType& value) { SetDimensionType(value); return *this;}
77 
78     /**
79      * <p>The type of segment dimension to use. Valid values are: INCLUSIVE, endpoints
80      * that match the criteria are included in the segment; and, EXCLUSIVE, endpoints
81      * that match the criteria are excluded from the segment.</p>
82      */
WithDimensionType(DimensionType && value)83     inline SetDimension& WithDimensionType(DimensionType&& value) { SetDimensionType(std::move(value)); return *this;}
84 
85 
86     /**
87      * <p>The criteria values to use for the segment dimension. Depending on the value
88      * of the DimensionType property, endpoints are included or excluded from the
89      * segment if their values match the criteria values.</p>
90      */
GetValues()91     inline const Aws::Vector<Aws::String>& GetValues() const{ return m_values; }
92 
93     /**
94      * <p>The criteria values to use for the segment dimension. Depending on the value
95      * of the DimensionType property, endpoints are included or excluded from the
96      * segment if their values match the criteria values.</p>
97      */
ValuesHasBeenSet()98     inline bool ValuesHasBeenSet() const { return m_valuesHasBeenSet; }
99 
100     /**
101      * <p>The criteria values to use for the segment dimension. Depending on the value
102      * of the DimensionType property, endpoints are included or excluded from the
103      * segment if their values match the criteria values.</p>
104      */
SetValues(const Aws::Vector<Aws::String> & value)105     inline void SetValues(const Aws::Vector<Aws::String>& value) { m_valuesHasBeenSet = true; m_values = value; }
106 
107     /**
108      * <p>The criteria values to use for the segment dimension. Depending on the value
109      * of the DimensionType property, endpoints are included or excluded from the
110      * segment if their values match the criteria values.</p>
111      */
SetValues(Aws::Vector<Aws::String> && value)112     inline void SetValues(Aws::Vector<Aws::String>&& value) { m_valuesHasBeenSet = true; m_values = std::move(value); }
113 
114     /**
115      * <p>The criteria values to use for the segment dimension. Depending on the value
116      * of the DimensionType property, endpoints are included or excluded from the
117      * segment if their values match the criteria values.</p>
118      */
WithValues(const Aws::Vector<Aws::String> & value)119     inline SetDimension& WithValues(const Aws::Vector<Aws::String>& value) { SetValues(value); return *this;}
120 
121     /**
122      * <p>The criteria values to use for the segment dimension. Depending on the value
123      * of the DimensionType property, endpoints are included or excluded from the
124      * segment if their values match the criteria values.</p>
125      */
WithValues(Aws::Vector<Aws::String> && value)126     inline SetDimension& WithValues(Aws::Vector<Aws::String>&& value) { SetValues(std::move(value)); return *this;}
127 
128     /**
129      * <p>The criteria values to use for the segment dimension. Depending on the value
130      * of the DimensionType property, endpoints are included or excluded from the
131      * segment if their values match the criteria values.</p>
132      */
AddValues(const Aws::String & value)133     inline SetDimension& AddValues(const Aws::String& value) { m_valuesHasBeenSet = true; m_values.push_back(value); return *this; }
134 
135     /**
136      * <p>The criteria values to use for the segment dimension. Depending on the value
137      * of the DimensionType property, endpoints are included or excluded from the
138      * segment if their values match the criteria values.</p>
139      */
AddValues(Aws::String && value)140     inline SetDimension& AddValues(Aws::String&& value) { m_valuesHasBeenSet = true; m_values.push_back(std::move(value)); return *this; }
141 
142     /**
143      * <p>The criteria values to use for the segment dimension. Depending on the value
144      * of the DimensionType property, endpoints are included or excluded from the
145      * segment if their values match the criteria values.</p>
146      */
AddValues(const char * value)147     inline SetDimension& AddValues(const char* value) { m_valuesHasBeenSet = true; m_values.push_back(value); return *this; }
148 
149   private:
150 
151     DimensionType m_dimensionType;
152     bool m_dimensionTypeHasBeenSet;
153 
154     Aws::Vector<Aws::String> m_values;
155     bool m_valuesHasBeenSet;
156   };
157 
158 } // namespace Model
159 } // namespace Pinpoint
160 } // namespace Aws
161