/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace ECR { namespace Model { /** *

Information about a package vulnerability finding.

See Also:

* AWS * API Reference

*/ class PackageVulnerabilityDetails { public: AWS_ECR_API PackageVulnerabilityDetails(); AWS_ECR_API PackageVulnerabilityDetails(Aws::Utils::Json::JsonView jsonValue); AWS_ECR_API PackageVulnerabilityDetails& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_ECR_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

An object that contains details about the CVSS score of a finding.

*/ inline const Aws::Vector& GetCvss() const{ return m_cvss; } /** *

An object that contains details about the CVSS score of a finding.

*/ inline bool CvssHasBeenSet() const { return m_cvssHasBeenSet; } /** *

An object that contains details about the CVSS score of a finding.

*/ inline void SetCvss(const Aws::Vector& value) { m_cvssHasBeenSet = true; m_cvss = value; } /** *

An object that contains details about the CVSS score of a finding.

*/ inline void SetCvss(Aws::Vector&& value) { m_cvssHasBeenSet = true; m_cvss = std::move(value); } /** *

An object that contains details about the CVSS score of a finding.

*/ inline PackageVulnerabilityDetails& WithCvss(const Aws::Vector& value) { SetCvss(value); return *this;} /** *

An object that contains details about the CVSS score of a finding.

*/ inline PackageVulnerabilityDetails& WithCvss(Aws::Vector&& value) { SetCvss(std::move(value)); return *this;} /** *

An object that contains details about the CVSS score of a finding.

*/ inline PackageVulnerabilityDetails& AddCvss(const CvssScore& value) { m_cvssHasBeenSet = true; m_cvss.push_back(value); return *this; } /** *

An object that contains details about the CVSS score of a finding.

*/ inline PackageVulnerabilityDetails& AddCvss(CvssScore&& value) { m_cvssHasBeenSet = true; m_cvss.push_back(std::move(value)); return *this; } /** *

One or more URLs that contain details about this vulnerability type.

*/ inline const Aws::Vector& GetReferenceUrls() const{ return m_referenceUrls; } /** *

One or more URLs that contain details about this vulnerability type.

*/ inline bool ReferenceUrlsHasBeenSet() const { return m_referenceUrlsHasBeenSet; } /** *

One or more URLs that contain details about this vulnerability type.

*/ inline void SetReferenceUrls(const Aws::Vector& value) { m_referenceUrlsHasBeenSet = true; m_referenceUrls = value; } /** *

One or more URLs that contain details about this vulnerability type.

*/ inline void SetReferenceUrls(Aws::Vector&& value) { m_referenceUrlsHasBeenSet = true; m_referenceUrls = std::move(value); } /** *

One or more URLs that contain details about this vulnerability type.

*/ inline PackageVulnerabilityDetails& WithReferenceUrls(const Aws::Vector& value) { SetReferenceUrls(value); return *this;} /** *

One or more URLs that contain details about this vulnerability type.

*/ inline PackageVulnerabilityDetails& WithReferenceUrls(Aws::Vector&& value) { SetReferenceUrls(std::move(value)); return *this;} /** *

One or more URLs that contain details about this vulnerability type.

*/ inline PackageVulnerabilityDetails& AddReferenceUrls(const Aws::String& value) { m_referenceUrlsHasBeenSet = true; m_referenceUrls.push_back(value); return *this; } /** *

One or more URLs that contain details about this vulnerability type.

*/ inline PackageVulnerabilityDetails& AddReferenceUrls(Aws::String&& value) { m_referenceUrlsHasBeenSet = true; m_referenceUrls.push_back(std::move(value)); return *this; } /** *

One or more URLs that contain details about this vulnerability type.

*/ inline PackageVulnerabilityDetails& AddReferenceUrls(const char* value) { m_referenceUrlsHasBeenSet = true; m_referenceUrls.push_back(value); return *this; } /** *

One or more vulnerabilities related to the one identified in this * finding.

*/ inline const Aws::Vector& GetRelatedVulnerabilities() const{ return m_relatedVulnerabilities; } /** *

One or more vulnerabilities related to the one identified in this * finding.

*/ inline bool RelatedVulnerabilitiesHasBeenSet() const { return m_relatedVulnerabilitiesHasBeenSet; } /** *

One or more vulnerabilities related to the one identified in this * finding.

*/ inline void SetRelatedVulnerabilities(const Aws::Vector& value) { m_relatedVulnerabilitiesHasBeenSet = true; m_relatedVulnerabilities = value; } /** *

One or more vulnerabilities related to the one identified in this * finding.

*/ inline void SetRelatedVulnerabilities(Aws::Vector&& value) { m_relatedVulnerabilitiesHasBeenSet = true; m_relatedVulnerabilities = std::move(value); } /** *

One or more vulnerabilities related to the one identified in this * finding.

*/ inline PackageVulnerabilityDetails& WithRelatedVulnerabilities(const Aws::Vector& value) { SetRelatedVulnerabilities(value); return *this;} /** *

One or more vulnerabilities related to the one identified in this * finding.

*/ inline PackageVulnerabilityDetails& WithRelatedVulnerabilities(Aws::Vector&& value) { SetRelatedVulnerabilities(std::move(value)); return *this;} /** *

One or more vulnerabilities related to the one identified in this * finding.

*/ inline PackageVulnerabilityDetails& AddRelatedVulnerabilities(const Aws::String& value) { m_relatedVulnerabilitiesHasBeenSet = true; m_relatedVulnerabilities.push_back(value); return *this; } /** *

One or more vulnerabilities related to the one identified in this * finding.

*/ inline PackageVulnerabilityDetails& AddRelatedVulnerabilities(Aws::String&& value) { m_relatedVulnerabilitiesHasBeenSet = true; m_relatedVulnerabilities.push_back(std::move(value)); return *this; } /** *

One or more vulnerabilities related to the one identified in this * finding.

*/ inline PackageVulnerabilityDetails& AddRelatedVulnerabilities(const char* value) { m_relatedVulnerabilitiesHasBeenSet = true; m_relatedVulnerabilities.push_back(value); return *this; } /** *

The source of the vulnerability information.

*/ inline const Aws::String& 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 Aws::String& value) { m_sourceHasBeenSet = true; m_source = value; } /** *

The source of the vulnerability information.

*/ inline void SetSource(Aws::String&& value) { m_sourceHasBeenSet = true; m_source = std::move(value); } /** *

The source of the vulnerability information.

*/ inline void SetSource(const char* value) { m_sourceHasBeenSet = true; m_source.assign(value); } /** *

The source of the vulnerability information.

*/ inline PackageVulnerabilityDetails& WithSource(const Aws::String& value) { SetSource(value); return *this;} /** *

The source of the vulnerability information.

*/ inline PackageVulnerabilityDetails& WithSource(Aws::String&& value) { SetSource(std::move(value)); return *this;} /** *

The source of the vulnerability information.

*/ inline PackageVulnerabilityDetails& WithSource(const char* value) { SetSource(value); return *this;} /** *

A URL to the source of the vulnerability information.

*/ inline const Aws::String& GetSourceUrl() const{ return m_sourceUrl; } /** *

A URL to the source of the vulnerability information.

*/ inline bool SourceUrlHasBeenSet() const { return m_sourceUrlHasBeenSet; } /** *

A URL to the source of the vulnerability information.

*/ inline void SetSourceUrl(const Aws::String& value) { m_sourceUrlHasBeenSet = true; m_sourceUrl = value; } /** *

A URL to the source of the vulnerability information.

*/ inline void SetSourceUrl(Aws::String&& value) { m_sourceUrlHasBeenSet = true; m_sourceUrl = std::move(value); } /** *

A URL to the source of the vulnerability information.

*/ inline void SetSourceUrl(const char* value) { m_sourceUrlHasBeenSet = true; m_sourceUrl.assign(value); } /** *

A URL to the source of the vulnerability information.

*/ inline PackageVulnerabilityDetails& WithSourceUrl(const Aws::String& value) { SetSourceUrl(value); return *this;} /** *

A URL to the source of the vulnerability information.

*/ inline PackageVulnerabilityDetails& WithSourceUrl(Aws::String&& value) { SetSourceUrl(std::move(value)); return *this;} /** *

A URL to the source of the vulnerability information.

*/ inline PackageVulnerabilityDetails& WithSourceUrl(const char* value) { SetSourceUrl(value); return *this;} /** *

The date and time that this vulnerability was first added to the vendor's * database.

*/ inline const Aws::Utils::DateTime& GetVendorCreatedAt() const{ return m_vendorCreatedAt; } /** *

The date and time that this vulnerability was first added to the vendor's * database.

*/ inline bool VendorCreatedAtHasBeenSet() const { return m_vendorCreatedAtHasBeenSet; } /** *

The date and time that this vulnerability was first added to the vendor's * database.

*/ inline void SetVendorCreatedAt(const Aws::Utils::DateTime& value) { m_vendorCreatedAtHasBeenSet = true; m_vendorCreatedAt = value; } /** *

The date and time that this vulnerability was first added to the vendor's * database.

*/ inline void SetVendorCreatedAt(Aws::Utils::DateTime&& value) { m_vendorCreatedAtHasBeenSet = true; m_vendorCreatedAt = std::move(value); } /** *

The date and time that this vulnerability was first added to the vendor's * database.

*/ inline PackageVulnerabilityDetails& WithVendorCreatedAt(const Aws::Utils::DateTime& value) { SetVendorCreatedAt(value); return *this;} /** *

The date and time that this vulnerability was first added to the vendor's * database.

*/ inline PackageVulnerabilityDetails& WithVendorCreatedAt(Aws::Utils::DateTime&& value) { SetVendorCreatedAt(std::move(value)); return *this;} /** *

The severity the vendor has given to this vulnerability type.

*/ inline const Aws::String& GetVendorSeverity() const{ return m_vendorSeverity; } /** *

The severity the vendor has given to this vulnerability type.

*/ inline bool VendorSeverityHasBeenSet() const { return m_vendorSeverityHasBeenSet; } /** *

The severity the vendor has given to this vulnerability type.

*/ inline void SetVendorSeverity(const Aws::String& value) { m_vendorSeverityHasBeenSet = true; m_vendorSeverity = value; } /** *

The severity the vendor has given to this vulnerability type.

*/ inline void SetVendorSeverity(Aws::String&& value) { m_vendorSeverityHasBeenSet = true; m_vendorSeverity = std::move(value); } /** *

The severity the vendor has given to this vulnerability type.

*/ inline void SetVendorSeverity(const char* value) { m_vendorSeverityHasBeenSet = true; m_vendorSeverity.assign(value); } /** *

The severity the vendor has given to this vulnerability type.

*/ inline PackageVulnerabilityDetails& WithVendorSeverity(const Aws::String& value) { SetVendorSeverity(value); return *this;} /** *

The severity the vendor has given to this vulnerability type.

*/ inline PackageVulnerabilityDetails& WithVendorSeverity(Aws::String&& value) { SetVendorSeverity(std::move(value)); return *this;} /** *

The severity the vendor has given to this vulnerability type.

*/ inline PackageVulnerabilityDetails& WithVendorSeverity(const char* value) { SetVendorSeverity(value); return *this;} /** *

The date and time the vendor last updated this vulnerability in their * database.

*/ inline const Aws::Utils::DateTime& GetVendorUpdatedAt() const{ return m_vendorUpdatedAt; } /** *

The date and time the vendor last updated this vulnerability in their * database.

*/ inline bool VendorUpdatedAtHasBeenSet() const { return m_vendorUpdatedAtHasBeenSet; } /** *

The date and time the vendor last updated this vulnerability in their * database.

*/ inline void SetVendorUpdatedAt(const Aws::Utils::DateTime& value) { m_vendorUpdatedAtHasBeenSet = true; m_vendorUpdatedAt = value; } /** *

The date and time the vendor last updated this vulnerability in their * database.

*/ inline void SetVendorUpdatedAt(Aws::Utils::DateTime&& value) { m_vendorUpdatedAtHasBeenSet = true; m_vendorUpdatedAt = std::move(value); } /** *

The date and time the vendor last updated this vulnerability in their * database.

*/ inline PackageVulnerabilityDetails& WithVendorUpdatedAt(const Aws::Utils::DateTime& value) { SetVendorUpdatedAt(value); return *this;} /** *

The date and time the vendor last updated this vulnerability in their * database.

*/ inline PackageVulnerabilityDetails& WithVendorUpdatedAt(Aws::Utils::DateTime&& value) { SetVendorUpdatedAt(std::move(value)); return *this;} /** *

The ID given to this vulnerability.

*/ inline const Aws::String& GetVulnerabilityId() const{ return m_vulnerabilityId; } /** *

The ID given to this vulnerability.

*/ inline bool VulnerabilityIdHasBeenSet() const { return m_vulnerabilityIdHasBeenSet; } /** *

The ID given to this vulnerability.

*/ inline void SetVulnerabilityId(const Aws::String& value) { m_vulnerabilityIdHasBeenSet = true; m_vulnerabilityId = value; } /** *

The ID given to this vulnerability.

*/ inline void SetVulnerabilityId(Aws::String&& value) { m_vulnerabilityIdHasBeenSet = true; m_vulnerabilityId = std::move(value); } /** *

The ID given to this vulnerability.

*/ inline void SetVulnerabilityId(const char* value) { m_vulnerabilityIdHasBeenSet = true; m_vulnerabilityId.assign(value); } /** *

The ID given to this vulnerability.

*/ inline PackageVulnerabilityDetails& WithVulnerabilityId(const Aws::String& value) { SetVulnerabilityId(value); return *this;} /** *

The ID given to this vulnerability.

*/ inline PackageVulnerabilityDetails& WithVulnerabilityId(Aws::String&& value) { SetVulnerabilityId(std::move(value)); return *this;} /** *

The ID given to this vulnerability.

*/ inline PackageVulnerabilityDetails& WithVulnerabilityId(const char* value) { SetVulnerabilityId(value); return *this;} /** *

The packages impacted by this vulnerability.

*/ inline const Aws::Vector& GetVulnerablePackages() const{ return m_vulnerablePackages; } /** *

The packages impacted by this vulnerability.

*/ inline bool VulnerablePackagesHasBeenSet() const { return m_vulnerablePackagesHasBeenSet; } /** *

The packages impacted by this vulnerability.

*/ inline void SetVulnerablePackages(const Aws::Vector& value) { m_vulnerablePackagesHasBeenSet = true; m_vulnerablePackages = value; } /** *

The packages impacted by this vulnerability.

*/ inline void SetVulnerablePackages(Aws::Vector&& value) { m_vulnerablePackagesHasBeenSet = true; m_vulnerablePackages = std::move(value); } /** *

The packages impacted by this vulnerability.

*/ inline PackageVulnerabilityDetails& WithVulnerablePackages(const Aws::Vector& value) { SetVulnerablePackages(value); return *this;} /** *

The packages impacted by this vulnerability.

*/ inline PackageVulnerabilityDetails& WithVulnerablePackages(Aws::Vector&& value) { SetVulnerablePackages(std::move(value)); return *this;} /** *

The packages impacted by this vulnerability.

*/ inline PackageVulnerabilityDetails& AddVulnerablePackages(const VulnerablePackage& value) { m_vulnerablePackagesHasBeenSet = true; m_vulnerablePackages.push_back(value); return *this; } /** *

The packages impacted by this vulnerability.

*/ inline PackageVulnerabilityDetails& AddVulnerablePackages(VulnerablePackage&& value) { m_vulnerablePackagesHasBeenSet = true; m_vulnerablePackages.push_back(std::move(value)); return *this; } private: Aws::Vector m_cvss; bool m_cvssHasBeenSet = false; Aws::Vector m_referenceUrls; bool m_referenceUrlsHasBeenSet = false; Aws::Vector m_relatedVulnerabilities; bool m_relatedVulnerabilitiesHasBeenSet = false; Aws::String m_source; bool m_sourceHasBeenSet = false; Aws::String m_sourceUrl; bool m_sourceUrlHasBeenSet = false; Aws::Utils::DateTime m_vendorCreatedAt; bool m_vendorCreatedAtHasBeenSet = false; Aws::String m_vendorSeverity; bool m_vendorSeverityHasBeenSet = false; Aws::Utils::DateTime m_vendorUpdatedAt; bool m_vendorUpdatedAtHasBeenSet = false; Aws::String m_vulnerabilityId; bool m_vulnerabilityIdHasBeenSet = false; Aws::Vector m_vulnerablePackages; bool m_vulnerablePackagesHasBeenSet = false; }; } // namespace Model } // namespace ECR } // namespace Aws