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/backup/Backup_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/core/utils/memory/stl/AWSVector.h>
10 #include <aws/core/utils/DateTime.h>
11 #include <aws/backup/model/FrameworkControl.h>
12 #include <utility>
13 
14 namespace Aws
15 {
16 template<typename RESULT_TYPE>
17 class AmazonWebServiceResult;
18 
19 namespace Utils
20 {
21 namespace Json
22 {
23   class JsonValue;
24 } // namespace Json
25 } // namespace Utils
26 namespace Backup
27 {
28 namespace Model
29 {
30   class AWS_BACKUP_API DescribeFrameworkResult
31   {
32   public:
33     DescribeFrameworkResult();
34     DescribeFrameworkResult(const Aws::AmazonWebServiceResult<Aws::Utils::Json::JsonValue>& result);
35     DescribeFrameworkResult& operator=(const Aws::AmazonWebServiceResult<Aws::Utils::Json::JsonValue>& result);
36 
37 
38     /**
39      * <p>The unique name of a framework.</p>
40      */
GetFrameworkName()41     inline const Aws::String& GetFrameworkName() const{ return m_frameworkName; }
42 
43     /**
44      * <p>The unique name of a framework.</p>
45      */
SetFrameworkName(const Aws::String & value)46     inline void SetFrameworkName(const Aws::String& value) { m_frameworkName = value; }
47 
48     /**
49      * <p>The unique name of a framework.</p>
50      */
SetFrameworkName(Aws::String && value)51     inline void SetFrameworkName(Aws::String&& value) { m_frameworkName = std::move(value); }
52 
53     /**
54      * <p>The unique name of a framework.</p>
55      */
SetFrameworkName(const char * value)56     inline void SetFrameworkName(const char* value) { m_frameworkName.assign(value); }
57 
58     /**
59      * <p>The unique name of a framework.</p>
60      */
WithFrameworkName(const Aws::String & value)61     inline DescribeFrameworkResult& WithFrameworkName(const Aws::String& value) { SetFrameworkName(value); return *this;}
62 
63     /**
64      * <p>The unique name of a framework.</p>
65      */
WithFrameworkName(Aws::String && value)66     inline DescribeFrameworkResult& WithFrameworkName(Aws::String&& value) { SetFrameworkName(std::move(value)); return *this;}
67 
68     /**
69      * <p>The unique name of a framework.</p>
70      */
WithFrameworkName(const char * value)71     inline DescribeFrameworkResult& WithFrameworkName(const char* value) { SetFrameworkName(value); return *this;}
72 
73 
74     /**
75      * <p>An Amazon Resource Name (ARN) that uniquely identifies a resource. The format
76      * of the ARN depends on the resource type.</p>
77      */
GetFrameworkArn()78     inline const Aws::String& GetFrameworkArn() const{ return m_frameworkArn; }
79 
80     /**
81      * <p>An Amazon Resource Name (ARN) that uniquely identifies a resource. The format
82      * of the ARN depends on the resource type.</p>
83      */
SetFrameworkArn(const Aws::String & value)84     inline void SetFrameworkArn(const Aws::String& value) { m_frameworkArn = value; }
85 
86     /**
87      * <p>An Amazon Resource Name (ARN) that uniquely identifies a resource. The format
88      * of the ARN depends on the resource type.</p>
89      */
SetFrameworkArn(Aws::String && value)90     inline void SetFrameworkArn(Aws::String&& value) { m_frameworkArn = std::move(value); }
91 
92     /**
93      * <p>An Amazon Resource Name (ARN) that uniquely identifies a resource. The format
94      * of the ARN depends on the resource type.</p>
95      */
SetFrameworkArn(const char * value)96     inline void SetFrameworkArn(const char* value) { m_frameworkArn.assign(value); }
97 
98     /**
99      * <p>An Amazon Resource Name (ARN) that uniquely identifies a resource. The format
100      * of the ARN depends on the resource type.</p>
101      */
WithFrameworkArn(const Aws::String & value)102     inline DescribeFrameworkResult& WithFrameworkArn(const Aws::String& value) { SetFrameworkArn(value); return *this;}
103 
104     /**
105      * <p>An Amazon Resource Name (ARN) that uniquely identifies a resource. The format
106      * of the ARN depends on the resource type.</p>
107      */
WithFrameworkArn(Aws::String && value)108     inline DescribeFrameworkResult& WithFrameworkArn(Aws::String&& value) { SetFrameworkArn(std::move(value)); return *this;}
109 
110     /**
111      * <p>An Amazon Resource Name (ARN) that uniquely identifies a resource. The format
112      * of the ARN depends on the resource type.</p>
113      */
WithFrameworkArn(const char * value)114     inline DescribeFrameworkResult& WithFrameworkArn(const char* value) { SetFrameworkArn(value); return *this;}
115 
116 
117     /**
118      * <p>An optional description of the framework.</p>
119      */
GetFrameworkDescription()120     inline const Aws::String& GetFrameworkDescription() const{ return m_frameworkDescription; }
121 
122     /**
123      * <p>An optional description of the framework.</p>
124      */
SetFrameworkDescription(const Aws::String & value)125     inline void SetFrameworkDescription(const Aws::String& value) { m_frameworkDescription = value; }
126 
127     /**
128      * <p>An optional description of the framework.</p>
129      */
SetFrameworkDescription(Aws::String && value)130     inline void SetFrameworkDescription(Aws::String&& value) { m_frameworkDescription = std::move(value); }
131 
132     /**
133      * <p>An optional description of the framework.</p>
134      */
SetFrameworkDescription(const char * value)135     inline void SetFrameworkDescription(const char* value) { m_frameworkDescription.assign(value); }
136 
137     /**
138      * <p>An optional description of the framework.</p>
139      */
WithFrameworkDescription(const Aws::String & value)140     inline DescribeFrameworkResult& WithFrameworkDescription(const Aws::String& value) { SetFrameworkDescription(value); return *this;}
141 
142     /**
143      * <p>An optional description of the framework.</p>
144      */
WithFrameworkDescription(Aws::String && value)145     inline DescribeFrameworkResult& WithFrameworkDescription(Aws::String&& value) { SetFrameworkDescription(std::move(value)); return *this;}
146 
147     /**
148      * <p>An optional description of the framework.</p>
149      */
WithFrameworkDescription(const char * value)150     inline DescribeFrameworkResult& WithFrameworkDescription(const char* value) { SetFrameworkDescription(value); return *this;}
151 
152 
153     /**
154      * <p>A list of the controls that make up the framework. Each control in the list
155      * has a name, input parameters, and scope.</p>
156      */
GetFrameworkControls()157     inline const Aws::Vector<FrameworkControl>& GetFrameworkControls() const{ return m_frameworkControls; }
158 
159     /**
160      * <p>A list of the controls that make up the framework. Each control in the list
161      * has a name, input parameters, and scope.</p>
162      */
SetFrameworkControls(const Aws::Vector<FrameworkControl> & value)163     inline void SetFrameworkControls(const Aws::Vector<FrameworkControl>& value) { m_frameworkControls = value; }
164 
165     /**
166      * <p>A list of the controls that make up the framework. Each control in the list
167      * has a name, input parameters, and scope.</p>
168      */
SetFrameworkControls(Aws::Vector<FrameworkControl> && value)169     inline void SetFrameworkControls(Aws::Vector<FrameworkControl>&& value) { m_frameworkControls = std::move(value); }
170 
171     /**
172      * <p>A list of the controls that make up the framework. Each control in the list
173      * has a name, input parameters, and scope.</p>
174      */
WithFrameworkControls(const Aws::Vector<FrameworkControl> & value)175     inline DescribeFrameworkResult& WithFrameworkControls(const Aws::Vector<FrameworkControl>& value) { SetFrameworkControls(value); return *this;}
176 
177     /**
178      * <p>A list of the controls that make up the framework. Each control in the list
179      * has a name, input parameters, and scope.</p>
180      */
WithFrameworkControls(Aws::Vector<FrameworkControl> && value)181     inline DescribeFrameworkResult& WithFrameworkControls(Aws::Vector<FrameworkControl>&& value) { SetFrameworkControls(std::move(value)); return *this;}
182 
183     /**
184      * <p>A list of the controls that make up the framework. Each control in the list
185      * has a name, input parameters, and scope.</p>
186      */
AddFrameworkControls(const FrameworkControl & value)187     inline DescribeFrameworkResult& AddFrameworkControls(const FrameworkControl& value) { m_frameworkControls.push_back(value); return *this; }
188 
189     /**
190      * <p>A list of the controls that make up the framework. Each control in the list
191      * has a name, input parameters, and scope.</p>
192      */
AddFrameworkControls(FrameworkControl && value)193     inline DescribeFrameworkResult& AddFrameworkControls(FrameworkControl&& value) { m_frameworkControls.push_back(std::move(value)); return *this; }
194 
195 
196     /**
197      * <p>The date and time that a framework is created, in Unix format and Coordinated
198      * Universal Time (UTC). The value of <code>CreationTime</code> is accurate to
199      * milliseconds. For example, the value 1516925490.087 represents Friday, January
200      * 26, 2018 12:11:30.087 AM.</p>
201      */
GetCreationTime()202     inline const Aws::Utils::DateTime& GetCreationTime() const{ return m_creationTime; }
203 
204     /**
205      * <p>The date and time that a framework is created, in Unix format and Coordinated
206      * Universal Time (UTC). The value of <code>CreationTime</code> is accurate to
207      * milliseconds. For example, the value 1516925490.087 represents Friday, January
208      * 26, 2018 12:11:30.087 AM.</p>
209      */
SetCreationTime(const Aws::Utils::DateTime & value)210     inline void SetCreationTime(const Aws::Utils::DateTime& value) { m_creationTime = value; }
211 
212     /**
213      * <p>The date and time that a framework is created, in Unix format and Coordinated
214      * Universal Time (UTC). The value of <code>CreationTime</code> is accurate to
215      * milliseconds. For example, the value 1516925490.087 represents Friday, January
216      * 26, 2018 12:11:30.087 AM.</p>
217      */
SetCreationTime(Aws::Utils::DateTime && value)218     inline void SetCreationTime(Aws::Utils::DateTime&& value) { m_creationTime = std::move(value); }
219 
220     /**
221      * <p>The date and time that a framework is created, in Unix format and Coordinated
222      * Universal Time (UTC). The value of <code>CreationTime</code> is accurate to
223      * milliseconds. For example, the value 1516925490.087 represents Friday, January
224      * 26, 2018 12:11:30.087 AM.</p>
225      */
WithCreationTime(const Aws::Utils::DateTime & value)226     inline DescribeFrameworkResult& WithCreationTime(const Aws::Utils::DateTime& value) { SetCreationTime(value); return *this;}
227 
228     /**
229      * <p>The date and time that a framework is created, in Unix format and Coordinated
230      * Universal Time (UTC). The value of <code>CreationTime</code> is accurate to
231      * milliseconds. For example, the value 1516925490.087 represents Friday, January
232      * 26, 2018 12:11:30.087 AM.</p>
233      */
WithCreationTime(Aws::Utils::DateTime && value)234     inline DescribeFrameworkResult& WithCreationTime(Aws::Utils::DateTime&& value) { SetCreationTime(std::move(value)); return *this;}
235 
236 
237     /**
238      * <p>The deployment status of a framework. The statuses are:</p> <p>
239      * <code>CREATE_IN_PROGRESS | UPDATE_IN_PROGRESS | DELETE_IN_PROGRESS | COMPLETED |
240      * FAILED</code> </p>
241      */
GetDeploymentStatus()242     inline const Aws::String& GetDeploymentStatus() const{ return m_deploymentStatus; }
243 
244     /**
245      * <p>The deployment status of a framework. The statuses are:</p> <p>
246      * <code>CREATE_IN_PROGRESS | UPDATE_IN_PROGRESS | DELETE_IN_PROGRESS | COMPLETED |
247      * FAILED</code> </p>
248      */
SetDeploymentStatus(const Aws::String & value)249     inline void SetDeploymentStatus(const Aws::String& value) { m_deploymentStatus = value; }
250 
251     /**
252      * <p>The deployment status of a framework. The statuses are:</p> <p>
253      * <code>CREATE_IN_PROGRESS | UPDATE_IN_PROGRESS | DELETE_IN_PROGRESS | COMPLETED |
254      * FAILED</code> </p>
255      */
SetDeploymentStatus(Aws::String && value)256     inline void SetDeploymentStatus(Aws::String&& value) { m_deploymentStatus = std::move(value); }
257 
258     /**
259      * <p>The deployment status of a framework. The statuses are:</p> <p>
260      * <code>CREATE_IN_PROGRESS | UPDATE_IN_PROGRESS | DELETE_IN_PROGRESS | COMPLETED |
261      * FAILED</code> </p>
262      */
SetDeploymentStatus(const char * value)263     inline void SetDeploymentStatus(const char* value) { m_deploymentStatus.assign(value); }
264 
265     /**
266      * <p>The deployment status of a framework. The statuses are:</p> <p>
267      * <code>CREATE_IN_PROGRESS | UPDATE_IN_PROGRESS | DELETE_IN_PROGRESS | COMPLETED |
268      * FAILED</code> </p>
269      */
WithDeploymentStatus(const Aws::String & value)270     inline DescribeFrameworkResult& WithDeploymentStatus(const Aws::String& value) { SetDeploymentStatus(value); return *this;}
271 
272     /**
273      * <p>The deployment status of a framework. The statuses are:</p> <p>
274      * <code>CREATE_IN_PROGRESS | UPDATE_IN_PROGRESS | DELETE_IN_PROGRESS | COMPLETED |
275      * FAILED</code> </p>
276      */
WithDeploymentStatus(Aws::String && value)277     inline DescribeFrameworkResult& WithDeploymentStatus(Aws::String&& value) { SetDeploymentStatus(std::move(value)); return *this;}
278 
279     /**
280      * <p>The deployment status of a framework. The statuses are:</p> <p>
281      * <code>CREATE_IN_PROGRESS | UPDATE_IN_PROGRESS | DELETE_IN_PROGRESS | COMPLETED |
282      * FAILED</code> </p>
283      */
WithDeploymentStatus(const char * value)284     inline DescribeFrameworkResult& WithDeploymentStatus(const char* value) { SetDeploymentStatus(value); return *this;}
285 
286 
287     /**
288      * <p>A framework consists of one or more controls. Each control governs a
289      * resource, such as backup plans, backup selections, backup vaults, or recovery
290      * points. You can also turn Config recording on or off for each resource. The
291      * statuses are:</p> <ul> <li> <p> <code>ACTIVE</code> when recording is turned on
292      * for all resources governed by the framework.</p> </li> <li> <p>
293      * <code>PARTIALLY_ACTIVE</code> when recording is turned off for at least one
294      * resource governed by the framework.</p> </li> <li> <p> <code>INACTIVE</code>
295      * when recording is turned off for all resources governed by the framework.</p>
296      * </li> <li> <p> <code>UNAVAILABLE</code> when Backup is unable to validate
297      * recording status at this time.</p> </li> </ul>
298      */
GetFrameworkStatus()299     inline const Aws::String& GetFrameworkStatus() const{ return m_frameworkStatus; }
300 
301     /**
302      * <p>A framework consists of one or more controls. Each control governs a
303      * resource, such as backup plans, backup selections, backup vaults, or recovery
304      * points. You can also turn Config recording on or off for each resource. The
305      * statuses are:</p> <ul> <li> <p> <code>ACTIVE</code> when recording is turned on
306      * for all resources governed by the framework.</p> </li> <li> <p>
307      * <code>PARTIALLY_ACTIVE</code> when recording is turned off for at least one
308      * resource governed by the framework.</p> </li> <li> <p> <code>INACTIVE</code>
309      * when recording is turned off for all resources governed by the framework.</p>
310      * </li> <li> <p> <code>UNAVAILABLE</code> when Backup is unable to validate
311      * recording status at this time.</p> </li> </ul>
312      */
SetFrameworkStatus(const Aws::String & value)313     inline void SetFrameworkStatus(const Aws::String& value) { m_frameworkStatus = value; }
314 
315     /**
316      * <p>A framework consists of one or more controls. Each control governs a
317      * resource, such as backup plans, backup selections, backup vaults, or recovery
318      * points. You can also turn Config recording on or off for each resource. The
319      * statuses are:</p> <ul> <li> <p> <code>ACTIVE</code> when recording is turned on
320      * for all resources governed by the framework.</p> </li> <li> <p>
321      * <code>PARTIALLY_ACTIVE</code> when recording is turned off for at least one
322      * resource governed by the framework.</p> </li> <li> <p> <code>INACTIVE</code>
323      * when recording is turned off for all resources governed by the framework.</p>
324      * </li> <li> <p> <code>UNAVAILABLE</code> when Backup is unable to validate
325      * recording status at this time.</p> </li> </ul>
326      */
SetFrameworkStatus(Aws::String && value)327     inline void SetFrameworkStatus(Aws::String&& value) { m_frameworkStatus = std::move(value); }
328 
329     /**
330      * <p>A framework consists of one or more controls. Each control governs a
331      * resource, such as backup plans, backup selections, backup vaults, or recovery
332      * points. You can also turn Config recording on or off for each resource. The
333      * statuses are:</p> <ul> <li> <p> <code>ACTIVE</code> when recording is turned on
334      * for all resources governed by the framework.</p> </li> <li> <p>
335      * <code>PARTIALLY_ACTIVE</code> when recording is turned off for at least one
336      * resource governed by the framework.</p> </li> <li> <p> <code>INACTIVE</code>
337      * when recording is turned off for all resources governed by the framework.</p>
338      * </li> <li> <p> <code>UNAVAILABLE</code> when Backup is unable to validate
339      * recording status at this time.</p> </li> </ul>
340      */
SetFrameworkStatus(const char * value)341     inline void SetFrameworkStatus(const char* value) { m_frameworkStatus.assign(value); }
342 
343     /**
344      * <p>A framework consists of one or more controls. Each control governs a
345      * resource, such as backup plans, backup selections, backup vaults, or recovery
346      * points. You can also turn Config recording on or off for each resource. The
347      * statuses are:</p> <ul> <li> <p> <code>ACTIVE</code> when recording is turned on
348      * for all resources governed by the framework.</p> </li> <li> <p>
349      * <code>PARTIALLY_ACTIVE</code> when recording is turned off for at least one
350      * resource governed by the framework.</p> </li> <li> <p> <code>INACTIVE</code>
351      * when recording is turned off for all resources governed by the framework.</p>
352      * </li> <li> <p> <code>UNAVAILABLE</code> when Backup is unable to validate
353      * recording status at this time.</p> </li> </ul>
354      */
WithFrameworkStatus(const Aws::String & value)355     inline DescribeFrameworkResult& WithFrameworkStatus(const Aws::String& value) { SetFrameworkStatus(value); return *this;}
356 
357     /**
358      * <p>A framework consists of one or more controls. Each control governs a
359      * resource, such as backup plans, backup selections, backup vaults, or recovery
360      * points. You can also turn Config recording on or off for each resource. The
361      * statuses are:</p> <ul> <li> <p> <code>ACTIVE</code> when recording is turned on
362      * for all resources governed by the framework.</p> </li> <li> <p>
363      * <code>PARTIALLY_ACTIVE</code> when recording is turned off for at least one
364      * resource governed by the framework.</p> </li> <li> <p> <code>INACTIVE</code>
365      * when recording is turned off for all resources governed by the framework.</p>
366      * </li> <li> <p> <code>UNAVAILABLE</code> when Backup is unable to validate
367      * recording status at this time.</p> </li> </ul>
368      */
WithFrameworkStatus(Aws::String && value)369     inline DescribeFrameworkResult& WithFrameworkStatus(Aws::String&& value) { SetFrameworkStatus(std::move(value)); return *this;}
370 
371     /**
372      * <p>A framework consists of one or more controls. Each control governs a
373      * resource, such as backup plans, backup selections, backup vaults, or recovery
374      * points. You can also turn Config recording on or off for each resource. The
375      * statuses are:</p> <ul> <li> <p> <code>ACTIVE</code> when recording is turned on
376      * for all resources governed by the framework.</p> </li> <li> <p>
377      * <code>PARTIALLY_ACTIVE</code> when recording is turned off for at least one
378      * resource governed by the framework.</p> </li> <li> <p> <code>INACTIVE</code>
379      * when recording is turned off for all resources governed by the framework.</p>
380      * </li> <li> <p> <code>UNAVAILABLE</code> when Backup is unable to validate
381      * recording status at this time.</p> </li> </ul>
382      */
WithFrameworkStatus(const char * value)383     inline DescribeFrameworkResult& WithFrameworkStatus(const char* value) { SetFrameworkStatus(value); return *this;}
384 
385 
386     /**
387      * <p>A customer-chosen string that you can use to distinguish between otherwise
388      * identical calls to <code>DescribeFrameworkOutput</code>. Retrying a successful
389      * request with the same idempotency token results in a success message with no
390      * action taken.</p>
391      */
GetIdempotencyToken()392     inline const Aws::String& GetIdempotencyToken() const{ return m_idempotencyToken; }
393 
394     /**
395      * <p>A customer-chosen string that you can use to distinguish between otherwise
396      * identical calls to <code>DescribeFrameworkOutput</code>. Retrying a successful
397      * request with the same idempotency token results in a success message with no
398      * action taken.</p>
399      */
SetIdempotencyToken(const Aws::String & value)400     inline void SetIdempotencyToken(const Aws::String& value) { m_idempotencyToken = value; }
401 
402     /**
403      * <p>A customer-chosen string that you can use to distinguish between otherwise
404      * identical calls to <code>DescribeFrameworkOutput</code>. Retrying a successful
405      * request with the same idempotency token results in a success message with no
406      * action taken.</p>
407      */
SetIdempotencyToken(Aws::String && value)408     inline void SetIdempotencyToken(Aws::String&& value) { m_idempotencyToken = std::move(value); }
409 
410     /**
411      * <p>A customer-chosen string that you can use to distinguish between otherwise
412      * identical calls to <code>DescribeFrameworkOutput</code>. Retrying a successful
413      * request with the same idempotency token results in a success message with no
414      * action taken.</p>
415      */
SetIdempotencyToken(const char * value)416     inline void SetIdempotencyToken(const char* value) { m_idempotencyToken.assign(value); }
417 
418     /**
419      * <p>A customer-chosen string that you can use to distinguish between otherwise
420      * identical calls to <code>DescribeFrameworkOutput</code>. Retrying a successful
421      * request with the same idempotency token results in a success message with no
422      * action taken.</p>
423      */
WithIdempotencyToken(const Aws::String & value)424     inline DescribeFrameworkResult& WithIdempotencyToken(const Aws::String& value) { SetIdempotencyToken(value); return *this;}
425 
426     /**
427      * <p>A customer-chosen string that you can use to distinguish between otherwise
428      * identical calls to <code>DescribeFrameworkOutput</code>. Retrying a successful
429      * request with the same idempotency token results in a success message with no
430      * action taken.</p>
431      */
WithIdempotencyToken(Aws::String && value)432     inline DescribeFrameworkResult& WithIdempotencyToken(Aws::String&& value) { SetIdempotencyToken(std::move(value)); return *this;}
433 
434     /**
435      * <p>A customer-chosen string that you can use to distinguish between otherwise
436      * identical calls to <code>DescribeFrameworkOutput</code>. Retrying a successful
437      * request with the same idempotency token results in a success message with no
438      * action taken.</p>
439      */
WithIdempotencyToken(const char * value)440     inline DescribeFrameworkResult& WithIdempotencyToken(const char* value) { SetIdempotencyToken(value); return *this;}
441 
442   private:
443 
444     Aws::String m_frameworkName;
445 
446     Aws::String m_frameworkArn;
447 
448     Aws::String m_frameworkDescription;
449 
450     Aws::Vector<FrameworkControl> m_frameworkControls;
451 
452     Aws::Utils::DateTime m_creationTime;
453 
454     Aws::String m_deploymentStatus;
455 
456     Aws::String m_frameworkStatus;
457 
458     Aws::String m_idempotencyToken;
459   };
460 
461 } // namespace Model
462 } // namespace Backup
463 } // namespace Aws
464