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/core/utils/memory/stl/AWSString.h>
9 #include <aws/gamelift/model/FleetStatus.h>
10 #include <utility>
11 
12 namespace Aws
13 {
14 namespace Utils
15 {
16 namespace Json
17 {
18   class JsonValue;
19   class JsonView;
20 } // namespace Json
21 } // namespace Utils
22 namespace GameLift
23 {
24 namespace Model
25 {
26 
27   /**
28    * <p>A fleet location and its life-cycle state. A location state object might be
29    * used to describe a fleet's remote location or home Region. Life-cycle state
30    * tracks the progress of launching the first instance in a new location and
31    * preparing it for game hosting, and then removing all instances and deleting the
32    * location from the fleet.</p> <p> <b>Related actions</b> </p> <p>
33    * <a>CreateFleet</a> | <a>CreateFleetLocations</a> | <a>DeleteFleetLocations</a>
34    * </p><p><h3>See Also:</h3>   <a
35    * href="http://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/LocationState">AWS
36    * API Reference</a></p>
37    */
38   class AWS_GAMELIFT_API LocationState
39   {
40   public:
41     LocationState();
42     LocationState(Aws::Utils::Json::JsonView jsonValue);
43     LocationState& operator=(Aws::Utils::Json::JsonView jsonValue);
44     Aws::Utils::Json::JsonValue Jsonize() const;
45 
46 
47     /**
48      * <p>The fleet location, expressed as an AWS Region code such as
49      * <code>us-west-2</code>. </p>
50      */
GetLocation()51     inline const Aws::String& GetLocation() const{ return m_location; }
52 
53     /**
54      * <p>The fleet location, expressed as an AWS Region code such as
55      * <code>us-west-2</code>. </p>
56      */
LocationHasBeenSet()57     inline bool LocationHasBeenSet() const { return m_locationHasBeenSet; }
58 
59     /**
60      * <p>The fleet location, expressed as an AWS Region code such as
61      * <code>us-west-2</code>. </p>
62      */
SetLocation(const Aws::String & value)63     inline void SetLocation(const Aws::String& value) { m_locationHasBeenSet = true; m_location = value; }
64 
65     /**
66      * <p>The fleet location, expressed as an AWS Region code such as
67      * <code>us-west-2</code>. </p>
68      */
SetLocation(Aws::String && value)69     inline void SetLocation(Aws::String&& value) { m_locationHasBeenSet = true; m_location = std::move(value); }
70 
71     /**
72      * <p>The fleet location, expressed as an AWS Region code such as
73      * <code>us-west-2</code>. </p>
74      */
SetLocation(const char * value)75     inline void SetLocation(const char* value) { m_locationHasBeenSet = true; m_location.assign(value); }
76 
77     /**
78      * <p>The fleet location, expressed as an AWS Region code such as
79      * <code>us-west-2</code>. </p>
80      */
WithLocation(const Aws::String & value)81     inline LocationState& WithLocation(const Aws::String& value) { SetLocation(value); return *this;}
82 
83     /**
84      * <p>The fleet location, expressed as an AWS Region code such as
85      * <code>us-west-2</code>. </p>
86      */
WithLocation(Aws::String && value)87     inline LocationState& WithLocation(Aws::String&& value) { SetLocation(std::move(value)); return *this;}
88 
89     /**
90      * <p>The fleet location, expressed as an AWS Region code such as
91      * <code>us-west-2</code>. </p>
92      */
WithLocation(const char * value)93     inline LocationState& WithLocation(const char* value) { SetLocation(value); return *this;}
94 
95 
96     /**
97      * <p>The life-cycle status of a fleet location. </p>
98      */
GetStatus()99     inline const FleetStatus& GetStatus() const{ return m_status; }
100 
101     /**
102      * <p>The life-cycle status of a fleet location. </p>
103      */
StatusHasBeenSet()104     inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; }
105 
106     /**
107      * <p>The life-cycle status of a fleet location. </p>
108      */
SetStatus(const FleetStatus & value)109     inline void SetStatus(const FleetStatus& value) { m_statusHasBeenSet = true; m_status = value; }
110 
111     /**
112      * <p>The life-cycle status of a fleet location. </p>
113      */
SetStatus(FleetStatus && value)114     inline void SetStatus(FleetStatus&& value) { m_statusHasBeenSet = true; m_status = std::move(value); }
115 
116     /**
117      * <p>The life-cycle status of a fleet location. </p>
118      */
WithStatus(const FleetStatus & value)119     inline LocationState& WithStatus(const FleetStatus& value) { SetStatus(value); return *this;}
120 
121     /**
122      * <p>The life-cycle status of a fleet location. </p>
123      */
WithStatus(FleetStatus && value)124     inline LocationState& WithStatus(FleetStatus&& value) { SetStatus(std::move(value)); return *this;}
125 
126   private:
127 
128     Aws::String m_location;
129     bool m_locationHasBeenSet;
130 
131     FleetStatus m_status;
132     bool m_statusHasBeenSet;
133   };
134 
135 } // namespace Model
136 } // namespace GameLift
137 } // namespace Aws
138