This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
pxz-hos-client-cpp-module/support/aws-sdk-cpp-master/aws-cpp-sdk-securityhub/source/model/Vulnerability.cpp

167 lines
4.7 KiB
C++

/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#include <aws/securityhub/model/Vulnerability.h>
#include <aws/core/utils/json/JsonSerializer.h>
#include <utility>
using namespace Aws::Utils::Json;
using namespace Aws::Utils;
namespace Aws
{
namespace SecurityHub
{
namespace Model
{
Vulnerability::Vulnerability() :
m_idHasBeenSet(false),
m_vulnerablePackagesHasBeenSet(false),
m_cvssHasBeenSet(false),
m_relatedVulnerabilitiesHasBeenSet(false),
m_vendorHasBeenSet(false),
m_referenceUrlsHasBeenSet(false)
{
}
Vulnerability::Vulnerability(JsonView jsonValue) :
m_idHasBeenSet(false),
m_vulnerablePackagesHasBeenSet(false),
m_cvssHasBeenSet(false),
m_relatedVulnerabilitiesHasBeenSet(false),
m_vendorHasBeenSet(false),
m_referenceUrlsHasBeenSet(false)
{
*this = jsonValue;
}
Vulnerability& Vulnerability::operator =(JsonView jsonValue)
{
if(jsonValue.ValueExists("Id"))
{
m_id = jsonValue.GetString("Id");
m_idHasBeenSet = true;
}
if(jsonValue.ValueExists("VulnerablePackages"))
{
Array<JsonView> vulnerablePackagesJsonList = jsonValue.GetArray("VulnerablePackages");
for(unsigned vulnerablePackagesIndex = 0; vulnerablePackagesIndex < vulnerablePackagesJsonList.GetLength(); ++vulnerablePackagesIndex)
{
m_vulnerablePackages.push_back(vulnerablePackagesJsonList[vulnerablePackagesIndex].AsObject());
}
m_vulnerablePackagesHasBeenSet = true;
}
if(jsonValue.ValueExists("Cvss"))
{
Array<JsonView> cvssJsonList = jsonValue.GetArray("Cvss");
for(unsigned cvssIndex = 0; cvssIndex < cvssJsonList.GetLength(); ++cvssIndex)
{
m_cvss.push_back(cvssJsonList[cvssIndex].AsObject());
}
m_cvssHasBeenSet = true;
}
if(jsonValue.ValueExists("RelatedVulnerabilities"))
{
Array<JsonView> relatedVulnerabilitiesJsonList = jsonValue.GetArray("RelatedVulnerabilities");
for(unsigned relatedVulnerabilitiesIndex = 0; relatedVulnerabilitiesIndex < relatedVulnerabilitiesJsonList.GetLength(); ++relatedVulnerabilitiesIndex)
{
m_relatedVulnerabilities.push_back(relatedVulnerabilitiesJsonList[relatedVulnerabilitiesIndex].AsString());
}
m_relatedVulnerabilitiesHasBeenSet = true;
}
if(jsonValue.ValueExists("Vendor"))
{
m_vendor = jsonValue.GetObject("Vendor");
m_vendorHasBeenSet = true;
}
if(jsonValue.ValueExists("ReferenceUrls"))
{
Array<JsonView> referenceUrlsJsonList = jsonValue.GetArray("ReferenceUrls");
for(unsigned referenceUrlsIndex = 0; referenceUrlsIndex < referenceUrlsJsonList.GetLength(); ++referenceUrlsIndex)
{
m_referenceUrls.push_back(referenceUrlsJsonList[referenceUrlsIndex].AsString());
}
m_referenceUrlsHasBeenSet = true;
}
return *this;
}
JsonValue Vulnerability::Jsonize() const
{
JsonValue payload;
if(m_idHasBeenSet)
{
payload.WithString("Id", m_id);
}
if(m_vulnerablePackagesHasBeenSet)
{
Array<JsonValue> vulnerablePackagesJsonList(m_vulnerablePackages.size());
for(unsigned vulnerablePackagesIndex = 0; vulnerablePackagesIndex < vulnerablePackagesJsonList.GetLength(); ++vulnerablePackagesIndex)
{
vulnerablePackagesJsonList[vulnerablePackagesIndex].AsObject(m_vulnerablePackages[vulnerablePackagesIndex].Jsonize());
}
payload.WithArray("VulnerablePackages", std::move(vulnerablePackagesJsonList));
}
if(m_cvssHasBeenSet)
{
Array<JsonValue> cvssJsonList(m_cvss.size());
for(unsigned cvssIndex = 0; cvssIndex < cvssJsonList.GetLength(); ++cvssIndex)
{
cvssJsonList[cvssIndex].AsObject(m_cvss[cvssIndex].Jsonize());
}
payload.WithArray("Cvss", std::move(cvssJsonList));
}
if(m_relatedVulnerabilitiesHasBeenSet)
{
Array<JsonValue> relatedVulnerabilitiesJsonList(m_relatedVulnerabilities.size());
for(unsigned relatedVulnerabilitiesIndex = 0; relatedVulnerabilitiesIndex < relatedVulnerabilitiesJsonList.GetLength(); ++relatedVulnerabilitiesIndex)
{
relatedVulnerabilitiesJsonList[relatedVulnerabilitiesIndex].AsString(m_relatedVulnerabilities[relatedVulnerabilitiesIndex]);
}
payload.WithArray("RelatedVulnerabilities", std::move(relatedVulnerabilitiesJsonList));
}
if(m_vendorHasBeenSet)
{
payload.WithObject("Vendor", m_vendor.Jsonize());
}
if(m_referenceUrlsHasBeenSet)
{
Array<JsonValue> referenceUrlsJsonList(m_referenceUrls.size());
for(unsigned referenceUrlsIndex = 0; referenceUrlsIndex < referenceUrlsJsonList.GetLength(); ++referenceUrlsIndex)
{
referenceUrlsJsonList[referenceUrlsIndex].AsString(m_referenceUrls[referenceUrlsIndex]);
}
payload.WithArray("ReferenceUrls", std::move(referenceUrlsJsonList));
}
return payload;
}
} // namespace Model
} // namespace SecurityHub
} // namespace Aws