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/codebuild/CodeBuild_EXPORTS.h>
8 #include <aws/codebuild/model/FileSystemType.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 CodeBuild
23 {
24 namespace Model
25 {
26 
27   /**
28    * <p> Information about a file system created by Amazon Elastic File System (EFS).
29    * For more information, see <a
30    * href="https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html">What Is Amazon
31    * Elastic File System?</a> </p><p><h3>See Also:</h3>   <a
32    * href="http://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/ProjectFileSystemLocation">AWS
33    * API Reference</a></p>
34    */
35   class AWS_CODEBUILD_API ProjectFileSystemLocation
36   {
37   public:
38     ProjectFileSystemLocation();
39     ProjectFileSystemLocation(Aws::Utils::Json::JsonView jsonValue);
40     ProjectFileSystemLocation& operator=(Aws::Utils::Json::JsonView jsonValue);
41     Aws::Utils::Json::JsonValue Jsonize() const;
42 
43 
44     /**
45      * <p> The type of the file system. The one supported type is <code>EFS</code>.
46      * </p>
47      */
GetType()48     inline const FileSystemType& GetType() const{ return m_type; }
49 
50     /**
51      * <p> The type of the file system. The one supported type is <code>EFS</code>.
52      * </p>
53      */
TypeHasBeenSet()54     inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; }
55 
56     /**
57      * <p> The type of the file system. The one supported type is <code>EFS</code>.
58      * </p>
59      */
SetType(const FileSystemType & value)60     inline void SetType(const FileSystemType& value) { m_typeHasBeenSet = true; m_type = value; }
61 
62     /**
63      * <p> The type of the file system. The one supported type is <code>EFS</code>.
64      * </p>
65      */
SetType(FileSystemType && value)66     inline void SetType(FileSystemType&& value) { m_typeHasBeenSet = true; m_type = std::move(value); }
67 
68     /**
69      * <p> The type of the file system. The one supported type is <code>EFS</code>.
70      * </p>
71      */
WithType(const FileSystemType & value)72     inline ProjectFileSystemLocation& WithType(const FileSystemType& value) { SetType(value); return *this;}
73 
74     /**
75      * <p> The type of the file system. The one supported type is <code>EFS</code>.
76      * </p>
77      */
WithType(FileSystemType && value)78     inline ProjectFileSystemLocation& WithType(FileSystemType&& value) { SetType(std::move(value)); return *this;}
79 
80 
81     /**
82      * <p>A string that specifies the location of the file system created by Amazon
83      * EFS. Its format is <code>efs-dns-name:/directory-path</code>. You can find the
84      * DNS name of file system when you view it in the Amazon EFS console. The
85      * directory path is a path to a directory in the file system that CodeBuild
86      * mounts. For example, if the DNS name of a file system is
87      * <code>fs-abcd1234.efs.us-west-2.amazonaws.com</code>, and its mount directory is
88      * <code>my-efs-mount-directory</code>, then the <code>location</code> is
89      * <code>fs-abcd1234.efs.us-west-2.amazonaws.com:/my-efs-mount-directory</code>.
90      * </p> <p>The directory path in the format
91      * <code>efs-dns-name:/directory-path</code> is optional. If you do not specify a
92      * directory path, the location is only the DNS name and CodeBuild mounts the
93      * entire file system. </p>
94      */
GetLocation()95     inline const Aws::String& GetLocation() const{ return m_location; }
96 
97     /**
98      * <p>A string that specifies the location of the file system created by Amazon
99      * EFS. Its format is <code>efs-dns-name:/directory-path</code>. You can find the
100      * DNS name of file system when you view it in the Amazon EFS console. The
101      * directory path is a path to a directory in the file system that CodeBuild
102      * mounts. For example, if the DNS name of a file system is
103      * <code>fs-abcd1234.efs.us-west-2.amazonaws.com</code>, and its mount directory is
104      * <code>my-efs-mount-directory</code>, then the <code>location</code> is
105      * <code>fs-abcd1234.efs.us-west-2.amazonaws.com:/my-efs-mount-directory</code>.
106      * </p> <p>The directory path in the format
107      * <code>efs-dns-name:/directory-path</code> is optional. If you do not specify a
108      * directory path, the location is only the DNS name and CodeBuild mounts the
109      * entire file system. </p>
110      */
LocationHasBeenSet()111     inline bool LocationHasBeenSet() const { return m_locationHasBeenSet; }
112 
113     /**
114      * <p>A string that specifies the location of the file system created by Amazon
115      * EFS. Its format is <code>efs-dns-name:/directory-path</code>. You can find the
116      * DNS name of file system when you view it in the Amazon EFS console. The
117      * directory path is a path to a directory in the file system that CodeBuild
118      * mounts. For example, if the DNS name of a file system is
119      * <code>fs-abcd1234.efs.us-west-2.amazonaws.com</code>, and its mount directory is
120      * <code>my-efs-mount-directory</code>, then the <code>location</code> is
121      * <code>fs-abcd1234.efs.us-west-2.amazonaws.com:/my-efs-mount-directory</code>.
122      * </p> <p>The directory path in the format
123      * <code>efs-dns-name:/directory-path</code> is optional. If you do not specify a
124      * directory path, the location is only the DNS name and CodeBuild mounts the
125      * entire file system. </p>
126      */
SetLocation(const Aws::String & value)127     inline void SetLocation(const Aws::String& value) { m_locationHasBeenSet = true; m_location = value; }
128 
129     /**
130      * <p>A string that specifies the location of the file system created by Amazon
131      * EFS. Its format is <code>efs-dns-name:/directory-path</code>. You can find the
132      * DNS name of file system when you view it in the Amazon EFS console. The
133      * directory path is a path to a directory in the file system that CodeBuild
134      * mounts. For example, if the DNS name of a file system is
135      * <code>fs-abcd1234.efs.us-west-2.amazonaws.com</code>, and its mount directory is
136      * <code>my-efs-mount-directory</code>, then the <code>location</code> is
137      * <code>fs-abcd1234.efs.us-west-2.amazonaws.com:/my-efs-mount-directory</code>.
138      * </p> <p>The directory path in the format
139      * <code>efs-dns-name:/directory-path</code> is optional. If you do not specify a
140      * directory path, the location is only the DNS name and CodeBuild mounts the
141      * entire file system. </p>
142      */
SetLocation(Aws::String && value)143     inline void SetLocation(Aws::String&& value) { m_locationHasBeenSet = true; m_location = std::move(value); }
144 
145     /**
146      * <p>A string that specifies the location of the file system created by Amazon
147      * EFS. Its format is <code>efs-dns-name:/directory-path</code>. You can find the
148      * DNS name of file system when you view it in the Amazon EFS console. The
149      * directory path is a path to a directory in the file system that CodeBuild
150      * mounts. For example, if the DNS name of a file system is
151      * <code>fs-abcd1234.efs.us-west-2.amazonaws.com</code>, and its mount directory is
152      * <code>my-efs-mount-directory</code>, then the <code>location</code> is
153      * <code>fs-abcd1234.efs.us-west-2.amazonaws.com:/my-efs-mount-directory</code>.
154      * </p> <p>The directory path in the format
155      * <code>efs-dns-name:/directory-path</code> is optional. If you do not specify a
156      * directory path, the location is only the DNS name and CodeBuild mounts the
157      * entire file system. </p>
158      */
SetLocation(const char * value)159     inline void SetLocation(const char* value) { m_locationHasBeenSet = true; m_location.assign(value); }
160 
161     /**
162      * <p>A string that specifies the location of the file system created by Amazon
163      * EFS. Its format is <code>efs-dns-name:/directory-path</code>. You can find the
164      * DNS name of file system when you view it in the Amazon EFS console. The
165      * directory path is a path to a directory in the file system that CodeBuild
166      * mounts. For example, if the DNS name of a file system is
167      * <code>fs-abcd1234.efs.us-west-2.amazonaws.com</code>, and its mount directory is
168      * <code>my-efs-mount-directory</code>, then the <code>location</code> is
169      * <code>fs-abcd1234.efs.us-west-2.amazonaws.com:/my-efs-mount-directory</code>.
170      * </p> <p>The directory path in the format
171      * <code>efs-dns-name:/directory-path</code> is optional. If you do not specify a
172      * directory path, the location is only the DNS name and CodeBuild mounts the
173      * entire file system. </p>
174      */
WithLocation(const Aws::String & value)175     inline ProjectFileSystemLocation& WithLocation(const Aws::String& value) { SetLocation(value); return *this;}
176 
177     /**
178      * <p>A string that specifies the location of the file system created by Amazon
179      * EFS. Its format is <code>efs-dns-name:/directory-path</code>. You can find the
180      * DNS name of file system when you view it in the Amazon EFS console. The
181      * directory path is a path to a directory in the file system that CodeBuild
182      * mounts. For example, if the DNS name of a file system is
183      * <code>fs-abcd1234.efs.us-west-2.amazonaws.com</code>, and its mount directory is
184      * <code>my-efs-mount-directory</code>, then the <code>location</code> is
185      * <code>fs-abcd1234.efs.us-west-2.amazonaws.com:/my-efs-mount-directory</code>.
186      * </p> <p>The directory path in the format
187      * <code>efs-dns-name:/directory-path</code> is optional. If you do not specify a
188      * directory path, the location is only the DNS name and CodeBuild mounts the
189      * entire file system. </p>
190      */
WithLocation(Aws::String && value)191     inline ProjectFileSystemLocation& WithLocation(Aws::String&& value) { SetLocation(std::move(value)); return *this;}
192 
193     /**
194      * <p>A string that specifies the location of the file system created by Amazon
195      * EFS. Its format is <code>efs-dns-name:/directory-path</code>. You can find the
196      * DNS name of file system when you view it in the Amazon EFS console. The
197      * directory path is a path to a directory in the file system that CodeBuild
198      * mounts. For example, if the DNS name of a file system is
199      * <code>fs-abcd1234.efs.us-west-2.amazonaws.com</code>, and its mount directory is
200      * <code>my-efs-mount-directory</code>, then the <code>location</code> is
201      * <code>fs-abcd1234.efs.us-west-2.amazonaws.com:/my-efs-mount-directory</code>.
202      * </p> <p>The directory path in the format
203      * <code>efs-dns-name:/directory-path</code> is optional. If you do not specify a
204      * directory path, the location is only the DNS name and CodeBuild mounts the
205      * entire file system. </p>
206      */
WithLocation(const char * value)207     inline ProjectFileSystemLocation& WithLocation(const char* value) { SetLocation(value); return *this;}
208 
209 
210     /**
211      * <p>The location in the container where you mount the file system. </p>
212      */
GetMountPoint()213     inline const Aws::String& GetMountPoint() const{ return m_mountPoint; }
214 
215     /**
216      * <p>The location in the container where you mount the file system. </p>
217      */
MountPointHasBeenSet()218     inline bool MountPointHasBeenSet() const { return m_mountPointHasBeenSet; }
219 
220     /**
221      * <p>The location in the container where you mount the file system. </p>
222      */
SetMountPoint(const Aws::String & value)223     inline void SetMountPoint(const Aws::String& value) { m_mountPointHasBeenSet = true; m_mountPoint = value; }
224 
225     /**
226      * <p>The location in the container where you mount the file system. </p>
227      */
SetMountPoint(Aws::String && value)228     inline void SetMountPoint(Aws::String&& value) { m_mountPointHasBeenSet = true; m_mountPoint = std::move(value); }
229 
230     /**
231      * <p>The location in the container where you mount the file system. </p>
232      */
SetMountPoint(const char * value)233     inline void SetMountPoint(const char* value) { m_mountPointHasBeenSet = true; m_mountPoint.assign(value); }
234 
235     /**
236      * <p>The location in the container where you mount the file system. </p>
237      */
WithMountPoint(const Aws::String & value)238     inline ProjectFileSystemLocation& WithMountPoint(const Aws::String& value) { SetMountPoint(value); return *this;}
239 
240     /**
241      * <p>The location in the container where you mount the file system. </p>
242      */
WithMountPoint(Aws::String && value)243     inline ProjectFileSystemLocation& WithMountPoint(Aws::String&& value) { SetMountPoint(std::move(value)); return *this;}
244 
245     /**
246      * <p>The location in the container where you mount the file system. </p>
247      */
WithMountPoint(const char * value)248     inline ProjectFileSystemLocation& WithMountPoint(const char* value) { SetMountPoint(value); return *this;}
249 
250 
251     /**
252      * <p>The name used to access a file system created by Amazon EFS. CodeBuild
253      * creates an environment variable by appending the <code>identifier</code> in all
254      * capital letters to <code>CODEBUILD_</code>. For example, if you specify
255      * <code>my_efs</code> for <code>identifier</code>, a new environment variable is
256      * create named <code>CODEBUILD_MY_EFS</code>. </p> <p> The <code>identifier</code>
257      * is used to mount your file system. </p>
258      */
GetIdentifier()259     inline const Aws::String& GetIdentifier() const{ return m_identifier; }
260 
261     /**
262      * <p>The name used to access a file system created by Amazon EFS. CodeBuild
263      * creates an environment variable by appending the <code>identifier</code> in all
264      * capital letters to <code>CODEBUILD_</code>. For example, if you specify
265      * <code>my_efs</code> for <code>identifier</code>, a new environment variable is
266      * create named <code>CODEBUILD_MY_EFS</code>. </p> <p> The <code>identifier</code>
267      * is used to mount your file system. </p>
268      */
IdentifierHasBeenSet()269     inline bool IdentifierHasBeenSet() const { return m_identifierHasBeenSet; }
270 
271     /**
272      * <p>The name used to access a file system created by Amazon EFS. CodeBuild
273      * creates an environment variable by appending the <code>identifier</code> in all
274      * capital letters to <code>CODEBUILD_</code>. For example, if you specify
275      * <code>my_efs</code> for <code>identifier</code>, a new environment variable is
276      * create named <code>CODEBUILD_MY_EFS</code>. </p> <p> The <code>identifier</code>
277      * is used to mount your file system. </p>
278      */
SetIdentifier(const Aws::String & value)279     inline void SetIdentifier(const Aws::String& value) { m_identifierHasBeenSet = true; m_identifier = value; }
280 
281     /**
282      * <p>The name used to access a file system created by Amazon EFS. CodeBuild
283      * creates an environment variable by appending the <code>identifier</code> in all
284      * capital letters to <code>CODEBUILD_</code>. For example, if you specify
285      * <code>my_efs</code> for <code>identifier</code>, a new environment variable is
286      * create named <code>CODEBUILD_MY_EFS</code>. </p> <p> The <code>identifier</code>
287      * is used to mount your file system. </p>
288      */
SetIdentifier(Aws::String && value)289     inline void SetIdentifier(Aws::String&& value) { m_identifierHasBeenSet = true; m_identifier = std::move(value); }
290 
291     /**
292      * <p>The name used to access a file system created by Amazon EFS. CodeBuild
293      * creates an environment variable by appending the <code>identifier</code> in all
294      * capital letters to <code>CODEBUILD_</code>. For example, if you specify
295      * <code>my_efs</code> for <code>identifier</code>, a new environment variable is
296      * create named <code>CODEBUILD_MY_EFS</code>. </p> <p> The <code>identifier</code>
297      * is used to mount your file system. </p>
298      */
SetIdentifier(const char * value)299     inline void SetIdentifier(const char* value) { m_identifierHasBeenSet = true; m_identifier.assign(value); }
300 
301     /**
302      * <p>The name used to access a file system created by Amazon EFS. CodeBuild
303      * creates an environment variable by appending the <code>identifier</code> in all
304      * capital letters to <code>CODEBUILD_</code>. For example, if you specify
305      * <code>my_efs</code> for <code>identifier</code>, a new environment variable is
306      * create named <code>CODEBUILD_MY_EFS</code>. </p> <p> The <code>identifier</code>
307      * is used to mount your file system. </p>
308      */
WithIdentifier(const Aws::String & value)309     inline ProjectFileSystemLocation& WithIdentifier(const Aws::String& value) { SetIdentifier(value); return *this;}
310 
311     /**
312      * <p>The name used to access a file system created by Amazon EFS. CodeBuild
313      * creates an environment variable by appending the <code>identifier</code> in all
314      * capital letters to <code>CODEBUILD_</code>. For example, if you specify
315      * <code>my_efs</code> for <code>identifier</code>, a new environment variable is
316      * create named <code>CODEBUILD_MY_EFS</code>. </p> <p> The <code>identifier</code>
317      * is used to mount your file system. </p>
318      */
WithIdentifier(Aws::String && value)319     inline ProjectFileSystemLocation& WithIdentifier(Aws::String&& value) { SetIdentifier(std::move(value)); return *this;}
320 
321     /**
322      * <p>The name used to access a file system created by Amazon EFS. CodeBuild
323      * creates an environment variable by appending the <code>identifier</code> in all
324      * capital letters to <code>CODEBUILD_</code>. For example, if you specify
325      * <code>my_efs</code> for <code>identifier</code>, a new environment variable is
326      * create named <code>CODEBUILD_MY_EFS</code>. </p> <p> The <code>identifier</code>
327      * is used to mount your file system. </p>
328      */
WithIdentifier(const char * value)329     inline ProjectFileSystemLocation& WithIdentifier(const char* value) { SetIdentifier(value); return *this;}
330 
331 
332     /**
333      * <p> The mount options for a file system created by Amazon EFS. The default mount
334      * options used by CodeBuild are
335      * <code>nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2</code>.
336      * For more information, see <a
337      * href="https://docs.aws.amazon.com/efs/latest/ug/mounting-fs-nfs-mount-settings.html">Recommended
338      * NFS Mount Options</a>. </p>
339      */
GetMountOptions()340     inline const Aws::String& GetMountOptions() const{ return m_mountOptions; }
341 
342     /**
343      * <p> The mount options for a file system created by Amazon EFS. The default mount
344      * options used by CodeBuild are
345      * <code>nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2</code>.
346      * For more information, see <a
347      * href="https://docs.aws.amazon.com/efs/latest/ug/mounting-fs-nfs-mount-settings.html">Recommended
348      * NFS Mount Options</a>. </p>
349      */
MountOptionsHasBeenSet()350     inline bool MountOptionsHasBeenSet() const { return m_mountOptionsHasBeenSet; }
351 
352     /**
353      * <p> The mount options for a file system created by Amazon EFS. The default mount
354      * options used by CodeBuild are
355      * <code>nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2</code>.
356      * For more information, see <a
357      * href="https://docs.aws.amazon.com/efs/latest/ug/mounting-fs-nfs-mount-settings.html">Recommended
358      * NFS Mount Options</a>. </p>
359      */
SetMountOptions(const Aws::String & value)360     inline void SetMountOptions(const Aws::String& value) { m_mountOptionsHasBeenSet = true; m_mountOptions = value; }
361 
362     /**
363      * <p> The mount options for a file system created by Amazon EFS. The default mount
364      * options used by CodeBuild are
365      * <code>nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2</code>.
366      * For more information, see <a
367      * href="https://docs.aws.amazon.com/efs/latest/ug/mounting-fs-nfs-mount-settings.html">Recommended
368      * NFS Mount Options</a>. </p>
369      */
SetMountOptions(Aws::String && value)370     inline void SetMountOptions(Aws::String&& value) { m_mountOptionsHasBeenSet = true; m_mountOptions = std::move(value); }
371 
372     /**
373      * <p> The mount options for a file system created by Amazon EFS. The default mount
374      * options used by CodeBuild are
375      * <code>nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2</code>.
376      * For more information, see <a
377      * href="https://docs.aws.amazon.com/efs/latest/ug/mounting-fs-nfs-mount-settings.html">Recommended
378      * NFS Mount Options</a>. </p>
379      */
SetMountOptions(const char * value)380     inline void SetMountOptions(const char* value) { m_mountOptionsHasBeenSet = true; m_mountOptions.assign(value); }
381 
382     /**
383      * <p> The mount options for a file system created by Amazon EFS. The default mount
384      * options used by CodeBuild are
385      * <code>nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2</code>.
386      * For more information, see <a
387      * href="https://docs.aws.amazon.com/efs/latest/ug/mounting-fs-nfs-mount-settings.html">Recommended
388      * NFS Mount Options</a>. </p>
389      */
WithMountOptions(const Aws::String & value)390     inline ProjectFileSystemLocation& WithMountOptions(const Aws::String& value) { SetMountOptions(value); return *this;}
391 
392     /**
393      * <p> The mount options for a file system created by Amazon EFS. The default mount
394      * options used by CodeBuild are
395      * <code>nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2</code>.
396      * For more information, see <a
397      * href="https://docs.aws.amazon.com/efs/latest/ug/mounting-fs-nfs-mount-settings.html">Recommended
398      * NFS Mount Options</a>. </p>
399      */
WithMountOptions(Aws::String && value)400     inline ProjectFileSystemLocation& WithMountOptions(Aws::String&& value) { SetMountOptions(std::move(value)); return *this;}
401 
402     /**
403      * <p> The mount options for a file system created by Amazon EFS. The default mount
404      * options used by CodeBuild are
405      * <code>nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2</code>.
406      * For more information, see <a
407      * href="https://docs.aws.amazon.com/efs/latest/ug/mounting-fs-nfs-mount-settings.html">Recommended
408      * NFS Mount Options</a>. </p>
409      */
WithMountOptions(const char * value)410     inline ProjectFileSystemLocation& WithMountOptions(const char* value) { SetMountOptions(value); return *this;}
411 
412   private:
413 
414     FileSystemType m_type;
415     bool m_typeHasBeenSet;
416 
417     Aws::String m_location;
418     bool m_locationHasBeenSet;
419 
420     Aws::String m_mountPoint;
421     bool m_mountPointHasBeenSet;
422 
423     Aws::String m_identifier;
424     bool m_identifierHasBeenSet;
425 
426     Aws::String m_mountOptions;
427     bool m_mountOptionsHasBeenSet;
428   };
429 
430 } // namespace Model
431 } // namespace CodeBuild
432 } // namespace Aws
433