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/cloud9/Cloud9_EXPORTS.h>
8 #include <aws/cloud9/model/Permissions.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/core/utils/DateTime.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 Cloud9
24 {
25 namespace Model
26 {
27 
28   /**
29    * <p>Information about an environment member for an Cloud9 development
30    * environment.</p><p><h3>See Also:</h3>   <a
31    * href="http://docs.aws.amazon.com/goto/WebAPI/cloud9-2017-09-23/EnvironmentMember">AWS
32    * API Reference</a></p>
33    */
34   class AWS_CLOUD9_API EnvironmentMember
35   {
36   public:
37     EnvironmentMember();
38     EnvironmentMember(Aws::Utils::Json::JsonView jsonValue);
39     EnvironmentMember& operator=(Aws::Utils::Json::JsonView jsonValue);
40     Aws::Utils::Json::JsonValue Jsonize() const;
41 
42 
43     /**
44      * <p>The type of environment member permissions associated with this environment
45      * member. Available values include:</p> <ul> <li> <p> <code>owner</code>: Owns the
46      * environment.</p> </li> <li> <p> <code>read-only</code>: Has read-only access to
47      * the environment.</p> </li> <li> <p> <code>read-write</code>: Has read-write
48      * access to the environment.</p> </li> </ul>
49      */
GetPermissions()50     inline const Permissions& GetPermissions() const{ return m_permissions; }
51 
52     /**
53      * <p>The type of environment member permissions associated with this environment
54      * member. Available values include:</p> <ul> <li> <p> <code>owner</code>: Owns the
55      * environment.</p> </li> <li> <p> <code>read-only</code>: Has read-only access to
56      * the environment.</p> </li> <li> <p> <code>read-write</code>: Has read-write
57      * access to the environment.</p> </li> </ul>
58      */
PermissionsHasBeenSet()59     inline bool PermissionsHasBeenSet() const { return m_permissionsHasBeenSet; }
60 
61     /**
62      * <p>The type of environment member permissions associated with this environment
63      * member. Available values include:</p> <ul> <li> <p> <code>owner</code>: Owns the
64      * environment.</p> </li> <li> <p> <code>read-only</code>: Has read-only access to
65      * the environment.</p> </li> <li> <p> <code>read-write</code>: Has read-write
66      * access to the environment.</p> </li> </ul>
67      */
SetPermissions(const Permissions & value)68     inline void SetPermissions(const Permissions& value) { m_permissionsHasBeenSet = true; m_permissions = value; }
69 
70     /**
71      * <p>The type of environment member permissions associated with this environment
72      * member. Available values include:</p> <ul> <li> <p> <code>owner</code>: Owns the
73      * environment.</p> </li> <li> <p> <code>read-only</code>: Has read-only access to
74      * the environment.</p> </li> <li> <p> <code>read-write</code>: Has read-write
75      * access to the environment.</p> </li> </ul>
76      */
SetPermissions(Permissions && value)77     inline void SetPermissions(Permissions&& value) { m_permissionsHasBeenSet = true; m_permissions = std::move(value); }
78 
79     /**
80      * <p>The type of environment member permissions associated with this environment
81      * member. Available values include:</p> <ul> <li> <p> <code>owner</code>: Owns the
82      * environment.</p> </li> <li> <p> <code>read-only</code>: Has read-only access to
83      * the environment.</p> </li> <li> <p> <code>read-write</code>: Has read-write
84      * access to the environment.</p> </li> </ul>
85      */
WithPermissions(const Permissions & value)86     inline EnvironmentMember& WithPermissions(const Permissions& value) { SetPermissions(value); return *this;}
87 
88     /**
89      * <p>The type of environment member permissions associated with this environment
90      * member. Available values include:</p> <ul> <li> <p> <code>owner</code>: Owns the
91      * environment.</p> </li> <li> <p> <code>read-only</code>: Has read-only access to
92      * the environment.</p> </li> <li> <p> <code>read-write</code>: Has read-write
93      * access to the environment.</p> </li> </ul>
94      */
WithPermissions(Permissions && value)95     inline EnvironmentMember& WithPermissions(Permissions&& value) { SetPermissions(std::move(value)); return *this;}
96 
97 
98     /**
99      * <p>The user ID in Identity and Access Management (IAM) of the environment
100      * member.</p>
101      */
GetUserId()102     inline const Aws::String& GetUserId() const{ return m_userId; }
103 
104     /**
105      * <p>The user ID in Identity and Access Management (IAM) of the environment
106      * member.</p>
107      */
UserIdHasBeenSet()108     inline bool UserIdHasBeenSet() const { return m_userIdHasBeenSet; }
109 
110     /**
111      * <p>The user ID in Identity and Access Management (IAM) of the environment
112      * member.</p>
113      */
SetUserId(const Aws::String & value)114     inline void SetUserId(const Aws::String& value) { m_userIdHasBeenSet = true; m_userId = value; }
115 
116     /**
117      * <p>The user ID in Identity and Access Management (IAM) of the environment
118      * member.</p>
119      */
SetUserId(Aws::String && value)120     inline void SetUserId(Aws::String&& value) { m_userIdHasBeenSet = true; m_userId = std::move(value); }
121 
122     /**
123      * <p>The user ID in Identity and Access Management (IAM) of the environment
124      * member.</p>
125      */
SetUserId(const char * value)126     inline void SetUserId(const char* value) { m_userIdHasBeenSet = true; m_userId.assign(value); }
127 
128     /**
129      * <p>The user ID in Identity and Access Management (IAM) of the environment
130      * member.</p>
131      */
WithUserId(const Aws::String & value)132     inline EnvironmentMember& WithUserId(const Aws::String& value) { SetUserId(value); return *this;}
133 
134     /**
135      * <p>The user ID in Identity and Access Management (IAM) of the environment
136      * member.</p>
137      */
WithUserId(Aws::String && value)138     inline EnvironmentMember& WithUserId(Aws::String&& value) { SetUserId(std::move(value)); return *this;}
139 
140     /**
141      * <p>The user ID in Identity and Access Management (IAM) of the environment
142      * member.</p>
143      */
WithUserId(const char * value)144     inline EnvironmentMember& WithUserId(const char* value) { SetUserId(value); return *this;}
145 
146 
147     /**
148      * <p>The Amazon Resource Name (ARN) of the environment member.</p>
149      */
GetUserArn()150     inline const Aws::String& GetUserArn() const{ return m_userArn; }
151 
152     /**
153      * <p>The Amazon Resource Name (ARN) of the environment member.</p>
154      */
UserArnHasBeenSet()155     inline bool UserArnHasBeenSet() const { return m_userArnHasBeenSet; }
156 
157     /**
158      * <p>The Amazon Resource Name (ARN) of the environment member.</p>
159      */
SetUserArn(const Aws::String & value)160     inline void SetUserArn(const Aws::String& value) { m_userArnHasBeenSet = true; m_userArn = value; }
161 
162     /**
163      * <p>The Amazon Resource Name (ARN) of the environment member.</p>
164      */
SetUserArn(Aws::String && value)165     inline void SetUserArn(Aws::String&& value) { m_userArnHasBeenSet = true; m_userArn = std::move(value); }
166 
167     /**
168      * <p>The Amazon Resource Name (ARN) of the environment member.</p>
169      */
SetUserArn(const char * value)170     inline void SetUserArn(const char* value) { m_userArnHasBeenSet = true; m_userArn.assign(value); }
171 
172     /**
173      * <p>The Amazon Resource Name (ARN) of the environment member.</p>
174      */
WithUserArn(const Aws::String & value)175     inline EnvironmentMember& WithUserArn(const Aws::String& value) { SetUserArn(value); return *this;}
176 
177     /**
178      * <p>The Amazon Resource Name (ARN) of the environment member.</p>
179      */
WithUserArn(Aws::String && value)180     inline EnvironmentMember& WithUserArn(Aws::String&& value) { SetUserArn(std::move(value)); return *this;}
181 
182     /**
183      * <p>The Amazon Resource Name (ARN) of the environment member.</p>
184      */
WithUserArn(const char * value)185     inline EnvironmentMember& WithUserArn(const char* value) { SetUserArn(value); return *this;}
186 
187 
188     /**
189      * <p>The ID of the environment for the environment member.</p>
190      */
GetEnvironmentId()191     inline const Aws::String& GetEnvironmentId() const{ return m_environmentId; }
192 
193     /**
194      * <p>The ID of the environment for the environment member.</p>
195      */
EnvironmentIdHasBeenSet()196     inline bool EnvironmentIdHasBeenSet() const { return m_environmentIdHasBeenSet; }
197 
198     /**
199      * <p>The ID of the environment for the environment member.</p>
200      */
SetEnvironmentId(const Aws::String & value)201     inline void SetEnvironmentId(const Aws::String& value) { m_environmentIdHasBeenSet = true; m_environmentId = value; }
202 
203     /**
204      * <p>The ID of the environment for the environment member.</p>
205      */
SetEnvironmentId(Aws::String && value)206     inline void SetEnvironmentId(Aws::String&& value) { m_environmentIdHasBeenSet = true; m_environmentId = std::move(value); }
207 
208     /**
209      * <p>The ID of the environment for the environment member.</p>
210      */
SetEnvironmentId(const char * value)211     inline void SetEnvironmentId(const char* value) { m_environmentIdHasBeenSet = true; m_environmentId.assign(value); }
212 
213     /**
214      * <p>The ID of the environment for the environment member.</p>
215      */
WithEnvironmentId(const Aws::String & value)216     inline EnvironmentMember& WithEnvironmentId(const Aws::String& value) { SetEnvironmentId(value); return *this;}
217 
218     /**
219      * <p>The ID of the environment for the environment member.</p>
220      */
WithEnvironmentId(Aws::String && value)221     inline EnvironmentMember& WithEnvironmentId(Aws::String&& value) { SetEnvironmentId(std::move(value)); return *this;}
222 
223     /**
224      * <p>The ID of the environment for the environment member.</p>
225      */
WithEnvironmentId(const char * value)226     inline EnvironmentMember& WithEnvironmentId(const char* value) { SetEnvironmentId(value); return *this;}
227 
228 
229     /**
230      * <p>The time, expressed in epoch time format, when the environment member last
231      * opened the environment.</p>
232      */
GetLastAccess()233     inline const Aws::Utils::DateTime& GetLastAccess() const{ return m_lastAccess; }
234 
235     /**
236      * <p>The time, expressed in epoch time format, when the environment member last
237      * opened the environment.</p>
238      */
LastAccessHasBeenSet()239     inline bool LastAccessHasBeenSet() const { return m_lastAccessHasBeenSet; }
240 
241     /**
242      * <p>The time, expressed in epoch time format, when the environment member last
243      * opened the environment.</p>
244      */
SetLastAccess(const Aws::Utils::DateTime & value)245     inline void SetLastAccess(const Aws::Utils::DateTime& value) { m_lastAccessHasBeenSet = true; m_lastAccess = value; }
246 
247     /**
248      * <p>The time, expressed in epoch time format, when the environment member last
249      * opened the environment.</p>
250      */
SetLastAccess(Aws::Utils::DateTime && value)251     inline void SetLastAccess(Aws::Utils::DateTime&& value) { m_lastAccessHasBeenSet = true; m_lastAccess = std::move(value); }
252 
253     /**
254      * <p>The time, expressed in epoch time format, when the environment member last
255      * opened the environment.</p>
256      */
WithLastAccess(const Aws::Utils::DateTime & value)257     inline EnvironmentMember& WithLastAccess(const Aws::Utils::DateTime& value) { SetLastAccess(value); return *this;}
258 
259     /**
260      * <p>The time, expressed in epoch time format, when the environment member last
261      * opened the environment.</p>
262      */
WithLastAccess(Aws::Utils::DateTime && value)263     inline EnvironmentMember& WithLastAccess(Aws::Utils::DateTime&& value) { SetLastAccess(std::move(value)); return *this;}
264 
265   private:
266 
267     Permissions m_permissions;
268     bool m_permissionsHasBeenSet;
269 
270     Aws::String m_userId;
271     bool m_userIdHasBeenSet;
272 
273     Aws::String m_userArn;
274     bool m_userArnHasBeenSet;
275 
276     Aws::String m_environmentId;
277     bool m_environmentIdHasBeenSet;
278 
279     Aws::Utils::DateTime m_lastAccess;
280     bool m_lastAccessHasBeenSet;
281   };
282 
283 } // namespace Model
284 } // namespace Cloud9
285 } // namespace Aws
286