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/connect/Connect_EXPORTS.h>
8 #include <aws/connect/model/EncryptionType.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 Connect
23 {
24 namespace Model
25 {
26 
27   /**
28    * <p>The encryption configuration.</p><p><h3>See Also:</h3>   <a
29    * href="http://docs.aws.amazon.com/goto/WebAPI/connect-2017-08-08/EncryptionConfig">AWS
30    * API Reference</a></p>
31    */
32   class AWS_CONNECT_API EncryptionConfig
33   {
34   public:
35     EncryptionConfig();
36     EncryptionConfig(Aws::Utils::Json::JsonView jsonValue);
37     EncryptionConfig& operator=(Aws::Utils::Json::JsonView jsonValue);
38     Aws::Utils::Json::JsonValue Jsonize() const;
39 
40 
41     /**
42      * <p>The type of encryption.</p>
43      */
GetEncryptionType()44     inline const EncryptionType& GetEncryptionType() const{ return m_encryptionType; }
45 
46     /**
47      * <p>The type of encryption.</p>
48      */
EncryptionTypeHasBeenSet()49     inline bool EncryptionTypeHasBeenSet() const { return m_encryptionTypeHasBeenSet; }
50 
51     /**
52      * <p>The type of encryption.</p>
53      */
SetEncryptionType(const EncryptionType & value)54     inline void SetEncryptionType(const EncryptionType& value) { m_encryptionTypeHasBeenSet = true; m_encryptionType = value; }
55 
56     /**
57      * <p>The type of encryption.</p>
58      */
SetEncryptionType(EncryptionType && value)59     inline void SetEncryptionType(EncryptionType&& value) { m_encryptionTypeHasBeenSet = true; m_encryptionType = std::move(value); }
60 
61     /**
62      * <p>The type of encryption.</p>
63      */
WithEncryptionType(const EncryptionType & value)64     inline EncryptionConfig& WithEncryptionType(const EncryptionType& value) { SetEncryptionType(value); return *this;}
65 
66     /**
67      * <p>The type of encryption.</p>
68      */
WithEncryptionType(EncryptionType && value)69     inline EncryptionConfig& WithEncryptionType(EncryptionType&& value) { SetEncryptionType(std::move(value)); return *this;}
70 
71 
72     /**
73      * <p>The full ARN of the encryption key. </p>  <p>Be sure to provide the
74      * full ARN of the encryption key, not just the ID.</p>
75      */
GetKeyId()76     inline const Aws::String& GetKeyId() const{ return m_keyId; }
77 
78     /**
79      * <p>The full ARN of the encryption key. </p>  <p>Be sure to provide the
80      * full ARN of the encryption key, not just the ID.</p>
81      */
KeyIdHasBeenSet()82     inline bool KeyIdHasBeenSet() const { return m_keyIdHasBeenSet; }
83 
84     /**
85      * <p>The full ARN of the encryption key. </p>  <p>Be sure to provide the
86      * full ARN of the encryption key, not just the ID.</p>
87      */
SetKeyId(const Aws::String & value)88     inline void SetKeyId(const Aws::String& value) { m_keyIdHasBeenSet = true; m_keyId = value; }
89 
90     /**
91      * <p>The full ARN of the encryption key. </p>  <p>Be sure to provide the
92      * full ARN of the encryption key, not just the ID.</p>
93      */
SetKeyId(Aws::String && value)94     inline void SetKeyId(Aws::String&& value) { m_keyIdHasBeenSet = true; m_keyId = std::move(value); }
95 
96     /**
97      * <p>The full ARN of the encryption key. </p>  <p>Be sure to provide the
98      * full ARN of the encryption key, not just the ID.</p>
99      */
SetKeyId(const char * value)100     inline void SetKeyId(const char* value) { m_keyIdHasBeenSet = true; m_keyId.assign(value); }
101 
102     /**
103      * <p>The full ARN of the encryption key. </p>  <p>Be sure to provide the
104      * full ARN of the encryption key, not just the ID.</p>
105      */
WithKeyId(const Aws::String & value)106     inline EncryptionConfig& WithKeyId(const Aws::String& value) { SetKeyId(value); return *this;}
107 
108     /**
109      * <p>The full ARN of the encryption key. </p>  <p>Be sure to provide the
110      * full ARN of the encryption key, not just the ID.</p>
111      */
WithKeyId(Aws::String && value)112     inline EncryptionConfig& WithKeyId(Aws::String&& value) { SetKeyId(std::move(value)); return *this;}
113 
114     /**
115      * <p>The full ARN of the encryption key. </p>  <p>Be sure to provide the
116      * full ARN of the encryption key, not just the ID.</p>
117      */
WithKeyId(const char * value)118     inline EncryptionConfig& WithKeyId(const char* value) { SetKeyId(value); return *this;}
119 
120   private:
121 
122     EncryptionType m_encryptionType;
123     bool m_encryptionTypeHasBeenSet;
124 
125     Aws::String m_keyId;
126     bool m_keyIdHasBeenSet;
127   };
128 
129 } // namespace Model
130 } // namespace Connect
131 } // namespace Aws
132