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/ssm/SSM_EXPORTS.h> 8 #include <aws/core/utils/memory/stl/AWSString.h> 9 #include <aws/core/utils/memory/stl/AWSVector.h> 10 #include <aws/core/utils/memory/stl/AWSMap.h> 11 #include <utility> 12 13 namespace Aws 14 { 15 namespace Utils 16 { 17 namespace Json 18 { 19 class JsonValue; 20 class JsonView; 21 } // namespace Json 22 } // namespace Utils 23 namespace SSM 24 { 25 namespace Model 26 { 27 28 /** 29 * <p>Information collected from managed instances based on your inventory policy 30 * document</p><p><h3>See Also:</h3> <a 31 * href="http://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/InventoryItem">AWS 32 * API Reference</a></p> 33 */ 34 class AWS_SSM_API InventoryItem 35 { 36 public: 37 InventoryItem(); 38 InventoryItem(Aws::Utils::Json::JsonView jsonValue); 39 InventoryItem& operator=(Aws::Utils::Json::JsonView jsonValue); 40 Aws::Utils::Json::JsonValue Jsonize() const; 41 42 43 /** 44 * <p>The name of the inventory type. Default inventory item type names start with 45 * <code>AWS</code>. Custom inventory type names will start with Custom. Default 46 * inventory item types include the following: <code>AWS:AWSComponent</code>, 47 * <code>AWS:Application</code>, <code>AWS:InstanceInformation</code>, 48 * <code>AWS:Network</code>, and <code>AWS:WindowsUpdate</code>.</p> 49 */ GetTypeName()50 inline const Aws::String& GetTypeName() const{ return m_typeName; } 51 52 /** 53 * <p>The name of the inventory type. Default inventory item type names start with 54 * <code>AWS</code>. Custom inventory type names will start with Custom. Default 55 * inventory item types include the following: <code>AWS:AWSComponent</code>, 56 * <code>AWS:Application</code>, <code>AWS:InstanceInformation</code>, 57 * <code>AWS:Network</code>, and <code>AWS:WindowsUpdate</code>.</p> 58 */ TypeNameHasBeenSet()59 inline bool TypeNameHasBeenSet() const { return m_typeNameHasBeenSet; } 60 61 /** 62 * <p>The name of the inventory type. Default inventory item type names start with 63 * <code>AWS</code>. Custom inventory type names will start with Custom. Default 64 * inventory item types include the following: <code>AWS:AWSComponent</code>, 65 * <code>AWS:Application</code>, <code>AWS:InstanceInformation</code>, 66 * <code>AWS:Network</code>, and <code>AWS:WindowsUpdate</code>.</p> 67 */ SetTypeName(const Aws::String & value)68 inline void SetTypeName(const Aws::String& value) { m_typeNameHasBeenSet = true; m_typeName = value; } 69 70 /** 71 * <p>The name of the inventory type. Default inventory item type names start with 72 * <code>AWS</code>. Custom inventory type names will start with Custom. Default 73 * inventory item types include the following: <code>AWS:AWSComponent</code>, 74 * <code>AWS:Application</code>, <code>AWS:InstanceInformation</code>, 75 * <code>AWS:Network</code>, and <code>AWS:WindowsUpdate</code>.</p> 76 */ SetTypeName(Aws::String && value)77 inline void SetTypeName(Aws::String&& value) { m_typeNameHasBeenSet = true; m_typeName = std::move(value); } 78 79 /** 80 * <p>The name of the inventory type. Default inventory item type names start with 81 * <code>AWS</code>. Custom inventory type names will start with Custom. Default 82 * inventory item types include the following: <code>AWS:AWSComponent</code>, 83 * <code>AWS:Application</code>, <code>AWS:InstanceInformation</code>, 84 * <code>AWS:Network</code>, and <code>AWS:WindowsUpdate</code>.</p> 85 */ SetTypeName(const char * value)86 inline void SetTypeName(const char* value) { m_typeNameHasBeenSet = true; m_typeName.assign(value); } 87 88 /** 89 * <p>The name of the inventory type. Default inventory item type names start with 90 * <code>AWS</code>. Custom inventory type names will start with Custom. Default 91 * inventory item types include the following: <code>AWS:AWSComponent</code>, 92 * <code>AWS:Application</code>, <code>AWS:InstanceInformation</code>, 93 * <code>AWS:Network</code>, and <code>AWS:WindowsUpdate</code>.</p> 94 */ WithTypeName(const Aws::String & value)95 inline InventoryItem& WithTypeName(const Aws::String& value) { SetTypeName(value); return *this;} 96 97 /** 98 * <p>The name of the inventory type. Default inventory item type names start with 99 * <code>AWS</code>. Custom inventory type names will start with Custom. Default 100 * inventory item types include the following: <code>AWS:AWSComponent</code>, 101 * <code>AWS:Application</code>, <code>AWS:InstanceInformation</code>, 102 * <code>AWS:Network</code>, and <code>AWS:WindowsUpdate</code>.</p> 103 */ WithTypeName(Aws::String && value)104 inline InventoryItem& WithTypeName(Aws::String&& value) { SetTypeName(std::move(value)); return *this;} 105 106 /** 107 * <p>The name of the inventory type. Default inventory item type names start with 108 * <code>AWS</code>. Custom inventory type names will start with Custom. Default 109 * inventory item types include the following: <code>AWS:AWSComponent</code>, 110 * <code>AWS:Application</code>, <code>AWS:InstanceInformation</code>, 111 * <code>AWS:Network</code>, and <code>AWS:WindowsUpdate</code>.</p> 112 */ WithTypeName(const char * value)113 inline InventoryItem& WithTypeName(const char* value) { SetTypeName(value); return *this;} 114 115 116 /** 117 * <p>The schema version for the inventory item.</p> 118 */ GetSchemaVersion()119 inline const Aws::String& GetSchemaVersion() const{ return m_schemaVersion; } 120 121 /** 122 * <p>The schema version for the inventory item.</p> 123 */ SchemaVersionHasBeenSet()124 inline bool SchemaVersionHasBeenSet() const { return m_schemaVersionHasBeenSet; } 125 126 /** 127 * <p>The schema version for the inventory item.</p> 128 */ SetSchemaVersion(const Aws::String & value)129 inline void SetSchemaVersion(const Aws::String& value) { m_schemaVersionHasBeenSet = true; m_schemaVersion = value; } 130 131 /** 132 * <p>The schema version for the inventory item.</p> 133 */ SetSchemaVersion(Aws::String && value)134 inline void SetSchemaVersion(Aws::String&& value) { m_schemaVersionHasBeenSet = true; m_schemaVersion = std::move(value); } 135 136 /** 137 * <p>The schema version for the inventory item.</p> 138 */ SetSchemaVersion(const char * value)139 inline void SetSchemaVersion(const char* value) { m_schemaVersionHasBeenSet = true; m_schemaVersion.assign(value); } 140 141 /** 142 * <p>The schema version for the inventory item.</p> 143 */ WithSchemaVersion(const Aws::String & value)144 inline InventoryItem& WithSchemaVersion(const Aws::String& value) { SetSchemaVersion(value); return *this;} 145 146 /** 147 * <p>The schema version for the inventory item.</p> 148 */ WithSchemaVersion(Aws::String && value)149 inline InventoryItem& WithSchemaVersion(Aws::String&& value) { SetSchemaVersion(std::move(value)); return *this;} 150 151 /** 152 * <p>The schema version for the inventory item.</p> 153 */ WithSchemaVersion(const char * value)154 inline InventoryItem& WithSchemaVersion(const char* value) { SetSchemaVersion(value); return *this;} 155 156 157 /** 158 * <p>The time the inventory information was collected.</p> 159 */ GetCaptureTime()160 inline const Aws::String& GetCaptureTime() const{ return m_captureTime; } 161 162 /** 163 * <p>The time the inventory information was collected.</p> 164 */ CaptureTimeHasBeenSet()165 inline bool CaptureTimeHasBeenSet() const { return m_captureTimeHasBeenSet; } 166 167 /** 168 * <p>The time the inventory information was collected.</p> 169 */ SetCaptureTime(const Aws::String & value)170 inline void SetCaptureTime(const Aws::String& value) { m_captureTimeHasBeenSet = true; m_captureTime = value; } 171 172 /** 173 * <p>The time the inventory information was collected.</p> 174 */ SetCaptureTime(Aws::String && value)175 inline void SetCaptureTime(Aws::String&& value) { m_captureTimeHasBeenSet = true; m_captureTime = std::move(value); } 176 177 /** 178 * <p>The time the inventory information was collected.</p> 179 */ SetCaptureTime(const char * value)180 inline void SetCaptureTime(const char* value) { m_captureTimeHasBeenSet = true; m_captureTime.assign(value); } 181 182 /** 183 * <p>The time the inventory information was collected.</p> 184 */ WithCaptureTime(const Aws::String & value)185 inline InventoryItem& WithCaptureTime(const Aws::String& value) { SetCaptureTime(value); return *this;} 186 187 /** 188 * <p>The time the inventory information was collected.</p> 189 */ WithCaptureTime(Aws::String && value)190 inline InventoryItem& WithCaptureTime(Aws::String&& value) { SetCaptureTime(std::move(value)); return *this;} 191 192 /** 193 * <p>The time the inventory information was collected.</p> 194 */ WithCaptureTime(const char * value)195 inline InventoryItem& WithCaptureTime(const char* value) { SetCaptureTime(value); return *this;} 196 197 198 /** 199 * <p>MD5 hash of the inventory item type contents. The content hash is used to 200 * determine whether to update inventory information. The PutInventory API doesn't 201 * update the inventory item type contents if the MD5 hash hasn't changed since 202 * last update. </p> 203 */ GetContentHash()204 inline const Aws::String& GetContentHash() const{ return m_contentHash; } 205 206 /** 207 * <p>MD5 hash of the inventory item type contents. The content hash is used to 208 * determine whether to update inventory information. The PutInventory API doesn't 209 * update the inventory item type contents if the MD5 hash hasn't changed since 210 * last update. </p> 211 */ ContentHashHasBeenSet()212 inline bool ContentHashHasBeenSet() const { return m_contentHashHasBeenSet; } 213 214 /** 215 * <p>MD5 hash of the inventory item type contents. The content hash is used to 216 * determine whether to update inventory information. The PutInventory API doesn't 217 * update the inventory item type contents if the MD5 hash hasn't changed since 218 * last update. </p> 219 */ SetContentHash(const Aws::String & value)220 inline void SetContentHash(const Aws::String& value) { m_contentHashHasBeenSet = true; m_contentHash = value; } 221 222 /** 223 * <p>MD5 hash of the inventory item type contents. The content hash is used to 224 * determine whether to update inventory information. The PutInventory API doesn't 225 * update the inventory item type contents if the MD5 hash hasn't changed since 226 * last update. </p> 227 */ SetContentHash(Aws::String && value)228 inline void SetContentHash(Aws::String&& value) { m_contentHashHasBeenSet = true; m_contentHash = std::move(value); } 229 230 /** 231 * <p>MD5 hash of the inventory item type contents. The content hash is used to 232 * determine whether to update inventory information. The PutInventory API doesn't 233 * update the inventory item type contents if the MD5 hash hasn't changed since 234 * last update. </p> 235 */ SetContentHash(const char * value)236 inline void SetContentHash(const char* value) { m_contentHashHasBeenSet = true; m_contentHash.assign(value); } 237 238 /** 239 * <p>MD5 hash of the inventory item type contents. The content hash is used to 240 * determine whether to update inventory information. The PutInventory API doesn't 241 * update the inventory item type contents if the MD5 hash hasn't changed since 242 * last update. </p> 243 */ WithContentHash(const Aws::String & value)244 inline InventoryItem& WithContentHash(const Aws::String& value) { SetContentHash(value); return *this;} 245 246 /** 247 * <p>MD5 hash of the inventory item type contents. The content hash is used to 248 * determine whether to update inventory information. The PutInventory API doesn't 249 * update the inventory item type contents if the MD5 hash hasn't changed since 250 * last update. </p> 251 */ WithContentHash(Aws::String && value)252 inline InventoryItem& WithContentHash(Aws::String&& value) { SetContentHash(std::move(value)); return *this;} 253 254 /** 255 * <p>MD5 hash of the inventory item type contents. The content hash is used to 256 * determine whether to update inventory information. The PutInventory API doesn't 257 * update the inventory item type contents if the MD5 hash hasn't changed since 258 * last update. </p> 259 */ WithContentHash(const char * value)260 inline InventoryItem& WithContentHash(const char* value) { SetContentHash(value); return *this;} 261 262 263 /** 264 * <p>The inventory data of the inventory type.</p> 265 */ GetContent()266 inline const Aws::Vector<Aws::Map<Aws::String, Aws::String>>& GetContent() const{ return m_content; } 267 268 /** 269 * <p>The inventory data of the inventory type.</p> 270 */ ContentHasBeenSet()271 inline bool ContentHasBeenSet() const { return m_contentHasBeenSet; } 272 273 /** 274 * <p>The inventory data of the inventory type.</p> 275 */ SetContent(const Aws::Vector<Aws::Map<Aws::String,Aws::String>> & value)276 inline void SetContent(const Aws::Vector<Aws::Map<Aws::String, Aws::String>>& value) { m_contentHasBeenSet = true; m_content = value; } 277 278 /** 279 * <p>The inventory data of the inventory type.</p> 280 */ SetContent(Aws::Vector<Aws::Map<Aws::String,Aws::String>> && value)281 inline void SetContent(Aws::Vector<Aws::Map<Aws::String, Aws::String>>&& value) { m_contentHasBeenSet = true; m_content = std::move(value); } 282 283 /** 284 * <p>The inventory data of the inventory type.</p> 285 */ WithContent(const Aws::Vector<Aws::Map<Aws::String,Aws::String>> & value)286 inline InventoryItem& WithContent(const Aws::Vector<Aws::Map<Aws::String, Aws::String>>& value) { SetContent(value); return *this;} 287 288 /** 289 * <p>The inventory data of the inventory type.</p> 290 */ WithContent(Aws::Vector<Aws::Map<Aws::String,Aws::String>> && value)291 inline InventoryItem& WithContent(Aws::Vector<Aws::Map<Aws::String, Aws::String>>&& value) { SetContent(std::move(value)); return *this;} 292 293 /** 294 * <p>The inventory data of the inventory type.</p> 295 */ AddContent(const Aws::Map<Aws::String,Aws::String> & value)296 inline InventoryItem& AddContent(const Aws::Map<Aws::String, Aws::String>& value) { m_contentHasBeenSet = true; m_content.push_back(value); return *this; } 297 298 /** 299 * <p>The inventory data of the inventory type.</p> 300 */ AddContent(Aws::Map<Aws::String,Aws::String> && value)301 inline InventoryItem& AddContent(Aws::Map<Aws::String, Aws::String>&& value) { m_contentHasBeenSet = true; m_content.push_back(std::move(value)); return *this; } 302 303 304 /** 305 * <p>A map of associated properties for a specified inventory type. For example, 306 * with this attribute, you can specify the <code>ExecutionId</code>, 307 * <code>ExecutionType</code>, <code>ComplianceType</code> properties of the 308 * <code>AWS:ComplianceItem</code> type.</p> 309 */ GetContext()310 inline const Aws::Map<Aws::String, Aws::String>& GetContext() const{ return m_context; } 311 312 /** 313 * <p>A map of associated properties for a specified inventory type. For example, 314 * with this attribute, you can specify the <code>ExecutionId</code>, 315 * <code>ExecutionType</code>, <code>ComplianceType</code> properties of the 316 * <code>AWS:ComplianceItem</code> type.</p> 317 */ ContextHasBeenSet()318 inline bool ContextHasBeenSet() const { return m_contextHasBeenSet; } 319 320 /** 321 * <p>A map of associated properties for a specified inventory type. For example, 322 * with this attribute, you can specify the <code>ExecutionId</code>, 323 * <code>ExecutionType</code>, <code>ComplianceType</code> properties of the 324 * <code>AWS:ComplianceItem</code> type.</p> 325 */ SetContext(const Aws::Map<Aws::String,Aws::String> & value)326 inline void SetContext(const Aws::Map<Aws::String, Aws::String>& value) { m_contextHasBeenSet = true; m_context = value; } 327 328 /** 329 * <p>A map of associated properties for a specified inventory type. For example, 330 * with this attribute, you can specify the <code>ExecutionId</code>, 331 * <code>ExecutionType</code>, <code>ComplianceType</code> properties of the 332 * <code>AWS:ComplianceItem</code> type.</p> 333 */ SetContext(Aws::Map<Aws::String,Aws::String> && value)334 inline void SetContext(Aws::Map<Aws::String, Aws::String>&& value) { m_contextHasBeenSet = true; m_context = std::move(value); } 335 336 /** 337 * <p>A map of associated properties for a specified inventory type. For example, 338 * with this attribute, you can specify the <code>ExecutionId</code>, 339 * <code>ExecutionType</code>, <code>ComplianceType</code> properties of the 340 * <code>AWS:ComplianceItem</code> type.</p> 341 */ WithContext(const Aws::Map<Aws::String,Aws::String> & value)342 inline InventoryItem& WithContext(const Aws::Map<Aws::String, Aws::String>& value) { SetContext(value); return *this;} 343 344 /** 345 * <p>A map of associated properties for a specified inventory type. For example, 346 * with this attribute, you can specify the <code>ExecutionId</code>, 347 * <code>ExecutionType</code>, <code>ComplianceType</code> properties of the 348 * <code>AWS:ComplianceItem</code> type.</p> 349 */ WithContext(Aws::Map<Aws::String,Aws::String> && value)350 inline InventoryItem& WithContext(Aws::Map<Aws::String, Aws::String>&& value) { SetContext(std::move(value)); return *this;} 351 352 /** 353 * <p>A map of associated properties for a specified inventory type. For example, 354 * with this attribute, you can specify the <code>ExecutionId</code>, 355 * <code>ExecutionType</code>, <code>ComplianceType</code> properties of the 356 * <code>AWS:ComplianceItem</code> type.</p> 357 */ AddContext(const Aws::String & key,const Aws::String & value)358 inline InventoryItem& AddContext(const Aws::String& key, const Aws::String& value) { m_contextHasBeenSet = true; m_context.emplace(key, value); return *this; } 359 360 /** 361 * <p>A map of associated properties for a specified inventory type. For example, 362 * with this attribute, you can specify the <code>ExecutionId</code>, 363 * <code>ExecutionType</code>, <code>ComplianceType</code> properties of the 364 * <code>AWS:ComplianceItem</code> type.</p> 365 */ AddContext(Aws::String && key,const Aws::String & value)366 inline InventoryItem& AddContext(Aws::String&& key, const Aws::String& value) { m_contextHasBeenSet = true; m_context.emplace(std::move(key), value); return *this; } 367 368 /** 369 * <p>A map of associated properties for a specified inventory type. For example, 370 * with this attribute, you can specify the <code>ExecutionId</code>, 371 * <code>ExecutionType</code>, <code>ComplianceType</code> properties of the 372 * <code>AWS:ComplianceItem</code> type.</p> 373 */ AddContext(const Aws::String & key,Aws::String && value)374 inline InventoryItem& AddContext(const Aws::String& key, Aws::String&& value) { m_contextHasBeenSet = true; m_context.emplace(key, std::move(value)); return *this; } 375 376 /** 377 * <p>A map of associated properties for a specified inventory type. For example, 378 * with this attribute, you can specify the <code>ExecutionId</code>, 379 * <code>ExecutionType</code>, <code>ComplianceType</code> properties of the 380 * <code>AWS:ComplianceItem</code> type.</p> 381 */ AddContext(Aws::String && key,Aws::String && value)382 inline InventoryItem& AddContext(Aws::String&& key, Aws::String&& value) { m_contextHasBeenSet = true; m_context.emplace(std::move(key), std::move(value)); return *this; } 383 384 /** 385 * <p>A map of associated properties for a specified inventory type. For example, 386 * with this attribute, you can specify the <code>ExecutionId</code>, 387 * <code>ExecutionType</code>, <code>ComplianceType</code> properties of the 388 * <code>AWS:ComplianceItem</code> type.</p> 389 */ AddContext(const char * key,Aws::String && value)390 inline InventoryItem& AddContext(const char* key, Aws::String&& value) { m_contextHasBeenSet = true; m_context.emplace(key, std::move(value)); return *this; } 391 392 /** 393 * <p>A map of associated properties for a specified inventory type. For example, 394 * with this attribute, you can specify the <code>ExecutionId</code>, 395 * <code>ExecutionType</code>, <code>ComplianceType</code> properties of the 396 * <code>AWS:ComplianceItem</code> type.</p> 397 */ AddContext(Aws::String && key,const char * value)398 inline InventoryItem& AddContext(Aws::String&& key, const char* value) { m_contextHasBeenSet = true; m_context.emplace(std::move(key), value); return *this; } 399 400 /** 401 * <p>A map of associated properties for a specified inventory type. For example, 402 * with this attribute, you can specify the <code>ExecutionId</code>, 403 * <code>ExecutionType</code>, <code>ComplianceType</code> properties of the 404 * <code>AWS:ComplianceItem</code> type.</p> 405 */ AddContext(const char * key,const char * value)406 inline InventoryItem& AddContext(const char* key, const char* value) { m_contextHasBeenSet = true; m_context.emplace(key, value); return *this; } 407 408 private: 409 410 Aws::String m_typeName; 411 bool m_typeNameHasBeenSet; 412 413 Aws::String m_schemaVersion; 414 bool m_schemaVersionHasBeenSet; 415 416 Aws::String m_captureTime; 417 bool m_captureTimeHasBeenSet; 418 419 Aws::String m_contentHash; 420 bool m_contentHashHasBeenSet; 421 422 Aws::Vector<Aws::Map<Aws::String, Aws::String>> m_content; 423 bool m_contentHasBeenSet; 424 425 Aws::Map<Aws::String, Aws::String> m_context; 426 bool m_contextHasBeenSet; 427 }; 428 429 } // namespace Model 430 } // namespace SSM 431 } // namespace Aws 432