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/core/utils/memory/stl/AWSVector.h> 9 #include <aws/pinpoint/model/Include.h> 10 #include <aws/pinpoint/model/SegmentGroup.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 settings that define the relationships between segment groups 30 * for a segment.</p><p><h3>See Also:</h3> <a 31 * href="http://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/SegmentGroupList">AWS 32 * API Reference</a></p> 33 */ 34 class AWS_PINPOINT_API SegmentGroupList 35 { 36 public: 37 SegmentGroupList(); 38 SegmentGroupList(Aws::Utils::Json::JsonView jsonValue); 39 SegmentGroupList& operator=(Aws::Utils::Json::JsonView jsonValue); 40 Aws::Utils::Json::JsonValue Jsonize() const; 41 42 43 /** 44 * <p>An array that defines the set of segment criteria to evaluate when handling 45 * segment groups for the segment.</p> 46 */ GetGroups()47 inline const Aws::Vector<SegmentGroup>& GetGroups() const{ return m_groups; } 48 49 /** 50 * <p>An array that defines the set of segment criteria to evaluate when handling 51 * segment groups for the segment.</p> 52 */ GroupsHasBeenSet()53 inline bool GroupsHasBeenSet() const { return m_groupsHasBeenSet; } 54 55 /** 56 * <p>An array that defines the set of segment criteria to evaluate when handling 57 * segment groups for the segment.</p> 58 */ SetGroups(const Aws::Vector<SegmentGroup> & value)59 inline void SetGroups(const Aws::Vector<SegmentGroup>& value) { m_groupsHasBeenSet = true; m_groups = value; } 60 61 /** 62 * <p>An array that defines the set of segment criteria to evaluate when handling 63 * segment groups for the segment.</p> 64 */ SetGroups(Aws::Vector<SegmentGroup> && value)65 inline void SetGroups(Aws::Vector<SegmentGroup>&& value) { m_groupsHasBeenSet = true; m_groups = std::move(value); } 66 67 /** 68 * <p>An array that defines the set of segment criteria to evaluate when handling 69 * segment groups for the segment.</p> 70 */ WithGroups(const Aws::Vector<SegmentGroup> & value)71 inline SegmentGroupList& WithGroups(const Aws::Vector<SegmentGroup>& value) { SetGroups(value); return *this;} 72 73 /** 74 * <p>An array that defines the set of segment criteria to evaluate when handling 75 * segment groups for the segment.</p> 76 */ WithGroups(Aws::Vector<SegmentGroup> && value)77 inline SegmentGroupList& WithGroups(Aws::Vector<SegmentGroup>&& value) { SetGroups(std::move(value)); return *this;} 78 79 /** 80 * <p>An array that defines the set of segment criteria to evaluate when handling 81 * segment groups for the segment.</p> 82 */ AddGroups(const SegmentGroup & value)83 inline SegmentGroupList& AddGroups(const SegmentGroup& value) { m_groupsHasBeenSet = true; m_groups.push_back(value); return *this; } 84 85 /** 86 * <p>An array that defines the set of segment criteria to evaluate when handling 87 * segment groups for the segment.</p> 88 */ AddGroups(SegmentGroup && value)89 inline SegmentGroupList& AddGroups(SegmentGroup&& value) { m_groupsHasBeenSet = true; m_groups.push_back(std::move(value)); return *this; } 90 91 92 /** 93 * <p>Specifies how to handle multiple segment groups for the segment. For example, 94 * if the segment includes three segment groups, whether the resulting segment 95 * includes endpoints that match all, any, or none of the segment groups.</p> 96 */ GetInclude()97 inline const Include& GetInclude() const{ return m_include; } 98 99 /** 100 * <p>Specifies how to handle multiple segment groups for the segment. For example, 101 * if the segment includes three segment groups, whether the resulting segment 102 * includes endpoints that match all, any, or none of the segment groups.</p> 103 */ IncludeHasBeenSet()104 inline bool IncludeHasBeenSet() const { return m_includeHasBeenSet; } 105 106 /** 107 * <p>Specifies how to handle multiple segment groups for the segment. For example, 108 * if the segment includes three segment groups, whether the resulting segment 109 * includes endpoints that match all, any, or none of the segment groups.</p> 110 */ SetInclude(const Include & value)111 inline void SetInclude(const Include& value) { m_includeHasBeenSet = true; m_include = value; } 112 113 /** 114 * <p>Specifies how to handle multiple segment groups for the segment. For example, 115 * if the segment includes three segment groups, whether the resulting segment 116 * includes endpoints that match all, any, or none of the segment groups.</p> 117 */ SetInclude(Include && value)118 inline void SetInclude(Include&& value) { m_includeHasBeenSet = true; m_include = std::move(value); } 119 120 /** 121 * <p>Specifies how to handle multiple segment groups for the segment. For example, 122 * if the segment includes three segment groups, whether the resulting segment 123 * includes endpoints that match all, any, or none of the segment groups.</p> 124 */ WithInclude(const Include & value)125 inline SegmentGroupList& WithInclude(const Include& value) { SetInclude(value); return *this;} 126 127 /** 128 * <p>Specifies how to handle multiple segment groups for the segment. For example, 129 * if the segment includes three segment groups, whether the resulting segment 130 * includes endpoints that match all, any, or none of the segment groups.</p> 131 */ WithInclude(Include && value)132 inline SegmentGroupList& WithInclude(Include&& value) { SetInclude(std::move(value)); return *this;} 133 134 private: 135 136 Aws::Vector<SegmentGroup> m_groups; 137 bool m_groupsHasBeenSet; 138 139 Include m_include; 140 bool m_includeHasBeenSet; 141 }; 142 143 } // namespace Model 144 } // namespace Pinpoint 145 } // namespace Aws 146