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 template<typename RESULT_TYPE>
15 class AmazonWebServiceResult;
16 
17 namespace Utils
18 {
19 namespace Json
20 {
21   class JsonValue;
22 } // namespace Json
23 } // namespace Utils
24 namespace StorageGateway
25 {
26 namespace Model
27 {
28   class AWS_STORAGEGATEWAY_API DescribeCacheResult
29   {
30   public:
31     DescribeCacheResult();
32     DescribeCacheResult(const Aws::AmazonWebServiceResult<Aws::Utils::Json::JsonValue>& result);
33     DescribeCacheResult& operator=(const Aws::AmazonWebServiceResult<Aws::Utils::Json::JsonValue>& result);
34 
35 
36 
GetGatewayARN()37     inline const Aws::String& GetGatewayARN() const{ return m_gatewayARN; }
38 
39 
SetGatewayARN(const Aws::String & value)40     inline void SetGatewayARN(const Aws::String& value) { m_gatewayARN = value; }
41 
42 
SetGatewayARN(Aws::String && value)43     inline void SetGatewayARN(Aws::String&& value) { m_gatewayARN = std::move(value); }
44 
45 
SetGatewayARN(const char * value)46     inline void SetGatewayARN(const char* value) { m_gatewayARN.assign(value); }
47 
48 
WithGatewayARN(const Aws::String & value)49     inline DescribeCacheResult& WithGatewayARN(const Aws::String& value) { SetGatewayARN(value); return *this;}
50 
51 
WithGatewayARN(Aws::String && value)52     inline DescribeCacheResult& WithGatewayARN(Aws::String&& value) { SetGatewayARN(std::move(value)); return *this;}
53 
54 
WithGatewayARN(const char * value)55     inline DescribeCacheResult& WithGatewayARN(const char* value) { SetGatewayARN(value); return *this;}
56 
57 
58     /**
59      * <p>An array of strings that identify disks that are to be configured as working
60      * storage. Each string has a minimum length of 1 and maximum length of 300. You
61      * can get the disk IDs from the <a>ListLocalDisks</a> API.</p>
62      */
GetDiskIds()63     inline const Aws::Vector<Aws::String>& GetDiskIds() const{ return m_diskIds; }
64 
65     /**
66      * <p>An array of strings that identify disks that are to be configured as working
67      * storage. Each string has a minimum length of 1 and maximum length of 300. You
68      * can get the disk IDs from the <a>ListLocalDisks</a> API.</p>
69      */
SetDiskIds(const Aws::Vector<Aws::String> & value)70     inline void SetDiskIds(const Aws::Vector<Aws::String>& value) { m_diskIds = value; }
71 
72     /**
73      * <p>An array of strings that identify disks that are to be configured as working
74      * storage. Each string has a minimum length of 1 and maximum length of 300. You
75      * can get the disk IDs from the <a>ListLocalDisks</a> API.</p>
76      */
SetDiskIds(Aws::Vector<Aws::String> && value)77     inline void SetDiskIds(Aws::Vector<Aws::String>&& value) { m_diskIds = std::move(value); }
78 
79     /**
80      * <p>An array of strings that identify disks that are to be configured as working
81      * storage. Each string has a minimum length of 1 and maximum length of 300. You
82      * can get the disk IDs from the <a>ListLocalDisks</a> API.</p>
83      */
WithDiskIds(const Aws::Vector<Aws::String> & value)84     inline DescribeCacheResult& WithDiskIds(const Aws::Vector<Aws::String>& value) { SetDiskIds(value); return *this;}
85 
86     /**
87      * <p>An array of strings that identify disks that are to be configured as working
88      * storage. Each string has a minimum length of 1 and maximum length of 300. You
89      * can get the disk IDs from the <a>ListLocalDisks</a> API.</p>
90      */
WithDiskIds(Aws::Vector<Aws::String> && value)91     inline DescribeCacheResult& WithDiskIds(Aws::Vector<Aws::String>&& value) { SetDiskIds(std::move(value)); return *this;}
92 
93     /**
94      * <p>An array of strings that identify disks that are to be configured as working
95      * storage. Each string has a minimum length of 1 and maximum length of 300. You
96      * can get the disk IDs from the <a>ListLocalDisks</a> API.</p>
97      */
AddDiskIds(const Aws::String & value)98     inline DescribeCacheResult& AddDiskIds(const Aws::String& value) { m_diskIds.push_back(value); return *this; }
99 
100     /**
101      * <p>An array of strings that identify disks that are to be configured as working
102      * storage. Each string has a minimum length of 1 and maximum length of 300. You
103      * can get the disk IDs from the <a>ListLocalDisks</a> API.</p>
104      */
AddDiskIds(Aws::String && value)105     inline DescribeCacheResult& AddDiskIds(Aws::String&& value) { m_diskIds.push_back(std::move(value)); return *this; }
106 
107     /**
108      * <p>An array of strings that identify disks that are to be configured as working
109      * storage. Each string has a minimum length of 1 and maximum length of 300. You
110      * can get the disk IDs from the <a>ListLocalDisks</a> API.</p>
111      */
AddDiskIds(const char * value)112     inline DescribeCacheResult& AddDiskIds(const char* value) { m_diskIds.push_back(value); return *this; }
113 
114 
115     /**
116      * <p>The amount of cache in bytes allocated to a gateway.</p>
117      */
GetCacheAllocatedInBytes()118     inline long long GetCacheAllocatedInBytes() const{ return m_cacheAllocatedInBytes; }
119 
120     /**
121      * <p>The amount of cache in bytes allocated to a gateway.</p>
122      */
SetCacheAllocatedInBytes(long long value)123     inline void SetCacheAllocatedInBytes(long long value) { m_cacheAllocatedInBytes = value; }
124 
125     /**
126      * <p>The amount of cache in bytes allocated to a gateway.</p>
127      */
WithCacheAllocatedInBytes(long long value)128     inline DescribeCacheResult& WithCacheAllocatedInBytes(long long value) { SetCacheAllocatedInBytes(value); return *this;}
129 
130 
131     /**
132      * <p>Percent use of the gateway's cache storage. This metric applies only to the
133      * gateway-cached volume setup. The sample is taken at the end of the reporting
134      * period.</p>
135      */
GetCacheUsedPercentage()136     inline double GetCacheUsedPercentage() const{ return m_cacheUsedPercentage; }
137 
138     /**
139      * <p>Percent use of the gateway's cache storage. This metric applies only to the
140      * gateway-cached volume setup. The sample is taken at the end of the reporting
141      * period.</p>
142      */
SetCacheUsedPercentage(double value)143     inline void SetCacheUsedPercentage(double value) { m_cacheUsedPercentage = value; }
144 
145     /**
146      * <p>Percent use of the gateway's cache storage. This metric applies only to the
147      * gateway-cached volume setup. The sample is taken at the end of the reporting
148      * period.</p>
149      */
WithCacheUsedPercentage(double value)150     inline DescribeCacheResult& WithCacheUsedPercentage(double value) { SetCacheUsedPercentage(value); return *this;}
151 
152 
153     /**
154      * <p>The file share's contribution to the overall percentage of the gateway's
155      * cache that has not been persisted to Amazon Web Services. The sample is taken at
156      * the end of the reporting period.</p>
157      */
GetCacheDirtyPercentage()158     inline double GetCacheDirtyPercentage() const{ return m_cacheDirtyPercentage; }
159 
160     /**
161      * <p>The file share's contribution to the overall percentage of the gateway's
162      * cache that has not been persisted to Amazon Web Services. The sample is taken at
163      * the end of the reporting period.</p>
164      */
SetCacheDirtyPercentage(double value)165     inline void SetCacheDirtyPercentage(double value) { m_cacheDirtyPercentage = value; }
166 
167     /**
168      * <p>The file share's contribution to the overall percentage of the gateway's
169      * cache that has not been persisted to Amazon Web Services. The sample is taken at
170      * the end of the reporting period.</p>
171      */
WithCacheDirtyPercentage(double value)172     inline DescribeCacheResult& WithCacheDirtyPercentage(double value) { SetCacheDirtyPercentage(value); return *this;}
173 
174 
175     /**
176      * <p>Percent of application read operations from the file shares that are served
177      * from cache. The sample is taken at the end of the reporting period.</p>
178      */
GetCacheHitPercentage()179     inline double GetCacheHitPercentage() const{ return m_cacheHitPercentage; }
180 
181     /**
182      * <p>Percent of application read operations from the file shares that are served
183      * from cache. The sample is taken at the end of the reporting period.</p>
184      */
SetCacheHitPercentage(double value)185     inline void SetCacheHitPercentage(double value) { m_cacheHitPercentage = value; }
186 
187     /**
188      * <p>Percent of application read operations from the file shares that are served
189      * from cache. The sample is taken at the end of the reporting period.</p>
190      */
WithCacheHitPercentage(double value)191     inline DescribeCacheResult& WithCacheHitPercentage(double value) { SetCacheHitPercentage(value); return *this;}
192 
193 
194     /**
195      * <p>Percent of application read operations from the file shares that are not
196      * served from cache. The sample is taken at the end of the reporting period.</p>
197      */
GetCacheMissPercentage()198     inline double GetCacheMissPercentage() const{ return m_cacheMissPercentage; }
199 
200     /**
201      * <p>Percent of application read operations from the file shares that are not
202      * served from cache. The sample is taken at the end of the reporting period.</p>
203      */
SetCacheMissPercentage(double value)204     inline void SetCacheMissPercentage(double value) { m_cacheMissPercentage = value; }
205 
206     /**
207      * <p>Percent of application read operations from the file shares that are not
208      * served from cache. The sample is taken at the end of the reporting period.</p>
209      */
WithCacheMissPercentage(double value)210     inline DescribeCacheResult& WithCacheMissPercentage(double value) { SetCacheMissPercentage(value); return *this;}
211 
212   private:
213 
214     Aws::String m_gatewayARN;
215 
216     Aws::Vector<Aws::String> m_diskIds;
217 
218     long long m_cacheAllocatedInBytes;
219 
220     double m_cacheUsedPercentage;
221 
222     double m_cacheDirtyPercentage;
223 
224     double m_cacheHitPercentage;
225 
226     double m_cacheMissPercentage;
227   };
228 
229 } // namespace Model
230 } // namespace StorageGateway
231 } // namespace Aws
232