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/SetDimension.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 demographic-based dimension settings for including or excluding 28 * endpoints from a segment. These settings derive from characteristics of endpoint 29 * devices, such as platform, make, and model.</p><p><h3>See Also:</h3> <a 30 * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/SegmentDemographics">AWS 31 * API Reference</a></p> 32 */ 33 class AWS_PINPOINT_API SegmentDemographics 34 { 35 public: 36 SegmentDemographics(); 37 SegmentDemographics(Aws::Utils::Json::JsonView jsonValue); 38 SegmentDemographics& operator=(Aws::Utils::Json::JsonView jsonValue); 39 Aws::Utils::Json::JsonValue Jsonize() const; 40 41 42 /** 43 * <p>The app version criteria for the segment.</p> 44 */ GetAppVersion()45 inline const SetDimension& GetAppVersion() const{ return m_appVersion; } 46 47 /** 48 * <p>The app version criteria for the segment.</p> 49 */ AppVersionHasBeenSet()50 inline bool AppVersionHasBeenSet() const { return m_appVersionHasBeenSet; } 51 52 /** 53 * <p>The app version criteria for the segment.</p> 54 */ SetAppVersion(const SetDimension & value)55 inline void SetAppVersion(const SetDimension& value) { m_appVersionHasBeenSet = true; m_appVersion = value; } 56 57 /** 58 * <p>The app version criteria for the segment.</p> 59 */ SetAppVersion(SetDimension && value)60 inline void SetAppVersion(SetDimension&& value) { m_appVersionHasBeenSet = true; m_appVersion = std::move(value); } 61 62 /** 63 * <p>The app version criteria for the segment.</p> 64 */ WithAppVersion(const SetDimension & value)65 inline SegmentDemographics& WithAppVersion(const SetDimension& value) { SetAppVersion(value); return *this;} 66 67 /** 68 * <p>The app version criteria for the segment.</p> 69 */ WithAppVersion(SetDimension && value)70 inline SegmentDemographics& WithAppVersion(SetDimension&& value) { SetAppVersion(std::move(value)); return *this;} 71 72 73 /** 74 * <p>The channel criteria for the segment.</p> 75 */ GetChannel()76 inline const SetDimension& GetChannel() const{ return m_channel; } 77 78 /** 79 * <p>The channel criteria for the segment.</p> 80 */ ChannelHasBeenSet()81 inline bool ChannelHasBeenSet() const { return m_channelHasBeenSet; } 82 83 /** 84 * <p>The channel criteria for the segment.</p> 85 */ SetChannel(const SetDimension & value)86 inline void SetChannel(const SetDimension& value) { m_channelHasBeenSet = true; m_channel = value; } 87 88 /** 89 * <p>The channel criteria for the segment.</p> 90 */ SetChannel(SetDimension && value)91 inline void SetChannel(SetDimension&& value) { m_channelHasBeenSet = true; m_channel = std::move(value); } 92 93 /** 94 * <p>The channel criteria for the segment.</p> 95 */ WithChannel(const SetDimension & value)96 inline SegmentDemographics& WithChannel(const SetDimension& value) { SetChannel(value); return *this;} 97 98 /** 99 * <p>The channel criteria for the segment.</p> 100 */ WithChannel(SetDimension && value)101 inline SegmentDemographics& WithChannel(SetDimension&& value) { SetChannel(std::move(value)); return *this;} 102 103 104 /** 105 * <p>The device type criteria for the segment.</p> 106 */ GetDeviceType()107 inline const SetDimension& GetDeviceType() const{ return m_deviceType; } 108 109 /** 110 * <p>The device type criteria for the segment.</p> 111 */ DeviceTypeHasBeenSet()112 inline bool DeviceTypeHasBeenSet() const { return m_deviceTypeHasBeenSet; } 113 114 /** 115 * <p>The device type criteria for the segment.</p> 116 */ SetDeviceType(const SetDimension & value)117 inline void SetDeviceType(const SetDimension& value) { m_deviceTypeHasBeenSet = true; m_deviceType = value; } 118 119 /** 120 * <p>The device type criteria for the segment.</p> 121 */ SetDeviceType(SetDimension && value)122 inline void SetDeviceType(SetDimension&& value) { m_deviceTypeHasBeenSet = true; m_deviceType = std::move(value); } 123 124 /** 125 * <p>The device type criteria for the segment.</p> 126 */ WithDeviceType(const SetDimension & value)127 inline SegmentDemographics& WithDeviceType(const SetDimension& value) { SetDeviceType(value); return *this;} 128 129 /** 130 * <p>The device type criteria for the segment.</p> 131 */ WithDeviceType(SetDimension && value)132 inline SegmentDemographics& WithDeviceType(SetDimension&& value) { SetDeviceType(std::move(value)); return *this;} 133 134 135 /** 136 * <p>The device make criteria for the segment.</p> 137 */ GetMake()138 inline const SetDimension& GetMake() const{ return m_make; } 139 140 /** 141 * <p>The device make criteria for the segment.</p> 142 */ MakeHasBeenSet()143 inline bool MakeHasBeenSet() const { return m_makeHasBeenSet; } 144 145 /** 146 * <p>The device make criteria for the segment.</p> 147 */ SetMake(const SetDimension & value)148 inline void SetMake(const SetDimension& value) { m_makeHasBeenSet = true; m_make = value; } 149 150 /** 151 * <p>The device make criteria for the segment.</p> 152 */ SetMake(SetDimension && value)153 inline void SetMake(SetDimension&& value) { m_makeHasBeenSet = true; m_make = std::move(value); } 154 155 /** 156 * <p>The device make criteria for the segment.</p> 157 */ WithMake(const SetDimension & value)158 inline SegmentDemographics& WithMake(const SetDimension& value) { SetMake(value); return *this;} 159 160 /** 161 * <p>The device make criteria for the segment.</p> 162 */ WithMake(SetDimension && value)163 inline SegmentDemographics& WithMake(SetDimension&& value) { SetMake(std::move(value)); return *this;} 164 165 166 /** 167 * <p>The device model criteria for the segment.</p> 168 */ GetModel()169 inline const SetDimension& GetModel() const{ return m_model; } 170 171 /** 172 * <p>The device model criteria for the segment.</p> 173 */ ModelHasBeenSet()174 inline bool ModelHasBeenSet() const { return m_modelHasBeenSet; } 175 176 /** 177 * <p>The device model criteria for the segment.</p> 178 */ SetModel(const SetDimension & value)179 inline void SetModel(const SetDimension& value) { m_modelHasBeenSet = true; m_model = value; } 180 181 /** 182 * <p>The device model criteria for the segment.</p> 183 */ SetModel(SetDimension && value)184 inline void SetModel(SetDimension&& value) { m_modelHasBeenSet = true; m_model = std::move(value); } 185 186 /** 187 * <p>The device model criteria for the segment.</p> 188 */ WithModel(const SetDimension & value)189 inline SegmentDemographics& WithModel(const SetDimension& value) { SetModel(value); return *this;} 190 191 /** 192 * <p>The device model criteria for the segment.</p> 193 */ WithModel(SetDimension && value)194 inline SegmentDemographics& WithModel(SetDimension&& value) { SetModel(std::move(value)); return *this;} 195 196 197 /** 198 * <p>The device platform criteria for the segment.</p> 199 */ GetPlatform()200 inline const SetDimension& GetPlatform() const{ return m_platform; } 201 202 /** 203 * <p>The device platform criteria for the segment.</p> 204 */ PlatformHasBeenSet()205 inline bool PlatformHasBeenSet() const { return m_platformHasBeenSet; } 206 207 /** 208 * <p>The device platform criteria for the segment.</p> 209 */ SetPlatform(const SetDimension & value)210 inline void SetPlatform(const SetDimension& value) { m_platformHasBeenSet = true; m_platform = value; } 211 212 /** 213 * <p>The device platform criteria for the segment.</p> 214 */ SetPlatform(SetDimension && value)215 inline void SetPlatform(SetDimension&& value) { m_platformHasBeenSet = true; m_platform = std::move(value); } 216 217 /** 218 * <p>The device platform criteria for the segment.</p> 219 */ WithPlatform(const SetDimension & value)220 inline SegmentDemographics& WithPlatform(const SetDimension& value) { SetPlatform(value); return *this;} 221 222 /** 223 * <p>The device platform criteria for the segment.</p> 224 */ WithPlatform(SetDimension && value)225 inline SegmentDemographics& WithPlatform(SetDimension&& value) { SetPlatform(std::move(value)); return *this;} 226 227 private: 228 229 SetDimension m_appVersion; 230 bool m_appVersionHasBeenSet; 231 232 SetDimension m_channel; 233 bool m_channelHasBeenSet; 234 235 SetDimension m_deviceType; 236 bool m_deviceTypeHasBeenSet; 237 238 SetDimension m_make; 239 bool m_makeHasBeenSet; 240 241 SetDimension m_model; 242 bool m_modelHasBeenSet; 243 244 SetDimension m_platform; 245 bool m_platformHasBeenSet; 246 }; 247 248 } // namespace Model 249 } // namespace Pinpoint 250 } // namespace Aws 251