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/ecr-public/ECRPublic_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/core/utils/memory/stl/AWSVector.h>
10 #include <utility>
11 
12 namespace Aws
13 {
14 namespace Utils
15 {
16 namespace Json
17 {
18   class JsonValue;
19   class JsonView;
20 } // namespace Json
21 } // namespace Utils
22 namespace ECRPublic
23 {
24 namespace Model
25 {
26 
27   /**
28    * <p>The catalog data for a repository. This data is publicly visible in the
29    * Amazon ECR Public Gallery.</p><p><h3>See Also:</h3>   <a
30    * href="http://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/RepositoryCatalogData">AWS
31    * API Reference</a></p>
32    */
33   class AWS_ECRPUBLIC_API RepositoryCatalogData
34   {
35   public:
36     RepositoryCatalogData();
37     RepositoryCatalogData(Aws::Utils::Json::JsonView jsonValue);
38     RepositoryCatalogData& operator=(Aws::Utils::Json::JsonView jsonValue);
39     Aws::Utils::Json::JsonValue Jsonize() const;
40 
41 
42     /**
43      * <p>The short description of the repository.</p>
44      */
GetDescription()45     inline const Aws::String& GetDescription() const{ return m_description; }
46 
47     /**
48      * <p>The short description of the repository.</p>
49      */
DescriptionHasBeenSet()50     inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; }
51 
52     /**
53      * <p>The short description of the repository.</p>
54      */
SetDescription(const Aws::String & value)55     inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; }
56 
57     /**
58      * <p>The short description of the repository.</p>
59      */
SetDescription(Aws::String && value)60     inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); }
61 
62     /**
63      * <p>The short description of the repository.</p>
64      */
SetDescription(const char * value)65     inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); }
66 
67     /**
68      * <p>The short description of the repository.</p>
69      */
WithDescription(const Aws::String & value)70     inline RepositoryCatalogData& WithDescription(const Aws::String& value) { SetDescription(value); return *this;}
71 
72     /**
73      * <p>The short description of the repository.</p>
74      */
WithDescription(Aws::String && value)75     inline RepositoryCatalogData& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;}
76 
77     /**
78      * <p>The short description of the repository.</p>
79      */
WithDescription(const char * value)80     inline RepositoryCatalogData& WithDescription(const char* value) { SetDescription(value); return *this;}
81 
82 
83     /**
84      * <p>The architecture tags that are associated with the repository.</p>
85      * <p>Only supported operating system tags appear publicly in the Amazon ECR Public
86      * Gallery. For more information, see <a>RepositoryCatalogDataInput</a>.</p>
87      *
88      */
GetArchitectures()89     inline const Aws::Vector<Aws::String>& GetArchitectures() const{ return m_architectures; }
90 
91     /**
92      * <p>The architecture tags that are associated with the repository.</p>
93      * <p>Only supported operating system tags appear publicly in the Amazon ECR Public
94      * Gallery. For more information, see <a>RepositoryCatalogDataInput</a>.</p>
95      *
96      */
ArchitecturesHasBeenSet()97     inline bool ArchitecturesHasBeenSet() const { return m_architecturesHasBeenSet; }
98 
99     /**
100      * <p>The architecture tags that are associated with the repository.</p>
101      * <p>Only supported operating system tags appear publicly in the Amazon ECR Public
102      * Gallery. For more information, see <a>RepositoryCatalogDataInput</a>.</p>
103      *
104      */
SetArchitectures(const Aws::Vector<Aws::String> & value)105     inline void SetArchitectures(const Aws::Vector<Aws::String>& value) { m_architecturesHasBeenSet = true; m_architectures = value; }
106 
107     /**
108      * <p>The architecture tags that are associated with the repository.</p>
109      * <p>Only supported operating system tags appear publicly in the Amazon ECR Public
110      * Gallery. For more information, see <a>RepositoryCatalogDataInput</a>.</p>
111      *
112      */
SetArchitectures(Aws::Vector<Aws::String> && value)113     inline void SetArchitectures(Aws::Vector<Aws::String>&& value) { m_architecturesHasBeenSet = true; m_architectures = std::move(value); }
114 
115     /**
116      * <p>The architecture tags that are associated with the repository.</p>
117      * <p>Only supported operating system tags appear publicly in the Amazon ECR Public
118      * Gallery. For more information, see <a>RepositoryCatalogDataInput</a>.</p>
119      *
120      */
WithArchitectures(const Aws::Vector<Aws::String> & value)121     inline RepositoryCatalogData& WithArchitectures(const Aws::Vector<Aws::String>& value) { SetArchitectures(value); return *this;}
122 
123     /**
124      * <p>The architecture tags that are associated with the repository.</p>
125      * <p>Only supported operating system tags appear publicly in the Amazon ECR Public
126      * Gallery. For more information, see <a>RepositoryCatalogDataInput</a>.</p>
127      *
128      */
WithArchitectures(Aws::Vector<Aws::String> && value)129     inline RepositoryCatalogData& WithArchitectures(Aws::Vector<Aws::String>&& value) { SetArchitectures(std::move(value)); return *this;}
130 
131     /**
132      * <p>The architecture tags that are associated with the repository.</p>
133      * <p>Only supported operating system tags appear publicly in the Amazon ECR Public
134      * Gallery. For more information, see <a>RepositoryCatalogDataInput</a>.</p>
135      *
136      */
AddArchitectures(const Aws::String & value)137     inline RepositoryCatalogData& AddArchitectures(const Aws::String& value) { m_architecturesHasBeenSet = true; m_architectures.push_back(value); return *this; }
138 
139     /**
140      * <p>The architecture tags that are associated with the repository.</p>
141      * <p>Only supported operating system tags appear publicly in the Amazon ECR Public
142      * Gallery. For more information, see <a>RepositoryCatalogDataInput</a>.</p>
143      *
144      */
AddArchitectures(Aws::String && value)145     inline RepositoryCatalogData& AddArchitectures(Aws::String&& value) { m_architecturesHasBeenSet = true; m_architectures.push_back(std::move(value)); return *this; }
146 
147     /**
148      * <p>The architecture tags that are associated with the repository.</p>
149      * <p>Only supported operating system tags appear publicly in the Amazon ECR Public
150      * Gallery. For more information, see <a>RepositoryCatalogDataInput</a>.</p>
151      *
152      */
AddArchitectures(const char * value)153     inline RepositoryCatalogData& AddArchitectures(const char* value) { m_architecturesHasBeenSet = true; m_architectures.push_back(value); return *this; }
154 
155 
156     /**
157      * <p>The operating system tags that are associated with the repository.</p>
158      * <p>Only supported operating system tags appear publicly in the Amazon ECR Public
159      * Gallery. For more information, see <a>RepositoryCatalogDataInput</a>.</p>
160      *
161      */
GetOperatingSystems()162     inline const Aws::Vector<Aws::String>& GetOperatingSystems() const{ return m_operatingSystems; }
163 
164     /**
165      * <p>The operating system tags that are associated with the repository.</p>
166      * <p>Only supported operating system tags appear publicly in the Amazon ECR Public
167      * Gallery. For more information, see <a>RepositoryCatalogDataInput</a>.</p>
168      *
169      */
OperatingSystemsHasBeenSet()170     inline bool OperatingSystemsHasBeenSet() const { return m_operatingSystemsHasBeenSet; }
171 
172     /**
173      * <p>The operating system tags that are associated with the repository.</p>
174      * <p>Only supported operating system tags appear publicly in the Amazon ECR Public
175      * Gallery. For more information, see <a>RepositoryCatalogDataInput</a>.</p>
176      *
177      */
SetOperatingSystems(const Aws::Vector<Aws::String> & value)178     inline void SetOperatingSystems(const Aws::Vector<Aws::String>& value) { m_operatingSystemsHasBeenSet = true; m_operatingSystems = value; }
179 
180     /**
181      * <p>The operating system tags that are associated with the repository.</p>
182      * <p>Only supported operating system tags appear publicly in the Amazon ECR Public
183      * Gallery. For more information, see <a>RepositoryCatalogDataInput</a>.</p>
184      *
185      */
SetOperatingSystems(Aws::Vector<Aws::String> && value)186     inline void SetOperatingSystems(Aws::Vector<Aws::String>&& value) { m_operatingSystemsHasBeenSet = true; m_operatingSystems = std::move(value); }
187 
188     /**
189      * <p>The operating system tags that are associated with the repository.</p>
190      * <p>Only supported operating system tags appear publicly in the Amazon ECR Public
191      * Gallery. For more information, see <a>RepositoryCatalogDataInput</a>.</p>
192      *
193      */
WithOperatingSystems(const Aws::Vector<Aws::String> & value)194     inline RepositoryCatalogData& WithOperatingSystems(const Aws::Vector<Aws::String>& value) { SetOperatingSystems(value); return *this;}
195 
196     /**
197      * <p>The operating system tags that are associated with the repository.</p>
198      * <p>Only supported operating system tags appear publicly in the Amazon ECR Public
199      * Gallery. For more information, see <a>RepositoryCatalogDataInput</a>.</p>
200      *
201      */
WithOperatingSystems(Aws::Vector<Aws::String> && value)202     inline RepositoryCatalogData& WithOperatingSystems(Aws::Vector<Aws::String>&& value) { SetOperatingSystems(std::move(value)); return *this;}
203 
204     /**
205      * <p>The operating system tags that are associated with the repository.</p>
206      * <p>Only supported operating system tags appear publicly in the Amazon ECR Public
207      * Gallery. For more information, see <a>RepositoryCatalogDataInput</a>.</p>
208      *
209      */
AddOperatingSystems(const Aws::String & value)210     inline RepositoryCatalogData& AddOperatingSystems(const Aws::String& value) { m_operatingSystemsHasBeenSet = true; m_operatingSystems.push_back(value); return *this; }
211 
212     /**
213      * <p>The operating system tags that are associated with the repository.</p>
214      * <p>Only supported operating system tags appear publicly in the Amazon ECR Public
215      * Gallery. For more information, see <a>RepositoryCatalogDataInput</a>.</p>
216      *
217      */
AddOperatingSystems(Aws::String && value)218     inline RepositoryCatalogData& AddOperatingSystems(Aws::String&& value) { m_operatingSystemsHasBeenSet = true; m_operatingSystems.push_back(std::move(value)); return *this; }
219 
220     /**
221      * <p>The operating system tags that are associated with the repository.</p>
222      * <p>Only supported operating system tags appear publicly in the Amazon ECR Public
223      * Gallery. For more information, see <a>RepositoryCatalogDataInput</a>.</p>
224      *
225      */
AddOperatingSystems(const char * value)226     inline RepositoryCatalogData& AddOperatingSystems(const char* value) { m_operatingSystemsHasBeenSet = true; m_operatingSystems.push_back(value); return *this; }
227 
228 
229     /**
230      * <p>The URL containing the logo associated with the repository.</p>
231      */
GetLogoUrl()232     inline const Aws::String& GetLogoUrl() const{ return m_logoUrl; }
233 
234     /**
235      * <p>The URL containing the logo associated with the repository.</p>
236      */
LogoUrlHasBeenSet()237     inline bool LogoUrlHasBeenSet() const { return m_logoUrlHasBeenSet; }
238 
239     /**
240      * <p>The URL containing the logo associated with the repository.</p>
241      */
SetLogoUrl(const Aws::String & value)242     inline void SetLogoUrl(const Aws::String& value) { m_logoUrlHasBeenSet = true; m_logoUrl = value; }
243 
244     /**
245      * <p>The URL containing the logo associated with the repository.</p>
246      */
SetLogoUrl(Aws::String && value)247     inline void SetLogoUrl(Aws::String&& value) { m_logoUrlHasBeenSet = true; m_logoUrl = std::move(value); }
248 
249     /**
250      * <p>The URL containing the logo associated with the repository.</p>
251      */
SetLogoUrl(const char * value)252     inline void SetLogoUrl(const char* value) { m_logoUrlHasBeenSet = true; m_logoUrl.assign(value); }
253 
254     /**
255      * <p>The URL containing the logo associated with the repository.</p>
256      */
WithLogoUrl(const Aws::String & value)257     inline RepositoryCatalogData& WithLogoUrl(const Aws::String& value) { SetLogoUrl(value); return *this;}
258 
259     /**
260      * <p>The URL containing the logo associated with the repository.</p>
261      */
WithLogoUrl(Aws::String && value)262     inline RepositoryCatalogData& WithLogoUrl(Aws::String&& value) { SetLogoUrl(std::move(value)); return *this;}
263 
264     /**
265      * <p>The URL containing the logo associated with the repository.</p>
266      */
WithLogoUrl(const char * value)267     inline RepositoryCatalogData& WithLogoUrl(const char* value) { SetLogoUrl(value); return *this;}
268 
269 
270     /**
271      * <p>The longform description of the contents of the repository. This text appears
272      * in the repository details on the Amazon ECR Public Gallery.</p>
273      */
GetAboutText()274     inline const Aws::String& GetAboutText() const{ return m_aboutText; }
275 
276     /**
277      * <p>The longform description of the contents of the repository. This text appears
278      * in the repository details on the Amazon ECR Public Gallery.</p>
279      */
AboutTextHasBeenSet()280     inline bool AboutTextHasBeenSet() const { return m_aboutTextHasBeenSet; }
281 
282     /**
283      * <p>The longform description of the contents of the repository. This text appears
284      * in the repository details on the Amazon ECR Public Gallery.</p>
285      */
SetAboutText(const Aws::String & value)286     inline void SetAboutText(const Aws::String& value) { m_aboutTextHasBeenSet = true; m_aboutText = value; }
287 
288     /**
289      * <p>The longform description of the contents of the repository. This text appears
290      * in the repository details on the Amazon ECR Public Gallery.</p>
291      */
SetAboutText(Aws::String && value)292     inline void SetAboutText(Aws::String&& value) { m_aboutTextHasBeenSet = true; m_aboutText = std::move(value); }
293 
294     /**
295      * <p>The longform description of the contents of the repository. This text appears
296      * in the repository details on the Amazon ECR Public Gallery.</p>
297      */
SetAboutText(const char * value)298     inline void SetAboutText(const char* value) { m_aboutTextHasBeenSet = true; m_aboutText.assign(value); }
299 
300     /**
301      * <p>The longform description of the contents of the repository. This text appears
302      * in the repository details on the Amazon ECR Public Gallery.</p>
303      */
WithAboutText(const Aws::String & value)304     inline RepositoryCatalogData& WithAboutText(const Aws::String& value) { SetAboutText(value); return *this;}
305 
306     /**
307      * <p>The longform description of the contents of the repository. This text appears
308      * in the repository details on the Amazon ECR Public Gallery.</p>
309      */
WithAboutText(Aws::String && value)310     inline RepositoryCatalogData& WithAboutText(Aws::String&& value) { SetAboutText(std::move(value)); return *this;}
311 
312     /**
313      * <p>The longform description of the contents of the repository. This text appears
314      * in the repository details on the Amazon ECR Public Gallery.</p>
315      */
WithAboutText(const char * value)316     inline RepositoryCatalogData& WithAboutText(const char* value) { SetAboutText(value); return *this;}
317 
318 
319     /**
320      * <p>The longform usage details of the contents of the repository. The usage text
321      * provides context for users of the repository.</p>
322      */
GetUsageText()323     inline const Aws::String& GetUsageText() const{ return m_usageText; }
324 
325     /**
326      * <p>The longform usage details of the contents of the repository. The usage text
327      * provides context for users of the repository.</p>
328      */
UsageTextHasBeenSet()329     inline bool UsageTextHasBeenSet() const { return m_usageTextHasBeenSet; }
330 
331     /**
332      * <p>The longform usage details of the contents of the repository. The usage text
333      * provides context for users of the repository.</p>
334      */
SetUsageText(const Aws::String & value)335     inline void SetUsageText(const Aws::String& value) { m_usageTextHasBeenSet = true; m_usageText = value; }
336 
337     /**
338      * <p>The longform usage details of the contents of the repository. The usage text
339      * provides context for users of the repository.</p>
340      */
SetUsageText(Aws::String && value)341     inline void SetUsageText(Aws::String&& value) { m_usageTextHasBeenSet = true; m_usageText = std::move(value); }
342 
343     /**
344      * <p>The longform usage details of the contents of the repository. The usage text
345      * provides context for users of the repository.</p>
346      */
SetUsageText(const char * value)347     inline void SetUsageText(const char* value) { m_usageTextHasBeenSet = true; m_usageText.assign(value); }
348 
349     /**
350      * <p>The longform usage details of the contents of the repository. The usage text
351      * provides context for users of the repository.</p>
352      */
WithUsageText(const Aws::String & value)353     inline RepositoryCatalogData& WithUsageText(const Aws::String& value) { SetUsageText(value); return *this;}
354 
355     /**
356      * <p>The longform usage details of the contents of the repository. The usage text
357      * provides context for users of the repository.</p>
358      */
WithUsageText(Aws::String && value)359     inline RepositoryCatalogData& WithUsageText(Aws::String&& value) { SetUsageText(std::move(value)); return *this;}
360 
361     /**
362      * <p>The longform usage details of the contents of the repository. The usage text
363      * provides context for users of the repository.</p>
364      */
WithUsageText(const char * value)365     inline RepositoryCatalogData& WithUsageText(const char* value) { SetUsageText(value); return *this;}
366 
367 
368     /**
369      * <p>Whether or not the repository is certified by AWS Marketplace.</p>
370      */
GetMarketplaceCertified()371     inline bool GetMarketplaceCertified() const{ return m_marketplaceCertified; }
372 
373     /**
374      * <p>Whether or not the repository is certified by AWS Marketplace.</p>
375      */
MarketplaceCertifiedHasBeenSet()376     inline bool MarketplaceCertifiedHasBeenSet() const { return m_marketplaceCertifiedHasBeenSet; }
377 
378     /**
379      * <p>Whether or not the repository is certified by AWS Marketplace.</p>
380      */
SetMarketplaceCertified(bool value)381     inline void SetMarketplaceCertified(bool value) { m_marketplaceCertifiedHasBeenSet = true; m_marketplaceCertified = value; }
382 
383     /**
384      * <p>Whether or not the repository is certified by AWS Marketplace.</p>
385      */
WithMarketplaceCertified(bool value)386     inline RepositoryCatalogData& WithMarketplaceCertified(bool value) { SetMarketplaceCertified(value); return *this;}
387 
388   private:
389 
390     Aws::String m_description;
391     bool m_descriptionHasBeenSet;
392 
393     Aws::Vector<Aws::String> m_architectures;
394     bool m_architecturesHasBeenSet;
395 
396     Aws::Vector<Aws::String> m_operatingSystems;
397     bool m_operatingSystemsHasBeenSet;
398 
399     Aws::String m_logoUrl;
400     bool m_logoUrlHasBeenSet;
401 
402     Aws::String m_aboutText;
403     bool m_aboutTextHasBeenSet;
404 
405     Aws::String m_usageText;
406     bool m_usageTextHasBeenSet;
407 
408     bool m_marketplaceCertified;
409     bool m_marketplaceCertifiedHasBeenSet;
410   };
411 
412 } // namespace Model
413 } // namespace ECRPublic
414 } // namespace Aws
415