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/auditmanager/AuditManager_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/auditmanager/model/FrameworkMetadata.h>
10 #include <aws/core/utils/memory/stl/AWSVector.h>
11 #include <aws/auditmanager/model/AssessmentControlSet.h>
12 #include <utility>
13 
14 namespace Aws
15 {
16 namespace Utils
17 {
18 namespace Json
19 {
20   class JsonValue;
21   class JsonView;
22 } // namespace Json
23 } // namespace Utils
24 namespace AuditManager
25 {
26 namespace Model
27 {
28 
29   /**
30    * <p> The file used to structure and automate Audit Manager assessments for a
31    * given compliance standard. </p><p><h3>See Also:</h3>   <a
32    * href="http://docs.aws.amazon.com/goto/WebAPI/auditmanager-2017-07-25/AssessmentFramework">AWS
33    * API Reference</a></p>
34    */
35   class AWS_AUDITMANAGER_API AssessmentFramework
36   {
37   public:
38     AssessmentFramework();
39     AssessmentFramework(Aws::Utils::Json::JsonView jsonValue);
40     AssessmentFramework& operator=(Aws::Utils::Json::JsonView jsonValue);
41     Aws::Utils::Json::JsonValue Jsonize() const;
42 
43 
44     /**
45      * <p> The unique identifier for the framework. </p>
46      */
GetId()47     inline const Aws::String& GetId() const{ return m_id; }
48 
49     /**
50      * <p> The unique identifier for the framework. </p>
51      */
IdHasBeenSet()52     inline bool IdHasBeenSet() const { return m_idHasBeenSet; }
53 
54     /**
55      * <p> The unique identifier for the framework. </p>
56      */
SetId(const Aws::String & value)57     inline void SetId(const Aws::String& value) { m_idHasBeenSet = true; m_id = value; }
58 
59     /**
60      * <p> The unique identifier for the framework. </p>
61      */
SetId(Aws::String && value)62     inline void SetId(Aws::String&& value) { m_idHasBeenSet = true; m_id = std::move(value); }
63 
64     /**
65      * <p> The unique identifier for the framework. </p>
66      */
SetId(const char * value)67     inline void SetId(const char* value) { m_idHasBeenSet = true; m_id.assign(value); }
68 
69     /**
70      * <p> The unique identifier for the framework. </p>
71      */
WithId(const Aws::String & value)72     inline AssessmentFramework& WithId(const Aws::String& value) { SetId(value); return *this;}
73 
74     /**
75      * <p> The unique identifier for the framework. </p>
76      */
WithId(Aws::String && value)77     inline AssessmentFramework& WithId(Aws::String&& value) { SetId(std::move(value)); return *this;}
78 
79     /**
80      * <p> The unique identifier for the framework. </p>
81      */
WithId(const char * value)82     inline AssessmentFramework& WithId(const char* value) { SetId(value); return *this;}
83 
84 
85     /**
86      * <p> The Amazon Resource Name (ARN) of the specified framework. </p>
87      */
GetArn()88     inline const Aws::String& GetArn() const{ return m_arn; }
89 
90     /**
91      * <p> The Amazon Resource Name (ARN) of the specified framework. </p>
92      */
ArnHasBeenSet()93     inline bool ArnHasBeenSet() const { return m_arnHasBeenSet; }
94 
95     /**
96      * <p> The Amazon Resource Name (ARN) of the specified framework. </p>
97      */
SetArn(const Aws::String & value)98     inline void SetArn(const Aws::String& value) { m_arnHasBeenSet = true; m_arn = value; }
99 
100     /**
101      * <p> The Amazon Resource Name (ARN) of the specified framework. </p>
102      */
SetArn(Aws::String && value)103     inline void SetArn(Aws::String&& value) { m_arnHasBeenSet = true; m_arn = std::move(value); }
104 
105     /**
106      * <p> The Amazon Resource Name (ARN) of the specified framework. </p>
107      */
SetArn(const char * value)108     inline void SetArn(const char* value) { m_arnHasBeenSet = true; m_arn.assign(value); }
109 
110     /**
111      * <p> The Amazon Resource Name (ARN) of the specified framework. </p>
112      */
WithArn(const Aws::String & value)113     inline AssessmentFramework& WithArn(const Aws::String& value) { SetArn(value); return *this;}
114 
115     /**
116      * <p> The Amazon Resource Name (ARN) of the specified framework. </p>
117      */
WithArn(Aws::String && value)118     inline AssessmentFramework& WithArn(Aws::String&& value) { SetArn(std::move(value)); return *this;}
119 
120     /**
121      * <p> The Amazon Resource Name (ARN) of the specified framework. </p>
122      */
WithArn(const char * value)123     inline AssessmentFramework& WithArn(const char* value) { SetArn(value); return *this;}
124 
125 
126 
GetMetadata()127     inline const FrameworkMetadata& GetMetadata() const{ return m_metadata; }
128 
129 
MetadataHasBeenSet()130     inline bool MetadataHasBeenSet() const { return m_metadataHasBeenSet; }
131 
132 
SetMetadata(const FrameworkMetadata & value)133     inline void SetMetadata(const FrameworkMetadata& value) { m_metadataHasBeenSet = true; m_metadata = value; }
134 
135 
SetMetadata(FrameworkMetadata && value)136     inline void SetMetadata(FrameworkMetadata&& value) { m_metadataHasBeenSet = true; m_metadata = std::move(value); }
137 
138 
WithMetadata(const FrameworkMetadata & value)139     inline AssessmentFramework& WithMetadata(const FrameworkMetadata& value) { SetMetadata(value); return *this;}
140 
141 
WithMetadata(FrameworkMetadata && value)142     inline AssessmentFramework& WithMetadata(FrameworkMetadata&& value) { SetMetadata(std::move(value)); return *this;}
143 
144 
145     /**
146      * <p> The control sets associated with the framework. </p>
147      */
GetControlSets()148     inline const Aws::Vector<AssessmentControlSet>& GetControlSets() const{ return m_controlSets; }
149 
150     /**
151      * <p> The control sets associated with the framework. </p>
152      */
ControlSetsHasBeenSet()153     inline bool ControlSetsHasBeenSet() const { return m_controlSetsHasBeenSet; }
154 
155     /**
156      * <p> The control sets associated with the framework. </p>
157      */
SetControlSets(const Aws::Vector<AssessmentControlSet> & value)158     inline void SetControlSets(const Aws::Vector<AssessmentControlSet>& value) { m_controlSetsHasBeenSet = true; m_controlSets = value; }
159 
160     /**
161      * <p> The control sets associated with the framework. </p>
162      */
SetControlSets(Aws::Vector<AssessmentControlSet> && value)163     inline void SetControlSets(Aws::Vector<AssessmentControlSet>&& value) { m_controlSetsHasBeenSet = true; m_controlSets = std::move(value); }
164 
165     /**
166      * <p> The control sets associated with the framework. </p>
167      */
WithControlSets(const Aws::Vector<AssessmentControlSet> & value)168     inline AssessmentFramework& WithControlSets(const Aws::Vector<AssessmentControlSet>& value) { SetControlSets(value); return *this;}
169 
170     /**
171      * <p> The control sets associated with the framework. </p>
172      */
WithControlSets(Aws::Vector<AssessmentControlSet> && value)173     inline AssessmentFramework& WithControlSets(Aws::Vector<AssessmentControlSet>&& value) { SetControlSets(std::move(value)); return *this;}
174 
175     /**
176      * <p> The control sets associated with the framework. </p>
177      */
AddControlSets(const AssessmentControlSet & value)178     inline AssessmentFramework& AddControlSets(const AssessmentControlSet& value) { m_controlSetsHasBeenSet = true; m_controlSets.push_back(value); return *this; }
179 
180     /**
181      * <p> The control sets associated with the framework. </p>
182      */
AddControlSets(AssessmentControlSet && value)183     inline AssessmentFramework& AddControlSets(AssessmentControlSet&& value) { m_controlSetsHasBeenSet = true; m_controlSets.push_back(std::move(value)); return *this; }
184 
185   private:
186 
187     Aws::String m_id;
188     bool m_idHasBeenSet;
189 
190     Aws::String m_arn;
191     bool m_arnHasBeenSet;
192 
193     FrameworkMetadata m_metadata;
194     bool m_metadataHasBeenSet;
195 
196     Aws::Vector<AssessmentControlSet> m_controlSets;
197     bool m_controlSetsHasBeenSet;
198   };
199 
200 } // namespace Model
201 } // namespace AuditManager
202 } // namespace Aws
203