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/storagegateway/StorageGateway_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/core/utils/memory/stl/AWSVector.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 StorageGateway
23 {
24 namespace Model
25 {
26 
27   /**
28    * <p>Represents a gateway's local disk.</p><p><h3>See Also:</h3>   <a
29    * href="http://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/Disk">AWS
30    * API Reference</a></p>
31    */
32   class AWS_STORAGEGATEWAY_API Disk
33   {
34   public:
35     Disk();
36     Disk(Aws::Utils::Json::JsonView jsonValue);
37     Disk& operator=(Aws::Utils::Json::JsonView jsonValue);
38     Aws::Utils::Json::JsonValue Jsonize() const;
39 
40 
41     /**
42      * <p>The unique device ID or other distinguishing data that identifies a local
43      * disk.</p>
44      */
GetDiskId()45     inline const Aws::String& GetDiskId() const{ return m_diskId; }
46 
47     /**
48      * <p>The unique device ID or other distinguishing data that identifies a local
49      * disk.</p>
50      */
DiskIdHasBeenSet()51     inline bool DiskIdHasBeenSet() const { return m_diskIdHasBeenSet; }
52 
53     /**
54      * <p>The unique device ID or other distinguishing data that identifies a local
55      * disk.</p>
56      */
SetDiskId(const Aws::String & value)57     inline void SetDiskId(const Aws::String& value) { m_diskIdHasBeenSet = true; m_diskId = value; }
58 
59     /**
60      * <p>The unique device ID or other distinguishing data that identifies a local
61      * disk.</p>
62      */
SetDiskId(Aws::String && value)63     inline void SetDiskId(Aws::String&& value) { m_diskIdHasBeenSet = true; m_diskId = std::move(value); }
64 
65     /**
66      * <p>The unique device ID or other distinguishing data that identifies a local
67      * disk.</p>
68      */
SetDiskId(const char * value)69     inline void SetDiskId(const char* value) { m_diskIdHasBeenSet = true; m_diskId.assign(value); }
70 
71     /**
72      * <p>The unique device ID or other distinguishing data that identifies a local
73      * disk.</p>
74      */
WithDiskId(const Aws::String & value)75     inline Disk& WithDiskId(const Aws::String& value) { SetDiskId(value); return *this;}
76 
77     /**
78      * <p>The unique device ID or other distinguishing data that identifies a local
79      * disk.</p>
80      */
WithDiskId(Aws::String && value)81     inline Disk& WithDiskId(Aws::String&& value) { SetDiskId(std::move(value)); return *this;}
82 
83     /**
84      * <p>The unique device ID or other distinguishing data that identifies a local
85      * disk.</p>
86      */
WithDiskId(const char * value)87     inline Disk& WithDiskId(const char* value) { SetDiskId(value); return *this;}
88 
89 
90     /**
91      * <p>The path of a local disk in the gateway virtual machine (VM).</p>
92      */
GetDiskPath()93     inline const Aws::String& GetDiskPath() const{ return m_diskPath; }
94 
95     /**
96      * <p>The path of a local disk in the gateway virtual machine (VM).</p>
97      */
DiskPathHasBeenSet()98     inline bool DiskPathHasBeenSet() const { return m_diskPathHasBeenSet; }
99 
100     /**
101      * <p>The path of a local disk in the gateway virtual machine (VM).</p>
102      */
SetDiskPath(const Aws::String & value)103     inline void SetDiskPath(const Aws::String& value) { m_diskPathHasBeenSet = true; m_diskPath = value; }
104 
105     /**
106      * <p>The path of a local disk in the gateway virtual machine (VM).</p>
107      */
SetDiskPath(Aws::String && value)108     inline void SetDiskPath(Aws::String&& value) { m_diskPathHasBeenSet = true; m_diskPath = std::move(value); }
109 
110     /**
111      * <p>The path of a local disk in the gateway virtual machine (VM).</p>
112      */
SetDiskPath(const char * value)113     inline void SetDiskPath(const char* value) { m_diskPathHasBeenSet = true; m_diskPath.assign(value); }
114 
115     /**
116      * <p>The path of a local disk in the gateway virtual machine (VM).</p>
117      */
WithDiskPath(const Aws::String & value)118     inline Disk& WithDiskPath(const Aws::String& value) { SetDiskPath(value); return *this;}
119 
120     /**
121      * <p>The path of a local disk in the gateway virtual machine (VM).</p>
122      */
WithDiskPath(Aws::String && value)123     inline Disk& WithDiskPath(Aws::String&& value) { SetDiskPath(std::move(value)); return *this;}
124 
125     /**
126      * <p>The path of a local disk in the gateway virtual machine (VM).</p>
127      */
WithDiskPath(const char * value)128     inline Disk& WithDiskPath(const char* value) { SetDiskPath(value); return *this;}
129 
130 
131     /**
132      * <p>The device node of a local disk as assigned by the virtualization
133      * environment.</p>
134      */
GetDiskNode()135     inline const Aws::String& GetDiskNode() const{ return m_diskNode; }
136 
137     /**
138      * <p>The device node of a local disk as assigned by the virtualization
139      * environment.</p>
140      */
DiskNodeHasBeenSet()141     inline bool DiskNodeHasBeenSet() const { return m_diskNodeHasBeenSet; }
142 
143     /**
144      * <p>The device node of a local disk as assigned by the virtualization
145      * environment.</p>
146      */
SetDiskNode(const Aws::String & value)147     inline void SetDiskNode(const Aws::String& value) { m_diskNodeHasBeenSet = true; m_diskNode = value; }
148 
149     /**
150      * <p>The device node of a local disk as assigned by the virtualization
151      * environment.</p>
152      */
SetDiskNode(Aws::String && value)153     inline void SetDiskNode(Aws::String&& value) { m_diskNodeHasBeenSet = true; m_diskNode = std::move(value); }
154 
155     /**
156      * <p>The device node of a local disk as assigned by the virtualization
157      * environment.</p>
158      */
SetDiskNode(const char * value)159     inline void SetDiskNode(const char* value) { m_diskNodeHasBeenSet = true; m_diskNode.assign(value); }
160 
161     /**
162      * <p>The device node of a local disk as assigned by the virtualization
163      * environment.</p>
164      */
WithDiskNode(const Aws::String & value)165     inline Disk& WithDiskNode(const Aws::String& value) { SetDiskNode(value); return *this;}
166 
167     /**
168      * <p>The device node of a local disk as assigned by the virtualization
169      * environment.</p>
170      */
WithDiskNode(Aws::String && value)171     inline Disk& WithDiskNode(Aws::String&& value) { SetDiskNode(std::move(value)); return *this;}
172 
173     /**
174      * <p>The device node of a local disk as assigned by the virtualization
175      * environment.</p>
176      */
WithDiskNode(const char * value)177     inline Disk& WithDiskNode(const char* value) { SetDiskNode(value); return *this;}
178 
179 
180     /**
181      * <p>A value that represents the status of a local disk.</p>
182      */
GetDiskStatus()183     inline const Aws::String& GetDiskStatus() const{ return m_diskStatus; }
184 
185     /**
186      * <p>A value that represents the status of a local disk.</p>
187      */
DiskStatusHasBeenSet()188     inline bool DiskStatusHasBeenSet() const { return m_diskStatusHasBeenSet; }
189 
190     /**
191      * <p>A value that represents the status of a local disk.</p>
192      */
SetDiskStatus(const Aws::String & value)193     inline void SetDiskStatus(const Aws::String& value) { m_diskStatusHasBeenSet = true; m_diskStatus = value; }
194 
195     /**
196      * <p>A value that represents the status of a local disk.</p>
197      */
SetDiskStatus(Aws::String && value)198     inline void SetDiskStatus(Aws::String&& value) { m_diskStatusHasBeenSet = true; m_diskStatus = std::move(value); }
199 
200     /**
201      * <p>A value that represents the status of a local disk.</p>
202      */
SetDiskStatus(const char * value)203     inline void SetDiskStatus(const char* value) { m_diskStatusHasBeenSet = true; m_diskStatus.assign(value); }
204 
205     /**
206      * <p>A value that represents the status of a local disk.</p>
207      */
WithDiskStatus(const Aws::String & value)208     inline Disk& WithDiskStatus(const Aws::String& value) { SetDiskStatus(value); return *this;}
209 
210     /**
211      * <p>A value that represents the status of a local disk.</p>
212      */
WithDiskStatus(Aws::String && value)213     inline Disk& WithDiskStatus(Aws::String&& value) { SetDiskStatus(std::move(value)); return *this;}
214 
215     /**
216      * <p>A value that represents the status of a local disk.</p>
217      */
WithDiskStatus(const char * value)218     inline Disk& WithDiskStatus(const char* value) { SetDiskStatus(value); return *this;}
219 
220 
221     /**
222      * <p>The local disk size in bytes.</p>
223      */
GetDiskSizeInBytes()224     inline long long GetDiskSizeInBytes() const{ return m_diskSizeInBytes; }
225 
226     /**
227      * <p>The local disk size in bytes.</p>
228      */
DiskSizeInBytesHasBeenSet()229     inline bool DiskSizeInBytesHasBeenSet() const { return m_diskSizeInBytesHasBeenSet; }
230 
231     /**
232      * <p>The local disk size in bytes.</p>
233      */
SetDiskSizeInBytes(long long value)234     inline void SetDiskSizeInBytes(long long value) { m_diskSizeInBytesHasBeenSet = true; m_diskSizeInBytes = value; }
235 
236     /**
237      * <p>The local disk size in bytes.</p>
238      */
WithDiskSizeInBytes(long long value)239     inline Disk& WithDiskSizeInBytes(long long value) { SetDiskSizeInBytes(value); return *this;}
240 
241 
242 
GetDiskAllocationType()243     inline const Aws::String& GetDiskAllocationType() const{ return m_diskAllocationType; }
244 
245 
DiskAllocationTypeHasBeenSet()246     inline bool DiskAllocationTypeHasBeenSet() const { return m_diskAllocationTypeHasBeenSet; }
247 
248 
SetDiskAllocationType(const Aws::String & value)249     inline void SetDiskAllocationType(const Aws::String& value) { m_diskAllocationTypeHasBeenSet = true; m_diskAllocationType = value; }
250 
251 
SetDiskAllocationType(Aws::String && value)252     inline void SetDiskAllocationType(Aws::String&& value) { m_diskAllocationTypeHasBeenSet = true; m_diskAllocationType = std::move(value); }
253 
254 
SetDiskAllocationType(const char * value)255     inline void SetDiskAllocationType(const char* value) { m_diskAllocationTypeHasBeenSet = true; m_diskAllocationType.assign(value); }
256 
257 
WithDiskAllocationType(const Aws::String & value)258     inline Disk& WithDiskAllocationType(const Aws::String& value) { SetDiskAllocationType(value); return *this;}
259 
260 
WithDiskAllocationType(Aws::String && value)261     inline Disk& WithDiskAllocationType(Aws::String&& value) { SetDiskAllocationType(std::move(value)); return *this;}
262 
263 
WithDiskAllocationType(const char * value)264     inline Disk& WithDiskAllocationType(const char* value) { SetDiskAllocationType(value); return *this;}
265 
266 
267     /**
268      * <p>The iSCSI qualified name (IQN) that is defined for a disk. This field is not
269      * included in the response if the local disk is not defined as an iSCSI target.
270      * The format of this field is <i>targetIqn::LUNNumber::region-volumeId</i>.</p>
271      */
GetDiskAllocationResource()272     inline const Aws::String& GetDiskAllocationResource() const{ return m_diskAllocationResource; }
273 
274     /**
275      * <p>The iSCSI qualified name (IQN) that is defined for a disk. This field is not
276      * included in the response if the local disk is not defined as an iSCSI target.
277      * The format of this field is <i>targetIqn::LUNNumber::region-volumeId</i>.</p>
278      */
DiskAllocationResourceHasBeenSet()279     inline bool DiskAllocationResourceHasBeenSet() const { return m_diskAllocationResourceHasBeenSet; }
280 
281     /**
282      * <p>The iSCSI qualified name (IQN) that is defined for a disk. This field is not
283      * included in the response if the local disk is not defined as an iSCSI target.
284      * The format of this field is <i>targetIqn::LUNNumber::region-volumeId</i>.</p>
285      */
SetDiskAllocationResource(const Aws::String & value)286     inline void SetDiskAllocationResource(const Aws::String& value) { m_diskAllocationResourceHasBeenSet = true; m_diskAllocationResource = value; }
287 
288     /**
289      * <p>The iSCSI qualified name (IQN) that is defined for a disk. This field is not
290      * included in the response if the local disk is not defined as an iSCSI target.
291      * The format of this field is <i>targetIqn::LUNNumber::region-volumeId</i>.</p>
292      */
SetDiskAllocationResource(Aws::String && value)293     inline void SetDiskAllocationResource(Aws::String&& value) { m_diskAllocationResourceHasBeenSet = true; m_diskAllocationResource = std::move(value); }
294 
295     /**
296      * <p>The iSCSI qualified name (IQN) that is defined for a disk. This field is not
297      * included in the response if the local disk is not defined as an iSCSI target.
298      * The format of this field is <i>targetIqn::LUNNumber::region-volumeId</i>.</p>
299      */
SetDiskAllocationResource(const char * value)300     inline void SetDiskAllocationResource(const char* value) { m_diskAllocationResourceHasBeenSet = true; m_diskAllocationResource.assign(value); }
301 
302     /**
303      * <p>The iSCSI qualified name (IQN) that is defined for a disk. This field is not
304      * included in the response if the local disk is not defined as an iSCSI target.
305      * The format of this field is <i>targetIqn::LUNNumber::region-volumeId</i>.</p>
306      */
WithDiskAllocationResource(const Aws::String & value)307     inline Disk& WithDiskAllocationResource(const Aws::String& value) { SetDiskAllocationResource(value); return *this;}
308 
309     /**
310      * <p>The iSCSI qualified name (IQN) that is defined for a disk. This field is not
311      * included in the response if the local disk is not defined as an iSCSI target.
312      * The format of this field is <i>targetIqn::LUNNumber::region-volumeId</i>.</p>
313      */
WithDiskAllocationResource(Aws::String && value)314     inline Disk& WithDiskAllocationResource(Aws::String&& value) { SetDiskAllocationResource(std::move(value)); return *this;}
315 
316     /**
317      * <p>The iSCSI qualified name (IQN) that is defined for a disk. This field is not
318      * included in the response if the local disk is not defined as an iSCSI target.
319      * The format of this field is <i>targetIqn::LUNNumber::region-volumeId</i>.</p>
320      */
WithDiskAllocationResource(const char * value)321     inline Disk& WithDiskAllocationResource(const char* value) { SetDiskAllocationResource(value); return *this;}
322 
323 
324 
GetDiskAttributeList()325     inline const Aws::Vector<Aws::String>& GetDiskAttributeList() const{ return m_diskAttributeList; }
326 
327 
DiskAttributeListHasBeenSet()328     inline bool DiskAttributeListHasBeenSet() const { return m_diskAttributeListHasBeenSet; }
329 
330 
SetDiskAttributeList(const Aws::Vector<Aws::String> & value)331     inline void SetDiskAttributeList(const Aws::Vector<Aws::String>& value) { m_diskAttributeListHasBeenSet = true; m_diskAttributeList = value; }
332 
333 
SetDiskAttributeList(Aws::Vector<Aws::String> && value)334     inline void SetDiskAttributeList(Aws::Vector<Aws::String>&& value) { m_diskAttributeListHasBeenSet = true; m_diskAttributeList = std::move(value); }
335 
336 
WithDiskAttributeList(const Aws::Vector<Aws::String> & value)337     inline Disk& WithDiskAttributeList(const Aws::Vector<Aws::String>& value) { SetDiskAttributeList(value); return *this;}
338 
339 
WithDiskAttributeList(Aws::Vector<Aws::String> && value)340     inline Disk& WithDiskAttributeList(Aws::Vector<Aws::String>&& value) { SetDiskAttributeList(std::move(value)); return *this;}
341 
342 
AddDiskAttributeList(const Aws::String & value)343     inline Disk& AddDiskAttributeList(const Aws::String& value) { m_diskAttributeListHasBeenSet = true; m_diskAttributeList.push_back(value); return *this; }
344 
345 
AddDiskAttributeList(Aws::String && value)346     inline Disk& AddDiskAttributeList(Aws::String&& value) { m_diskAttributeListHasBeenSet = true; m_diskAttributeList.push_back(std::move(value)); return *this; }
347 
348 
AddDiskAttributeList(const char * value)349     inline Disk& AddDiskAttributeList(const char* value) { m_diskAttributeListHasBeenSet = true; m_diskAttributeList.push_back(value); return *this; }
350 
351   private:
352 
353     Aws::String m_diskId;
354     bool m_diskIdHasBeenSet;
355 
356     Aws::String m_diskPath;
357     bool m_diskPathHasBeenSet;
358 
359     Aws::String m_diskNode;
360     bool m_diskNodeHasBeenSet;
361 
362     Aws::String m_diskStatus;
363     bool m_diskStatusHasBeenSet;
364 
365     long long m_diskSizeInBytes;
366     bool m_diskSizeInBytesHasBeenSet;
367 
368     Aws::String m_diskAllocationType;
369     bool m_diskAllocationTypeHasBeenSet;
370 
371     Aws::String m_diskAllocationResource;
372     bool m_diskAllocationResourceHasBeenSet;
373 
374     Aws::Vector<Aws::String> m_diskAttributeList;
375     bool m_diskAttributeListHasBeenSet;
376   };
377 
378 } // namespace Model
379 } // namespace StorageGateway
380 } // namespace Aws
381