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/glue/Glue_EXPORTS.h>
8 #include <aws/glue/model/EncryptionAtRest.h>
9 #include <aws/glue/model/ConnectionPasswordEncryption.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 Glue
23 {
24 namespace Model
25 {
26 
27   /**
28    * <p>Contains configuration information for maintaining Data Catalog
29    * security.</p><p><h3>See Also:</h3>   <a
30    * href="http://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/DataCatalogEncryptionSettings">AWS
31    * API Reference</a></p>
32    */
33   class AWS_GLUE_API DataCatalogEncryptionSettings
34   {
35   public:
36     DataCatalogEncryptionSettings();
37     DataCatalogEncryptionSettings(Aws::Utils::Json::JsonView jsonValue);
38     DataCatalogEncryptionSettings& operator=(Aws::Utils::Json::JsonView jsonValue);
39     Aws::Utils::Json::JsonValue Jsonize() const;
40 
41 
42     /**
43      * <p>Specifies the encryption-at-rest configuration for the Data Catalog.</p>
44      */
GetEncryptionAtRest()45     inline const EncryptionAtRest& GetEncryptionAtRest() const{ return m_encryptionAtRest; }
46 
47     /**
48      * <p>Specifies the encryption-at-rest configuration for the Data Catalog.</p>
49      */
EncryptionAtRestHasBeenSet()50     inline bool EncryptionAtRestHasBeenSet() const { return m_encryptionAtRestHasBeenSet; }
51 
52     /**
53      * <p>Specifies the encryption-at-rest configuration for the Data Catalog.</p>
54      */
SetEncryptionAtRest(const EncryptionAtRest & value)55     inline void SetEncryptionAtRest(const EncryptionAtRest& value) { m_encryptionAtRestHasBeenSet = true; m_encryptionAtRest = value; }
56 
57     /**
58      * <p>Specifies the encryption-at-rest configuration for the Data Catalog.</p>
59      */
SetEncryptionAtRest(EncryptionAtRest && value)60     inline void SetEncryptionAtRest(EncryptionAtRest&& value) { m_encryptionAtRestHasBeenSet = true; m_encryptionAtRest = std::move(value); }
61 
62     /**
63      * <p>Specifies the encryption-at-rest configuration for the Data Catalog.</p>
64      */
WithEncryptionAtRest(const EncryptionAtRest & value)65     inline DataCatalogEncryptionSettings& WithEncryptionAtRest(const EncryptionAtRest& value) { SetEncryptionAtRest(value); return *this;}
66 
67     /**
68      * <p>Specifies the encryption-at-rest configuration for the Data Catalog.</p>
69      */
WithEncryptionAtRest(EncryptionAtRest && value)70     inline DataCatalogEncryptionSettings& WithEncryptionAtRest(EncryptionAtRest&& value) { SetEncryptionAtRest(std::move(value)); return *this;}
71 
72 
73     /**
74      * <p>When connection password protection is enabled, the Data Catalog uses a
75      * customer-provided key to encrypt the password as part of
76      * <code>CreateConnection</code> or <code>UpdateConnection</code> and store it in
77      * the <code>ENCRYPTED_PASSWORD</code> field in the connection properties. You can
78      * enable catalog encryption or only password encryption.</p>
79      */
GetConnectionPasswordEncryption()80     inline const ConnectionPasswordEncryption& GetConnectionPasswordEncryption() const{ return m_connectionPasswordEncryption; }
81 
82     /**
83      * <p>When connection password protection is enabled, the Data Catalog uses a
84      * customer-provided key to encrypt the password as part of
85      * <code>CreateConnection</code> or <code>UpdateConnection</code> and store it in
86      * the <code>ENCRYPTED_PASSWORD</code> field in the connection properties. You can
87      * enable catalog encryption or only password encryption.</p>
88      */
ConnectionPasswordEncryptionHasBeenSet()89     inline bool ConnectionPasswordEncryptionHasBeenSet() const { return m_connectionPasswordEncryptionHasBeenSet; }
90 
91     /**
92      * <p>When connection password protection is enabled, the Data Catalog uses a
93      * customer-provided key to encrypt the password as part of
94      * <code>CreateConnection</code> or <code>UpdateConnection</code> and store it in
95      * the <code>ENCRYPTED_PASSWORD</code> field in the connection properties. You can
96      * enable catalog encryption or only password encryption.</p>
97      */
SetConnectionPasswordEncryption(const ConnectionPasswordEncryption & value)98     inline void SetConnectionPasswordEncryption(const ConnectionPasswordEncryption& value) { m_connectionPasswordEncryptionHasBeenSet = true; m_connectionPasswordEncryption = value; }
99 
100     /**
101      * <p>When connection password protection is enabled, the Data Catalog uses a
102      * customer-provided key to encrypt the password as part of
103      * <code>CreateConnection</code> or <code>UpdateConnection</code> and store it in
104      * the <code>ENCRYPTED_PASSWORD</code> field in the connection properties. You can
105      * enable catalog encryption or only password encryption.</p>
106      */
SetConnectionPasswordEncryption(ConnectionPasswordEncryption && value)107     inline void SetConnectionPasswordEncryption(ConnectionPasswordEncryption&& value) { m_connectionPasswordEncryptionHasBeenSet = true; m_connectionPasswordEncryption = std::move(value); }
108 
109     /**
110      * <p>When connection password protection is enabled, the Data Catalog uses a
111      * customer-provided key to encrypt the password as part of
112      * <code>CreateConnection</code> or <code>UpdateConnection</code> and store it in
113      * the <code>ENCRYPTED_PASSWORD</code> field in the connection properties. You can
114      * enable catalog encryption or only password encryption.</p>
115      */
WithConnectionPasswordEncryption(const ConnectionPasswordEncryption & value)116     inline DataCatalogEncryptionSettings& WithConnectionPasswordEncryption(const ConnectionPasswordEncryption& value) { SetConnectionPasswordEncryption(value); return *this;}
117 
118     /**
119      * <p>When connection password protection is enabled, the Data Catalog uses a
120      * customer-provided key to encrypt the password as part of
121      * <code>CreateConnection</code> or <code>UpdateConnection</code> and store it in
122      * the <code>ENCRYPTED_PASSWORD</code> field in the connection properties. You can
123      * enable catalog encryption or only password encryption.</p>
124      */
WithConnectionPasswordEncryption(ConnectionPasswordEncryption && value)125     inline DataCatalogEncryptionSettings& WithConnectionPasswordEncryption(ConnectionPasswordEncryption&& value) { SetConnectionPasswordEncryption(std::move(value)); return *this;}
126 
127   private:
128 
129     EncryptionAtRest m_encryptionAtRest;
130     bool m_encryptionAtRestHasBeenSet;
131 
132     ConnectionPasswordEncryption m_connectionPasswordEncryption;
133     bool m_connectionPasswordEncryptionHasBeenSet;
134   };
135 
136 } // namespace Model
137 } // namespace Glue
138 } // namespace Aws
139