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/core/utils/memory/stl/AWSVector.h>
9 #include <aws/glue/model/CloudWatchEncryption.h>
10 #include <aws/glue/model/JobBookmarksEncryption.h>
11 #include <aws/glue/model/S3Encryption.h>
12 #include <utility>
13 
14 namespace Aws
15 {
16 namespace Utils
17 {
18 namespace Json
19 {
20   class JsonValue;
21   class JsonView;
22 } // namespace Json
23 } // namespace Utils
24 namespace Glue
25 {
26 namespace Model
27 {
28 
29   /**
30    * <p>Specifies an encryption configuration.</p><p><h3>See Also:</h3>   <a
31    * href="http://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/EncryptionConfiguration">AWS
32    * API Reference</a></p>
33    */
34   class AWS_GLUE_API EncryptionConfiguration
35   {
36   public:
37     EncryptionConfiguration();
38     EncryptionConfiguration(Aws::Utils::Json::JsonView jsonValue);
39     EncryptionConfiguration& operator=(Aws::Utils::Json::JsonView jsonValue);
40     Aws::Utils::Json::JsonValue Jsonize() const;
41 
42 
43     /**
44      * <p>The encryption configuration for Amazon Simple Storage Service (Amazon S3)
45      * data.</p>
46      */
GetS3Encryption()47     inline const Aws::Vector<S3Encryption>& GetS3Encryption() const{ return m_s3Encryption; }
48 
49     /**
50      * <p>The encryption configuration for Amazon Simple Storage Service (Amazon S3)
51      * data.</p>
52      */
S3EncryptionHasBeenSet()53     inline bool S3EncryptionHasBeenSet() const { return m_s3EncryptionHasBeenSet; }
54 
55     /**
56      * <p>The encryption configuration for Amazon Simple Storage Service (Amazon S3)
57      * data.</p>
58      */
SetS3Encryption(const Aws::Vector<S3Encryption> & value)59     inline void SetS3Encryption(const Aws::Vector<S3Encryption>& value) { m_s3EncryptionHasBeenSet = true; m_s3Encryption = value; }
60 
61     /**
62      * <p>The encryption configuration for Amazon Simple Storage Service (Amazon S3)
63      * data.</p>
64      */
SetS3Encryption(Aws::Vector<S3Encryption> && value)65     inline void SetS3Encryption(Aws::Vector<S3Encryption>&& value) { m_s3EncryptionHasBeenSet = true; m_s3Encryption = std::move(value); }
66 
67     /**
68      * <p>The encryption configuration for Amazon Simple Storage Service (Amazon S3)
69      * data.</p>
70      */
WithS3Encryption(const Aws::Vector<S3Encryption> & value)71     inline EncryptionConfiguration& WithS3Encryption(const Aws::Vector<S3Encryption>& value) { SetS3Encryption(value); return *this;}
72 
73     /**
74      * <p>The encryption configuration for Amazon Simple Storage Service (Amazon S3)
75      * data.</p>
76      */
WithS3Encryption(Aws::Vector<S3Encryption> && value)77     inline EncryptionConfiguration& WithS3Encryption(Aws::Vector<S3Encryption>&& value) { SetS3Encryption(std::move(value)); return *this;}
78 
79     /**
80      * <p>The encryption configuration for Amazon Simple Storage Service (Amazon S3)
81      * data.</p>
82      */
AddS3Encryption(const S3Encryption & value)83     inline EncryptionConfiguration& AddS3Encryption(const S3Encryption& value) { m_s3EncryptionHasBeenSet = true; m_s3Encryption.push_back(value); return *this; }
84 
85     /**
86      * <p>The encryption configuration for Amazon Simple Storage Service (Amazon S3)
87      * data.</p>
88      */
AddS3Encryption(S3Encryption && value)89     inline EncryptionConfiguration& AddS3Encryption(S3Encryption&& value) { m_s3EncryptionHasBeenSet = true; m_s3Encryption.push_back(std::move(value)); return *this; }
90 
91 
92     /**
93      * <p>The encryption configuration for Amazon CloudWatch.</p>
94      */
GetCloudWatchEncryption()95     inline const CloudWatchEncryption& GetCloudWatchEncryption() const{ return m_cloudWatchEncryption; }
96 
97     /**
98      * <p>The encryption configuration for Amazon CloudWatch.</p>
99      */
CloudWatchEncryptionHasBeenSet()100     inline bool CloudWatchEncryptionHasBeenSet() const { return m_cloudWatchEncryptionHasBeenSet; }
101 
102     /**
103      * <p>The encryption configuration for Amazon CloudWatch.</p>
104      */
SetCloudWatchEncryption(const CloudWatchEncryption & value)105     inline void SetCloudWatchEncryption(const CloudWatchEncryption& value) { m_cloudWatchEncryptionHasBeenSet = true; m_cloudWatchEncryption = value; }
106 
107     /**
108      * <p>The encryption configuration for Amazon CloudWatch.</p>
109      */
SetCloudWatchEncryption(CloudWatchEncryption && value)110     inline void SetCloudWatchEncryption(CloudWatchEncryption&& value) { m_cloudWatchEncryptionHasBeenSet = true; m_cloudWatchEncryption = std::move(value); }
111 
112     /**
113      * <p>The encryption configuration for Amazon CloudWatch.</p>
114      */
WithCloudWatchEncryption(const CloudWatchEncryption & value)115     inline EncryptionConfiguration& WithCloudWatchEncryption(const CloudWatchEncryption& value) { SetCloudWatchEncryption(value); return *this;}
116 
117     /**
118      * <p>The encryption configuration for Amazon CloudWatch.</p>
119      */
WithCloudWatchEncryption(CloudWatchEncryption && value)120     inline EncryptionConfiguration& WithCloudWatchEncryption(CloudWatchEncryption&& value) { SetCloudWatchEncryption(std::move(value)); return *this;}
121 
122 
123     /**
124      * <p>The encryption configuration for job bookmarks.</p>
125      */
GetJobBookmarksEncryption()126     inline const JobBookmarksEncryption& GetJobBookmarksEncryption() const{ return m_jobBookmarksEncryption; }
127 
128     /**
129      * <p>The encryption configuration for job bookmarks.</p>
130      */
JobBookmarksEncryptionHasBeenSet()131     inline bool JobBookmarksEncryptionHasBeenSet() const { return m_jobBookmarksEncryptionHasBeenSet; }
132 
133     /**
134      * <p>The encryption configuration for job bookmarks.</p>
135      */
SetJobBookmarksEncryption(const JobBookmarksEncryption & value)136     inline void SetJobBookmarksEncryption(const JobBookmarksEncryption& value) { m_jobBookmarksEncryptionHasBeenSet = true; m_jobBookmarksEncryption = value; }
137 
138     /**
139      * <p>The encryption configuration for job bookmarks.</p>
140      */
SetJobBookmarksEncryption(JobBookmarksEncryption && value)141     inline void SetJobBookmarksEncryption(JobBookmarksEncryption&& value) { m_jobBookmarksEncryptionHasBeenSet = true; m_jobBookmarksEncryption = std::move(value); }
142 
143     /**
144      * <p>The encryption configuration for job bookmarks.</p>
145      */
WithJobBookmarksEncryption(const JobBookmarksEncryption & value)146     inline EncryptionConfiguration& WithJobBookmarksEncryption(const JobBookmarksEncryption& value) { SetJobBookmarksEncryption(value); return *this;}
147 
148     /**
149      * <p>The encryption configuration for job bookmarks.</p>
150      */
WithJobBookmarksEncryption(JobBookmarksEncryption && value)151     inline EncryptionConfiguration& WithJobBookmarksEncryption(JobBookmarksEncryption&& value) { SetJobBookmarksEncryption(std::move(value)); return *this;}
152 
153   private:
154 
155     Aws::Vector<S3Encryption> m_s3Encryption;
156     bool m_s3EncryptionHasBeenSet;
157 
158     CloudWatchEncryption m_cloudWatchEncryption;
159     bool m_cloudWatchEncryptionHasBeenSet;
160 
161     JobBookmarksEncryption m_jobBookmarksEncryption;
162     bool m_jobBookmarksEncryptionHasBeenSet;
163   };
164 
165 } // namespace Model
166 } // namespace Glue
167 } // namespace Aws
168