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/xray/XRay_EXPORTS.h> 8 #include <aws/xray/XRayRequest.h> 9 #include <aws/core/utils/memory/stl/AWSString.h> 10 #include <aws/xray/model/InsightsConfiguration.h> 11 #include <aws/core/utils/memory/stl/AWSVector.h> 12 #include <aws/xray/model/Tag.h> 13 #include <utility> 14 15 namespace Aws 16 { 17 namespace XRay 18 { 19 namespace Model 20 { 21 22 /** 23 */ 24 class AWS_XRAY_API CreateGroupRequest : public XRayRequest 25 { 26 public: 27 CreateGroupRequest(); 28 29 // Service request name is the Operation name which will send this request out, 30 // each operation should has unique request name, so that we can get operation's name from this request. 31 // Note: this is not true for response, multiple operations may have the same response name, 32 // so we can not get operation's name from response. GetServiceRequestName()33 inline virtual const char* GetServiceRequestName() const override { return "CreateGroup"; } 34 35 Aws::String SerializePayload() const override; 36 37 38 /** 39 * <p>The case-sensitive name of the new group. Default is a reserved name and 40 * names must be unique.</p> 41 */ GetGroupName()42 inline const Aws::String& GetGroupName() const{ return m_groupName; } 43 44 /** 45 * <p>The case-sensitive name of the new group. Default is a reserved name and 46 * names must be unique.</p> 47 */ GroupNameHasBeenSet()48 inline bool GroupNameHasBeenSet() const { return m_groupNameHasBeenSet; } 49 50 /** 51 * <p>The case-sensitive name of the new group. Default is a reserved name and 52 * names must be unique.</p> 53 */ SetGroupName(const Aws::String & value)54 inline void SetGroupName(const Aws::String& value) { m_groupNameHasBeenSet = true; m_groupName = value; } 55 56 /** 57 * <p>The case-sensitive name of the new group. Default is a reserved name and 58 * names must be unique.</p> 59 */ SetGroupName(Aws::String && value)60 inline void SetGroupName(Aws::String&& value) { m_groupNameHasBeenSet = true; m_groupName = std::move(value); } 61 62 /** 63 * <p>The case-sensitive name of the new group. Default is a reserved name and 64 * names must be unique.</p> 65 */ SetGroupName(const char * value)66 inline void SetGroupName(const char* value) { m_groupNameHasBeenSet = true; m_groupName.assign(value); } 67 68 /** 69 * <p>The case-sensitive name of the new group. Default is a reserved name and 70 * names must be unique.</p> 71 */ WithGroupName(const Aws::String & value)72 inline CreateGroupRequest& WithGroupName(const Aws::String& value) { SetGroupName(value); return *this;} 73 74 /** 75 * <p>The case-sensitive name of the new group. Default is a reserved name and 76 * names must be unique.</p> 77 */ WithGroupName(Aws::String && value)78 inline CreateGroupRequest& WithGroupName(Aws::String&& value) { SetGroupName(std::move(value)); return *this;} 79 80 /** 81 * <p>The case-sensitive name of the new group. Default is a reserved name and 82 * names must be unique.</p> 83 */ WithGroupName(const char * value)84 inline CreateGroupRequest& WithGroupName(const char* value) { SetGroupName(value); return *this;} 85 86 87 /** 88 * <p>The filter expression defining criteria by which to group traces.</p> 89 */ GetFilterExpression()90 inline const Aws::String& GetFilterExpression() const{ return m_filterExpression; } 91 92 /** 93 * <p>The filter expression defining criteria by which to group traces.</p> 94 */ FilterExpressionHasBeenSet()95 inline bool FilterExpressionHasBeenSet() const { return m_filterExpressionHasBeenSet; } 96 97 /** 98 * <p>The filter expression defining criteria by which to group traces.</p> 99 */ SetFilterExpression(const Aws::String & value)100 inline void SetFilterExpression(const Aws::String& value) { m_filterExpressionHasBeenSet = true; m_filterExpression = value; } 101 102 /** 103 * <p>The filter expression defining criteria by which to group traces.</p> 104 */ SetFilterExpression(Aws::String && value)105 inline void SetFilterExpression(Aws::String&& value) { m_filterExpressionHasBeenSet = true; m_filterExpression = std::move(value); } 106 107 /** 108 * <p>The filter expression defining criteria by which to group traces.</p> 109 */ SetFilterExpression(const char * value)110 inline void SetFilterExpression(const char* value) { m_filterExpressionHasBeenSet = true; m_filterExpression.assign(value); } 111 112 /** 113 * <p>The filter expression defining criteria by which to group traces.</p> 114 */ WithFilterExpression(const Aws::String & value)115 inline CreateGroupRequest& WithFilterExpression(const Aws::String& value) { SetFilterExpression(value); return *this;} 116 117 /** 118 * <p>The filter expression defining criteria by which to group traces.</p> 119 */ WithFilterExpression(Aws::String && value)120 inline CreateGroupRequest& WithFilterExpression(Aws::String&& value) { SetFilterExpression(std::move(value)); return *this;} 121 122 /** 123 * <p>The filter expression defining criteria by which to group traces.</p> 124 */ WithFilterExpression(const char * value)125 inline CreateGroupRequest& WithFilterExpression(const char* value) { SetFilterExpression(value); return *this;} 126 127 128 /** 129 * <p>The structure containing configurations related to insights.</p> <ul> <li> 130 * <p>The InsightsEnabled boolean can be set to true to enable insights for the new 131 * group or false to disable insights for the new group.</p> </li> <li> <p>The 132 * NotifcationsEnabled boolean can be set to true to enable insights notifications 133 * for the new group. Notifications may only be enabled on a group with 134 * InsightsEnabled set to true.</p> </li> </ul> 135 */ GetInsightsConfiguration()136 inline const InsightsConfiguration& GetInsightsConfiguration() const{ return m_insightsConfiguration; } 137 138 /** 139 * <p>The structure containing configurations related to insights.</p> <ul> <li> 140 * <p>The InsightsEnabled boolean can be set to true to enable insights for the new 141 * group or false to disable insights for the new group.</p> </li> <li> <p>The 142 * NotifcationsEnabled boolean can be set to true to enable insights notifications 143 * for the new group. Notifications may only be enabled on a group with 144 * InsightsEnabled set to true.</p> </li> </ul> 145 */ InsightsConfigurationHasBeenSet()146 inline bool InsightsConfigurationHasBeenSet() const { return m_insightsConfigurationHasBeenSet; } 147 148 /** 149 * <p>The structure containing configurations related to insights.</p> <ul> <li> 150 * <p>The InsightsEnabled boolean can be set to true to enable insights for the new 151 * group or false to disable insights for the new group.</p> </li> <li> <p>The 152 * NotifcationsEnabled boolean can be set to true to enable insights notifications 153 * for the new group. Notifications may only be enabled on a group with 154 * InsightsEnabled set to true.</p> </li> </ul> 155 */ SetInsightsConfiguration(const InsightsConfiguration & value)156 inline void SetInsightsConfiguration(const InsightsConfiguration& value) { m_insightsConfigurationHasBeenSet = true; m_insightsConfiguration = value; } 157 158 /** 159 * <p>The structure containing configurations related to insights.</p> <ul> <li> 160 * <p>The InsightsEnabled boolean can be set to true to enable insights for the new 161 * group or false to disable insights for the new group.</p> </li> <li> <p>The 162 * NotifcationsEnabled boolean can be set to true to enable insights notifications 163 * for the new group. Notifications may only be enabled on a group with 164 * InsightsEnabled set to true.</p> </li> </ul> 165 */ SetInsightsConfiguration(InsightsConfiguration && value)166 inline void SetInsightsConfiguration(InsightsConfiguration&& value) { m_insightsConfigurationHasBeenSet = true; m_insightsConfiguration = std::move(value); } 167 168 /** 169 * <p>The structure containing configurations related to insights.</p> <ul> <li> 170 * <p>The InsightsEnabled boolean can be set to true to enable insights for the new 171 * group or false to disable insights for the new group.</p> </li> <li> <p>The 172 * NotifcationsEnabled boolean can be set to true to enable insights notifications 173 * for the new group. Notifications may only be enabled on a group with 174 * InsightsEnabled set to true.</p> </li> </ul> 175 */ WithInsightsConfiguration(const InsightsConfiguration & value)176 inline CreateGroupRequest& WithInsightsConfiguration(const InsightsConfiguration& value) { SetInsightsConfiguration(value); return *this;} 177 178 /** 179 * <p>The structure containing configurations related to insights.</p> <ul> <li> 180 * <p>The InsightsEnabled boolean can be set to true to enable insights for the new 181 * group or false to disable insights for the new group.</p> </li> <li> <p>The 182 * NotifcationsEnabled boolean can be set to true to enable insights notifications 183 * for the new group. Notifications may only be enabled on a group with 184 * InsightsEnabled set to true.</p> </li> </ul> 185 */ WithInsightsConfiguration(InsightsConfiguration && value)186 inline CreateGroupRequest& WithInsightsConfiguration(InsightsConfiguration&& value) { SetInsightsConfiguration(std::move(value)); return *this;} 187 188 189 /** 190 * <p>A map that contains one or more tag keys and tag values to attach to an X-Ray 191 * group. For more information about ways to use tags, see <a 192 * href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging 193 * Amazon Web Services resources</a> in the <i>Amazon Web Services General 194 * Reference</i>.</p> <p>The following restrictions apply to tags:</p> <ul> <li> 195 * <p>Maximum number of user-applied tags per resource: 50</p> </li> <li> 196 * <p>Maximum tag key length: 128 Unicode characters</p> </li> <li> <p>Maximum tag 197 * value length: 256 Unicode characters</p> </li> <li> <p>Valid values for key and 198 * value: a-z, A-Z, 0-9, space, and the following characters: _ . : / = + - and 199 * @</p> </li> <li> <p>Tag keys and values are case sensitive.</p> </li> <li> 200 * <p>Don't use <code>aws:</code> as a prefix for keys; it's reserved for Amazon 201 * Web Services use.</p> </li> </ul> 202 */ GetTags()203 inline const Aws::Vector<Tag>& GetTags() const{ return m_tags; } 204 205 /** 206 * <p>A map that contains one or more tag keys and tag values to attach to an X-Ray 207 * group. For more information about ways to use tags, see <a 208 * href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging 209 * Amazon Web Services resources</a> in the <i>Amazon Web Services General 210 * Reference</i>.</p> <p>The following restrictions apply to tags:</p> <ul> <li> 211 * <p>Maximum number of user-applied tags per resource: 50</p> </li> <li> 212 * <p>Maximum tag key length: 128 Unicode characters</p> </li> <li> <p>Maximum tag 213 * value length: 256 Unicode characters</p> </li> <li> <p>Valid values for key and 214 * value: a-z, A-Z, 0-9, space, and the following characters: _ . : / = + - and 215 * @</p> </li> <li> <p>Tag keys and values are case sensitive.</p> </li> <li> 216 * <p>Don't use <code>aws:</code> as a prefix for keys; it's reserved for Amazon 217 * Web Services use.</p> </li> </ul> 218 */ TagsHasBeenSet()219 inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } 220 221 /** 222 * <p>A map that contains one or more tag keys and tag values to attach to an X-Ray 223 * group. For more information about ways to use tags, see <a 224 * href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging 225 * Amazon Web Services resources</a> in the <i>Amazon Web Services General 226 * Reference</i>.</p> <p>The following restrictions apply to tags:</p> <ul> <li> 227 * <p>Maximum number of user-applied tags per resource: 50</p> </li> <li> 228 * <p>Maximum tag key length: 128 Unicode characters</p> </li> <li> <p>Maximum tag 229 * value length: 256 Unicode characters</p> </li> <li> <p>Valid values for key and 230 * value: a-z, A-Z, 0-9, space, and the following characters: _ . : / = + - and 231 * @</p> </li> <li> <p>Tag keys and values are case sensitive.</p> </li> <li> 232 * <p>Don't use <code>aws:</code> as a prefix for keys; it's reserved for Amazon 233 * Web Services use.</p> </li> </ul> 234 */ SetTags(const Aws::Vector<Tag> & value)235 inline void SetTags(const Aws::Vector<Tag>& value) { m_tagsHasBeenSet = true; m_tags = value; } 236 237 /** 238 * <p>A map that contains one or more tag keys and tag values to attach to an X-Ray 239 * group. For more information about ways to use tags, see <a 240 * href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging 241 * Amazon Web Services resources</a> in the <i>Amazon Web Services General 242 * Reference</i>.</p> <p>The following restrictions apply to tags:</p> <ul> <li> 243 * <p>Maximum number of user-applied tags per resource: 50</p> </li> <li> 244 * <p>Maximum tag key length: 128 Unicode characters</p> </li> <li> <p>Maximum tag 245 * value length: 256 Unicode characters</p> </li> <li> <p>Valid values for key and 246 * value: a-z, A-Z, 0-9, space, and the following characters: _ . : / = + - and 247 * @</p> </li> <li> <p>Tag keys and values are case sensitive.</p> </li> <li> 248 * <p>Don't use <code>aws:</code> as a prefix for keys; it's reserved for Amazon 249 * Web Services use.</p> </li> </ul> 250 */ SetTags(Aws::Vector<Tag> && value)251 inline void SetTags(Aws::Vector<Tag>&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } 252 253 /** 254 * <p>A map that contains one or more tag keys and tag values to attach to an X-Ray 255 * group. For more information about ways to use tags, see <a 256 * href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging 257 * Amazon Web Services resources</a> in the <i>Amazon Web Services General 258 * Reference</i>.</p> <p>The following restrictions apply to tags:</p> <ul> <li> 259 * <p>Maximum number of user-applied tags per resource: 50</p> </li> <li> 260 * <p>Maximum tag key length: 128 Unicode characters</p> </li> <li> <p>Maximum tag 261 * value length: 256 Unicode characters</p> </li> <li> <p>Valid values for key and 262 * value: a-z, A-Z, 0-9, space, and the following characters: _ . : / = + - and 263 * @</p> </li> <li> <p>Tag keys and values are case sensitive.</p> </li> <li> 264 * <p>Don't use <code>aws:</code> as a prefix for keys; it's reserved for Amazon 265 * Web Services use.</p> </li> </ul> 266 */ WithTags(const Aws::Vector<Tag> & value)267 inline CreateGroupRequest& WithTags(const Aws::Vector<Tag>& value) { SetTags(value); return *this;} 268 269 /** 270 * <p>A map that contains one or more tag keys and tag values to attach to an X-Ray 271 * group. For more information about ways to use tags, see <a 272 * href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging 273 * Amazon Web Services resources</a> in the <i>Amazon Web Services General 274 * Reference</i>.</p> <p>The following restrictions apply to tags:</p> <ul> <li> 275 * <p>Maximum number of user-applied tags per resource: 50</p> </li> <li> 276 * <p>Maximum tag key length: 128 Unicode characters</p> </li> <li> <p>Maximum tag 277 * value length: 256 Unicode characters</p> </li> <li> <p>Valid values for key and 278 * value: a-z, A-Z, 0-9, space, and the following characters: _ . : / = + - and 279 * @</p> </li> <li> <p>Tag keys and values are case sensitive.</p> </li> <li> 280 * <p>Don't use <code>aws:</code> as a prefix for keys; it's reserved for Amazon 281 * Web Services use.</p> </li> </ul> 282 */ WithTags(Aws::Vector<Tag> && value)283 inline CreateGroupRequest& WithTags(Aws::Vector<Tag>&& value) { SetTags(std::move(value)); return *this;} 284 285 /** 286 * <p>A map that contains one or more tag keys and tag values to attach to an X-Ray 287 * group. For more information about ways to use tags, see <a 288 * href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging 289 * Amazon Web Services resources</a> in the <i>Amazon Web Services General 290 * Reference</i>.</p> <p>The following restrictions apply to tags:</p> <ul> <li> 291 * <p>Maximum number of user-applied tags per resource: 50</p> </li> <li> 292 * <p>Maximum tag key length: 128 Unicode characters</p> </li> <li> <p>Maximum tag 293 * value length: 256 Unicode characters</p> </li> <li> <p>Valid values for key and 294 * value: a-z, A-Z, 0-9, space, and the following characters: _ . : / = + - and 295 * @</p> </li> <li> <p>Tag keys and values are case sensitive.</p> </li> <li> 296 * <p>Don't use <code>aws:</code> as a prefix for keys; it's reserved for Amazon 297 * Web Services use.</p> </li> </ul> 298 */ AddTags(const Tag & value)299 inline CreateGroupRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } 300 301 /** 302 * <p>A map that contains one or more tag keys and tag values to attach to an X-Ray 303 * group. For more information about ways to use tags, see <a 304 * href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging 305 * Amazon Web Services resources</a> in the <i>Amazon Web Services General 306 * Reference</i>.</p> <p>The following restrictions apply to tags:</p> <ul> <li> 307 * <p>Maximum number of user-applied tags per resource: 50</p> </li> <li> 308 * <p>Maximum tag key length: 128 Unicode characters</p> </li> <li> <p>Maximum tag 309 * value length: 256 Unicode characters</p> </li> <li> <p>Valid values for key and 310 * value: a-z, A-Z, 0-9, space, and the following characters: _ . : / = + - and 311 * @</p> </li> <li> <p>Tag keys and values are case sensitive.</p> </li> <li> 312 * <p>Don't use <code>aws:</code> as a prefix for keys; it's reserved for Amazon 313 * Web Services use.</p> </li> </ul> 314 */ AddTags(Tag && value)315 inline CreateGroupRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } 316 317 private: 318 319 Aws::String m_groupName; 320 bool m_groupNameHasBeenSet; 321 322 Aws::String m_filterExpression; 323 bool m_filterExpressionHasBeenSet; 324 325 InsightsConfiguration m_insightsConfiguration; 326 bool m_insightsConfigurationHasBeenSet; 327 328 Aws::Vector<Tag> m_tags; 329 bool m_tagsHasBeenSet; 330 }; 331 332 } // namespace Model 333 } // namespace XRay 334 } // namespace Aws 335