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/docdb/DocDB_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSStreamFwd.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/core/utils/DateTime.h>
11 #include <utility>
12 
13 namespace Aws
14 {
15 namespace Utils
16 {
17 namespace Xml
18 {
19   class XmlNode;
20 } // namespace Xml
21 } // namespace Utils
22 namespace DocDB
23 {
24 namespace Model
25 {
26 
27   /**
28    * <p>A certificate authority (CA) certificate for an account.</p><p><h3>See
29    * Also:</h3>   <a
30    * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/Certificate">AWS
31    * API Reference</a></p>
32    */
33   class AWS_DOCDB_API Certificate
34   {
35   public:
36     Certificate();
37     Certificate(const Aws::Utils::Xml::XmlNode& xmlNode);
38     Certificate& operator=(const Aws::Utils::Xml::XmlNode& xmlNode);
39 
40     void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const;
41     void OutputToStream(Aws::OStream& oStream, const char* location) const;
42 
43 
44     /**
45      * <p>The unique key that identifies a certificate.</p> <p>Example:
46      * <code>rds-ca-2019</code> </p>
47      */
GetCertificateIdentifier()48     inline const Aws::String& GetCertificateIdentifier() const{ return m_certificateIdentifier; }
49 
50     /**
51      * <p>The unique key that identifies a certificate.</p> <p>Example:
52      * <code>rds-ca-2019</code> </p>
53      */
CertificateIdentifierHasBeenSet()54     inline bool CertificateIdentifierHasBeenSet() const { return m_certificateIdentifierHasBeenSet; }
55 
56     /**
57      * <p>The unique key that identifies a certificate.</p> <p>Example:
58      * <code>rds-ca-2019</code> </p>
59      */
SetCertificateIdentifier(const Aws::String & value)60     inline void SetCertificateIdentifier(const Aws::String& value) { m_certificateIdentifierHasBeenSet = true; m_certificateIdentifier = value; }
61 
62     /**
63      * <p>The unique key that identifies a certificate.</p> <p>Example:
64      * <code>rds-ca-2019</code> </p>
65      */
SetCertificateIdentifier(Aws::String && value)66     inline void SetCertificateIdentifier(Aws::String&& value) { m_certificateIdentifierHasBeenSet = true; m_certificateIdentifier = std::move(value); }
67 
68     /**
69      * <p>The unique key that identifies a certificate.</p> <p>Example:
70      * <code>rds-ca-2019</code> </p>
71      */
SetCertificateIdentifier(const char * value)72     inline void SetCertificateIdentifier(const char* value) { m_certificateIdentifierHasBeenSet = true; m_certificateIdentifier.assign(value); }
73 
74     /**
75      * <p>The unique key that identifies a certificate.</p> <p>Example:
76      * <code>rds-ca-2019</code> </p>
77      */
WithCertificateIdentifier(const Aws::String & value)78     inline Certificate& WithCertificateIdentifier(const Aws::String& value) { SetCertificateIdentifier(value); return *this;}
79 
80     /**
81      * <p>The unique key that identifies a certificate.</p> <p>Example:
82      * <code>rds-ca-2019</code> </p>
83      */
WithCertificateIdentifier(Aws::String && value)84     inline Certificate& WithCertificateIdentifier(Aws::String&& value) { SetCertificateIdentifier(std::move(value)); return *this;}
85 
86     /**
87      * <p>The unique key that identifies a certificate.</p> <p>Example:
88      * <code>rds-ca-2019</code> </p>
89      */
WithCertificateIdentifier(const char * value)90     inline Certificate& WithCertificateIdentifier(const char* value) { SetCertificateIdentifier(value); return *this;}
91 
92 
93     /**
94      * <p>The type of the certificate.</p> <p>Example: <code>CA</code> </p>
95      */
GetCertificateType()96     inline const Aws::String& GetCertificateType() const{ return m_certificateType; }
97 
98     /**
99      * <p>The type of the certificate.</p> <p>Example: <code>CA</code> </p>
100      */
CertificateTypeHasBeenSet()101     inline bool CertificateTypeHasBeenSet() const { return m_certificateTypeHasBeenSet; }
102 
103     /**
104      * <p>The type of the certificate.</p> <p>Example: <code>CA</code> </p>
105      */
SetCertificateType(const Aws::String & value)106     inline void SetCertificateType(const Aws::String& value) { m_certificateTypeHasBeenSet = true; m_certificateType = value; }
107 
108     /**
109      * <p>The type of the certificate.</p> <p>Example: <code>CA</code> </p>
110      */
SetCertificateType(Aws::String && value)111     inline void SetCertificateType(Aws::String&& value) { m_certificateTypeHasBeenSet = true; m_certificateType = std::move(value); }
112 
113     /**
114      * <p>The type of the certificate.</p> <p>Example: <code>CA</code> </p>
115      */
SetCertificateType(const char * value)116     inline void SetCertificateType(const char* value) { m_certificateTypeHasBeenSet = true; m_certificateType.assign(value); }
117 
118     /**
119      * <p>The type of the certificate.</p> <p>Example: <code>CA</code> </p>
120      */
WithCertificateType(const Aws::String & value)121     inline Certificate& WithCertificateType(const Aws::String& value) { SetCertificateType(value); return *this;}
122 
123     /**
124      * <p>The type of the certificate.</p> <p>Example: <code>CA</code> </p>
125      */
WithCertificateType(Aws::String && value)126     inline Certificate& WithCertificateType(Aws::String&& value) { SetCertificateType(std::move(value)); return *this;}
127 
128     /**
129      * <p>The type of the certificate.</p> <p>Example: <code>CA</code> </p>
130      */
WithCertificateType(const char * value)131     inline Certificate& WithCertificateType(const char* value) { SetCertificateType(value); return *this;}
132 
133 
134     /**
135      * <p>The thumbprint of the certificate.</p>
136      */
GetThumbprint()137     inline const Aws::String& GetThumbprint() const{ return m_thumbprint; }
138 
139     /**
140      * <p>The thumbprint of the certificate.</p>
141      */
ThumbprintHasBeenSet()142     inline bool ThumbprintHasBeenSet() const { return m_thumbprintHasBeenSet; }
143 
144     /**
145      * <p>The thumbprint of the certificate.</p>
146      */
SetThumbprint(const Aws::String & value)147     inline void SetThumbprint(const Aws::String& value) { m_thumbprintHasBeenSet = true; m_thumbprint = value; }
148 
149     /**
150      * <p>The thumbprint of the certificate.</p>
151      */
SetThumbprint(Aws::String && value)152     inline void SetThumbprint(Aws::String&& value) { m_thumbprintHasBeenSet = true; m_thumbprint = std::move(value); }
153 
154     /**
155      * <p>The thumbprint of the certificate.</p>
156      */
SetThumbprint(const char * value)157     inline void SetThumbprint(const char* value) { m_thumbprintHasBeenSet = true; m_thumbprint.assign(value); }
158 
159     /**
160      * <p>The thumbprint of the certificate.</p>
161      */
WithThumbprint(const Aws::String & value)162     inline Certificate& WithThumbprint(const Aws::String& value) { SetThumbprint(value); return *this;}
163 
164     /**
165      * <p>The thumbprint of the certificate.</p>
166      */
WithThumbprint(Aws::String && value)167     inline Certificate& WithThumbprint(Aws::String&& value) { SetThumbprint(std::move(value)); return *this;}
168 
169     /**
170      * <p>The thumbprint of the certificate.</p>
171      */
WithThumbprint(const char * value)172     inline Certificate& WithThumbprint(const char* value) { SetThumbprint(value); return *this;}
173 
174 
175     /**
176      * <p>The starting date-time from which the certificate is valid.</p> <p>Example:
177      * <code>2019-07-31T17:57:09Z</code> </p>
178      */
GetValidFrom()179     inline const Aws::Utils::DateTime& GetValidFrom() const{ return m_validFrom; }
180 
181     /**
182      * <p>The starting date-time from which the certificate is valid.</p> <p>Example:
183      * <code>2019-07-31T17:57:09Z</code> </p>
184      */
ValidFromHasBeenSet()185     inline bool ValidFromHasBeenSet() const { return m_validFromHasBeenSet; }
186 
187     /**
188      * <p>The starting date-time from which the certificate is valid.</p> <p>Example:
189      * <code>2019-07-31T17:57:09Z</code> </p>
190      */
SetValidFrom(const Aws::Utils::DateTime & value)191     inline void SetValidFrom(const Aws::Utils::DateTime& value) { m_validFromHasBeenSet = true; m_validFrom = value; }
192 
193     /**
194      * <p>The starting date-time from which the certificate is valid.</p> <p>Example:
195      * <code>2019-07-31T17:57:09Z</code> </p>
196      */
SetValidFrom(Aws::Utils::DateTime && value)197     inline void SetValidFrom(Aws::Utils::DateTime&& value) { m_validFromHasBeenSet = true; m_validFrom = std::move(value); }
198 
199     /**
200      * <p>The starting date-time from which the certificate is valid.</p> <p>Example:
201      * <code>2019-07-31T17:57:09Z</code> </p>
202      */
WithValidFrom(const Aws::Utils::DateTime & value)203     inline Certificate& WithValidFrom(const Aws::Utils::DateTime& value) { SetValidFrom(value); return *this;}
204 
205     /**
206      * <p>The starting date-time from which the certificate is valid.</p> <p>Example:
207      * <code>2019-07-31T17:57:09Z</code> </p>
208      */
WithValidFrom(Aws::Utils::DateTime && value)209     inline Certificate& WithValidFrom(Aws::Utils::DateTime&& value) { SetValidFrom(std::move(value)); return *this;}
210 
211 
212     /**
213      * <p>The date-time after which the certificate is no longer valid.</p> <p>Example:
214      * <code>2024-07-31T17:57:09Z</code> </p>
215      */
GetValidTill()216     inline const Aws::Utils::DateTime& GetValidTill() const{ return m_validTill; }
217 
218     /**
219      * <p>The date-time after which the certificate is no longer valid.</p> <p>Example:
220      * <code>2024-07-31T17:57:09Z</code> </p>
221      */
ValidTillHasBeenSet()222     inline bool ValidTillHasBeenSet() const { return m_validTillHasBeenSet; }
223 
224     /**
225      * <p>The date-time after which the certificate is no longer valid.</p> <p>Example:
226      * <code>2024-07-31T17:57:09Z</code> </p>
227      */
SetValidTill(const Aws::Utils::DateTime & value)228     inline void SetValidTill(const Aws::Utils::DateTime& value) { m_validTillHasBeenSet = true; m_validTill = value; }
229 
230     /**
231      * <p>The date-time after which the certificate is no longer valid.</p> <p>Example:
232      * <code>2024-07-31T17:57:09Z</code> </p>
233      */
SetValidTill(Aws::Utils::DateTime && value)234     inline void SetValidTill(Aws::Utils::DateTime&& value) { m_validTillHasBeenSet = true; m_validTill = std::move(value); }
235 
236     /**
237      * <p>The date-time after which the certificate is no longer valid.</p> <p>Example:
238      * <code>2024-07-31T17:57:09Z</code> </p>
239      */
WithValidTill(const Aws::Utils::DateTime & value)240     inline Certificate& WithValidTill(const Aws::Utils::DateTime& value) { SetValidTill(value); return *this;}
241 
242     /**
243      * <p>The date-time after which the certificate is no longer valid.</p> <p>Example:
244      * <code>2024-07-31T17:57:09Z</code> </p>
245      */
WithValidTill(Aws::Utils::DateTime && value)246     inline Certificate& WithValidTill(Aws::Utils::DateTime&& value) { SetValidTill(std::move(value)); return *this;}
247 
248 
249     /**
250      * <p>The Amazon Resource Name (ARN) for the certificate.</p> <p>Example:
251      * <code>arn:aws:rds:us-east-1::cert:rds-ca-2019</code> </p>
252      */
GetCertificateArn()253     inline const Aws::String& GetCertificateArn() const{ return m_certificateArn; }
254 
255     /**
256      * <p>The Amazon Resource Name (ARN) for the certificate.</p> <p>Example:
257      * <code>arn:aws:rds:us-east-1::cert:rds-ca-2019</code> </p>
258      */
CertificateArnHasBeenSet()259     inline bool CertificateArnHasBeenSet() const { return m_certificateArnHasBeenSet; }
260 
261     /**
262      * <p>The Amazon Resource Name (ARN) for the certificate.</p> <p>Example:
263      * <code>arn:aws:rds:us-east-1::cert:rds-ca-2019</code> </p>
264      */
SetCertificateArn(const Aws::String & value)265     inline void SetCertificateArn(const Aws::String& value) { m_certificateArnHasBeenSet = true; m_certificateArn = value; }
266 
267     /**
268      * <p>The Amazon Resource Name (ARN) for the certificate.</p> <p>Example:
269      * <code>arn:aws:rds:us-east-1::cert:rds-ca-2019</code> </p>
270      */
SetCertificateArn(Aws::String && value)271     inline void SetCertificateArn(Aws::String&& value) { m_certificateArnHasBeenSet = true; m_certificateArn = std::move(value); }
272 
273     /**
274      * <p>The Amazon Resource Name (ARN) for the certificate.</p> <p>Example:
275      * <code>arn:aws:rds:us-east-1::cert:rds-ca-2019</code> </p>
276      */
SetCertificateArn(const char * value)277     inline void SetCertificateArn(const char* value) { m_certificateArnHasBeenSet = true; m_certificateArn.assign(value); }
278 
279     /**
280      * <p>The Amazon Resource Name (ARN) for the certificate.</p> <p>Example:
281      * <code>arn:aws:rds:us-east-1::cert:rds-ca-2019</code> </p>
282      */
WithCertificateArn(const Aws::String & value)283     inline Certificate& WithCertificateArn(const Aws::String& value) { SetCertificateArn(value); return *this;}
284 
285     /**
286      * <p>The Amazon Resource Name (ARN) for the certificate.</p> <p>Example:
287      * <code>arn:aws:rds:us-east-1::cert:rds-ca-2019</code> </p>
288      */
WithCertificateArn(Aws::String && value)289     inline Certificate& WithCertificateArn(Aws::String&& value) { SetCertificateArn(std::move(value)); return *this;}
290 
291     /**
292      * <p>The Amazon Resource Name (ARN) for the certificate.</p> <p>Example:
293      * <code>arn:aws:rds:us-east-1::cert:rds-ca-2019</code> </p>
294      */
WithCertificateArn(const char * value)295     inline Certificate& WithCertificateArn(const char* value) { SetCertificateArn(value); return *this;}
296 
297   private:
298 
299     Aws::String m_certificateIdentifier;
300     bool m_certificateIdentifierHasBeenSet;
301 
302     Aws::String m_certificateType;
303     bool m_certificateTypeHasBeenSet;
304 
305     Aws::String m_thumbprint;
306     bool m_thumbprintHasBeenSet;
307 
308     Aws::Utils::DateTime m_validFrom;
309     bool m_validFromHasBeenSet;
310 
311     Aws::Utils::DateTime m_validTill;
312     bool m_validTillHasBeenSet;
313 
314     Aws::String m_certificateArn;
315     bool m_certificateArnHasBeenSet;
316   };
317 
318 } // namespace Model
319 } // namespace DocDB
320 } // namespace Aws
321