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/codeartifact/CodeArtifact_EXPORTS.h>
8 #include <aws/codeartifact/model/PackageFormat.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/core/utils/DateTime.h>
11 #include <aws/core/utils/memory/stl/AWSVector.h>
12 #include <aws/codeartifact/model/PackageVersionStatus.h>
13 #include <aws/codeartifact/model/LicenseInfo.h>
14 #include <utility>
15 
16 namespace Aws
17 {
18 namespace Utils
19 {
20 namespace Json
21 {
22   class JsonValue;
23   class JsonView;
24 } // namespace Json
25 } // namespace Utils
26 namespace CodeArtifact
27 {
28 namespace Model
29 {
30 
31   /**
32    * <p> Details about a package version. </p><p><h3>See Also:</h3>   <a
33    * href="http://docs.aws.amazon.com/goto/WebAPI/codeartifact-2018-09-22/PackageVersionDescription">AWS
34    * API Reference</a></p>
35    */
36   class AWS_CODEARTIFACT_API PackageVersionDescription
37   {
38   public:
39     PackageVersionDescription();
40     PackageVersionDescription(Aws::Utils::Json::JsonView jsonValue);
41     PackageVersionDescription& operator=(Aws::Utils::Json::JsonView jsonValue);
42     Aws::Utils::Json::JsonValue Jsonize() const;
43 
44 
45     /**
46      * <p> The format of the package version. The valid package formats are: </p> <ul>
47      * <li> <p> <code>npm</code>: A Node Package Manager (npm) package. </p> </li> <li>
48      * <p> <code>pypi</code>: A Python Package Index (PyPI) package. </p> </li> <li>
49      * <p> <code>maven</code>: A Maven package that contains compiled code in a
50      * distributable format, such as a JAR file. </p> </li> </ul>
51      */
GetFormat()52     inline const PackageFormat& GetFormat() const{ return m_format; }
53 
54     /**
55      * <p> The format of the package version. The valid package formats are: </p> <ul>
56      * <li> <p> <code>npm</code>: A Node Package Manager (npm) package. </p> </li> <li>
57      * <p> <code>pypi</code>: A Python Package Index (PyPI) package. </p> </li> <li>
58      * <p> <code>maven</code>: A Maven package that contains compiled code in a
59      * distributable format, such as a JAR file. </p> </li> </ul>
60      */
FormatHasBeenSet()61     inline bool FormatHasBeenSet() const { return m_formatHasBeenSet; }
62 
63     /**
64      * <p> The format of the package version. The valid package formats are: </p> <ul>
65      * <li> <p> <code>npm</code>: A Node Package Manager (npm) package. </p> </li> <li>
66      * <p> <code>pypi</code>: A Python Package Index (PyPI) package. </p> </li> <li>
67      * <p> <code>maven</code>: A Maven package that contains compiled code in a
68      * distributable format, such as a JAR file. </p> </li> </ul>
69      */
SetFormat(const PackageFormat & value)70     inline void SetFormat(const PackageFormat& value) { m_formatHasBeenSet = true; m_format = value; }
71 
72     /**
73      * <p> The format of the package version. The valid package formats are: </p> <ul>
74      * <li> <p> <code>npm</code>: A Node Package Manager (npm) package. </p> </li> <li>
75      * <p> <code>pypi</code>: A Python Package Index (PyPI) package. </p> </li> <li>
76      * <p> <code>maven</code>: A Maven package that contains compiled code in a
77      * distributable format, such as a JAR file. </p> </li> </ul>
78      */
SetFormat(PackageFormat && value)79     inline void SetFormat(PackageFormat&& value) { m_formatHasBeenSet = true; m_format = std::move(value); }
80 
81     /**
82      * <p> The format of the package version. The valid package formats are: </p> <ul>
83      * <li> <p> <code>npm</code>: A Node Package Manager (npm) package. </p> </li> <li>
84      * <p> <code>pypi</code>: A Python Package Index (PyPI) package. </p> </li> <li>
85      * <p> <code>maven</code>: A Maven package that contains compiled code in a
86      * distributable format, such as a JAR file. </p> </li> </ul>
87      */
WithFormat(const PackageFormat & value)88     inline PackageVersionDescription& WithFormat(const PackageFormat& value) { SetFormat(value); return *this;}
89 
90     /**
91      * <p> The format of the package version. The valid package formats are: </p> <ul>
92      * <li> <p> <code>npm</code>: A Node Package Manager (npm) package. </p> </li> <li>
93      * <p> <code>pypi</code>: A Python Package Index (PyPI) package. </p> </li> <li>
94      * <p> <code>maven</code>: A Maven package that contains compiled code in a
95      * distributable format, such as a JAR file. </p> </li> </ul>
96      */
WithFormat(PackageFormat && value)97     inline PackageVersionDescription& WithFormat(PackageFormat&& value) { SetFormat(std::move(value)); return *this;}
98 
99 
100     /**
101      * <p> The namespace of the package. The package component that specifies its
102      * namespace depends on its type. For example: </p> <ul> <li> <p> The namespace of
103      * a Maven package is its <code>groupId</code>. </p> </li> <li> <p> The namespace
104      * of an npm package is its <code>scope</code>. </p> </li> <li> <p> A Python
105      * package does not contain a corresponding component, so Python packages do not
106      * have a namespace. </p> </li> </ul>
107      */
GetNamespace()108     inline const Aws::String& GetNamespace() const{ return m_namespace; }
109 
110     /**
111      * <p> The namespace of the package. The package component that specifies its
112      * namespace depends on its type. For example: </p> <ul> <li> <p> The namespace of
113      * a Maven package is its <code>groupId</code>. </p> </li> <li> <p> The namespace
114      * of an npm package is its <code>scope</code>. </p> </li> <li> <p> A Python
115      * package does not contain a corresponding component, so Python packages do not
116      * have a namespace. </p> </li> </ul>
117      */
NamespaceHasBeenSet()118     inline bool NamespaceHasBeenSet() const { return m_namespaceHasBeenSet; }
119 
120     /**
121      * <p> The namespace of the package. The package component that specifies its
122      * namespace depends on its type. For example: </p> <ul> <li> <p> The namespace of
123      * a Maven package is its <code>groupId</code>. </p> </li> <li> <p> The namespace
124      * of an npm package is its <code>scope</code>. </p> </li> <li> <p> A Python
125      * package does not contain a corresponding component, so Python packages do not
126      * have a namespace. </p> </li> </ul>
127      */
SetNamespace(const Aws::String & value)128     inline void SetNamespace(const Aws::String& value) { m_namespaceHasBeenSet = true; m_namespace = value; }
129 
130     /**
131      * <p> The namespace of the package. The package component that specifies its
132      * namespace depends on its type. For example: </p> <ul> <li> <p> The namespace of
133      * a Maven package is its <code>groupId</code>. </p> </li> <li> <p> The namespace
134      * of an npm package is its <code>scope</code>. </p> </li> <li> <p> A Python
135      * package does not contain a corresponding component, so Python packages do not
136      * have a namespace. </p> </li> </ul>
137      */
SetNamespace(Aws::String && value)138     inline void SetNamespace(Aws::String&& value) { m_namespaceHasBeenSet = true; m_namespace = std::move(value); }
139 
140     /**
141      * <p> The namespace of the package. The package component that specifies its
142      * namespace depends on its type. For example: </p> <ul> <li> <p> The namespace of
143      * a Maven package is its <code>groupId</code>. </p> </li> <li> <p> The namespace
144      * of an npm package is its <code>scope</code>. </p> </li> <li> <p> A Python
145      * package does not contain a corresponding component, so Python packages do not
146      * have a namespace. </p> </li> </ul>
147      */
SetNamespace(const char * value)148     inline void SetNamespace(const char* value) { m_namespaceHasBeenSet = true; m_namespace.assign(value); }
149 
150     /**
151      * <p> The namespace of the package. The package component that specifies its
152      * namespace depends on its type. For example: </p> <ul> <li> <p> The namespace of
153      * a Maven package is its <code>groupId</code>. </p> </li> <li> <p> The namespace
154      * of an npm package is its <code>scope</code>. </p> </li> <li> <p> A Python
155      * package does not contain a corresponding component, so Python packages do not
156      * have a namespace. </p> </li> </ul>
157      */
WithNamespace(const Aws::String & value)158     inline PackageVersionDescription& WithNamespace(const Aws::String& value) { SetNamespace(value); return *this;}
159 
160     /**
161      * <p> The namespace of the package. The package component that specifies its
162      * namespace depends on its type. For example: </p> <ul> <li> <p> The namespace of
163      * a Maven package is its <code>groupId</code>. </p> </li> <li> <p> The namespace
164      * of an npm package is its <code>scope</code>. </p> </li> <li> <p> A Python
165      * package does not contain a corresponding component, so Python packages do not
166      * have a namespace. </p> </li> </ul>
167      */
WithNamespace(Aws::String && value)168     inline PackageVersionDescription& WithNamespace(Aws::String&& value) { SetNamespace(std::move(value)); return *this;}
169 
170     /**
171      * <p> The namespace of the package. The package component that specifies its
172      * namespace depends on its type. For example: </p> <ul> <li> <p> The namespace of
173      * a Maven package is its <code>groupId</code>. </p> </li> <li> <p> The namespace
174      * of an npm package is its <code>scope</code>. </p> </li> <li> <p> A Python
175      * package does not contain a corresponding component, so Python packages do not
176      * have a namespace. </p> </li> </ul>
177      */
WithNamespace(const char * value)178     inline PackageVersionDescription& WithNamespace(const char* value) { SetNamespace(value); return *this;}
179 
180 
181     /**
182      * <p> The name of the requested package. </p>
183      */
GetPackageName()184     inline const Aws::String& GetPackageName() const{ return m_packageName; }
185 
186     /**
187      * <p> The name of the requested package. </p>
188      */
PackageNameHasBeenSet()189     inline bool PackageNameHasBeenSet() const { return m_packageNameHasBeenSet; }
190 
191     /**
192      * <p> The name of the requested package. </p>
193      */
SetPackageName(const Aws::String & value)194     inline void SetPackageName(const Aws::String& value) { m_packageNameHasBeenSet = true; m_packageName = value; }
195 
196     /**
197      * <p> The name of the requested package. </p>
198      */
SetPackageName(Aws::String && value)199     inline void SetPackageName(Aws::String&& value) { m_packageNameHasBeenSet = true; m_packageName = std::move(value); }
200 
201     /**
202      * <p> The name of the requested package. </p>
203      */
SetPackageName(const char * value)204     inline void SetPackageName(const char* value) { m_packageNameHasBeenSet = true; m_packageName.assign(value); }
205 
206     /**
207      * <p> The name of the requested package. </p>
208      */
WithPackageName(const Aws::String & value)209     inline PackageVersionDescription& WithPackageName(const Aws::String& value) { SetPackageName(value); return *this;}
210 
211     /**
212      * <p> The name of the requested package. </p>
213      */
WithPackageName(Aws::String && value)214     inline PackageVersionDescription& WithPackageName(Aws::String&& value) { SetPackageName(std::move(value)); return *this;}
215 
216     /**
217      * <p> The name of the requested package. </p>
218      */
WithPackageName(const char * value)219     inline PackageVersionDescription& WithPackageName(const char* value) { SetPackageName(value); return *this;}
220 
221 
222     /**
223      * <p> The name of the package that is displayed. The <code>displayName</code>
224      * varies depending on the package version's format. For example, if an npm package
225      * is named <code>ui</code>, is in the namespace <code>vue</code>, and has the
226      * format <code>npm</code>, then the <code>displayName</code> is
227      * <code>@vue/ui</code>. </p>
228      */
GetDisplayName()229     inline const Aws::String& GetDisplayName() const{ return m_displayName; }
230 
231     /**
232      * <p> The name of the package that is displayed. The <code>displayName</code>
233      * varies depending on the package version's format. For example, if an npm package
234      * is named <code>ui</code>, is in the namespace <code>vue</code>, and has the
235      * format <code>npm</code>, then the <code>displayName</code> is
236      * <code>@vue/ui</code>. </p>
237      */
DisplayNameHasBeenSet()238     inline bool DisplayNameHasBeenSet() const { return m_displayNameHasBeenSet; }
239 
240     /**
241      * <p> The name of the package that is displayed. The <code>displayName</code>
242      * varies depending on the package version's format. For example, if an npm package
243      * is named <code>ui</code>, is in the namespace <code>vue</code>, and has the
244      * format <code>npm</code>, then the <code>displayName</code> is
245      * <code>@vue/ui</code>. </p>
246      */
SetDisplayName(const Aws::String & value)247     inline void SetDisplayName(const Aws::String& value) { m_displayNameHasBeenSet = true; m_displayName = value; }
248 
249     /**
250      * <p> The name of the package that is displayed. The <code>displayName</code>
251      * varies depending on the package version's format. For example, if an npm package
252      * is named <code>ui</code>, is in the namespace <code>vue</code>, and has the
253      * format <code>npm</code>, then the <code>displayName</code> is
254      * <code>@vue/ui</code>. </p>
255      */
SetDisplayName(Aws::String && value)256     inline void SetDisplayName(Aws::String&& value) { m_displayNameHasBeenSet = true; m_displayName = std::move(value); }
257 
258     /**
259      * <p> The name of the package that is displayed. The <code>displayName</code>
260      * varies depending on the package version's format. For example, if an npm package
261      * is named <code>ui</code>, is in the namespace <code>vue</code>, and has the
262      * format <code>npm</code>, then the <code>displayName</code> is
263      * <code>@vue/ui</code>. </p>
264      */
SetDisplayName(const char * value)265     inline void SetDisplayName(const char* value) { m_displayNameHasBeenSet = true; m_displayName.assign(value); }
266 
267     /**
268      * <p> The name of the package that is displayed. The <code>displayName</code>
269      * varies depending on the package version's format. For example, if an npm package
270      * is named <code>ui</code>, is in the namespace <code>vue</code>, and has the
271      * format <code>npm</code>, then the <code>displayName</code> is
272      * <code>@vue/ui</code>. </p>
273      */
WithDisplayName(const Aws::String & value)274     inline PackageVersionDescription& WithDisplayName(const Aws::String& value) { SetDisplayName(value); return *this;}
275 
276     /**
277      * <p> The name of the package that is displayed. The <code>displayName</code>
278      * varies depending on the package version's format. For example, if an npm package
279      * is named <code>ui</code>, is in the namespace <code>vue</code>, and has the
280      * format <code>npm</code>, then the <code>displayName</code> is
281      * <code>@vue/ui</code>. </p>
282      */
WithDisplayName(Aws::String && value)283     inline PackageVersionDescription& WithDisplayName(Aws::String&& value) { SetDisplayName(std::move(value)); return *this;}
284 
285     /**
286      * <p> The name of the package that is displayed. The <code>displayName</code>
287      * varies depending on the package version's format. For example, if an npm package
288      * is named <code>ui</code>, is in the namespace <code>vue</code>, and has the
289      * format <code>npm</code>, then the <code>displayName</code> is
290      * <code>@vue/ui</code>. </p>
291      */
WithDisplayName(const char * value)292     inline PackageVersionDescription& WithDisplayName(const char* value) { SetDisplayName(value); return *this;}
293 
294 
295     /**
296      * <p> The version of the package. </p>
297      */
GetVersion()298     inline const Aws::String& GetVersion() const{ return m_version; }
299 
300     /**
301      * <p> The version of the package. </p>
302      */
VersionHasBeenSet()303     inline bool VersionHasBeenSet() const { return m_versionHasBeenSet; }
304 
305     /**
306      * <p> The version of the package. </p>
307      */
SetVersion(const Aws::String & value)308     inline void SetVersion(const Aws::String& value) { m_versionHasBeenSet = true; m_version = value; }
309 
310     /**
311      * <p> The version of the package. </p>
312      */
SetVersion(Aws::String && value)313     inline void SetVersion(Aws::String&& value) { m_versionHasBeenSet = true; m_version = std::move(value); }
314 
315     /**
316      * <p> The version of the package. </p>
317      */
SetVersion(const char * value)318     inline void SetVersion(const char* value) { m_versionHasBeenSet = true; m_version.assign(value); }
319 
320     /**
321      * <p> The version of the package. </p>
322      */
WithVersion(const Aws::String & value)323     inline PackageVersionDescription& WithVersion(const Aws::String& value) { SetVersion(value); return *this;}
324 
325     /**
326      * <p> The version of the package. </p>
327      */
WithVersion(Aws::String && value)328     inline PackageVersionDescription& WithVersion(Aws::String&& value) { SetVersion(std::move(value)); return *this;}
329 
330     /**
331      * <p> The version of the package. </p>
332      */
WithVersion(const char * value)333     inline PackageVersionDescription& WithVersion(const char* value) { SetVersion(value); return *this;}
334 
335 
336     /**
337      * <p> A summary of the package version. The summary is extracted from the package.
338      * The information in and detail level of the summary depends on the package
339      * version's format. </p>
340      */
GetSummary()341     inline const Aws::String& GetSummary() const{ return m_summary; }
342 
343     /**
344      * <p> A summary of the package version. The summary is extracted from the package.
345      * The information in and detail level of the summary depends on the package
346      * version's format. </p>
347      */
SummaryHasBeenSet()348     inline bool SummaryHasBeenSet() const { return m_summaryHasBeenSet; }
349 
350     /**
351      * <p> A summary of the package version. The summary is extracted from the package.
352      * The information in and detail level of the summary depends on the package
353      * version's format. </p>
354      */
SetSummary(const Aws::String & value)355     inline void SetSummary(const Aws::String& value) { m_summaryHasBeenSet = true; m_summary = value; }
356 
357     /**
358      * <p> A summary of the package version. The summary is extracted from the package.
359      * The information in and detail level of the summary depends on the package
360      * version's format. </p>
361      */
SetSummary(Aws::String && value)362     inline void SetSummary(Aws::String&& value) { m_summaryHasBeenSet = true; m_summary = std::move(value); }
363 
364     /**
365      * <p> A summary of the package version. The summary is extracted from the package.
366      * The information in and detail level of the summary depends on the package
367      * version's format. </p>
368      */
SetSummary(const char * value)369     inline void SetSummary(const char* value) { m_summaryHasBeenSet = true; m_summary.assign(value); }
370 
371     /**
372      * <p> A summary of the package version. The summary is extracted from the package.
373      * The information in and detail level of the summary depends on the package
374      * version's format. </p>
375      */
WithSummary(const Aws::String & value)376     inline PackageVersionDescription& WithSummary(const Aws::String& value) { SetSummary(value); return *this;}
377 
378     /**
379      * <p> A summary of the package version. The summary is extracted from the package.
380      * The information in and detail level of the summary depends on the package
381      * version's format. </p>
382      */
WithSummary(Aws::String && value)383     inline PackageVersionDescription& WithSummary(Aws::String&& value) { SetSummary(std::move(value)); return *this;}
384 
385     /**
386      * <p> A summary of the package version. The summary is extracted from the package.
387      * The information in and detail level of the summary depends on the package
388      * version's format. </p>
389      */
WithSummary(const char * value)390     inline PackageVersionDescription& WithSummary(const char* value) { SetSummary(value); return *this;}
391 
392 
393     /**
394      * <p> The homepage associated with the package. </p>
395      */
GetHomePage()396     inline const Aws::String& GetHomePage() const{ return m_homePage; }
397 
398     /**
399      * <p> The homepage associated with the package. </p>
400      */
HomePageHasBeenSet()401     inline bool HomePageHasBeenSet() const { return m_homePageHasBeenSet; }
402 
403     /**
404      * <p> The homepage associated with the package. </p>
405      */
SetHomePage(const Aws::String & value)406     inline void SetHomePage(const Aws::String& value) { m_homePageHasBeenSet = true; m_homePage = value; }
407 
408     /**
409      * <p> The homepage associated with the package. </p>
410      */
SetHomePage(Aws::String && value)411     inline void SetHomePage(Aws::String&& value) { m_homePageHasBeenSet = true; m_homePage = std::move(value); }
412 
413     /**
414      * <p> The homepage associated with the package. </p>
415      */
SetHomePage(const char * value)416     inline void SetHomePage(const char* value) { m_homePageHasBeenSet = true; m_homePage.assign(value); }
417 
418     /**
419      * <p> The homepage associated with the package. </p>
420      */
WithHomePage(const Aws::String & value)421     inline PackageVersionDescription& WithHomePage(const Aws::String& value) { SetHomePage(value); return *this;}
422 
423     /**
424      * <p> The homepage associated with the package. </p>
425      */
WithHomePage(Aws::String && value)426     inline PackageVersionDescription& WithHomePage(Aws::String&& value) { SetHomePage(std::move(value)); return *this;}
427 
428     /**
429      * <p> The homepage associated with the package. </p>
430      */
WithHomePage(const char * value)431     inline PackageVersionDescription& WithHomePage(const char* value) { SetHomePage(value); return *this;}
432 
433 
434     /**
435      * <p> The repository for the source code in the package version, or the source
436      * code used to build it. </p>
437      */
GetSourceCodeRepository()438     inline const Aws::String& GetSourceCodeRepository() const{ return m_sourceCodeRepository; }
439 
440     /**
441      * <p> The repository for the source code in the package version, or the source
442      * code used to build it. </p>
443      */
SourceCodeRepositoryHasBeenSet()444     inline bool SourceCodeRepositoryHasBeenSet() const { return m_sourceCodeRepositoryHasBeenSet; }
445 
446     /**
447      * <p> The repository for the source code in the package version, or the source
448      * code used to build it. </p>
449      */
SetSourceCodeRepository(const Aws::String & value)450     inline void SetSourceCodeRepository(const Aws::String& value) { m_sourceCodeRepositoryHasBeenSet = true; m_sourceCodeRepository = value; }
451 
452     /**
453      * <p> The repository for the source code in the package version, or the source
454      * code used to build it. </p>
455      */
SetSourceCodeRepository(Aws::String && value)456     inline void SetSourceCodeRepository(Aws::String&& value) { m_sourceCodeRepositoryHasBeenSet = true; m_sourceCodeRepository = std::move(value); }
457 
458     /**
459      * <p> The repository for the source code in the package version, or the source
460      * code used to build it. </p>
461      */
SetSourceCodeRepository(const char * value)462     inline void SetSourceCodeRepository(const char* value) { m_sourceCodeRepositoryHasBeenSet = true; m_sourceCodeRepository.assign(value); }
463 
464     /**
465      * <p> The repository for the source code in the package version, or the source
466      * code used to build it. </p>
467      */
WithSourceCodeRepository(const Aws::String & value)468     inline PackageVersionDescription& WithSourceCodeRepository(const Aws::String& value) { SetSourceCodeRepository(value); return *this;}
469 
470     /**
471      * <p> The repository for the source code in the package version, or the source
472      * code used to build it. </p>
473      */
WithSourceCodeRepository(Aws::String && value)474     inline PackageVersionDescription& WithSourceCodeRepository(Aws::String&& value) { SetSourceCodeRepository(std::move(value)); return *this;}
475 
476     /**
477      * <p> The repository for the source code in the package version, or the source
478      * code used to build it. </p>
479      */
WithSourceCodeRepository(const char * value)480     inline PackageVersionDescription& WithSourceCodeRepository(const char* value) { SetSourceCodeRepository(value); return *this;}
481 
482 
483     /**
484      * <p> A timestamp that contains the date and time the package version was
485      * published. </p>
486      */
GetPublishedTime()487     inline const Aws::Utils::DateTime& GetPublishedTime() const{ return m_publishedTime; }
488 
489     /**
490      * <p> A timestamp that contains the date and time the package version was
491      * published. </p>
492      */
PublishedTimeHasBeenSet()493     inline bool PublishedTimeHasBeenSet() const { return m_publishedTimeHasBeenSet; }
494 
495     /**
496      * <p> A timestamp that contains the date and time the package version was
497      * published. </p>
498      */
SetPublishedTime(const Aws::Utils::DateTime & value)499     inline void SetPublishedTime(const Aws::Utils::DateTime& value) { m_publishedTimeHasBeenSet = true; m_publishedTime = value; }
500 
501     /**
502      * <p> A timestamp that contains the date and time the package version was
503      * published. </p>
504      */
SetPublishedTime(Aws::Utils::DateTime && value)505     inline void SetPublishedTime(Aws::Utils::DateTime&& value) { m_publishedTimeHasBeenSet = true; m_publishedTime = std::move(value); }
506 
507     /**
508      * <p> A timestamp that contains the date and time the package version was
509      * published. </p>
510      */
WithPublishedTime(const Aws::Utils::DateTime & value)511     inline PackageVersionDescription& WithPublishedTime(const Aws::Utils::DateTime& value) { SetPublishedTime(value); return *this;}
512 
513     /**
514      * <p> A timestamp that contains the date and time the package version was
515      * published. </p>
516      */
WithPublishedTime(Aws::Utils::DateTime && value)517     inline PackageVersionDescription& WithPublishedTime(Aws::Utils::DateTime&& value) { SetPublishedTime(std::move(value)); return *this;}
518 
519 
520     /**
521      * <p> Information about licenses associated with the package version. </p>
522      */
GetLicenses()523     inline const Aws::Vector<LicenseInfo>& GetLicenses() const{ return m_licenses; }
524 
525     /**
526      * <p> Information about licenses associated with the package version. </p>
527      */
LicensesHasBeenSet()528     inline bool LicensesHasBeenSet() const { return m_licensesHasBeenSet; }
529 
530     /**
531      * <p> Information about licenses associated with the package version. </p>
532      */
SetLicenses(const Aws::Vector<LicenseInfo> & value)533     inline void SetLicenses(const Aws::Vector<LicenseInfo>& value) { m_licensesHasBeenSet = true; m_licenses = value; }
534 
535     /**
536      * <p> Information about licenses associated with the package version. </p>
537      */
SetLicenses(Aws::Vector<LicenseInfo> && value)538     inline void SetLicenses(Aws::Vector<LicenseInfo>&& value) { m_licensesHasBeenSet = true; m_licenses = std::move(value); }
539 
540     /**
541      * <p> Information about licenses associated with the package version. </p>
542      */
WithLicenses(const Aws::Vector<LicenseInfo> & value)543     inline PackageVersionDescription& WithLicenses(const Aws::Vector<LicenseInfo>& value) { SetLicenses(value); return *this;}
544 
545     /**
546      * <p> Information about licenses associated with the package version. </p>
547      */
WithLicenses(Aws::Vector<LicenseInfo> && value)548     inline PackageVersionDescription& WithLicenses(Aws::Vector<LicenseInfo>&& value) { SetLicenses(std::move(value)); return *this;}
549 
550     /**
551      * <p> Information about licenses associated with the package version. </p>
552      */
AddLicenses(const LicenseInfo & value)553     inline PackageVersionDescription& AddLicenses(const LicenseInfo& value) { m_licensesHasBeenSet = true; m_licenses.push_back(value); return *this; }
554 
555     /**
556      * <p> Information about licenses associated with the package version. </p>
557      */
AddLicenses(LicenseInfo && value)558     inline PackageVersionDescription& AddLicenses(LicenseInfo&& value) { m_licensesHasBeenSet = true; m_licenses.push_back(std::move(value)); return *this; }
559 
560 
561     /**
562      * <p> The revision of the package version. </p>
563      */
GetRevision()564     inline const Aws::String& GetRevision() const{ return m_revision; }
565 
566     /**
567      * <p> The revision of the package version. </p>
568      */
RevisionHasBeenSet()569     inline bool RevisionHasBeenSet() const { return m_revisionHasBeenSet; }
570 
571     /**
572      * <p> The revision of the package version. </p>
573      */
SetRevision(const Aws::String & value)574     inline void SetRevision(const Aws::String& value) { m_revisionHasBeenSet = true; m_revision = value; }
575 
576     /**
577      * <p> The revision of the package version. </p>
578      */
SetRevision(Aws::String && value)579     inline void SetRevision(Aws::String&& value) { m_revisionHasBeenSet = true; m_revision = std::move(value); }
580 
581     /**
582      * <p> The revision of the package version. </p>
583      */
SetRevision(const char * value)584     inline void SetRevision(const char* value) { m_revisionHasBeenSet = true; m_revision.assign(value); }
585 
586     /**
587      * <p> The revision of the package version. </p>
588      */
WithRevision(const Aws::String & value)589     inline PackageVersionDescription& WithRevision(const Aws::String& value) { SetRevision(value); return *this;}
590 
591     /**
592      * <p> The revision of the package version. </p>
593      */
WithRevision(Aws::String && value)594     inline PackageVersionDescription& WithRevision(Aws::String&& value) { SetRevision(std::move(value)); return *this;}
595 
596     /**
597      * <p> The revision of the package version. </p>
598      */
WithRevision(const char * value)599     inline PackageVersionDescription& WithRevision(const char* value) { SetRevision(value); return *this;}
600 
601 
602     /**
603      * <p> A string that contains the status of the package version. It can be one of
604      * the following: </p> <ul> <li> <p> <code>Published</code> </p> </li> <li> <p>
605      * <code>Unfinished</code> </p> </li> <li> <p> <code>Unlisted</code> </p> </li>
606      * <li> <p> <code>Archived</code> </p> </li> <li> <p> <code>Disposed</code> </p>
607      * </li> </ul>
608      */
GetStatus()609     inline const PackageVersionStatus& GetStatus() const{ return m_status; }
610 
611     /**
612      * <p> A string that contains the status of the package version. It can be one of
613      * the following: </p> <ul> <li> <p> <code>Published</code> </p> </li> <li> <p>
614      * <code>Unfinished</code> </p> </li> <li> <p> <code>Unlisted</code> </p> </li>
615      * <li> <p> <code>Archived</code> </p> </li> <li> <p> <code>Disposed</code> </p>
616      * </li> </ul>
617      */
StatusHasBeenSet()618     inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; }
619 
620     /**
621      * <p> A string that contains the status of the package version. It can be one of
622      * the following: </p> <ul> <li> <p> <code>Published</code> </p> </li> <li> <p>
623      * <code>Unfinished</code> </p> </li> <li> <p> <code>Unlisted</code> </p> </li>
624      * <li> <p> <code>Archived</code> </p> </li> <li> <p> <code>Disposed</code> </p>
625      * </li> </ul>
626      */
SetStatus(const PackageVersionStatus & value)627     inline void SetStatus(const PackageVersionStatus& value) { m_statusHasBeenSet = true; m_status = value; }
628 
629     /**
630      * <p> A string that contains the status of the package version. It can be one of
631      * the following: </p> <ul> <li> <p> <code>Published</code> </p> </li> <li> <p>
632      * <code>Unfinished</code> </p> </li> <li> <p> <code>Unlisted</code> </p> </li>
633      * <li> <p> <code>Archived</code> </p> </li> <li> <p> <code>Disposed</code> </p>
634      * </li> </ul>
635      */
SetStatus(PackageVersionStatus && value)636     inline void SetStatus(PackageVersionStatus&& value) { m_statusHasBeenSet = true; m_status = std::move(value); }
637 
638     /**
639      * <p> A string that contains the status of the package version. It can be one of
640      * the following: </p> <ul> <li> <p> <code>Published</code> </p> </li> <li> <p>
641      * <code>Unfinished</code> </p> </li> <li> <p> <code>Unlisted</code> </p> </li>
642      * <li> <p> <code>Archived</code> </p> </li> <li> <p> <code>Disposed</code> </p>
643      * </li> </ul>
644      */
WithStatus(const PackageVersionStatus & value)645     inline PackageVersionDescription& WithStatus(const PackageVersionStatus& value) { SetStatus(value); return *this;}
646 
647     /**
648      * <p> A string that contains the status of the package version. It can be one of
649      * the following: </p> <ul> <li> <p> <code>Published</code> </p> </li> <li> <p>
650      * <code>Unfinished</code> </p> </li> <li> <p> <code>Unlisted</code> </p> </li>
651      * <li> <p> <code>Archived</code> </p> </li> <li> <p> <code>Disposed</code> </p>
652      * </li> </ul>
653      */
WithStatus(PackageVersionStatus && value)654     inline PackageVersionDescription& WithStatus(PackageVersionStatus&& value) { SetStatus(std::move(value)); return *this;}
655 
656   private:
657 
658     PackageFormat m_format;
659     bool m_formatHasBeenSet;
660 
661     Aws::String m_namespace;
662     bool m_namespaceHasBeenSet;
663 
664     Aws::String m_packageName;
665     bool m_packageNameHasBeenSet;
666 
667     Aws::String m_displayName;
668     bool m_displayNameHasBeenSet;
669 
670     Aws::String m_version;
671     bool m_versionHasBeenSet;
672 
673     Aws::String m_summary;
674     bool m_summaryHasBeenSet;
675 
676     Aws::String m_homePage;
677     bool m_homePageHasBeenSet;
678 
679     Aws::String m_sourceCodeRepository;
680     bool m_sourceCodeRepositoryHasBeenSet;
681 
682     Aws::Utils::DateTime m_publishedTime;
683     bool m_publishedTimeHasBeenSet;
684 
685     Aws::Vector<LicenseInfo> m_licenses;
686     bool m_licensesHasBeenSet;
687 
688     Aws::String m_revision;
689     bool m_revisionHasBeenSet;
690 
691     PackageVersionStatus m_status;
692     bool m_statusHasBeenSet;
693   };
694 
695 } // namespace Model
696 } // namespace CodeArtifact
697 } // namespace Aws
698