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/gamelift/GameLift_EXPORTS.h> 8 #include <aws/gamelift/GameLiftRequest.h> 9 #include <aws/core/utils/memory/stl/AWSString.h> 10 #include <aws/gamelift/model/ProtectionPolicy.h> 11 #include <aws/gamelift/model/ResourceCreationLimitPolicy.h> 12 #include <aws/core/utils/memory/stl/AWSVector.h> 13 #include <utility> 14 15 namespace Aws 16 { 17 namespace GameLift 18 { 19 namespace Model 20 { 21 22 /** 23 * <p>Represents the input for a request operation.</p><p><h3>See Also:</h3> <a 24 * href="http://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateFleetAttributesInput">AWS 25 * API Reference</a></p> 26 */ 27 class AWS_GAMELIFT_API UpdateFleetAttributesRequest : public GameLiftRequest 28 { 29 public: 30 UpdateFleetAttributesRequest(); 31 32 // Service request name is the Operation name which will send this request out, 33 // each operation should has unique request name, so that we can get operation's name from this request. 34 // Note: this is not true for response, multiple operations may have the same response name, 35 // so we can not get operation's name from response. GetServiceRequestName()36 inline virtual const char* GetServiceRequestName() const override { return "UpdateFleetAttributes"; } 37 38 Aws::String SerializePayload() const override; 39 40 Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; 41 42 43 /** 44 * <p>A unique identifier for the fleet to update attribute metadata for. You can 45 * use either the fleet ID or ARN value.</p> 46 */ GetFleetId()47 inline const Aws::String& GetFleetId() const{ return m_fleetId; } 48 49 /** 50 * <p>A unique identifier for the fleet to update attribute metadata for. You can 51 * use either the fleet ID or ARN value.</p> 52 */ FleetIdHasBeenSet()53 inline bool FleetIdHasBeenSet() const { return m_fleetIdHasBeenSet; } 54 55 /** 56 * <p>A unique identifier for the fleet to update attribute metadata for. You can 57 * use either the fleet ID or ARN value.</p> 58 */ SetFleetId(const Aws::String & value)59 inline void SetFleetId(const Aws::String& value) { m_fleetIdHasBeenSet = true; m_fleetId = value; } 60 61 /** 62 * <p>A unique identifier for the fleet to update attribute metadata for. You can 63 * use either the fleet ID or ARN value.</p> 64 */ SetFleetId(Aws::String && value)65 inline void SetFleetId(Aws::String&& value) { m_fleetIdHasBeenSet = true; m_fleetId = std::move(value); } 66 67 /** 68 * <p>A unique identifier for the fleet to update attribute metadata for. You can 69 * use either the fleet ID or ARN value.</p> 70 */ SetFleetId(const char * value)71 inline void SetFleetId(const char* value) { m_fleetIdHasBeenSet = true; m_fleetId.assign(value); } 72 73 /** 74 * <p>A unique identifier for the fleet to update attribute metadata for. You can 75 * use either the fleet ID or ARN value.</p> 76 */ WithFleetId(const Aws::String & value)77 inline UpdateFleetAttributesRequest& WithFleetId(const Aws::String& value) { SetFleetId(value); return *this;} 78 79 /** 80 * <p>A unique identifier for the fleet to update attribute metadata for. You can 81 * use either the fleet ID or ARN value.</p> 82 */ WithFleetId(Aws::String && value)83 inline UpdateFleetAttributesRequest& WithFleetId(Aws::String&& value) { SetFleetId(std::move(value)); return *this;} 84 85 /** 86 * <p>A unique identifier for the fleet to update attribute metadata for. You can 87 * use either the fleet ID or ARN value.</p> 88 */ WithFleetId(const char * value)89 inline UpdateFleetAttributesRequest& WithFleetId(const char* value) { SetFleetId(value); return *this;} 90 91 92 /** 93 * <p>A descriptive label that is associated with a fleet. Fleet names do not need 94 * to be unique.</p> 95 */ GetName()96 inline const Aws::String& GetName() const{ return m_name; } 97 98 /** 99 * <p>A descriptive label that is associated with a fleet. Fleet names do not need 100 * to be unique.</p> 101 */ NameHasBeenSet()102 inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } 103 104 /** 105 * <p>A descriptive label that is associated with a fleet. Fleet names do not need 106 * to be unique.</p> 107 */ SetName(const Aws::String & value)108 inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } 109 110 /** 111 * <p>A descriptive label that is associated with a fleet. Fleet names do not need 112 * to be unique.</p> 113 */ SetName(Aws::String && value)114 inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } 115 116 /** 117 * <p>A descriptive label that is associated with a fleet. Fleet names do not need 118 * to be unique.</p> 119 */ SetName(const char * value)120 inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } 121 122 /** 123 * <p>A descriptive label that is associated with a fleet. Fleet names do not need 124 * to be unique.</p> 125 */ WithName(const Aws::String & value)126 inline UpdateFleetAttributesRequest& WithName(const Aws::String& value) { SetName(value); return *this;} 127 128 /** 129 * <p>A descriptive label that is associated with a fleet. Fleet names do not need 130 * to be unique.</p> 131 */ WithName(Aws::String && value)132 inline UpdateFleetAttributesRequest& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} 133 134 /** 135 * <p>A descriptive label that is associated with a fleet. Fleet names do not need 136 * to be unique.</p> 137 */ WithName(const char * value)138 inline UpdateFleetAttributesRequest& WithName(const char* value) { SetName(value); return *this;} 139 140 141 /** 142 * <p>A human-readable description of a fleet.</p> 143 */ GetDescription()144 inline const Aws::String& GetDescription() const{ return m_description; } 145 146 /** 147 * <p>A human-readable description of a fleet.</p> 148 */ DescriptionHasBeenSet()149 inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } 150 151 /** 152 * <p>A human-readable description of a fleet.</p> 153 */ SetDescription(const Aws::String & value)154 inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } 155 156 /** 157 * <p>A human-readable description of a fleet.</p> 158 */ SetDescription(Aws::String && value)159 inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } 160 161 /** 162 * <p>A human-readable description of a fleet.</p> 163 */ SetDescription(const char * value)164 inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } 165 166 /** 167 * <p>A human-readable description of a fleet.</p> 168 */ WithDescription(const Aws::String & value)169 inline UpdateFleetAttributesRequest& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} 170 171 /** 172 * <p>A human-readable description of a fleet.</p> 173 */ WithDescription(Aws::String && value)174 inline UpdateFleetAttributesRequest& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} 175 176 /** 177 * <p>A human-readable description of a fleet.</p> 178 */ WithDescription(const char * value)179 inline UpdateFleetAttributesRequest& WithDescription(const char* value) { SetDescription(value); return *this;} 180 181 182 /** 183 * <p>The game session protection policy to apply to all new instances created in 184 * this fleet. Instances that already exist are not affected. You can set 185 * protection for individual instances using <a>UpdateGameSession</a>.</p> <ul> 186 * <li> <p> <b>NoProtection</b> -- The game session can be terminated during a 187 * scale-down event.</p> </li> <li> <p> <b>FullProtection</b> -- If the game 188 * session is in an <code>ACTIVE</code> status, it cannot be terminated during a 189 * scale-down event.</p> </li> </ul> 190 */ GetNewGameSessionProtectionPolicy()191 inline const ProtectionPolicy& GetNewGameSessionProtectionPolicy() const{ return m_newGameSessionProtectionPolicy; } 192 193 /** 194 * <p>The game session protection policy to apply to all new instances created in 195 * this fleet. Instances that already exist are not affected. You can set 196 * protection for individual instances using <a>UpdateGameSession</a>.</p> <ul> 197 * <li> <p> <b>NoProtection</b> -- The game session can be terminated during a 198 * scale-down event.</p> </li> <li> <p> <b>FullProtection</b> -- If the game 199 * session is in an <code>ACTIVE</code> status, it cannot be terminated during a 200 * scale-down event.</p> </li> </ul> 201 */ NewGameSessionProtectionPolicyHasBeenSet()202 inline bool NewGameSessionProtectionPolicyHasBeenSet() const { return m_newGameSessionProtectionPolicyHasBeenSet; } 203 204 /** 205 * <p>The game session protection policy to apply to all new instances created in 206 * this fleet. Instances that already exist are not affected. You can set 207 * protection for individual instances using <a>UpdateGameSession</a>.</p> <ul> 208 * <li> <p> <b>NoProtection</b> -- The game session can be terminated during a 209 * scale-down event.</p> </li> <li> <p> <b>FullProtection</b> -- If the game 210 * session is in an <code>ACTIVE</code> status, it cannot be terminated during a 211 * scale-down event.</p> </li> </ul> 212 */ SetNewGameSessionProtectionPolicy(const ProtectionPolicy & value)213 inline void SetNewGameSessionProtectionPolicy(const ProtectionPolicy& value) { m_newGameSessionProtectionPolicyHasBeenSet = true; m_newGameSessionProtectionPolicy = value; } 214 215 /** 216 * <p>The game session protection policy to apply to all new instances created in 217 * this fleet. Instances that already exist are not affected. You can set 218 * protection for individual instances using <a>UpdateGameSession</a>.</p> <ul> 219 * <li> <p> <b>NoProtection</b> -- The game session can be terminated during a 220 * scale-down event.</p> </li> <li> <p> <b>FullProtection</b> -- If the game 221 * session is in an <code>ACTIVE</code> status, it cannot be terminated during a 222 * scale-down event.</p> </li> </ul> 223 */ SetNewGameSessionProtectionPolicy(ProtectionPolicy && value)224 inline void SetNewGameSessionProtectionPolicy(ProtectionPolicy&& value) { m_newGameSessionProtectionPolicyHasBeenSet = true; m_newGameSessionProtectionPolicy = std::move(value); } 225 226 /** 227 * <p>The game session protection policy to apply to all new instances created in 228 * this fleet. Instances that already exist are not affected. You can set 229 * protection for individual instances using <a>UpdateGameSession</a>.</p> <ul> 230 * <li> <p> <b>NoProtection</b> -- The game session can be terminated during a 231 * scale-down event.</p> </li> <li> <p> <b>FullProtection</b> -- If the game 232 * session is in an <code>ACTIVE</code> status, it cannot be terminated during a 233 * scale-down event.</p> </li> </ul> 234 */ WithNewGameSessionProtectionPolicy(const ProtectionPolicy & value)235 inline UpdateFleetAttributesRequest& WithNewGameSessionProtectionPolicy(const ProtectionPolicy& value) { SetNewGameSessionProtectionPolicy(value); return *this;} 236 237 /** 238 * <p>The game session protection policy to apply to all new instances created in 239 * this fleet. Instances that already exist are not affected. You can set 240 * protection for individual instances using <a>UpdateGameSession</a>.</p> <ul> 241 * <li> <p> <b>NoProtection</b> -- The game session can be terminated during a 242 * scale-down event.</p> </li> <li> <p> <b>FullProtection</b> -- If the game 243 * session is in an <code>ACTIVE</code> status, it cannot be terminated during a 244 * scale-down event.</p> </li> </ul> 245 */ WithNewGameSessionProtectionPolicy(ProtectionPolicy && value)246 inline UpdateFleetAttributesRequest& WithNewGameSessionProtectionPolicy(ProtectionPolicy&& value) { SetNewGameSessionProtectionPolicy(std::move(value)); return *this;} 247 248 249 /** 250 * <p>Policy settings that limit the number of game sessions an individual player 251 * can create over a span of time. </p> 252 */ GetResourceCreationLimitPolicy()253 inline const ResourceCreationLimitPolicy& GetResourceCreationLimitPolicy() const{ return m_resourceCreationLimitPolicy; } 254 255 /** 256 * <p>Policy settings that limit the number of game sessions an individual player 257 * can create over a span of time. </p> 258 */ ResourceCreationLimitPolicyHasBeenSet()259 inline bool ResourceCreationLimitPolicyHasBeenSet() const { return m_resourceCreationLimitPolicyHasBeenSet; } 260 261 /** 262 * <p>Policy settings that limit the number of game sessions an individual player 263 * can create over a span of time. </p> 264 */ SetResourceCreationLimitPolicy(const ResourceCreationLimitPolicy & value)265 inline void SetResourceCreationLimitPolicy(const ResourceCreationLimitPolicy& value) { m_resourceCreationLimitPolicyHasBeenSet = true; m_resourceCreationLimitPolicy = value; } 266 267 /** 268 * <p>Policy settings that limit the number of game sessions an individual player 269 * can create over a span of time. </p> 270 */ SetResourceCreationLimitPolicy(ResourceCreationLimitPolicy && value)271 inline void SetResourceCreationLimitPolicy(ResourceCreationLimitPolicy&& value) { m_resourceCreationLimitPolicyHasBeenSet = true; m_resourceCreationLimitPolicy = std::move(value); } 272 273 /** 274 * <p>Policy settings that limit the number of game sessions an individual player 275 * can create over a span of time. </p> 276 */ WithResourceCreationLimitPolicy(const ResourceCreationLimitPolicy & value)277 inline UpdateFleetAttributesRequest& WithResourceCreationLimitPolicy(const ResourceCreationLimitPolicy& value) { SetResourceCreationLimitPolicy(value); return *this;} 278 279 /** 280 * <p>Policy settings that limit the number of game sessions an individual player 281 * can create over a span of time. </p> 282 */ WithResourceCreationLimitPolicy(ResourceCreationLimitPolicy && value)283 inline UpdateFleetAttributesRequest& WithResourceCreationLimitPolicy(ResourceCreationLimitPolicy&& value) { SetResourceCreationLimitPolicy(std::move(value)); return *this;} 284 285 286 /** 287 * <p>The name of a metric group to add this fleet to. Use a metric group in Amazon 288 * CloudWatch to aggregate the metrics from multiple fleets. Provide an existing 289 * metric group name, or create a new metric group by providing a new name. A fleet 290 * can only be in one metric group at a time.</p> 291 */ GetMetricGroups()292 inline const Aws::Vector<Aws::String>& GetMetricGroups() const{ return m_metricGroups; } 293 294 /** 295 * <p>The name of a metric group to add this fleet to. Use a metric group in Amazon 296 * CloudWatch to aggregate the metrics from multiple fleets. Provide an existing 297 * metric group name, or create a new metric group by providing a new name. A fleet 298 * can only be in one metric group at a time.</p> 299 */ MetricGroupsHasBeenSet()300 inline bool MetricGroupsHasBeenSet() const { return m_metricGroupsHasBeenSet; } 301 302 /** 303 * <p>The name of a metric group to add this fleet to. Use a metric group in Amazon 304 * CloudWatch to aggregate the metrics from multiple fleets. Provide an existing 305 * metric group name, or create a new metric group by providing a new name. A fleet 306 * can only be in one metric group at a time.</p> 307 */ SetMetricGroups(const Aws::Vector<Aws::String> & value)308 inline void SetMetricGroups(const Aws::Vector<Aws::String>& value) { m_metricGroupsHasBeenSet = true; m_metricGroups = value; } 309 310 /** 311 * <p>The name of a metric group to add this fleet to. Use a metric group in Amazon 312 * CloudWatch to aggregate the metrics from multiple fleets. Provide an existing 313 * metric group name, or create a new metric group by providing a new name. A fleet 314 * can only be in one metric group at a time.</p> 315 */ SetMetricGroups(Aws::Vector<Aws::String> && value)316 inline void SetMetricGroups(Aws::Vector<Aws::String>&& value) { m_metricGroupsHasBeenSet = true; m_metricGroups = std::move(value); } 317 318 /** 319 * <p>The name of a metric group to add this fleet to. Use a metric group in Amazon 320 * CloudWatch to aggregate the metrics from multiple fleets. Provide an existing 321 * metric group name, or create a new metric group by providing a new name. A fleet 322 * can only be in one metric group at a time.</p> 323 */ WithMetricGroups(const Aws::Vector<Aws::String> & value)324 inline UpdateFleetAttributesRequest& WithMetricGroups(const Aws::Vector<Aws::String>& value) { SetMetricGroups(value); return *this;} 325 326 /** 327 * <p>The name of a metric group to add this fleet to. Use a metric group in Amazon 328 * CloudWatch to aggregate the metrics from multiple fleets. Provide an existing 329 * metric group name, or create a new metric group by providing a new name. A fleet 330 * can only be in one metric group at a time.</p> 331 */ WithMetricGroups(Aws::Vector<Aws::String> && value)332 inline UpdateFleetAttributesRequest& WithMetricGroups(Aws::Vector<Aws::String>&& value) { SetMetricGroups(std::move(value)); return *this;} 333 334 /** 335 * <p>The name of a metric group to add this fleet to. Use a metric group in Amazon 336 * CloudWatch to aggregate the metrics from multiple fleets. Provide an existing 337 * metric group name, or create a new metric group by providing a new name. A fleet 338 * can only be in one metric group at a time.</p> 339 */ AddMetricGroups(const Aws::String & value)340 inline UpdateFleetAttributesRequest& AddMetricGroups(const Aws::String& value) { m_metricGroupsHasBeenSet = true; m_metricGroups.push_back(value); return *this; } 341 342 /** 343 * <p>The name of a metric group to add this fleet to. Use a metric group in Amazon 344 * CloudWatch to aggregate the metrics from multiple fleets. Provide an existing 345 * metric group name, or create a new metric group by providing a new name. A fleet 346 * can only be in one metric group at a time.</p> 347 */ AddMetricGroups(Aws::String && value)348 inline UpdateFleetAttributesRequest& AddMetricGroups(Aws::String&& value) { m_metricGroupsHasBeenSet = true; m_metricGroups.push_back(std::move(value)); return *this; } 349 350 /** 351 * <p>The name of a metric group to add this fleet to. Use a metric group in Amazon 352 * CloudWatch to aggregate the metrics from multiple fleets. Provide an existing 353 * metric group name, or create a new metric group by providing a new name. A fleet 354 * can only be in one metric group at a time.</p> 355 */ AddMetricGroups(const char * value)356 inline UpdateFleetAttributesRequest& AddMetricGroups(const char* value) { m_metricGroupsHasBeenSet = true; m_metricGroups.push_back(value); return *this; } 357 358 private: 359 360 Aws::String m_fleetId; 361 bool m_fleetIdHasBeenSet; 362 363 Aws::String m_name; 364 bool m_nameHasBeenSet; 365 366 Aws::String m_description; 367 bool m_descriptionHasBeenSet; 368 369 ProtectionPolicy m_newGameSessionProtectionPolicy; 370 bool m_newGameSessionProtectionPolicyHasBeenSet; 371 372 ResourceCreationLimitPolicy m_resourceCreationLimitPolicy; 373 bool m_resourceCreationLimitPolicyHasBeenSet; 374 375 Aws::Vector<Aws::String> m_metricGroups; 376 bool m_metricGroupsHasBeenSet; 377 }; 378 379 } // namespace Model 380 } // namespace GameLift 381 } // namespace Aws 382