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/storagegateway/model/TapeStorageClass.h> 10 #include <aws/storagegateway/model/RetentionLockType.h> 11 #include <aws/storagegateway/model/PoolStatus.h> 12 #include <utility> 13 14 namespace Aws 15 { 16 namespace Utils 17 { 18 namespace Json 19 { 20 class JsonValue; 21 class JsonView; 22 } // namespace Json 23 } // namespace Utils 24 namespace StorageGateway 25 { 26 namespace Model 27 { 28 29 /** 30 * <p>Describes a custom tape pool.</p><p><h3>See Also:</h3> <a 31 * href="http://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/PoolInfo">AWS 32 * API Reference</a></p> 33 */ 34 class AWS_STORAGEGATEWAY_API PoolInfo 35 { 36 public: 37 PoolInfo(); 38 PoolInfo(Aws::Utils::Json::JsonView jsonValue); 39 PoolInfo& operator=(Aws::Utils::Json::JsonView jsonValue); 40 Aws::Utils::Json::JsonValue Jsonize() const; 41 42 43 /** 44 * <p>The Amazon Resource Name (ARN) of the custom tape pool. Use the 45 * <a>ListTapePools</a> operation to return a list of custom tape pools for your 46 * account and Amazon Web Services Region.</p> 47 */ GetPoolARN()48 inline const Aws::String& GetPoolARN() const{ return m_poolARN; } 49 50 /** 51 * <p>The Amazon Resource Name (ARN) of the custom tape pool. Use the 52 * <a>ListTapePools</a> operation to return a list of custom tape pools for your 53 * account and Amazon Web Services Region.</p> 54 */ PoolARNHasBeenSet()55 inline bool PoolARNHasBeenSet() const { return m_poolARNHasBeenSet; } 56 57 /** 58 * <p>The Amazon Resource Name (ARN) of the custom tape pool. Use the 59 * <a>ListTapePools</a> operation to return a list of custom tape pools for your 60 * account and Amazon Web Services Region.</p> 61 */ SetPoolARN(const Aws::String & value)62 inline void SetPoolARN(const Aws::String& value) { m_poolARNHasBeenSet = true; m_poolARN = value; } 63 64 /** 65 * <p>The Amazon Resource Name (ARN) of the custom tape pool. Use the 66 * <a>ListTapePools</a> operation to return a list of custom tape pools for your 67 * account and Amazon Web Services Region.</p> 68 */ SetPoolARN(Aws::String && value)69 inline void SetPoolARN(Aws::String&& value) { m_poolARNHasBeenSet = true; m_poolARN = std::move(value); } 70 71 /** 72 * <p>The Amazon Resource Name (ARN) of the custom tape pool. Use the 73 * <a>ListTapePools</a> operation to return a list of custom tape pools for your 74 * account and Amazon Web Services Region.</p> 75 */ SetPoolARN(const char * value)76 inline void SetPoolARN(const char* value) { m_poolARNHasBeenSet = true; m_poolARN.assign(value); } 77 78 /** 79 * <p>The Amazon Resource Name (ARN) of the custom tape pool. Use the 80 * <a>ListTapePools</a> operation to return a list of custom tape pools for your 81 * account and Amazon Web Services Region.</p> 82 */ WithPoolARN(const Aws::String & value)83 inline PoolInfo& WithPoolARN(const Aws::String& value) { SetPoolARN(value); return *this;} 84 85 /** 86 * <p>The Amazon Resource Name (ARN) of the custom tape pool. Use the 87 * <a>ListTapePools</a> operation to return a list of custom tape pools for your 88 * account and Amazon Web Services Region.</p> 89 */ WithPoolARN(Aws::String && value)90 inline PoolInfo& WithPoolARN(Aws::String&& value) { SetPoolARN(std::move(value)); return *this;} 91 92 /** 93 * <p>The Amazon Resource Name (ARN) of the custom tape pool. Use the 94 * <a>ListTapePools</a> operation to return a list of custom tape pools for your 95 * account and Amazon Web Services Region.</p> 96 */ WithPoolARN(const char * value)97 inline PoolInfo& WithPoolARN(const char* value) { SetPoolARN(value); return *this;} 98 99 100 /** 101 * <p>The name of the custom tape pool. <code>PoolName</code> can use all ASCII 102 * characters, except '/' and '\'.</p> 103 */ GetPoolName()104 inline const Aws::String& GetPoolName() const{ return m_poolName; } 105 106 /** 107 * <p>The name of the custom tape pool. <code>PoolName</code> can use all ASCII 108 * characters, except '/' and '\'.</p> 109 */ PoolNameHasBeenSet()110 inline bool PoolNameHasBeenSet() const { return m_poolNameHasBeenSet; } 111 112 /** 113 * <p>The name of the custom tape pool. <code>PoolName</code> can use all ASCII 114 * characters, except '/' and '\'.</p> 115 */ SetPoolName(const Aws::String & value)116 inline void SetPoolName(const Aws::String& value) { m_poolNameHasBeenSet = true; m_poolName = value; } 117 118 /** 119 * <p>The name of the custom tape pool. <code>PoolName</code> can use all ASCII 120 * characters, except '/' and '\'.</p> 121 */ SetPoolName(Aws::String && value)122 inline void SetPoolName(Aws::String&& value) { m_poolNameHasBeenSet = true; m_poolName = std::move(value); } 123 124 /** 125 * <p>The name of the custom tape pool. <code>PoolName</code> can use all ASCII 126 * characters, except '/' and '\'.</p> 127 */ SetPoolName(const char * value)128 inline void SetPoolName(const char* value) { m_poolNameHasBeenSet = true; m_poolName.assign(value); } 129 130 /** 131 * <p>The name of the custom tape pool. <code>PoolName</code> can use all ASCII 132 * characters, except '/' and '\'.</p> 133 */ WithPoolName(const Aws::String & value)134 inline PoolInfo& WithPoolName(const Aws::String& value) { SetPoolName(value); return *this;} 135 136 /** 137 * <p>The name of the custom tape pool. <code>PoolName</code> can use all ASCII 138 * characters, except '/' and '\'.</p> 139 */ WithPoolName(Aws::String && value)140 inline PoolInfo& WithPoolName(Aws::String&& value) { SetPoolName(std::move(value)); return *this;} 141 142 /** 143 * <p>The name of the custom tape pool. <code>PoolName</code> can use all ASCII 144 * characters, except '/' and '\'.</p> 145 */ WithPoolName(const char * value)146 inline PoolInfo& WithPoolName(const char* value) { SetPoolName(value); return *this;} 147 148 149 /** 150 * <p>The storage class that is associated with the custom pool. When you use your 151 * backup application to eject the tape, the tape is archived directly into the 152 * storage class (S3 Glacier or S3 Glacier Deep Archive) that corresponds to the 153 * pool.</p> 154 */ GetStorageClass()155 inline const TapeStorageClass& GetStorageClass() const{ return m_storageClass; } 156 157 /** 158 * <p>The storage class that is associated with the custom pool. When you use your 159 * backup application to eject the tape, the tape is archived directly into the 160 * storage class (S3 Glacier or S3 Glacier Deep Archive) that corresponds to the 161 * pool.</p> 162 */ StorageClassHasBeenSet()163 inline bool StorageClassHasBeenSet() const { return m_storageClassHasBeenSet; } 164 165 /** 166 * <p>The storage class that is associated with the custom pool. When you use your 167 * backup application to eject the tape, the tape is archived directly into the 168 * storage class (S3 Glacier or S3 Glacier Deep Archive) that corresponds to the 169 * pool.</p> 170 */ SetStorageClass(const TapeStorageClass & value)171 inline void SetStorageClass(const TapeStorageClass& value) { m_storageClassHasBeenSet = true; m_storageClass = value; } 172 173 /** 174 * <p>The storage class that is associated with the custom pool. When you use your 175 * backup application to eject the tape, the tape is archived directly into the 176 * storage class (S3 Glacier or S3 Glacier Deep Archive) that corresponds to the 177 * pool.</p> 178 */ SetStorageClass(TapeStorageClass && value)179 inline void SetStorageClass(TapeStorageClass&& value) { m_storageClassHasBeenSet = true; m_storageClass = std::move(value); } 180 181 /** 182 * <p>The storage class that is associated with the custom pool. When you use your 183 * backup application to eject the tape, the tape is archived directly into the 184 * storage class (S3 Glacier or S3 Glacier Deep Archive) that corresponds to the 185 * pool.</p> 186 */ WithStorageClass(const TapeStorageClass & value)187 inline PoolInfo& WithStorageClass(const TapeStorageClass& value) { SetStorageClass(value); return *this;} 188 189 /** 190 * <p>The storage class that is associated with the custom pool. When you use your 191 * backup application to eject the tape, the tape is archived directly into the 192 * storage class (S3 Glacier or S3 Glacier Deep Archive) that corresponds to the 193 * pool.</p> 194 */ WithStorageClass(TapeStorageClass && value)195 inline PoolInfo& WithStorageClass(TapeStorageClass&& value) { SetStorageClass(std::move(value)); return *this;} 196 197 198 /** 199 * <p>Tape retention lock type, which can be configured in two modes. When 200 * configured in governance mode, Amazon Web Services accounts with specific IAM 201 * permissions are authorized to remove the tape retention lock from archived 202 * virtual tapes. When configured in compliance mode, the tape retention lock 203 * cannot be removed by any user, including the root Amazon Web Services 204 * account.</p> 205 */ GetRetentionLockType()206 inline const RetentionLockType& GetRetentionLockType() const{ return m_retentionLockType; } 207 208 /** 209 * <p>Tape retention lock type, which can be configured in two modes. When 210 * configured in governance mode, Amazon Web Services accounts with specific IAM 211 * permissions are authorized to remove the tape retention lock from archived 212 * virtual tapes. When configured in compliance mode, the tape retention lock 213 * cannot be removed by any user, including the root Amazon Web Services 214 * account.</p> 215 */ RetentionLockTypeHasBeenSet()216 inline bool RetentionLockTypeHasBeenSet() const { return m_retentionLockTypeHasBeenSet; } 217 218 /** 219 * <p>Tape retention lock type, which can be configured in two modes. When 220 * configured in governance mode, Amazon Web Services accounts with specific IAM 221 * permissions are authorized to remove the tape retention lock from archived 222 * virtual tapes. When configured in compliance mode, the tape retention lock 223 * cannot be removed by any user, including the root Amazon Web Services 224 * account.</p> 225 */ SetRetentionLockType(const RetentionLockType & value)226 inline void SetRetentionLockType(const RetentionLockType& value) { m_retentionLockTypeHasBeenSet = true; m_retentionLockType = value; } 227 228 /** 229 * <p>Tape retention lock type, which can be configured in two modes. When 230 * configured in governance mode, Amazon Web Services accounts with specific IAM 231 * permissions are authorized to remove the tape retention lock from archived 232 * virtual tapes. When configured in compliance mode, the tape retention lock 233 * cannot be removed by any user, including the root Amazon Web Services 234 * account.</p> 235 */ SetRetentionLockType(RetentionLockType && value)236 inline void SetRetentionLockType(RetentionLockType&& value) { m_retentionLockTypeHasBeenSet = true; m_retentionLockType = std::move(value); } 237 238 /** 239 * <p>Tape retention lock type, which can be configured in two modes. When 240 * configured in governance mode, Amazon Web Services accounts with specific IAM 241 * permissions are authorized to remove the tape retention lock from archived 242 * virtual tapes. When configured in compliance mode, the tape retention lock 243 * cannot be removed by any user, including the root Amazon Web Services 244 * account.</p> 245 */ WithRetentionLockType(const RetentionLockType & value)246 inline PoolInfo& WithRetentionLockType(const RetentionLockType& value) { SetRetentionLockType(value); return *this;} 247 248 /** 249 * <p>Tape retention lock type, which can be configured in two modes. When 250 * configured in governance mode, Amazon Web Services accounts with specific IAM 251 * permissions are authorized to remove the tape retention lock from archived 252 * virtual tapes. When configured in compliance mode, the tape retention lock 253 * cannot be removed by any user, including the root Amazon Web Services 254 * account.</p> 255 */ WithRetentionLockType(RetentionLockType && value)256 inline PoolInfo& WithRetentionLockType(RetentionLockType&& value) { SetRetentionLockType(std::move(value)); return *this;} 257 258 259 /** 260 * <p>Tape retention lock time is set in days. Tape retention lock can be enabled 261 * for up to 100 years (36,500 days).</p> 262 */ GetRetentionLockTimeInDays()263 inline int GetRetentionLockTimeInDays() const{ return m_retentionLockTimeInDays; } 264 265 /** 266 * <p>Tape retention lock time is set in days. Tape retention lock can be enabled 267 * for up to 100 years (36,500 days).</p> 268 */ RetentionLockTimeInDaysHasBeenSet()269 inline bool RetentionLockTimeInDaysHasBeenSet() const { return m_retentionLockTimeInDaysHasBeenSet; } 270 271 /** 272 * <p>Tape retention lock time is set in days. Tape retention lock can be enabled 273 * for up to 100 years (36,500 days).</p> 274 */ SetRetentionLockTimeInDays(int value)275 inline void SetRetentionLockTimeInDays(int value) { m_retentionLockTimeInDaysHasBeenSet = true; m_retentionLockTimeInDays = value; } 276 277 /** 278 * <p>Tape retention lock time is set in days. Tape retention lock can be enabled 279 * for up to 100 years (36,500 days).</p> 280 */ WithRetentionLockTimeInDays(int value)281 inline PoolInfo& WithRetentionLockTimeInDays(int value) { SetRetentionLockTimeInDays(value); return *this;} 282 283 284 /** 285 * <p>Status of the custom tape pool. Pool can be <code>ACTIVE</code> or 286 * <code>DELETED</code>.</p> 287 */ GetPoolStatus()288 inline const PoolStatus& GetPoolStatus() const{ return m_poolStatus; } 289 290 /** 291 * <p>Status of the custom tape pool. Pool can be <code>ACTIVE</code> or 292 * <code>DELETED</code>.</p> 293 */ PoolStatusHasBeenSet()294 inline bool PoolStatusHasBeenSet() const { return m_poolStatusHasBeenSet; } 295 296 /** 297 * <p>Status of the custom tape pool. Pool can be <code>ACTIVE</code> or 298 * <code>DELETED</code>.</p> 299 */ SetPoolStatus(const PoolStatus & value)300 inline void SetPoolStatus(const PoolStatus& value) { m_poolStatusHasBeenSet = true; m_poolStatus = value; } 301 302 /** 303 * <p>Status of the custom tape pool. Pool can be <code>ACTIVE</code> or 304 * <code>DELETED</code>.</p> 305 */ SetPoolStatus(PoolStatus && value)306 inline void SetPoolStatus(PoolStatus&& value) { m_poolStatusHasBeenSet = true; m_poolStatus = std::move(value); } 307 308 /** 309 * <p>Status of the custom tape pool. Pool can be <code>ACTIVE</code> or 310 * <code>DELETED</code>.</p> 311 */ WithPoolStatus(const PoolStatus & value)312 inline PoolInfo& WithPoolStatus(const PoolStatus& value) { SetPoolStatus(value); return *this;} 313 314 /** 315 * <p>Status of the custom tape pool. Pool can be <code>ACTIVE</code> or 316 * <code>DELETED</code>.</p> 317 */ WithPoolStatus(PoolStatus && value)318 inline PoolInfo& WithPoolStatus(PoolStatus&& value) { SetPoolStatus(std::move(value)); return *this;} 319 320 private: 321 322 Aws::String m_poolARN; 323 bool m_poolARNHasBeenSet; 324 325 Aws::String m_poolName; 326 bool m_poolNameHasBeenSet; 327 328 TapeStorageClass m_storageClass; 329 bool m_storageClassHasBeenSet; 330 331 RetentionLockType m_retentionLockType; 332 bool m_retentionLockTypeHasBeenSet; 333 334 int m_retentionLockTimeInDays; 335 bool m_retentionLockTimeInDaysHasBeenSet; 336 337 PoolStatus m_poolStatus; 338 bool m_poolStatusHasBeenSet; 339 }; 340 341 } // namespace Model 342 } // namespace StorageGateway 343 } // namespace Aws 344