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/mq/MQ_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/mq/model/AuthenticationStrategy.h>
10 #include <aws/core/utils/DateTime.h>
11 #include <aws/mq/model/EngineType.h>
12 #include <aws/mq/model/ConfigurationRevision.h>
13 #include <aws/core/utils/memory/stl/AWSMap.h>
14 #include <utility>
15 
16 namespace Aws
17 {
18 template<typename RESULT_TYPE>
19 class AmazonWebServiceResult;
20 
21 namespace Utils
22 {
23 namespace Json
24 {
25   class JsonValue;
26 } // namespace Json
27 } // namespace Utils
28 namespace MQ
29 {
30 namespace Model
31 {
32   class AWS_MQ_API DescribeConfigurationResult
33   {
34   public:
35     DescribeConfigurationResult();
36     DescribeConfigurationResult(const Aws::AmazonWebServiceResult<Aws::Utils::Json::JsonValue>& result);
37     DescribeConfigurationResult& operator=(const Aws::AmazonWebServiceResult<Aws::Utils::Json::JsonValue>& result);
38 
39 
40     /**
41      * <p>Required. The ARN of the configuration.</p>
42      */
GetArn()43     inline const Aws::String& GetArn() const{ return m_arn; }
44 
45     /**
46      * <p>Required. The ARN of the configuration.</p>
47      */
SetArn(const Aws::String & value)48     inline void SetArn(const Aws::String& value) { m_arn = value; }
49 
50     /**
51      * <p>Required. The ARN of the configuration.</p>
52      */
SetArn(Aws::String && value)53     inline void SetArn(Aws::String&& value) { m_arn = std::move(value); }
54 
55     /**
56      * <p>Required. The ARN of the configuration.</p>
57      */
SetArn(const char * value)58     inline void SetArn(const char* value) { m_arn.assign(value); }
59 
60     /**
61      * <p>Required. The ARN of the configuration.</p>
62      */
WithArn(const Aws::String & value)63     inline DescribeConfigurationResult& WithArn(const Aws::String& value) { SetArn(value); return *this;}
64 
65     /**
66      * <p>Required. The ARN of the configuration.</p>
67      */
WithArn(Aws::String && value)68     inline DescribeConfigurationResult& WithArn(Aws::String&& value) { SetArn(std::move(value)); return *this;}
69 
70     /**
71      * <p>Required. The ARN of the configuration.</p>
72      */
WithArn(const char * value)73     inline DescribeConfigurationResult& WithArn(const char* value) { SetArn(value); return *this;}
74 
75 
76     /**
77      * <p>Optional. The authentication strategy associated with the configuration. The
78      * default is SIMPLE.</p>
79      */
GetAuthenticationStrategy()80     inline const AuthenticationStrategy& GetAuthenticationStrategy() const{ return m_authenticationStrategy; }
81 
82     /**
83      * <p>Optional. The authentication strategy associated with the configuration. The
84      * default is SIMPLE.</p>
85      */
SetAuthenticationStrategy(const AuthenticationStrategy & value)86     inline void SetAuthenticationStrategy(const AuthenticationStrategy& value) { m_authenticationStrategy = value; }
87 
88     /**
89      * <p>Optional. The authentication strategy associated with the configuration. The
90      * default is SIMPLE.</p>
91      */
SetAuthenticationStrategy(AuthenticationStrategy && value)92     inline void SetAuthenticationStrategy(AuthenticationStrategy&& value) { m_authenticationStrategy = std::move(value); }
93 
94     /**
95      * <p>Optional. The authentication strategy associated with the configuration. The
96      * default is SIMPLE.</p>
97      */
WithAuthenticationStrategy(const AuthenticationStrategy & value)98     inline DescribeConfigurationResult& WithAuthenticationStrategy(const AuthenticationStrategy& value) { SetAuthenticationStrategy(value); return *this;}
99 
100     /**
101      * <p>Optional. The authentication strategy associated with the configuration. The
102      * default is SIMPLE.</p>
103      */
WithAuthenticationStrategy(AuthenticationStrategy && value)104     inline DescribeConfigurationResult& WithAuthenticationStrategy(AuthenticationStrategy&& value) { SetAuthenticationStrategy(std::move(value)); return *this;}
105 
106 
107     /**
108      * <p>Required. The date and time of the configuration revision.</p>
109      */
GetCreated()110     inline const Aws::Utils::DateTime& GetCreated() const{ return m_created; }
111 
112     /**
113      * <p>Required. The date and time of the configuration revision.</p>
114      */
SetCreated(const Aws::Utils::DateTime & value)115     inline void SetCreated(const Aws::Utils::DateTime& value) { m_created = value; }
116 
117     /**
118      * <p>Required. The date and time of the configuration revision.</p>
119      */
SetCreated(Aws::Utils::DateTime && value)120     inline void SetCreated(Aws::Utils::DateTime&& value) { m_created = std::move(value); }
121 
122     /**
123      * <p>Required. The date and time of the configuration revision.</p>
124      */
WithCreated(const Aws::Utils::DateTime & value)125     inline DescribeConfigurationResult& WithCreated(const Aws::Utils::DateTime& value) { SetCreated(value); return *this;}
126 
127     /**
128      * <p>Required. The date and time of the configuration revision.</p>
129      */
WithCreated(Aws::Utils::DateTime && value)130     inline DescribeConfigurationResult& WithCreated(Aws::Utils::DateTime&& value) { SetCreated(std::move(value)); return *this;}
131 
132 
133     /**
134      * <p>Required. The description of the configuration.</p>
135      */
GetDescription()136     inline const Aws::String& GetDescription() const{ return m_description; }
137 
138     /**
139      * <p>Required. The description of the configuration.</p>
140      */
SetDescription(const Aws::String & value)141     inline void SetDescription(const Aws::String& value) { m_description = value; }
142 
143     /**
144      * <p>Required. The description of the configuration.</p>
145      */
SetDescription(Aws::String && value)146     inline void SetDescription(Aws::String&& value) { m_description = std::move(value); }
147 
148     /**
149      * <p>Required. The description of the configuration.</p>
150      */
SetDescription(const char * value)151     inline void SetDescription(const char* value) { m_description.assign(value); }
152 
153     /**
154      * <p>Required. The description of the configuration.</p>
155      */
WithDescription(const Aws::String & value)156     inline DescribeConfigurationResult& WithDescription(const Aws::String& value) { SetDescription(value); return *this;}
157 
158     /**
159      * <p>Required. The description of the configuration.</p>
160      */
WithDescription(Aws::String && value)161     inline DescribeConfigurationResult& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;}
162 
163     /**
164      * <p>Required. The description of the configuration.</p>
165      */
WithDescription(const char * value)166     inline DescribeConfigurationResult& WithDescription(const char* value) { SetDescription(value); return *this;}
167 
168 
169     /**
170      * <p>Required. The type of broker engine. Currently, Amazon MQ supports ACTIVEMQ
171      * and RABBITMQ.</p>
172      */
GetEngineType()173     inline const EngineType& GetEngineType() const{ return m_engineType; }
174 
175     /**
176      * <p>Required. The type of broker engine. Currently, Amazon MQ supports ACTIVEMQ
177      * and RABBITMQ.</p>
178      */
SetEngineType(const EngineType & value)179     inline void SetEngineType(const EngineType& value) { m_engineType = value; }
180 
181     /**
182      * <p>Required. The type of broker engine. Currently, Amazon MQ supports ACTIVEMQ
183      * and RABBITMQ.</p>
184      */
SetEngineType(EngineType && value)185     inline void SetEngineType(EngineType&& value) { m_engineType = std::move(value); }
186 
187     /**
188      * <p>Required. The type of broker engine. Currently, Amazon MQ supports ACTIVEMQ
189      * and RABBITMQ.</p>
190      */
WithEngineType(const EngineType & value)191     inline DescribeConfigurationResult& WithEngineType(const EngineType& value) { SetEngineType(value); return *this;}
192 
193     /**
194      * <p>Required. The type of broker engine. Currently, Amazon MQ supports ACTIVEMQ
195      * and RABBITMQ.</p>
196      */
WithEngineType(EngineType && value)197     inline DescribeConfigurationResult& WithEngineType(EngineType&& value) { SetEngineType(std::move(value)); return *this;}
198 
199 
200     /**
201      * <p>Required. The broker engine's version. For a list of supported engine
202      * versions, see, <a
203      * href="https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker-engine.html">Supported
204      * engines</a>.</p>
205      */
GetEngineVersion()206     inline const Aws::String& GetEngineVersion() const{ return m_engineVersion; }
207 
208     /**
209      * <p>Required. The broker engine's version. For a list of supported engine
210      * versions, see, <a
211      * href="https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker-engine.html">Supported
212      * engines</a>.</p>
213      */
SetEngineVersion(const Aws::String & value)214     inline void SetEngineVersion(const Aws::String& value) { m_engineVersion = value; }
215 
216     /**
217      * <p>Required. The broker engine's version. For a list of supported engine
218      * versions, see, <a
219      * href="https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker-engine.html">Supported
220      * engines</a>.</p>
221      */
SetEngineVersion(Aws::String && value)222     inline void SetEngineVersion(Aws::String&& value) { m_engineVersion = std::move(value); }
223 
224     /**
225      * <p>Required. The broker engine's version. For a list of supported engine
226      * versions, see, <a
227      * href="https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker-engine.html">Supported
228      * engines</a>.</p>
229      */
SetEngineVersion(const char * value)230     inline void SetEngineVersion(const char* value) { m_engineVersion.assign(value); }
231 
232     /**
233      * <p>Required. The broker engine's version. For a list of supported engine
234      * versions, see, <a
235      * href="https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker-engine.html">Supported
236      * engines</a>.</p>
237      */
WithEngineVersion(const Aws::String & value)238     inline DescribeConfigurationResult& WithEngineVersion(const Aws::String& value) { SetEngineVersion(value); return *this;}
239 
240     /**
241      * <p>Required. The broker engine's version. For a list of supported engine
242      * versions, see, <a
243      * href="https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker-engine.html">Supported
244      * engines</a>.</p>
245      */
WithEngineVersion(Aws::String && value)246     inline DescribeConfigurationResult& WithEngineVersion(Aws::String&& value) { SetEngineVersion(std::move(value)); return *this;}
247 
248     /**
249      * <p>Required. The broker engine's version. For a list of supported engine
250      * versions, see, <a
251      * href="https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker-engine.html">Supported
252      * engines</a>.</p>
253      */
WithEngineVersion(const char * value)254     inline DescribeConfigurationResult& WithEngineVersion(const char* value) { SetEngineVersion(value); return *this;}
255 
256 
257     /**
258      * <p>Required. The unique ID that Amazon MQ generates for the configuration.</p>
259      */
GetId()260     inline const Aws::String& GetId() const{ return m_id; }
261 
262     /**
263      * <p>Required. The unique ID that Amazon MQ generates for the configuration.</p>
264      */
SetId(const Aws::String & value)265     inline void SetId(const Aws::String& value) { m_id = value; }
266 
267     /**
268      * <p>Required. The unique ID that Amazon MQ generates for the configuration.</p>
269      */
SetId(Aws::String && value)270     inline void SetId(Aws::String&& value) { m_id = std::move(value); }
271 
272     /**
273      * <p>Required. The unique ID that Amazon MQ generates for the configuration.</p>
274      */
SetId(const char * value)275     inline void SetId(const char* value) { m_id.assign(value); }
276 
277     /**
278      * <p>Required. The unique ID that Amazon MQ generates for the configuration.</p>
279      */
WithId(const Aws::String & value)280     inline DescribeConfigurationResult& WithId(const Aws::String& value) { SetId(value); return *this;}
281 
282     /**
283      * <p>Required. The unique ID that Amazon MQ generates for the configuration.</p>
284      */
WithId(Aws::String && value)285     inline DescribeConfigurationResult& WithId(Aws::String&& value) { SetId(std::move(value)); return *this;}
286 
287     /**
288      * <p>Required. The unique ID that Amazon MQ generates for the configuration.</p>
289      */
WithId(const char * value)290     inline DescribeConfigurationResult& WithId(const char* value) { SetId(value); return *this;}
291 
292 
293     /**
294      * <p>Required. The latest revision of the configuration.</p>
295      */
GetLatestRevision()296     inline const ConfigurationRevision& GetLatestRevision() const{ return m_latestRevision; }
297 
298     /**
299      * <p>Required. The latest revision of the configuration.</p>
300      */
SetLatestRevision(const ConfigurationRevision & value)301     inline void SetLatestRevision(const ConfigurationRevision& value) { m_latestRevision = value; }
302 
303     /**
304      * <p>Required. The latest revision of the configuration.</p>
305      */
SetLatestRevision(ConfigurationRevision && value)306     inline void SetLatestRevision(ConfigurationRevision&& value) { m_latestRevision = std::move(value); }
307 
308     /**
309      * <p>Required. The latest revision of the configuration.</p>
310      */
WithLatestRevision(const ConfigurationRevision & value)311     inline DescribeConfigurationResult& WithLatestRevision(const ConfigurationRevision& value) { SetLatestRevision(value); return *this;}
312 
313     /**
314      * <p>Required. The latest revision of the configuration.</p>
315      */
WithLatestRevision(ConfigurationRevision && value)316     inline DescribeConfigurationResult& WithLatestRevision(ConfigurationRevision&& value) { SetLatestRevision(std::move(value)); return *this;}
317 
318 
319     /**
320      * <p>Required. The name of the configuration. This value can contain only
321      * alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~).
322      * This value must be 1-150 characters long.</p>
323      */
GetName()324     inline const Aws::String& GetName() const{ return m_name; }
325 
326     /**
327      * <p>Required. The name of the configuration. This value can contain only
328      * alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~).
329      * This value must be 1-150 characters long.</p>
330      */
SetName(const Aws::String & value)331     inline void SetName(const Aws::String& value) { m_name = value; }
332 
333     /**
334      * <p>Required. The name of the configuration. This value can contain only
335      * alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~).
336      * This value must be 1-150 characters long.</p>
337      */
SetName(Aws::String && value)338     inline void SetName(Aws::String&& value) { m_name = std::move(value); }
339 
340     /**
341      * <p>Required. The name of the configuration. This value can contain only
342      * alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~).
343      * This value must be 1-150 characters long.</p>
344      */
SetName(const char * value)345     inline void SetName(const char* value) { m_name.assign(value); }
346 
347     /**
348      * <p>Required. The name of the configuration. This value can contain only
349      * alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~).
350      * This value must be 1-150 characters long.</p>
351      */
WithName(const Aws::String & value)352     inline DescribeConfigurationResult& WithName(const Aws::String& value) { SetName(value); return *this;}
353 
354     /**
355      * <p>Required. The name of the configuration. This value can contain only
356      * alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~).
357      * This value must be 1-150 characters long.</p>
358      */
WithName(Aws::String && value)359     inline DescribeConfigurationResult& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;}
360 
361     /**
362      * <p>Required. The name of the configuration. This value can contain only
363      * alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~).
364      * This value must be 1-150 characters long.</p>
365      */
WithName(const char * value)366     inline DescribeConfigurationResult& WithName(const char* value) { SetName(value); return *this;}
367 
368 
369     /**
370      * <p>The list of all tags associated with this configuration.</p>
371      */
GetTags()372     inline const Aws::Map<Aws::String, Aws::String>& GetTags() const{ return m_tags; }
373 
374     /**
375      * <p>The list of all tags associated with this configuration.</p>
376      */
SetTags(const Aws::Map<Aws::String,Aws::String> & value)377     inline void SetTags(const Aws::Map<Aws::String, Aws::String>& value) { m_tags = value; }
378 
379     /**
380      * <p>The list of all tags associated with this configuration.</p>
381      */
SetTags(Aws::Map<Aws::String,Aws::String> && value)382     inline void SetTags(Aws::Map<Aws::String, Aws::String>&& value) { m_tags = std::move(value); }
383 
384     /**
385      * <p>The list of all tags associated with this configuration.</p>
386      */
WithTags(const Aws::Map<Aws::String,Aws::String> & value)387     inline DescribeConfigurationResult& WithTags(const Aws::Map<Aws::String, Aws::String>& value) { SetTags(value); return *this;}
388 
389     /**
390      * <p>The list of all tags associated with this configuration.</p>
391      */
WithTags(Aws::Map<Aws::String,Aws::String> && value)392     inline DescribeConfigurationResult& WithTags(Aws::Map<Aws::String, Aws::String>&& value) { SetTags(std::move(value)); return *this;}
393 
394     /**
395      * <p>The list of all tags associated with this configuration.</p>
396      */
AddTags(const Aws::String & key,const Aws::String & value)397     inline DescribeConfigurationResult& AddTags(const Aws::String& key, const Aws::String& value) { m_tags.emplace(key, value); return *this; }
398 
399     /**
400      * <p>The list of all tags associated with this configuration.</p>
401      */
AddTags(Aws::String && key,const Aws::String & value)402     inline DescribeConfigurationResult& AddTags(Aws::String&& key, const Aws::String& value) { m_tags.emplace(std::move(key), value); return *this; }
403 
404     /**
405      * <p>The list of all tags associated with this configuration.</p>
406      */
AddTags(const Aws::String & key,Aws::String && value)407     inline DescribeConfigurationResult& AddTags(const Aws::String& key, Aws::String&& value) { m_tags.emplace(key, std::move(value)); return *this; }
408 
409     /**
410      * <p>The list of all tags associated with this configuration.</p>
411      */
AddTags(Aws::String && key,Aws::String && value)412     inline DescribeConfigurationResult& AddTags(Aws::String&& key, Aws::String&& value) { m_tags.emplace(std::move(key), std::move(value)); return *this; }
413 
414     /**
415      * <p>The list of all tags associated with this configuration.</p>
416      */
AddTags(const char * key,Aws::String && value)417     inline DescribeConfigurationResult& AddTags(const char* key, Aws::String&& value) { m_tags.emplace(key, std::move(value)); return *this; }
418 
419     /**
420      * <p>The list of all tags associated with this configuration.</p>
421      */
AddTags(Aws::String && key,const char * value)422     inline DescribeConfigurationResult& AddTags(Aws::String&& key, const char* value) { m_tags.emplace(std::move(key), value); return *this; }
423 
424     /**
425      * <p>The list of all tags associated with this configuration.</p>
426      */
AddTags(const char * key,const char * value)427     inline DescribeConfigurationResult& AddTags(const char* key, const char* value) { m_tags.emplace(key, value); return *this; }
428 
429   private:
430 
431     Aws::String m_arn;
432 
433     AuthenticationStrategy m_authenticationStrategy;
434 
435     Aws::Utils::DateTime m_created;
436 
437     Aws::String m_description;
438 
439     EngineType m_engineType;
440 
441     Aws::String m_engineVersion;
442 
443     Aws::String m_id;
444 
445     ConfigurationRevision m_latestRevision;
446 
447     Aws::String m_name;
448 
449     Aws::Map<Aws::String, Aws::String> m_tags;
450   };
451 
452 } // namespace Model
453 } // namespace MQ
454 } // namespace Aws
455