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/greengrass/Greengrass_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/greengrass/model/GroupOwnerSetting.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 Greengrass
23 {
24 namespace Model
25 {
26 
27   /**
28    * Attributes that define a local volume resource.<p><h3>See Also:</h3>   <a
29    * href="http://docs.aws.amazon.com/goto/WebAPI/greengrass-2017-06-07/LocalVolumeResourceData">AWS
30    * API Reference</a></p>
31    */
32   class AWS_GREENGRASS_API LocalVolumeResourceData
33   {
34   public:
35     LocalVolumeResourceData();
36     LocalVolumeResourceData(Aws::Utils::Json::JsonView jsonValue);
37     LocalVolumeResourceData& operator=(Aws::Utils::Json::JsonView jsonValue);
38     Aws::Utils::Json::JsonValue Jsonize() const;
39 
40 
41     /**
42      * The absolute local path of the resource inside the Lambda environment.
43      */
GetDestinationPath()44     inline const Aws::String& GetDestinationPath() const{ return m_destinationPath; }
45 
46     /**
47      * The absolute local path of the resource inside the Lambda environment.
48      */
DestinationPathHasBeenSet()49     inline bool DestinationPathHasBeenSet() const { return m_destinationPathHasBeenSet; }
50 
51     /**
52      * The absolute local path of the resource inside the Lambda environment.
53      */
SetDestinationPath(const Aws::String & value)54     inline void SetDestinationPath(const Aws::String& value) { m_destinationPathHasBeenSet = true; m_destinationPath = value; }
55 
56     /**
57      * The absolute local path of the resource inside the Lambda environment.
58      */
SetDestinationPath(Aws::String && value)59     inline void SetDestinationPath(Aws::String&& value) { m_destinationPathHasBeenSet = true; m_destinationPath = std::move(value); }
60 
61     /**
62      * The absolute local path of the resource inside the Lambda environment.
63      */
SetDestinationPath(const char * value)64     inline void SetDestinationPath(const char* value) { m_destinationPathHasBeenSet = true; m_destinationPath.assign(value); }
65 
66     /**
67      * The absolute local path of the resource inside the Lambda environment.
68      */
WithDestinationPath(const Aws::String & value)69     inline LocalVolumeResourceData& WithDestinationPath(const Aws::String& value) { SetDestinationPath(value); return *this;}
70 
71     /**
72      * The absolute local path of the resource inside the Lambda environment.
73      */
WithDestinationPath(Aws::String && value)74     inline LocalVolumeResourceData& WithDestinationPath(Aws::String&& value) { SetDestinationPath(std::move(value)); return *this;}
75 
76     /**
77      * The absolute local path of the resource inside the Lambda environment.
78      */
WithDestinationPath(const char * value)79     inline LocalVolumeResourceData& WithDestinationPath(const char* value) { SetDestinationPath(value); return *this;}
80 
81 
82     /**
83      * Allows you to configure additional group privileges for the Lambda process. This
84      * field is optional.
85      */
GetGroupOwnerSetting()86     inline const GroupOwnerSetting& GetGroupOwnerSetting() const{ return m_groupOwnerSetting; }
87 
88     /**
89      * Allows you to configure additional group privileges for the Lambda process. This
90      * field is optional.
91      */
GroupOwnerSettingHasBeenSet()92     inline bool GroupOwnerSettingHasBeenSet() const { return m_groupOwnerSettingHasBeenSet; }
93 
94     /**
95      * Allows you to configure additional group privileges for the Lambda process. This
96      * field is optional.
97      */
SetGroupOwnerSetting(const GroupOwnerSetting & value)98     inline void SetGroupOwnerSetting(const GroupOwnerSetting& value) { m_groupOwnerSettingHasBeenSet = true; m_groupOwnerSetting = value; }
99 
100     /**
101      * Allows you to configure additional group privileges for the Lambda process. This
102      * field is optional.
103      */
SetGroupOwnerSetting(GroupOwnerSetting && value)104     inline void SetGroupOwnerSetting(GroupOwnerSetting&& value) { m_groupOwnerSettingHasBeenSet = true; m_groupOwnerSetting = std::move(value); }
105 
106     /**
107      * Allows you to configure additional group privileges for the Lambda process. This
108      * field is optional.
109      */
WithGroupOwnerSetting(const GroupOwnerSetting & value)110     inline LocalVolumeResourceData& WithGroupOwnerSetting(const GroupOwnerSetting& value) { SetGroupOwnerSetting(value); return *this;}
111 
112     /**
113      * Allows you to configure additional group privileges for the Lambda process. This
114      * field is optional.
115      */
WithGroupOwnerSetting(GroupOwnerSetting && value)116     inline LocalVolumeResourceData& WithGroupOwnerSetting(GroupOwnerSetting&& value) { SetGroupOwnerSetting(std::move(value)); return *this;}
117 
118 
119     /**
120      * The local absolute path of the volume resource on the host. The source path for
121      * a volume resource type cannot start with ''/sys''.
122      */
GetSourcePath()123     inline const Aws::String& GetSourcePath() const{ return m_sourcePath; }
124 
125     /**
126      * The local absolute path of the volume resource on the host. The source path for
127      * a volume resource type cannot start with ''/sys''.
128      */
SourcePathHasBeenSet()129     inline bool SourcePathHasBeenSet() const { return m_sourcePathHasBeenSet; }
130 
131     /**
132      * The local absolute path of the volume resource on the host. The source path for
133      * a volume resource type cannot start with ''/sys''.
134      */
SetSourcePath(const Aws::String & value)135     inline void SetSourcePath(const Aws::String& value) { m_sourcePathHasBeenSet = true; m_sourcePath = value; }
136 
137     /**
138      * The local absolute path of the volume resource on the host. The source path for
139      * a volume resource type cannot start with ''/sys''.
140      */
SetSourcePath(Aws::String && value)141     inline void SetSourcePath(Aws::String&& value) { m_sourcePathHasBeenSet = true; m_sourcePath = std::move(value); }
142 
143     /**
144      * The local absolute path of the volume resource on the host. The source path for
145      * a volume resource type cannot start with ''/sys''.
146      */
SetSourcePath(const char * value)147     inline void SetSourcePath(const char* value) { m_sourcePathHasBeenSet = true; m_sourcePath.assign(value); }
148 
149     /**
150      * The local absolute path of the volume resource on the host. The source path for
151      * a volume resource type cannot start with ''/sys''.
152      */
WithSourcePath(const Aws::String & value)153     inline LocalVolumeResourceData& WithSourcePath(const Aws::String& value) { SetSourcePath(value); return *this;}
154 
155     /**
156      * The local absolute path of the volume resource on the host. The source path for
157      * a volume resource type cannot start with ''/sys''.
158      */
WithSourcePath(Aws::String && value)159     inline LocalVolumeResourceData& WithSourcePath(Aws::String&& value) { SetSourcePath(std::move(value)); return *this;}
160 
161     /**
162      * The local absolute path of the volume resource on the host. The source path for
163      * a volume resource type cannot start with ''/sys''.
164      */
WithSourcePath(const char * value)165     inline LocalVolumeResourceData& WithSourcePath(const char* value) { SetSourcePath(value); return *this;}
166 
167   private:
168 
169     Aws::String m_destinationPath;
170     bool m_destinationPathHasBeenSet;
171 
172     GroupOwnerSetting m_groupOwnerSetting;
173     bool m_groupOwnerSettingHasBeenSet;
174 
175     Aws::String m_sourcePath;
176     bool m_sourcePathHasBeenSet;
177   };
178 
179 } // namespace Model
180 } // namespace Greengrass
181 } // namespace Aws
182