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/ecs/ECS_EXPORTS.h>
8 #include <aws/ecs/model/TaskDefinition.h>
9 #include <aws/core/utils/memory/stl/AWSVector.h>
10 #include <aws/ecs/model/Tag.h>
11 #include <utility>
12 
13 namespace Aws
14 {
15 template<typename RESULT_TYPE>
16 class AmazonWebServiceResult;
17 
18 namespace Utils
19 {
20 namespace Json
21 {
22   class JsonValue;
23 } // namespace Json
24 } // namespace Utils
25 namespace ECS
26 {
27 namespace Model
28 {
29   class AWS_ECS_API DescribeTaskDefinitionResult
30   {
31   public:
32     DescribeTaskDefinitionResult();
33     DescribeTaskDefinitionResult(const Aws::AmazonWebServiceResult<Aws::Utils::Json::JsonValue>& result);
34     DescribeTaskDefinitionResult& operator=(const Aws::AmazonWebServiceResult<Aws::Utils::Json::JsonValue>& result);
35 
36 
37     /**
38      * <p>The full task definition description.</p>
39      */
GetTaskDefinition()40     inline const TaskDefinition& GetTaskDefinition() const{ return m_taskDefinition; }
41 
42     /**
43      * <p>The full task definition description.</p>
44      */
SetTaskDefinition(const TaskDefinition & value)45     inline void SetTaskDefinition(const TaskDefinition& value) { m_taskDefinition = value; }
46 
47     /**
48      * <p>The full task definition description.</p>
49      */
SetTaskDefinition(TaskDefinition && value)50     inline void SetTaskDefinition(TaskDefinition&& value) { m_taskDefinition = std::move(value); }
51 
52     /**
53      * <p>The full task definition description.</p>
54      */
WithTaskDefinition(const TaskDefinition & value)55     inline DescribeTaskDefinitionResult& WithTaskDefinition(const TaskDefinition& value) { SetTaskDefinition(value); return *this;}
56 
57     /**
58      * <p>The full task definition description.</p>
59      */
WithTaskDefinition(TaskDefinition && value)60     inline DescribeTaskDefinitionResult& WithTaskDefinition(TaskDefinition&& value) { SetTaskDefinition(std::move(value)); return *this;}
61 
62 
63     /**
64      * <p>The metadata that is applied to the task definition to help you categorize
65      * and organize them. Each tag consists of a key and an optional value, both of
66      * which you define.</p> <p>The following basic restrictions apply to tags:</p>
67      * <ul> <li> <p>Maximum number of tags per resource - 50</p> </li> <li> <p>For each
68      * resource, each tag key must be unique, and each tag key can have only one
69      * value.</p> </li> <li> <p>Maximum key length - 128 Unicode characters in
70      * UTF-8</p> </li> <li> <p>Maximum value length - 256 Unicode characters in
71      * UTF-8</p> </li> <li> <p>If your tagging schema is used across multiple services
72      * and resources, remember that other services may have restrictions on allowed
73      * characters. Generally allowed characters are: letters, numbers, and spaces
74      * representable in UTF-8, and the following characters: + - = . _ : / @.</p> </li>
75      * <li> <p>Tag keys and values are case-sensitive.</p> </li> <li> <p>Do not use
76      * <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of
77      * such as a prefix for either keys or values as it is reserved for Amazon Web
78      * Services use. You cannot edit or delete tag keys or values with this prefix.
79      * Tags with this prefix do not count against your tags per resource limit.</p>
80      * </li> </ul>
81      */
GetTags()82     inline const Aws::Vector<Tag>& GetTags() const{ return m_tags; }
83 
84     /**
85      * <p>The metadata that is applied to the task definition to help you categorize
86      * and organize them. Each tag consists of a key and an optional value, both of
87      * which you define.</p> <p>The following basic restrictions apply to tags:</p>
88      * <ul> <li> <p>Maximum number of tags per resource - 50</p> </li> <li> <p>For each
89      * resource, each tag key must be unique, and each tag key can have only one
90      * value.</p> </li> <li> <p>Maximum key length - 128 Unicode characters in
91      * UTF-8</p> </li> <li> <p>Maximum value length - 256 Unicode characters in
92      * UTF-8</p> </li> <li> <p>If your tagging schema is used across multiple services
93      * and resources, remember that other services may have restrictions on allowed
94      * characters. Generally allowed characters are: letters, numbers, and spaces
95      * representable in UTF-8, and the following characters: + - = . _ : / @.</p> </li>
96      * <li> <p>Tag keys and values are case-sensitive.</p> </li> <li> <p>Do not use
97      * <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of
98      * such as a prefix for either keys or values as it is reserved for Amazon Web
99      * Services use. You cannot edit or delete tag keys or values with this prefix.
100      * Tags with this prefix do not count against your tags per resource limit.</p>
101      * </li> </ul>
102      */
SetTags(const Aws::Vector<Tag> & value)103     inline void SetTags(const Aws::Vector<Tag>& value) { m_tags = value; }
104 
105     /**
106      * <p>The metadata that is applied to the task definition to help you categorize
107      * and organize them. Each tag consists of a key and an optional value, both of
108      * which you define.</p> <p>The following basic restrictions apply to tags:</p>
109      * <ul> <li> <p>Maximum number of tags per resource - 50</p> </li> <li> <p>For each
110      * resource, each tag key must be unique, and each tag key can have only one
111      * value.</p> </li> <li> <p>Maximum key length - 128 Unicode characters in
112      * UTF-8</p> </li> <li> <p>Maximum value length - 256 Unicode characters in
113      * UTF-8</p> </li> <li> <p>If your tagging schema is used across multiple services
114      * and resources, remember that other services may have restrictions on allowed
115      * characters. Generally allowed characters are: letters, numbers, and spaces
116      * representable in UTF-8, and the following characters: + - = . _ : / @.</p> </li>
117      * <li> <p>Tag keys and values are case-sensitive.</p> </li> <li> <p>Do not use
118      * <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of
119      * such as a prefix for either keys or values as it is reserved for Amazon Web
120      * Services use. You cannot edit or delete tag keys or values with this prefix.
121      * Tags with this prefix do not count against your tags per resource limit.</p>
122      * </li> </ul>
123      */
SetTags(Aws::Vector<Tag> && value)124     inline void SetTags(Aws::Vector<Tag>&& value) { m_tags = std::move(value); }
125 
126     /**
127      * <p>The metadata that is applied to the task definition to help you categorize
128      * and organize them. Each tag consists of a key and an optional value, both of
129      * which you define.</p> <p>The following basic restrictions apply to tags:</p>
130      * <ul> <li> <p>Maximum number of tags per resource - 50</p> </li> <li> <p>For each
131      * resource, each tag key must be unique, and each tag key can have only one
132      * value.</p> </li> <li> <p>Maximum key length - 128 Unicode characters in
133      * UTF-8</p> </li> <li> <p>Maximum value length - 256 Unicode characters in
134      * UTF-8</p> </li> <li> <p>If your tagging schema is used across multiple services
135      * and resources, remember that other services may have restrictions on allowed
136      * characters. Generally allowed characters are: letters, numbers, and spaces
137      * representable in UTF-8, and the following characters: + - = . _ : / @.</p> </li>
138      * <li> <p>Tag keys and values are case-sensitive.</p> </li> <li> <p>Do not use
139      * <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of
140      * such as a prefix for either keys or values as it is reserved for Amazon Web
141      * Services use. You cannot edit or delete tag keys or values with this prefix.
142      * Tags with this prefix do not count against your tags per resource limit.</p>
143      * </li> </ul>
144      */
WithTags(const Aws::Vector<Tag> & value)145     inline DescribeTaskDefinitionResult& WithTags(const Aws::Vector<Tag>& value) { SetTags(value); return *this;}
146 
147     /**
148      * <p>The metadata that is applied to the task definition to help you categorize
149      * and organize them. Each tag consists of a key and an optional value, both of
150      * which you define.</p> <p>The following basic restrictions apply to tags:</p>
151      * <ul> <li> <p>Maximum number of tags per resource - 50</p> </li> <li> <p>For each
152      * resource, each tag key must be unique, and each tag key can have only one
153      * value.</p> </li> <li> <p>Maximum key length - 128 Unicode characters in
154      * UTF-8</p> </li> <li> <p>Maximum value length - 256 Unicode characters in
155      * UTF-8</p> </li> <li> <p>If your tagging schema is used across multiple services
156      * and resources, remember that other services may have restrictions on allowed
157      * characters. Generally allowed characters are: letters, numbers, and spaces
158      * representable in UTF-8, and the following characters: + - = . _ : / @.</p> </li>
159      * <li> <p>Tag keys and values are case-sensitive.</p> </li> <li> <p>Do not use
160      * <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of
161      * such as a prefix for either keys or values as it is reserved for Amazon Web
162      * Services use. You cannot edit or delete tag keys or values with this prefix.
163      * Tags with this prefix do not count against your tags per resource limit.</p>
164      * </li> </ul>
165      */
WithTags(Aws::Vector<Tag> && value)166     inline DescribeTaskDefinitionResult& WithTags(Aws::Vector<Tag>&& value) { SetTags(std::move(value)); return *this;}
167 
168     /**
169      * <p>The metadata that is applied to the task definition to help you categorize
170      * and organize them. Each tag consists of a key and an optional value, both of
171      * which you define.</p> <p>The following basic restrictions apply to tags:</p>
172      * <ul> <li> <p>Maximum number of tags per resource - 50</p> </li> <li> <p>For each
173      * resource, each tag key must be unique, and each tag key can have only one
174      * value.</p> </li> <li> <p>Maximum key length - 128 Unicode characters in
175      * UTF-8</p> </li> <li> <p>Maximum value length - 256 Unicode characters in
176      * UTF-8</p> </li> <li> <p>If your tagging schema is used across multiple services
177      * and resources, remember that other services may have restrictions on allowed
178      * characters. Generally allowed characters are: letters, numbers, and spaces
179      * representable in UTF-8, and the following characters: + - = . _ : / @.</p> </li>
180      * <li> <p>Tag keys and values are case-sensitive.</p> </li> <li> <p>Do not use
181      * <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of
182      * such as a prefix for either keys or values as it is reserved for Amazon Web
183      * Services use. You cannot edit or delete tag keys or values with this prefix.
184      * Tags with this prefix do not count against your tags per resource limit.</p>
185      * </li> </ul>
186      */
AddTags(const Tag & value)187     inline DescribeTaskDefinitionResult& AddTags(const Tag& value) { m_tags.push_back(value); return *this; }
188 
189     /**
190      * <p>The metadata that is applied to the task definition to help you categorize
191      * and organize them. Each tag consists of a key and an optional value, both of
192      * which you define.</p> <p>The following basic restrictions apply to tags:</p>
193      * <ul> <li> <p>Maximum number of tags per resource - 50</p> </li> <li> <p>For each
194      * resource, each tag key must be unique, and each tag key can have only one
195      * value.</p> </li> <li> <p>Maximum key length - 128 Unicode characters in
196      * UTF-8</p> </li> <li> <p>Maximum value length - 256 Unicode characters in
197      * UTF-8</p> </li> <li> <p>If your tagging schema is used across multiple services
198      * and resources, remember that other services may have restrictions on allowed
199      * characters. Generally allowed characters are: letters, numbers, and spaces
200      * representable in UTF-8, and the following characters: + - = . _ : / @.</p> </li>
201      * <li> <p>Tag keys and values are case-sensitive.</p> </li> <li> <p>Do not use
202      * <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of
203      * such as a prefix for either keys or values as it is reserved for Amazon Web
204      * Services use. You cannot edit or delete tag keys or values with this prefix.
205      * Tags with this prefix do not count against your tags per resource limit.</p>
206      * </li> </ul>
207      */
AddTags(Tag && value)208     inline DescribeTaskDefinitionResult& AddTags(Tag&& value) { m_tags.push_back(std::move(value)); return *this; }
209 
210   private:
211 
212     TaskDefinition m_taskDefinition;
213 
214     Aws::Vector<Tag> m_tags;
215   };
216 
217 } // namespace Model
218 } // namespace ECS
219 } // namespace Aws
220