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/xray/XRay_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/xray/model/EncryptionStatus.h>
10 #include <aws/xray/model/EncryptionType.h>
11 #include <utility>
12 
13 namespace Aws
14 {
15 namespace Utils
16 {
17 namespace Json
18 {
19   class JsonValue;
20   class JsonView;
21 } // namespace Json
22 } // namespace Utils
23 namespace XRay
24 {
25 namespace Model
26 {
27 
28   /**
29    * <p>A configuration document that specifies encryption configuration
30    * settings.</p><p><h3>See Also:</h3>   <a
31    * href="http://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/EncryptionConfig">AWS
32    * API Reference</a></p>
33    */
34   class AWS_XRAY_API EncryptionConfig
35   {
36   public:
37     EncryptionConfig();
38     EncryptionConfig(Aws::Utils::Json::JsonView jsonValue);
39     EncryptionConfig& operator=(Aws::Utils::Json::JsonView jsonValue);
40     Aws::Utils::Json::JsonValue Jsonize() const;
41 
42 
43     /**
44      * <p>The ID of the KMS key used for encryption, if applicable.</p>
45      */
GetKeyId()46     inline const Aws::String& GetKeyId() const{ return m_keyId; }
47 
48     /**
49      * <p>The ID of the KMS key used for encryption, if applicable.</p>
50      */
KeyIdHasBeenSet()51     inline bool KeyIdHasBeenSet() const { return m_keyIdHasBeenSet; }
52 
53     /**
54      * <p>The ID of the KMS key used for encryption, if applicable.</p>
55      */
SetKeyId(const Aws::String & value)56     inline void SetKeyId(const Aws::String& value) { m_keyIdHasBeenSet = true; m_keyId = value; }
57 
58     /**
59      * <p>The ID of the KMS key used for encryption, if applicable.</p>
60      */
SetKeyId(Aws::String && value)61     inline void SetKeyId(Aws::String&& value) { m_keyIdHasBeenSet = true; m_keyId = std::move(value); }
62 
63     /**
64      * <p>The ID of the KMS key used for encryption, if applicable.</p>
65      */
SetKeyId(const char * value)66     inline void SetKeyId(const char* value) { m_keyIdHasBeenSet = true; m_keyId.assign(value); }
67 
68     /**
69      * <p>The ID of the KMS key used for encryption, if applicable.</p>
70      */
WithKeyId(const Aws::String & value)71     inline EncryptionConfig& WithKeyId(const Aws::String& value) { SetKeyId(value); return *this;}
72 
73     /**
74      * <p>The ID of the KMS key used for encryption, if applicable.</p>
75      */
WithKeyId(Aws::String && value)76     inline EncryptionConfig& WithKeyId(Aws::String&& value) { SetKeyId(std::move(value)); return *this;}
77 
78     /**
79      * <p>The ID of the KMS key used for encryption, if applicable.</p>
80      */
WithKeyId(const char * value)81     inline EncryptionConfig& WithKeyId(const char* value) { SetKeyId(value); return *this;}
82 
83 
84     /**
85      * <p>The encryption status. While the status is <code>UPDATING</code>, X-Ray may
86      * encrypt data with a combination of the new and old settings.</p>
87      */
GetStatus()88     inline const EncryptionStatus& GetStatus() const{ return m_status; }
89 
90     /**
91      * <p>The encryption status. While the status is <code>UPDATING</code>, X-Ray may
92      * encrypt data with a combination of the new and old settings.</p>
93      */
StatusHasBeenSet()94     inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; }
95 
96     /**
97      * <p>The encryption status. While the status is <code>UPDATING</code>, X-Ray may
98      * encrypt data with a combination of the new and old settings.</p>
99      */
SetStatus(const EncryptionStatus & value)100     inline void SetStatus(const EncryptionStatus& value) { m_statusHasBeenSet = true; m_status = value; }
101 
102     /**
103      * <p>The encryption status. While the status is <code>UPDATING</code>, X-Ray may
104      * encrypt data with a combination of the new and old settings.</p>
105      */
SetStatus(EncryptionStatus && value)106     inline void SetStatus(EncryptionStatus&& value) { m_statusHasBeenSet = true; m_status = std::move(value); }
107 
108     /**
109      * <p>The encryption status. While the status is <code>UPDATING</code>, X-Ray may
110      * encrypt data with a combination of the new and old settings.</p>
111      */
WithStatus(const EncryptionStatus & value)112     inline EncryptionConfig& WithStatus(const EncryptionStatus& value) { SetStatus(value); return *this;}
113 
114     /**
115      * <p>The encryption status. While the status is <code>UPDATING</code>, X-Ray may
116      * encrypt data with a combination of the new and old settings.</p>
117      */
WithStatus(EncryptionStatus && value)118     inline EncryptionConfig& WithStatus(EncryptionStatus&& value) { SetStatus(std::move(value)); return *this;}
119 
120 
121     /**
122      * <p>The type of encryption. Set to <code>KMS</code> for encryption with KMS keys.
123      * Set to <code>NONE</code> for default encryption.</p>
124      */
GetType()125     inline const EncryptionType& GetType() const{ return m_type; }
126 
127     /**
128      * <p>The type of encryption. Set to <code>KMS</code> for encryption with KMS keys.
129      * Set to <code>NONE</code> for default encryption.</p>
130      */
TypeHasBeenSet()131     inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; }
132 
133     /**
134      * <p>The type of encryption. Set to <code>KMS</code> for encryption with KMS keys.
135      * Set to <code>NONE</code> for default encryption.</p>
136      */
SetType(const EncryptionType & value)137     inline void SetType(const EncryptionType& value) { m_typeHasBeenSet = true; m_type = value; }
138 
139     /**
140      * <p>The type of encryption. Set to <code>KMS</code> for encryption with KMS keys.
141      * Set to <code>NONE</code> for default encryption.</p>
142      */
SetType(EncryptionType && value)143     inline void SetType(EncryptionType&& value) { m_typeHasBeenSet = true; m_type = std::move(value); }
144 
145     /**
146      * <p>The type of encryption. Set to <code>KMS</code> for encryption with KMS keys.
147      * Set to <code>NONE</code> for default encryption.</p>
148      */
WithType(const EncryptionType & value)149     inline EncryptionConfig& WithType(const EncryptionType& value) { SetType(value); return *this;}
150 
151     /**
152      * <p>The type of encryption. Set to <code>KMS</code> for encryption with KMS keys.
153      * Set to <code>NONE</code> for default encryption.</p>
154      */
WithType(EncryptionType && value)155     inline EncryptionConfig& WithType(EncryptionType&& value) { SetType(std::move(value)); return *this;}
156 
157   private:
158 
159     Aws::String m_keyId;
160     bool m_keyIdHasBeenSet;
161 
162     EncryptionStatus m_status;
163     bool m_statusHasBeenSet;
164 
165     EncryptionType m_type;
166     bool m_typeHasBeenSet;
167   };
168 
169 } // namespace Model
170 } // namespace XRay
171 } // namespace Aws
172