/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include Contains details about a specific vulnerability Amazon Inspector can
* detect.See Also:
AWS
* API Reference
An object that contains information about the Amazon Web Services Threat * Intel Group (ATIG) details for the vulnerability.
*/ inline const AtigData& GetAtigData() const{ return m_atigData; } /** *An object that contains information about the Amazon Web Services Threat * Intel Group (ATIG) details for the vulnerability.
*/ inline bool AtigDataHasBeenSet() const { return m_atigDataHasBeenSet; } /** *An object that contains information about the Amazon Web Services Threat * Intel Group (ATIG) details for the vulnerability.
*/ inline void SetAtigData(const AtigData& value) { m_atigDataHasBeenSet = true; m_atigData = value; } /** *An object that contains information about the Amazon Web Services Threat * Intel Group (ATIG) details for the vulnerability.
*/ inline void SetAtigData(AtigData&& value) { m_atigDataHasBeenSet = true; m_atigData = std::move(value); } /** *An object that contains information about the Amazon Web Services Threat * Intel Group (ATIG) details for the vulnerability.
*/ inline Vulnerability& WithAtigData(const AtigData& value) { SetAtigData(value); return *this;} /** *An object that contains information about the Amazon Web Services Threat * Intel Group (ATIG) details for the vulnerability.
*/ inline Vulnerability& WithAtigData(AtigData&& value) { SetAtigData(std::move(value)); return *this;} /** *An object that contains the Cybersecurity and Infrastructure Security Agency * (CISA) details for the vulnerability.
*/ inline const CisaData& GetCisaData() const{ return m_cisaData; } /** *An object that contains the Cybersecurity and Infrastructure Security Agency * (CISA) details for the vulnerability.
*/ inline bool CisaDataHasBeenSet() const { return m_cisaDataHasBeenSet; } /** *An object that contains the Cybersecurity and Infrastructure Security Agency * (CISA) details for the vulnerability.
*/ inline void SetCisaData(const CisaData& value) { m_cisaDataHasBeenSet = true; m_cisaData = value; } /** *An object that contains the Cybersecurity and Infrastructure Security Agency * (CISA) details for the vulnerability.
*/ inline void SetCisaData(CisaData&& value) { m_cisaDataHasBeenSet = true; m_cisaData = std::move(value); } /** *An object that contains the Cybersecurity and Infrastructure Security Agency * (CISA) details for the vulnerability.
*/ inline Vulnerability& WithCisaData(const CisaData& value) { SetCisaData(value); return *this;} /** *An object that contains the Cybersecurity and Infrastructure Security Agency * (CISA) details for the vulnerability.
*/ inline Vulnerability& WithCisaData(CisaData&& value) { SetCisaData(std::move(value)); return *this;} /** *An object that contains the Common Vulnerability Scoring System (CVSS) * Version 2 details for the vulnerability.
*/ inline const Cvss2& GetCvss2() const{ return m_cvss2; } /** *An object that contains the Common Vulnerability Scoring System (CVSS) * Version 2 details for the vulnerability.
*/ inline bool Cvss2HasBeenSet() const { return m_cvss2HasBeenSet; } /** *An object that contains the Common Vulnerability Scoring System (CVSS) * Version 2 details for the vulnerability.
*/ inline void SetCvss2(const Cvss2& value) { m_cvss2HasBeenSet = true; m_cvss2 = value; } /** *An object that contains the Common Vulnerability Scoring System (CVSS) * Version 2 details for the vulnerability.
*/ inline void SetCvss2(Cvss2&& value) { m_cvss2HasBeenSet = true; m_cvss2 = std::move(value); } /** *An object that contains the Common Vulnerability Scoring System (CVSS) * Version 2 details for the vulnerability.
*/ inline Vulnerability& WithCvss2(const Cvss2& value) { SetCvss2(value); return *this;} /** *An object that contains the Common Vulnerability Scoring System (CVSS) * Version 2 details for the vulnerability.
*/ inline Vulnerability& WithCvss2(Cvss2&& value) { SetCvss2(std::move(value)); return *this;} /** *An object that contains the Common Vulnerability Scoring System (CVSS) * Version 3 details for the vulnerability.
*/ inline const Cvss3& GetCvss3() const{ return m_cvss3; } /** *An object that contains the Common Vulnerability Scoring System (CVSS) * Version 3 details for the vulnerability.
*/ inline bool Cvss3HasBeenSet() const { return m_cvss3HasBeenSet; } /** *An object that contains the Common Vulnerability Scoring System (CVSS) * Version 3 details for the vulnerability.
*/ inline void SetCvss3(const Cvss3& value) { m_cvss3HasBeenSet = true; m_cvss3 = value; } /** *An object that contains the Common Vulnerability Scoring System (CVSS) * Version 3 details for the vulnerability.
*/ inline void SetCvss3(Cvss3&& value) { m_cvss3HasBeenSet = true; m_cvss3 = std::move(value); } /** *An object that contains the Common Vulnerability Scoring System (CVSS) * Version 3 details for the vulnerability.
*/ inline Vulnerability& WithCvss3(const Cvss3& value) { SetCvss3(value); return *this;} /** *An object that contains the Common Vulnerability Scoring System (CVSS) * Version 3 details for the vulnerability.
*/ inline Vulnerability& WithCvss3(Cvss3&& value) { SetCvss3(std::move(value)); return *this;} /** *The Common Weakness Enumeration (CWE) associated with the vulnerability.
*/ inline const Aws::VectorThe Common Weakness Enumeration (CWE) associated with the vulnerability.
*/ inline bool CwesHasBeenSet() const { return m_cwesHasBeenSet; } /** *The Common Weakness Enumeration (CWE) associated with the vulnerability.
*/ inline void SetCwes(const Aws::VectorThe Common Weakness Enumeration (CWE) associated with the vulnerability.
*/ inline void SetCwes(Aws::VectorThe Common Weakness Enumeration (CWE) associated with the vulnerability.
*/ inline Vulnerability& WithCwes(const Aws::VectorThe Common Weakness Enumeration (CWE) associated with the vulnerability.
*/ inline Vulnerability& WithCwes(Aws::VectorThe Common Weakness Enumeration (CWE) associated with the vulnerability.
*/ inline Vulnerability& AddCwes(const Aws::String& value) { m_cwesHasBeenSet = true; m_cwes.push_back(value); return *this; } /** *The Common Weakness Enumeration (CWE) associated with the vulnerability.
*/ inline Vulnerability& AddCwes(Aws::String&& value) { m_cwesHasBeenSet = true; m_cwes.push_back(std::move(value)); return *this; } /** *The Common Weakness Enumeration (CWE) associated with the vulnerability.
*/ inline Vulnerability& AddCwes(const char* value) { m_cwesHasBeenSet = true; m_cwes.push_back(value); return *this; } /** *A description of the vulnerability.
*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *A description of the vulnerability.
*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *A description of the vulnerability.
*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *A description of the vulnerability.
*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *A description of the vulnerability.
*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *A description of the vulnerability.
*/ inline Vulnerability& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *A description of the vulnerability.
*/ inline Vulnerability& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *A description of the vulnerability.
*/ inline Vulnerability& WithDescription(const char* value) { SetDescription(value); return *this;} /** *Platforms that the vulnerability can be detected on.
*/ inline const Aws::VectorPlatforms that the vulnerability can be detected on.
*/ inline bool DetectionPlatformsHasBeenSet() const { return m_detectionPlatformsHasBeenSet; } /** *Platforms that the vulnerability can be detected on.
*/ inline void SetDetectionPlatforms(const Aws::VectorPlatforms that the vulnerability can be detected on.
*/ inline void SetDetectionPlatforms(Aws::VectorPlatforms that the vulnerability can be detected on.
*/ inline Vulnerability& WithDetectionPlatforms(const Aws::VectorPlatforms that the vulnerability can be detected on.
*/ inline Vulnerability& WithDetectionPlatforms(Aws::VectorPlatforms that the vulnerability can be detected on.
*/ inline Vulnerability& AddDetectionPlatforms(const Aws::String& value) { m_detectionPlatformsHasBeenSet = true; m_detectionPlatforms.push_back(value); return *this; } /** *Platforms that the vulnerability can be detected on.
*/ inline Vulnerability& AddDetectionPlatforms(Aws::String&& value) { m_detectionPlatformsHasBeenSet = true; m_detectionPlatforms.push_back(std::move(value)); return *this; } /** *Platforms that the vulnerability can be detected on.
*/ inline Vulnerability& AddDetectionPlatforms(const char* value) { m_detectionPlatformsHasBeenSet = true; m_detectionPlatforms.push_back(value); return *this; } /** *An object that contains the Exploit Prediction Scoring System (EPSS) score * for a vulnerability.
*/ inline const Epss& GetEpss() const{ return m_epss; } /** *An object that contains the Exploit Prediction Scoring System (EPSS) score * for a vulnerability.
*/ inline bool EpssHasBeenSet() const { return m_epssHasBeenSet; } /** *An object that contains the Exploit Prediction Scoring System (EPSS) score * for a vulnerability.
*/ inline void SetEpss(const Epss& value) { m_epssHasBeenSet = true; m_epss = value; } /** *An object that contains the Exploit Prediction Scoring System (EPSS) score * for a vulnerability.
*/ inline void SetEpss(Epss&& value) { m_epssHasBeenSet = true; m_epss = std::move(value); } /** *An object that contains the Exploit Prediction Scoring System (EPSS) score * for a vulnerability.
*/ inline Vulnerability& WithEpss(const Epss& value) { SetEpss(value); return *this;} /** *An object that contains the Exploit Prediction Scoring System (EPSS) score * for a vulnerability.
*/ inline Vulnerability& WithEpss(Epss&& value) { SetEpss(std::move(value)); return *this;} /** *An object that contains details on when the exploit was observed.
*/ inline const ExploitObserved& GetExploitObserved() const{ return m_exploitObserved; } /** *An object that contains details on when the exploit was observed.
*/ inline bool ExploitObservedHasBeenSet() const { return m_exploitObservedHasBeenSet; } /** *An object that contains details on when the exploit was observed.
*/ inline void SetExploitObserved(const ExploitObserved& value) { m_exploitObservedHasBeenSet = true; m_exploitObserved = value; } /** *An object that contains details on when the exploit was observed.
*/ inline void SetExploitObserved(ExploitObserved&& value) { m_exploitObservedHasBeenSet = true; m_exploitObserved = std::move(value); } /** *An object that contains details on when the exploit was observed.
*/ inline Vulnerability& WithExploitObserved(const ExploitObserved& value) { SetExploitObserved(value); return *this;} /** *An object that contains details on when the exploit was observed.
*/ inline Vulnerability& WithExploitObserved(ExploitObserved&& value) { SetExploitObserved(std::move(value)); return *this;} /** *The ID for the specific vulnerability.
*/ inline const Aws::String& GetId() const{ return m_id; } /** *The ID for the specific vulnerability.
*/ inline bool IdHasBeenSet() const { return m_idHasBeenSet; } /** *The ID for the specific vulnerability.
*/ inline void SetId(const Aws::String& value) { m_idHasBeenSet = true; m_id = value; } /** *The ID for the specific vulnerability.
*/ inline void SetId(Aws::String&& value) { m_idHasBeenSet = true; m_id = std::move(value); } /** *The ID for the specific vulnerability.
*/ inline void SetId(const char* value) { m_idHasBeenSet = true; m_id.assign(value); } /** *The ID for the specific vulnerability.
*/ inline Vulnerability& WithId(const Aws::String& value) { SetId(value); return *this;} /** *The ID for the specific vulnerability.
*/ inline Vulnerability& WithId(Aws::String&& value) { SetId(std::move(value)); return *this;} /** *The ID for the specific vulnerability.
*/ inline Vulnerability& WithId(const char* value) { SetId(value); return *this;} /** *Links to various resources with more information on this vulnerability.
*/ inline const Aws::VectorLinks to various resources with more information on this vulnerability.
*/ inline bool ReferenceUrlsHasBeenSet() const { return m_referenceUrlsHasBeenSet; } /** *Links to various resources with more information on this vulnerability.
*/ inline void SetReferenceUrls(const Aws::VectorLinks to various resources with more information on this vulnerability.
*/ inline void SetReferenceUrls(Aws::VectorLinks to various resources with more information on this vulnerability.
*/ inline Vulnerability& WithReferenceUrls(const Aws::VectorLinks to various resources with more information on this vulnerability.
*/ inline Vulnerability& WithReferenceUrls(Aws::VectorLinks to various resources with more information on this vulnerability.
*/ inline Vulnerability& AddReferenceUrls(const Aws::String& value) { m_referenceUrlsHasBeenSet = true; m_referenceUrls.push_back(value); return *this; } /** *Links to various resources with more information on this vulnerability.
*/ inline Vulnerability& AddReferenceUrls(Aws::String&& value) { m_referenceUrlsHasBeenSet = true; m_referenceUrls.push_back(std::move(value)); return *this; } /** *Links to various resources with more information on this vulnerability.
*/ inline Vulnerability& AddReferenceUrls(const char* value) { m_referenceUrlsHasBeenSet = true; m_referenceUrls.push_back(value); return *this; } /** *A list of related vulnerabilities.
*/ inline const Aws::VectorA list of related vulnerabilities.
*/ inline bool RelatedVulnerabilitiesHasBeenSet() const { return m_relatedVulnerabilitiesHasBeenSet; } /** *A list of related vulnerabilities.
*/ inline void SetRelatedVulnerabilities(const Aws::VectorA list of related vulnerabilities.
*/ inline void SetRelatedVulnerabilities(Aws::VectorA list of related vulnerabilities.
*/ inline Vulnerability& WithRelatedVulnerabilities(const Aws::VectorA list of related vulnerabilities.
*/ inline Vulnerability& WithRelatedVulnerabilities(Aws::VectorA list of related vulnerabilities.
*/ inline Vulnerability& AddRelatedVulnerabilities(const Aws::String& value) { m_relatedVulnerabilitiesHasBeenSet = true; m_relatedVulnerabilities.push_back(value); return *this; } /** *A list of related vulnerabilities.
*/ inline Vulnerability& AddRelatedVulnerabilities(Aws::String&& value) { m_relatedVulnerabilitiesHasBeenSet = true; m_relatedVulnerabilities.push_back(std::move(value)); return *this; } /** *A list of related vulnerabilities.
*/ inline Vulnerability& AddRelatedVulnerabilities(const char* value) { m_relatedVulnerabilitiesHasBeenSet = true; m_relatedVulnerabilities.push_back(value); return *this; } /** *The source of the vulnerability information.
*/ inline const VulnerabilitySource& GetSource() const{ return m_source; } /** *The source of the vulnerability information.
*/ inline bool SourceHasBeenSet() const { return m_sourceHasBeenSet; } /** *The source of the vulnerability information.
*/ inline void SetSource(const VulnerabilitySource& value) { m_sourceHasBeenSet = true; m_source = value; } /** *The source of the vulnerability information.
*/ inline void SetSource(VulnerabilitySource&& value) { m_sourceHasBeenSet = true; m_source = std::move(value); } /** *The source of the vulnerability information.
*/ inline Vulnerability& WithSource(const VulnerabilitySource& value) { SetSource(value); return *this;} /** *The source of the vulnerability information.
*/ inline Vulnerability& WithSource(VulnerabilitySource&& value) { SetSource(std::move(value)); return *this;} /** *A link to the official source material for this vulnerability.
*/ inline const Aws::String& GetSourceUrl() const{ return m_sourceUrl; } /** *A link to the official source material for this vulnerability.
*/ inline bool SourceUrlHasBeenSet() const { return m_sourceUrlHasBeenSet; } /** *A link to the official source material for this vulnerability.
*/ inline void SetSourceUrl(const Aws::String& value) { m_sourceUrlHasBeenSet = true; m_sourceUrl = value; } /** *A link to the official source material for this vulnerability.
*/ inline void SetSourceUrl(Aws::String&& value) { m_sourceUrlHasBeenSet = true; m_sourceUrl = std::move(value); } /** *A link to the official source material for this vulnerability.
*/ inline void SetSourceUrl(const char* value) { m_sourceUrlHasBeenSet = true; m_sourceUrl.assign(value); } /** *A link to the official source material for this vulnerability.
*/ inline Vulnerability& WithSourceUrl(const Aws::String& value) { SetSourceUrl(value); return *this;} /** *A link to the official source material for this vulnerability.
*/ inline Vulnerability& WithSourceUrl(Aws::String&& value) { SetSourceUrl(std::move(value)); return *this;} /** *A link to the official source material for this vulnerability.
*/ inline Vulnerability& WithSourceUrl(const char* value) { SetSourceUrl(value); return *this;} /** *The date and time when the vendor created this vulnerability.
*/ inline const Aws::Utils::DateTime& GetVendorCreatedAt() const{ return m_vendorCreatedAt; } /** *The date and time when the vendor created this vulnerability.
*/ inline bool VendorCreatedAtHasBeenSet() const { return m_vendorCreatedAtHasBeenSet; } /** *The date and time when the vendor created this vulnerability.
*/ inline void SetVendorCreatedAt(const Aws::Utils::DateTime& value) { m_vendorCreatedAtHasBeenSet = true; m_vendorCreatedAt = value; } /** *The date and time when the vendor created this vulnerability.
*/ inline void SetVendorCreatedAt(Aws::Utils::DateTime&& value) { m_vendorCreatedAtHasBeenSet = true; m_vendorCreatedAt = std::move(value); } /** *The date and time when the vendor created this vulnerability.
*/ inline Vulnerability& WithVendorCreatedAt(const Aws::Utils::DateTime& value) { SetVendorCreatedAt(value); return *this;} /** *The date and time when the vendor created this vulnerability.
*/ inline Vulnerability& WithVendorCreatedAt(Aws::Utils::DateTime&& value) { SetVendorCreatedAt(std::move(value)); return *this;} /** *The severity assigned by the vendor.
*/ inline const Aws::String& GetVendorSeverity() const{ return m_vendorSeverity; } /** *The severity assigned by the vendor.
*/ inline bool VendorSeverityHasBeenSet() const { return m_vendorSeverityHasBeenSet; } /** *The severity assigned by the vendor.
*/ inline void SetVendorSeverity(const Aws::String& value) { m_vendorSeverityHasBeenSet = true; m_vendorSeverity = value; } /** *The severity assigned by the vendor.
*/ inline void SetVendorSeverity(Aws::String&& value) { m_vendorSeverityHasBeenSet = true; m_vendorSeverity = std::move(value); } /** *The severity assigned by the vendor.
*/ inline void SetVendorSeverity(const char* value) { m_vendorSeverityHasBeenSet = true; m_vendorSeverity.assign(value); } /** *The severity assigned by the vendor.
*/ inline Vulnerability& WithVendorSeverity(const Aws::String& value) { SetVendorSeverity(value); return *this;} /** *The severity assigned by the vendor.
*/ inline Vulnerability& WithVendorSeverity(Aws::String&& value) { SetVendorSeverity(std::move(value)); return *this;} /** *The severity assigned by the vendor.
*/ inline Vulnerability& WithVendorSeverity(const char* value) { SetVendorSeverity(value); return *this;} /** *The date and time when the vendor last updated this vulnerability.
*/ inline const Aws::Utils::DateTime& GetVendorUpdatedAt() const{ return m_vendorUpdatedAt; } /** *The date and time when the vendor last updated this vulnerability.
*/ inline bool VendorUpdatedAtHasBeenSet() const { return m_vendorUpdatedAtHasBeenSet; } /** *The date and time when the vendor last updated this vulnerability.
*/ inline void SetVendorUpdatedAt(const Aws::Utils::DateTime& value) { m_vendorUpdatedAtHasBeenSet = true; m_vendorUpdatedAt = value; } /** *The date and time when the vendor last updated this vulnerability.
*/ inline void SetVendorUpdatedAt(Aws::Utils::DateTime&& value) { m_vendorUpdatedAtHasBeenSet = true; m_vendorUpdatedAt = std::move(value); } /** *The date and time when the vendor last updated this vulnerability.
*/ inline Vulnerability& WithVendorUpdatedAt(const Aws::Utils::DateTime& value) { SetVendorUpdatedAt(value); return *this;} /** *The date and time when the vendor last updated this vulnerability.
*/ inline Vulnerability& WithVendorUpdatedAt(Aws::Utils::DateTime&& value) { SetVendorUpdatedAt(std::move(value)); return *this;} private: AtigData m_atigData; bool m_atigDataHasBeenSet = false; CisaData m_cisaData; bool m_cisaDataHasBeenSet = false; Cvss2 m_cvss2; bool m_cvss2HasBeenSet = false; Cvss3 m_cvss3; bool m_cvss3HasBeenSet = false; Aws::Vector