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/CatalogEncryptionMode.h>
9 #include <aws/core/utils/memory/stl/AWSString.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>Specifies the encryption-at-rest configuration for the Data
29    * Catalog.</p><p><h3>See Also:</h3>   <a
30    * href="http://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/EncryptionAtRest">AWS
31    * API Reference</a></p>
32    */
33   class AWS_GLUE_API EncryptionAtRest
34   {
35   public:
36     EncryptionAtRest();
37     EncryptionAtRest(Aws::Utils::Json::JsonView jsonValue);
38     EncryptionAtRest& operator=(Aws::Utils::Json::JsonView jsonValue);
39     Aws::Utils::Json::JsonValue Jsonize() const;
40 
41 
42     /**
43      * <p>The encryption-at-rest mode for encrypting Data Catalog data.</p>
44      */
GetCatalogEncryptionMode()45     inline const CatalogEncryptionMode& GetCatalogEncryptionMode() const{ return m_catalogEncryptionMode; }
46 
47     /**
48      * <p>The encryption-at-rest mode for encrypting Data Catalog data.</p>
49      */
CatalogEncryptionModeHasBeenSet()50     inline bool CatalogEncryptionModeHasBeenSet() const { return m_catalogEncryptionModeHasBeenSet; }
51 
52     /**
53      * <p>The encryption-at-rest mode for encrypting Data Catalog data.</p>
54      */
SetCatalogEncryptionMode(const CatalogEncryptionMode & value)55     inline void SetCatalogEncryptionMode(const CatalogEncryptionMode& value) { m_catalogEncryptionModeHasBeenSet = true; m_catalogEncryptionMode = value; }
56 
57     /**
58      * <p>The encryption-at-rest mode for encrypting Data Catalog data.</p>
59      */
SetCatalogEncryptionMode(CatalogEncryptionMode && value)60     inline void SetCatalogEncryptionMode(CatalogEncryptionMode&& value) { m_catalogEncryptionModeHasBeenSet = true; m_catalogEncryptionMode = std::move(value); }
61 
62     /**
63      * <p>The encryption-at-rest mode for encrypting Data Catalog data.</p>
64      */
WithCatalogEncryptionMode(const CatalogEncryptionMode & value)65     inline EncryptionAtRest& WithCatalogEncryptionMode(const CatalogEncryptionMode& value) { SetCatalogEncryptionMode(value); return *this;}
66 
67     /**
68      * <p>The encryption-at-rest mode for encrypting Data Catalog data.</p>
69      */
WithCatalogEncryptionMode(CatalogEncryptionMode && value)70     inline EncryptionAtRest& WithCatalogEncryptionMode(CatalogEncryptionMode&& value) { SetCatalogEncryptionMode(std::move(value)); return *this;}
71 
72 
73     /**
74      * <p>The ID of the KMS key to use for encryption at rest.</p>
75      */
GetSseAwsKmsKeyId()76     inline const Aws::String& GetSseAwsKmsKeyId() const{ return m_sseAwsKmsKeyId; }
77 
78     /**
79      * <p>The ID of the KMS key to use for encryption at rest.</p>
80      */
SseAwsKmsKeyIdHasBeenSet()81     inline bool SseAwsKmsKeyIdHasBeenSet() const { return m_sseAwsKmsKeyIdHasBeenSet; }
82 
83     /**
84      * <p>The ID of the KMS key to use for encryption at rest.</p>
85      */
SetSseAwsKmsKeyId(const Aws::String & value)86     inline void SetSseAwsKmsKeyId(const Aws::String& value) { m_sseAwsKmsKeyIdHasBeenSet = true; m_sseAwsKmsKeyId = value; }
87 
88     /**
89      * <p>The ID of the KMS key to use for encryption at rest.</p>
90      */
SetSseAwsKmsKeyId(Aws::String && value)91     inline void SetSseAwsKmsKeyId(Aws::String&& value) { m_sseAwsKmsKeyIdHasBeenSet = true; m_sseAwsKmsKeyId = std::move(value); }
92 
93     /**
94      * <p>The ID of the KMS key to use for encryption at rest.</p>
95      */
SetSseAwsKmsKeyId(const char * value)96     inline void SetSseAwsKmsKeyId(const char* value) { m_sseAwsKmsKeyIdHasBeenSet = true; m_sseAwsKmsKeyId.assign(value); }
97 
98     /**
99      * <p>The ID of the KMS key to use for encryption at rest.</p>
100      */
WithSseAwsKmsKeyId(const Aws::String & value)101     inline EncryptionAtRest& WithSseAwsKmsKeyId(const Aws::String& value) { SetSseAwsKmsKeyId(value); return *this;}
102 
103     /**
104      * <p>The ID of the KMS key to use for encryption at rest.</p>
105      */
WithSseAwsKmsKeyId(Aws::String && value)106     inline EncryptionAtRest& WithSseAwsKmsKeyId(Aws::String&& value) { SetSseAwsKmsKeyId(std::move(value)); return *this;}
107 
108     /**
109      * <p>The ID of the KMS key to use for encryption at rest.</p>
110      */
WithSseAwsKmsKeyId(const char * value)111     inline EncryptionAtRest& WithSseAwsKmsKeyId(const char* value) { SetSseAwsKmsKeyId(value); return *this;}
112 
113   private:
114 
115     CatalogEncryptionMode m_catalogEncryptionMode;
116     bool m_catalogEncryptionModeHasBeenSet;
117 
118     Aws::String m_sseAwsKmsKeyId;
119     bool m_sseAwsKmsKeyIdHasBeenSet;
120   };
121 
122 } // namespace Model
123 } // namespace Glue
124 } // namespace Aws
125