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/securityhub/SecurityHub_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <utility>
10 
11 namespace Aws
12 {
13 namespace Utils
14 {
15 namespace Json
16 {
17   class JsonValue;
18   class JsonView;
19 } // namespace Json
20 } // namespace Utils
21 namespace SecurityHub
22 {
23 namespace Model
24 {
25 
26   /**
27    * <p>Information about the build artifacts for the CodeBuild
28    * project.</p><p><h3>See Also:</h3>   <a
29    * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/AwsCodeBuildProjectArtifactsDetails">AWS
30    * API Reference</a></p>
31    */
32   class AWS_SECURITYHUB_API AwsCodeBuildProjectArtifactsDetails
33   {
34   public:
35     AwsCodeBuildProjectArtifactsDetails();
36     AwsCodeBuildProjectArtifactsDetails(Aws::Utils::Json::JsonView jsonValue);
37     AwsCodeBuildProjectArtifactsDetails& operator=(Aws::Utils::Json::JsonView jsonValue);
38     Aws::Utils::Json::JsonValue Jsonize() const;
39 
40 
41     /**
42      * <p>An identifier for the artifact definition.</p>
43      */
GetArtifactIdentifier()44     inline const Aws::String& GetArtifactIdentifier() const{ return m_artifactIdentifier; }
45 
46     /**
47      * <p>An identifier for the artifact definition.</p>
48      */
ArtifactIdentifierHasBeenSet()49     inline bool ArtifactIdentifierHasBeenSet() const { return m_artifactIdentifierHasBeenSet; }
50 
51     /**
52      * <p>An identifier for the artifact definition.</p>
53      */
SetArtifactIdentifier(const Aws::String & value)54     inline void SetArtifactIdentifier(const Aws::String& value) { m_artifactIdentifierHasBeenSet = true; m_artifactIdentifier = value; }
55 
56     /**
57      * <p>An identifier for the artifact definition.</p>
58      */
SetArtifactIdentifier(Aws::String && value)59     inline void SetArtifactIdentifier(Aws::String&& value) { m_artifactIdentifierHasBeenSet = true; m_artifactIdentifier = std::move(value); }
60 
61     /**
62      * <p>An identifier for the artifact definition.</p>
63      */
SetArtifactIdentifier(const char * value)64     inline void SetArtifactIdentifier(const char* value) { m_artifactIdentifierHasBeenSet = true; m_artifactIdentifier.assign(value); }
65 
66     /**
67      * <p>An identifier for the artifact definition.</p>
68      */
WithArtifactIdentifier(const Aws::String & value)69     inline AwsCodeBuildProjectArtifactsDetails& WithArtifactIdentifier(const Aws::String& value) { SetArtifactIdentifier(value); return *this;}
70 
71     /**
72      * <p>An identifier for the artifact definition.</p>
73      */
WithArtifactIdentifier(Aws::String && value)74     inline AwsCodeBuildProjectArtifactsDetails& WithArtifactIdentifier(Aws::String&& value) { SetArtifactIdentifier(std::move(value)); return *this;}
75 
76     /**
77      * <p>An identifier for the artifact definition.</p>
78      */
WithArtifactIdentifier(const char * value)79     inline AwsCodeBuildProjectArtifactsDetails& WithArtifactIdentifier(const char* value) { SetArtifactIdentifier(value); return *this;}
80 
81 
82     /**
83      * <p>Indicates whether to disable encryption on the artifact. Only valid when
84      * <code>Type</code> is <code>S3</code>.</p>
85      */
GetEncryptionDisabled()86     inline bool GetEncryptionDisabled() const{ return m_encryptionDisabled; }
87 
88     /**
89      * <p>Indicates whether to disable encryption on the artifact. Only valid when
90      * <code>Type</code> is <code>S3</code>.</p>
91      */
EncryptionDisabledHasBeenSet()92     inline bool EncryptionDisabledHasBeenSet() const { return m_encryptionDisabledHasBeenSet; }
93 
94     /**
95      * <p>Indicates whether to disable encryption on the artifact. Only valid when
96      * <code>Type</code> is <code>S3</code>.</p>
97      */
SetEncryptionDisabled(bool value)98     inline void SetEncryptionDisabled(bool value) { m_encryptionDisabledHasBeenSet = true; m_encryptionDisabled = value; }
99 
100     /**
101      * <p>Indicates whether to disable encryption on the artifact. Only valid when
102      * <code>Type</code> is <code>S3</code>.</p>
103      */
WithEncryptionDisabled(bool value)104     inline AwsCodeBuildProjectArtifactsDetails& WithEncryptionDisabled(bool value) { SetEncryptionDisabled(value); return *this;}
105 
106 
107     /**
108      * <p>Only used when <code>Type</code> is <code>S3</code>. The name of the S3
109      * bucket where the artifact is located.</p>
110      */
GetLocation()111     inline const Aws::String& GetLocation() const{ return m_location; }
112 
113     /**
114      * <p>Only used when <code>Type</code> is <code>S3</code>. The name of the S3
115      * bucket where the artifact is located.</p>
116      */
LocationHasBeenSet()117     inline bool LocationHasBeenSet() const { return m_locationHasBeenSet; }
118 
119     /**
120      * <p>Only used when <code>Type</code> is <code>S3</code>. The name of the S3
121      * bucket where the artifact is located.</p>
122      */
SetLocation(const Aws::String & value)123     inline void SetLocation(const Aws::String& value) { m_locationHasBeenSet = true; m_location = value; }
124 
125     /**
126      * <p>Only used when <code>Type</code> is <code>S3</code>. The name of the S3
127      * bucket where the artifact is located.</p>
128      */
SetLocation(Aws::String && value)129     inline void SetLocation(Aws::String&& value) { m_locationHasBeenSet = true; m_location = std::move(value); }
130 
131     /**
132      * <p>Only used when <code>Type</code> is <code>S3</code>. The name of the S3
133      * bucket where the artifact is located.</p>
134      */
SetLocation(const char * value)135     inline void SetLocation(const char* value) { m_locationHasBeenSet = true; m_location.assign(value); }
136 
137     /**
138      * <p>Only used when <code>Type</code> is <code>S3</code>. The name of the S3
139      * bucket where the artifact is located.</p>
140      */
WithLocation(const Aws::String & value)141     inline AwsCodeBuildProjectArtifactsDetails& WithLocation(const Aws::String& value) { SetLocation(value); return *this;}
142 
143     /**
144      * <p>Only used when <code>Type</code> is <code>S3</code>. The name of the S3
145      * bucket where the artifact is located.</p>
146      */
WithLocation(Aws::String && value)147     inline AwsCodeBuildProjectArtifactsDetails& WithLocation(Aws::String&& value) { SetLocation(std::move(value)); return *this;}
148 
149     /**
150      * <p>Only used when <code>Type</code> is <code>S3</code>. The name of the S3
151      * bucket where the artifact is located.</p>
152      */
WithLocation(const char * value)153     inline AwsCodeBuildProjectArtifactsDetails& WithLocation(const char* value) { SetLocation(value); return *this;}
154 
155 
156     /**
157      * <p>Only used when Type is S3. The name of the artifact. Used with
158      * <code>NamepaceType</code> and <code>Path</code> to determine the pattern for
159      * storing the artifact.</p>
160      */
GetName()161     inline const Aws::String& GetName() const{ return m_name; }
162 
163     /**
164      * <p>Only used when Type is S3. The name of the artifact. Used with
165      * <code>NamepaceType</code> and <code>Path</code> to determine the pattern for
166      * storing the artifact.</p>
167      */
NameHasBeenSet()168     inline bool NameHasBeenSet() const { return m_nameHasBeenSet; }
169 
170     /**
171      * <p>Only used when Type is S3. The name of the artifact. Used with
172      * <code>NamepaceType</code> and <code>Path</code> to determine the pattern for
173      * storing the artifact.</p>
174      */
SetName(const Aws::String & value)175     inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; }
176 
177     /**
178      * <p>Only used when Type is S3. The name of the artifact. Used with
179      * <code>NamepaceType</code> and <code>Path</code> to determine the pattern for
180      * storing the artifact.</p>
181      */
SetName(Aws::String && value)182     inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); }
183 
184     /**
185      * <p>Only used when Type is S3. The name of the artifact. Used with
186      * <code>NamepaceType</code> and <code>Path</code> to determine the pattern for
187      * storing the artifact.</p>
188      */
SetName(const char * value)189     inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); }
190 
191     /**
192      * <p>Only used when Type is S3. The name of the artifact. Used with
193      * <code>NamepaceType</code> and <code>Path</code> to determine the pattern for
194      * storing the artifact.</p>
195      */
WithName(const Aws::String & value)196     inline AwsCodeBuildProjectArtifactsDetails& WithName(const Aws::String& value) { SetName(value); return *this;}
197 
198     /**
199      * <p>Only used when Type is S3. The name of the artifact. Used with
200      * <code>NamepaceType</code> and <code>Path</code> to determine the pattern for
201      * storing the artifact.</p>
202      */
WithName(Aws::String && value)203     inline AwsCodeBuildProjectArtifactsDetails& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;}
204 
205     /**
206      * <p>Only used when Type is S3. The name of the artifact. Used with
207      * <code>NamepaceType</code> and <code>Path</code> to determine the pattern for
208      * storing the artifact.</p>
209      */
WithName(const char * value)210     inline AwsCodeBuildProjectArtifactsDetails& WithName(const char* value) { SetName(value); return *this;}
211 
212 
213     /**
214      * <p>Only used when <code>Type</code> is <code>S3</code>. The value to use for the
215      * namespace. Used with <code>Name</code> and <code>Path</code> to determine the
216      * pattern for storing the artifact.</p>
217      */
GetNamespaceType()218     inline const Aws::String& GetNamespaceType() const{ return m_namespaceType; }
219 
220     /**
221      * <p>Only used when <code>Type</code> is <code>S3</code>. The value to use for the
222      * namespace. Used with <code>Name</code> and <code>Path</code> to determine the
223      * pattern for storing the artifact.</p>
224      */
NamespaceTypeHasBeenSet()225     inline bool NamespaceTypeHasBeenSet() const { return m_namespaceTypeHasBeenSet; }
226 
227     /**
228      * <p>Only used when <code>Type</code> is <code>S3</code>. The value to use for the
229      * namespace. Used with <code>Name</code> and <code>Path</code> to determine the
230      * pattern for storing the artifact.</p>
231      */
SetNamespaceType(const Aws::String & value)232     inline void SetNamespaceType(const Aws::String& value) { m_namespaceTypeHasBeenSet = true; m_namespaceType = value; }
233 
234     /**
235      * <p>Only used when <code>Type</code> is <code>S3</code>. The value to use for the
236      * namespace. Used with <code>Name</code> and <code>Path</code> to determine the
237      * pattern for storing the artifact.</p>
238      */
SetNamespaceType(Aws::String && value)239     inline void SetNamespaceType(Aws::String&& value) { m_namespaceTypeHasBeenSet = true; m_namespaceType = std::move(value); }
240 
241     /**
242      * <p>Only used when <code>Type</code> is <code>S3</code>. The value to use for the
243      * namespace. Used with <code>Name</code> and <code>Path</code> to determine the
244      * pattern for storing the artifact.</p>
245      */
SetNamespaceType(const char * value)246     inline void SetNamespaceType(const char* value) { m_namespaceTypeHasBeenSet = true; m_namespaceType.assign(value); }
247 
248     /**
249      * <p>Only used when <code>Type</code> is <code>S3</code>. The value to use for the
250      * namespace. Used with <code>Name</code> and <code>Path</code> to determine the
251      * pattern for storing the artifact.</p>
252      */
WithNamespaceType(const Aws::String & value)253     inline AwsCodeBuildProjectArtifactsDetails& WithNamespaceType(const Aws::String& value) { SetNamespaceType(value); return *this;}
254 
255     /**
256      * <p>Only used when <code>Type</code> is <code>S3</code>. The value to use for the
257      * namespace. Used with <code>Name</code> and <code>Path</code> to determine the
258      * pattern for storing the artifact.</p>
259      */
WithNamespaceType(Aws::String && value)260     inline AwsCodeBuildProjectArtifactsDetails& WithNamespaceType(Aws::String&& value) { SetNamespaceType(std::move(value)); return *this;}
261 
262     /**
263      * <p>Only used when <code>Type</code> is <code>S3</code>. The value to use for the
264      * namespace. Used with <code>Name</code> and <code>Path</code> to determine the
265      * pattern for storing the artifact.</p>
266      */
WithNamespaceType(const char * value)267     inline AwsCodeBuildProjectArtifactsDetails& WithNamespaceType(const char* value) { SetNamespaceType(value); return *this;}
268 
269 
270     /**
271      * <p>Whether the name specified in the buildspec file overrides the artifact
272      * name.</p>
273      */
GetOverrideArtifactName()274     inline bool GetOverrideArtifactName() const{ return m_overrideArtifactName; }
275 
276     /**
277      * <p>Whether the name specified in the buildspec file overrides the artifact
278      * name.</p>
279      */
OverrideArtifactNameHasBeenSet()280     inline bool OverrideArtifactNameHasBeenSet() const { return m_overrideArtifactNameHasBeenSet; }
281 
282     /**
283      * <p>Whether the name specified in the buildspec file overrides the artifact
284      * name.</p>
285      */
SetOverrideArtifactName(bool value)286     inline void SetOverrideArtifactName(bool value) { m_overrideArtifactNameHasBeenSet = true; m_overrideArtifactName = value; }
287 
288     /**
289      * <p>Whether the name specified in the buildspec file overrides the artifact
290      * name.</p>
291      */
WithOverrideArtifactName(bool value)292     inline AwsCodeBuildProjectArtifactsDetails& WithOverrideArtifactName(bool value) { SetOverrideArtifactName(value); return *this;}
293 
294 
295     /**
296      * <p>Only used when <code>Type</code> is <code>S3</code>. The type of output
297      * artifact to create.</p>
298      */
GetPackaging()299     inline const Aws::String& GetPackaging() const{ return m_packaging; }
300 
301     /**
302      * <p>Only used when <code>Type</code> is <code>S3</code>. The type of output
303      * artifact to create.</p>
304      */
PackagingHasBeenSet()305     inline bool PackagingHasBeenSet() const { return m_packagingHasBeenSet; }
306 
307     /**
308      * <p>Only used when <code>Type</code> is <code>S3</code>. The type of output
309      * artifact to create.</p>
310      */
SetPackaging(const Aws::String & value)311     inline void SetPackaging(const Aws::String& value) { m_packagingHasBeenSet = true; m_packaging = value; }
312 
313     /**
314      * <p>Only used when <code>Type</code> is <code>S3</code>. The type of output
315      * artifact to create.</p>
316      */
SetPackaging(Aws::String && value)317     inline void SetPackaging(Aws::String&& value) { m_packagingHasBeenSet = true; m_packaging = std::move(value); }
318 
319     /**
320      * <p>Only used when <code>Type</code> is <code>S3</code>. The type of output
321      * artifact to create.</p>
322      */
SetPackaging(const char * value)323     inline void SetPackaging(const char* value) { m_packagingHasBeenSet = true; m_packaging.assign(value); }
324 
325     /**
326      * <p>Only used when <code>Type</code> is <code>S3</code>. The type of output
327      * artifact to create.</p>
328      */
WithPackaging(const Aws::String & value)329     inline AwsCodeBuildProjectArtifactsDetails& WithPackaging(const Aws::String& value) { SetPackaging(value); return *this;}
330 
331     /**
332      * <p>Only used when <code>Type</code> is <code>S3</code>. The type of output
333      * artifact to create.</p>
334      */
WithPackaging(Aws::String && value)335     inline AwsCodeBuildProjectArtifactsDetails& WithPackaging(Aws::String&& value) { SetPackaging(std::move(value)); return *this;}
336 
337     /**
338      * <p>Only used when <code>Type</code> is <code>S3</code>. The type of output
339      * artifact to create.</p>
340      */
WithPackaging(const char * value)341     inline AwsCodeBuildProjectArtifactsDetails& WithPackaging(const char* value) { SetPackaging(value); return *this;}
342 
343 
344     /**
345      * <p>Only used when <code>Type</code> is <code>S3</code>. The path to the
346      * artifact. Used with <code>Name</code> and <code>NamespaceType</code> to
347      * determine the pattern for storing the artifact.</p>
348      */
GetPath()349     inline const Aws::String& GetPath() const{ return m_path; }
350 
351     /**
352      * <p>Only used when <code>Type</code> is <code>S3</code>. The path to the
353      * artifact. Used with <code>Name</code> and <code>NamespaceType</code> to
354      * determine the pattern for storing the artifact.</p>
355      */
PathHasBeenSet()356     inline bool PathHasBeenSet() const { return m_pathHasBeenSet; }
357 
358     /**
359      * <p>Only used when <code>Type</code> is <code>S3</code>. The path to the
360      * artifact. Used with <code>Name</code> and <code>NamespaceType</code> to
361      * determine the pattern for storing the artifact.</p>
362      */
SetPath(const Aws::String & value)363     inline void SetPath(const Aws::String& value) { m_pathHasBeenSet = true; m_path = value; }
364 
365     /**
366      * <p>Only used when <code>Type</code> is <code>S3</code>. The path to the
367      * artifact. Used with <code>Name</code> and <code>NamespaceType</code> to
368      * determine the pattern for storing the artifact.</p>
369      */
SetPath(Aws::String && value)370     inline void SetPath(Aws::String&& value) { m_pathHasBeenSet = true; m_path = std::move(value); }
371 
372     /**
373      * <p>Only used when <code>Type</code> is <code>S3</code>. The path to the
374      * artifact. Used with <code>Name</code> and <code>NamespaceType</code> to
375      * determine the pattern for storing the artifact.</p>
376      */
SetPath(const char * value)377     inline void SetPath(const char* value) { m_pathHasBeenSet = true; m_path.assign(value); }
378 
379     /**
380      * <p>Only used when <code>Type</code> is <code>S3</code>. The path to the
381      * artifact. Used with <code>Name</code> and <code>NamespaceType</code> to
382      * determine the pattern for storing the artifact.</p>
383      */
WithPath(const Aws::String & value)384     inline AwsCodeBuildProjectArtifactsDetails& WithPath(const Aws::String& value) { SetPath(value); return *this;}
385 
386     /**
387      * <p>Only used when <code>Type</code> is <code>S3</code>. The path to the
388      * artifact. Used with <code>Name</code> and <code>NamespaceType</code> to
389      * determine the pattern for storing the artifact.</p>
390      */
WithPath(Aws::String && value)391     inline AwsCodeBuildProjectArtifactsDetails& WithPath(Aws::String&& value) { SetPath(std::move(value)); return *this;}
392 
393     /**
394      * <p>Only used when <code>Type</code> is <code>S3</code>. The path to the
395      * artifact. Used with <code>Name</code> and <code>NamespaceType</code> to
396      * determine the pattern for storing the artifact.</p>
397      */
WithPath(const char * value)398     inline AwsCodeBuildProjectArtifactsDetails& WithPath(const char* value) { SetPath(value); return *this;}
399 
400 
401     /**
402      * <p>The type of build artifact.</p>
403      */
GetType()404     inline const Aws::String& GetType() const{ return m_type; }
405 
406     /**
407      * <p>The type of build artifact.</p>
408      */
TypeHasBeenSet()409     inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; }
410 
411     /**
412      * <p>The type of build artifact.</p>
413      */
SetType(const Aws::String & value)414     inline void SetType(const Aws::String& value) { m_typeHasBeenSet = true; m_type = value; }
415 
416     /**
417      * <p>The type of build artifact.</p>
418      */
SetType(Aws::String && value)419     inline void SetType(Aws::String&& value) { m_typeHasBeenSet = true; m_type = std::move(value); }
420 
421     /**
422      * <p>The type of build artifact.</p>
423      */
SetType(const char * value)424     inline void SetType(const char* value) { m_typeHasBeenSet = true; m_type.assign(value); }
425 
426     /**
427      * <p>The type of build artifact.</p>
428      */
WithType(const Aws::String & value)429     inline AwsCodeBuildProjectArtifactsDetails& WithType(const Aws::String& value) { SetType(value); return *this;}
430 
431     /**
432      * <p>The type of build artifact.</p>
433      */
WithType(Aws::String && value)434     inline AwsCodeBuildProjectArtifactsDetails& WithType(Aws::String&& value) { SetType(std::move(value)); return *this;}
435 
436     /**
437      * <p>The type of build artifact.</p>
438      */
WithType(const char * value)439     inline AwsCodeBuildProjectArtifactsDetails& WithType(const char* value) { SetType(value); return *this;}
440 
441   private:
442 
443     Aws::String m_artifactIdentifier;
444     bool m_artifactIdentifierHasBeenSet;
445 
446     bool m_encryptionDisabled;
447     bool m_encryptionDisabledHasBeenSet;
448 
449     Aws::String m_location;
450     bool m_locationHasBeenSet;
451 
452     Aws::String m_name;
453     bool m_nameHasBeenSet;
454 
455     Aws::String m_namespaceType;
456     bool m_namespaceTypeHasBeenSet;
457 
458     bool m_overrideArtifactName;
459     bool m_overrideArtifactNameHasBeenSet;
460 
461     Aws::String m_packaging;
462     bool m_packagingHasBeenSet;
463 
464     Aws::String m_path;
465     bool m_pathHasBeenSet;
466 
467     Aws::String m_type;
468     bool m_typeHasBeenSet;
469   };
470 
471 } // namespace Model
472 } // namespace SecurityHub
473 } // namespace Aws
474