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/securityhub/SecurityHub_EXPORTS.h>
8 #include <aws/securityhub/model/AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationAuthorizationConfigDetails.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 SecurityHub
23 {
24 namespace Model
25 {
26 
27   /**
28    * <p>Information about the Amazon Elastic File System file system that is used for
29    * task storage.</p><p><h3>See Also:</h3>   <a
30    * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationDetails">AWS
31    * API Reference</a></p>
32    */
33   class AWS_SECURITYHUB_API AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationDetails
34   {
35   public:
36     AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationDetails();
37     AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationDetails(Aws::Utils::Json::JsonView jsonValue);
38     AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationDetails& operator=(Aws::Utils::Json::JsonView jsonValue);
39     Aws::Utils::Json::JsonValue Jsonize() const;
40 
41 
42     /**
43      * <p>The authorization configuration details for the Amazon EFS file system.</p>
44      */
GetAuthorizationConfig()45     inline const AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationAuthorizationConfigDetails& GetAuthorizationConfig() const{ return m_authorizationConfig; }
46 
47     /**
48      * <p>The authorization configuration details for the Amazon EFS file system.</p>
49      */
AuthorizationConfigHasBeenSet()50     inline bool AuthorizationConfigHasBeenSet() const { return m_authorizationConfigHasBeenSet; }
51 
52     /**
53      * <p>The authorization configuration details for the Amazon EFS file system.</p>
54      */
SetAuthorizationConfig(const AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationAuthorizationConfigDetails & value)55     inline void SetAuthorizationConfig(const AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationAuthorizationConfigDetails& value) { m_authorizationConfigHasBeenSet = true; m_authorizationConfig = value; }
56 
57     /**
58      * <p>The authorization configuration details for the Amazon EFS file system.</p>
59      */
SetAuthorizationConfig(AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationAuthorizationConfigDetails && value)60     inline void SetAuthorizationConfig(AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationAuthorizationConfigDetails&& value) { m_authorizationConfigHasBeenSet = true; m_authorizationConfig = std::move(value); }
61 
62     /**
63      * <p>The authorization configuration details for the Amazon EFS file system.</p>
64      */
WithAuthorizationConfig(const AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationAuthorizationConfigDetails & value)65     inline AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationDetails& WithAuthorizationConfig(const AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationAuthorizationConfigDetails& value) { SetAuthorizationConfig(value); return *this;}
66 
67     /**
68      * <p>The authorization configuration details for the Amazon EFS file system.</p>
69      */
WithAuthorizationConfig(AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationAuthorizationConfigDetails && value)70     inline AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationDetails& WithAuthorizationConfig(AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationAuthorizationConfigDetails&& value) { SetAuthorizationConfig(std::move(value)); return *this;}
71 
72 
73     /**
74      * <p>The Amazon EFS file system identifier to use.</p>
75      */
GetFilesystemId()76     inline const Aws::String& GetFilesystemId() const{ return m_filesystemId; }
77 
78     /**
79      * <p>The Amazon EFS file system identifier to use.</p>
80      */
FilesystemIdHasBeenSet()81     inline bool FilesystemIdHasBeenSet() const { return m_filesystemIdHasBeenSet; }
82 
83     /**
84      * <p>The Amazon EFS file system identifier to use.</p>
85      */
SetFilesystemId(const Aws::String & value)86     inline void SetFilesystemId(const Aws::String& value) { m_filesystemIdHasBeenSet = true; m_filesystemId = value; }
87 
88     /**
89      * <p>The Amazon EFS file system identifier to use.</p>
90      */
SetFilesystemId(Aws::String && value)91     inline void SetFilesystemId(Aws::String&& value) { m_filesystemIdHasBeenSet = true; m_filesystemId = std::move(value); }
92 
93     /**
94      * <p>The Amazon EFS file system identifier to use.</p>
95      */
SetFilesystemId(const char * value)96     inline void SetFilesystemId(const char* value) { m_filesystemIdHasBeenSet = true; m_filesystemId.assign(value); }
97 
98     /**
99      * <p>The Amazon EFS file system identifier to use.</p>
100      */
WithFilesystemId(const Aws::String & value)101     inline AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationDetails& WithFilesystemId(const Aws::String& value) { SetFilesystemId(value); return *this;}
102 
103     /**
104      * <p>The Amazon EFS file system identifier to use.</p>
105      */
WithFilesystemId(Aws::String && value)106     inline AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationDetails& WithFilesystemId(Aws::String&& value) { SetFilesystemId(std::move(value)); return *this;}
107 
108     /**
109      * <p>The Amazon EFS file system identifier to use.</p>
110      */
WithFilesystemId(const char * value)111     inline AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationDetails& WithFilesystemId(const char* value) { SetFilesystemId(value); return *this;}
112 
113 
114     /**
115      * <p>The directory within the Amazon EFS file system to mount as the root
116      * directory inside the host.</p>
117      */
GetRootDirectory()118     inline const Aws::String& GetRootDirectory() const{ return m_rootDirectory; }
119 
120     /**
121      * <p>The directory within the Amazon EFS file system to mount as the root
122      * directory inside the host.</p>
123      */
RootDirectoryHasBeenSet()124     inline bool RootDirectoryHasBeenSet() const { return m_rootDirectoryHasBeenSet; }
125 
126     /**
127      * <p>The directory within the Amazon EFS file system to mount as the root
128      * directory inside the host.</p>
129      */
SetRootDirectory(const Aws::String & value)130     inline void SetRootDirectory(const Aws::String& value) { m_rootDirectoryHasBeenSet = true; m_rootDirectory = value; }
131 
132     /**
133      * <p>The directory within the Amazon EFS file system to mount as the root
134      * directory inside the host.</p>
135      */
SetRootDirectory(Aws::String && value)136     inline void SetRootDirectory(Aws::String&& value) { m_rootDirectoryHasBeenSet = true; m_rootDirectory = std::move(value); }
137 
138     /**
139      * <p>The directory within the Amazon EFS file system to mount as the root
140      * directory inside the host.</p>
141      */
SetRootDirectory(const char * value)142     inline void SetRootDirectory(const char* value) { m_rootDirectoryHasBeenSet = true; m_rootDirectory.assign(value); }
143 
144     /**
145      * <p>The directory within the Amazon EFS file system to mount as the root
146      * directory inside the host.</p>
147      */
WithRootDirectory(const Aws::String & value)148     inline AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationDetails& WithRootDirectory(const Aws::String& value) { SetRootDirectory(value); return *this;}
149 
150     /**
151      * <p>The directory within the Amazon EFS file system to mount as the root
152      * directory inside the host.</p>
153      */
WithRootDirectory(Aws::String && value)154     inline AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationDetails& WithRootDirectory(Aws::String&& value) { SetRootDirectory(std::move(value)); return *this;}
155 
156     /**
157      * <p>The directory within the Amazon EFS file system to mount as the root
158      * directory inside the host.</p>
159      */
WithRootDirectory(const char * value)160     inline AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationDetails& WithRootDirectory(const char* value) { SetRootDirectory(value); return *this;}
161 
162 
163     /**
164      * <p>Whether to enable encryption for Amazon EFS data in transit between the
165      * Amazon ECS host and the Amazon EFS server. </p>
166      */
GetTransitEncryption()167     inline const Aws::String& GetTransitEncryption() const{ return m_transitEncryption; }
168 
169     /**
170      * <p>Whether to enable encryption for Amazon EFS data in transit between the
171      * Amazon ECS host and the Amazon EFS server. </p>
172      */
TransitEncryptionHasBeenSet()173     inline bool TransitEncryptionHasBeenSet() const { return m_transitEncryptionHasBeenSet; }
174 
175     /**
176      * <p>Whether to enable encryption for Amazon EFS data in transit between the
177      * Amazon ECS host and the Amazon EFS server. </p>
178      */
SetTransitEncryption(const Aws::String & value)179     inline void SetTransitEncryption(const Aws::String& value) { m_transitEncryptionHasBeenSet = true; m_transitEncryption = value; }
180 
181     /**
182      * <p>Whether to enable encryption for Amazon EFS data in transit between the
183      * Amazon ECS host and the Amazon EFS server. </p>
184      */
SetTransitEncryption(Aws::String && value)185     inline void SetTransitEncryption(Aws::String&& value) { m_transitEncryptionHasBeenSet = true; m_transitEncryption = std::move(value); }
186 
187     /**
188      * <p>Whether to enable encryption for Amazon EFS data in transit between the
189      * Amazon ECS host and the Amazon EFS server. </p>
190      */
SetTransitEncryption(const char * value)191     inline void SetTransitEncryption(const char* value) { m_transitEncryptionHasBeenSet = true; m_transitEncryption.assign(value); }
192 
193     /**
194      * <p>Whether to enable encryption for Amazon EFS data in transit between the
195      * Amazon ECS host and the Amazon EFS server. </p>
196      */
WithTransitEncryption(const Aws::String & value)197     inline AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationDetails& WithTransitEncryption(const Aws::String& value) { SetTransitEncryption(value); return *this;}
198 
199     /**
200      * <p>Whether to enable encryption for Amazon EFS data in transit between the
201      * Amazon ECS host and the Amazon EFS server. </p>
202      */
WithTransitEncryption(Aws::String && value)203     inline AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationDetails& WithTransitEncryption(Aws::String&& value) { SetTransitEncryption(std::move(value)); return *this;}
204 
205     /**
206      * <p>Whether to enable encryption for Amazon EFS data in transit between the
207      * Amazon ECS host and the Amazon EFS server. </p>
208      */
WithTransitEncryption(const char * value)209     inline AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationDetails& WithTransitEncryption(const char* value) { SetTransitEncryption(value); return *this;}
210 
211 
212     /**
213      * <p>The port to use when sending encrypted data between the Amazon ECS host and
214      * the Amazon EFS server.</p>
215      */
GetTransitEncryptionPort()216     inline int GetTransitEncryptionPort() const{ return m_transitEncryptionPort; }
217 
218     /**
219      * <p>The port to use when sending encrypted data between the Amazon ECS host and
220      * the Amazon EFS server.</p>
221      */
TransitEncryptionPortHasBeenSet()222     inline bool TransitEncryptionPortHasBeenSet() const { return m_transitEncryptionPortHasBeenSet; }
223 
224     /**
225      * <p>The port to use when sending encrypted data between the Amazon ECS host and
226      * the Amazon EFS server.</p>
227      */
SetTransitEncryptionPort(int value)228     inline void SetTransitEncryptionPort(int value) { m_transitEncryptionPortHasBeenSet = true; m_transitEncryptionPort = value; }
229 
230     /**
231      * <p>The port to use when sending encrypted data between the Amazon ECS host and
232      * the Amazon EFS server.</p>
233      */
WithTransitEncryptionPort(int value)234     inline AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationDetails& WithTransitEncryptionPort(int value) { SetTransitEncryptionPort(value); return *this;}
235 
236   private:
237 
238     AwsEcsTaskDefinitionVolumesEfsVolumeConfigurationAuthorizationConfigDetails m_authorizationConfig;
239     bool m_authorizationConfigHasBeenSet;
240 
241     Aws::String m_filesystemId;
242     bool m_filesystemIdHasBeenSet;
243 
244     Aws::String m_rootDirectory;
245     bool m_rootDirectoryHasBeenSet;
246 
247     Aws::String m_transitEncryption;
248     bool m_transitEncryptionHasBeenSet;
249 
250     int m_transitEncryptionPort;
251     bool m_transitEncryptionPortHasBeenSet;
252   };
253 
254 } // namespace Model
255 } // namespace SecurityHub
256 } // namespace Aws
257