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-compute-optimizer/source/model/InstanceRecommendation.cpp

221 lines
6.4 KiB
C++

/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#include <aws/compute-optimizer/model/InstanceRecommendation.h>
#include <aws/core/utils/json/JsonSerializer.h>
#include <utility>
using namespace Aws::Utils::Json;
using namespace Aws::Utils;
namespace Aws
{
namespace ComputeOptimizer
{
namespace Model
{
InstanceRecommendation::InstanceRecommendation() :
m_instanceArnHasBeenSet(false),
m_accountIdHasBeenSet(false),
m_instanceNameHasBeenSet(false),
m_currentInstanceTypeHasBeenSet(false),
m_finding(Finding::NOT_SET),
m_findingHasBeenSet(false),
m_utilizationMetricsHasBeenSet(false),
m_lookBackPeriodInDays(0.0),
m_lookBackPeriodInDaysHasBeenSet(false),
m_recommendationOptionsHasBeenSet(false),
m_recommendationSourcesHasBeenSet(false),
m_lastRefreshTimestampHasBeenSet(false)
{
}
InstanceRecommendation::InstanceRecommendation(JsonView jsonValue) :
m_instanceArnHasBeenSet(false),
m_accountIdHasBeenSet(false),
m_instanceNameHasBeenSet(false),
m_currentInstanceTypeHasBeenSet(false),
m_finding(Finding::NOT_SET),
m_findingHasBeenSet(false),
m_utilizationMetricsHasBeenSet(false),
m_lookBackPeriodInDays(0.0),
m_lookBackPeriodInDaysHasBeenSet(false),
m_recommendationOptionsHasBeenSet(false),
m_recommendationSourcesHasBeenSet(false),
m_lastRefreshTimestampHasBeenSet(false)
{
*this = jsonValue;
}
InstanceRecommendation& InstanceRecommendation::operator =(JsonView jsonValue)
{
if(jsonValue.ValueExists("instanceArn"))
{
m_instanceArn = jsonValue.GetString("instanceArn");
m_instanceArnHasBeenSet = true;
}
if(jsonValue.ValueExists("accountId"))
{
m_accountId = jsonValue.GetString("accountId");
m_accountIdHasBeenSet = true;
}
if(jsonValue.ValueExists("instanceName"))
{
m_instanceName = jsonValue.GetString("instanceName");
m_instanceNameHasBeenSet = true;
}
if(jsonValue.ValueExists("currentInstanceType"))
{
m_currentInstanceType = jsonValue.GetString("currentInstanceType");
m_currentInstanceTypeHasBeenSet = true;
}
if(jsonValue.ValueExists("finding"))
{
m_finding = FindingMapper::GetFindingForName(jsonValue.GetString("finding"));
m_findingHasBeenSet = true;
}
if(jsonValue.ValueExists("utilizationMetrics"))
{
Array<JsonView> utilizationMetricsJsonList = jsonValue.GetArray("utilizationMetrics");
for(unsigned utilizationMetricsIndex = 0; utilizationMetricsIndex < utilizationMetricsJsonList.GetLength(); ++utilizationMetricsIndex)
{
m_utilizationMetrics.push_back(utilizationMetricsJsonList[utilizationMetricsIndex].AsObject());
}
m_utilizationMetricsHasBeenSet = true;
}
if(jsonValue.ValueExists("lookBackPeriodInDays"))
{
m_lookBackPeriodInDays = jsonValue.GetDouble("lookBackPeriodInDays");
m_lookBackPeriodInDaysHasBeenSet = true;
}
if(jsonValue.ValueExists("recommendationOptions"))
{
Array<JsonView> recommendationOptionsJsonList = jsonValue.GetArray("recommendationOptions");
for(unsigned recommendationOptionsIndex = 0; recommendationOptionsIndex < recommendationOptionsJsonList.GetLength(); ++recommendationOptionsIndex)
{
m_recommendationOptions.push_back(recommendationOptionsJsonList[recommendationOptionsIndex].AsObject());
}
m_recommendationOptionsHasBeenSet = true;
}
if(jsonValue.ValueExists("recommendationSources"))
{
Array<JsonView> recommendationSourcesJsonList = jsonValue.GetArray("recommendationSources");
for(unsigned recommendationSourcesIndex = 0; recommendationSourcesIndex < recommendationSourcesJsonList.GetLength(); ++recommendationSourcesIndex)
{
m_recommendationSources.push_back(recommendationSourcesJsonList[recommendationSourcesIndex].AsObject());
}
m_recommendationSourcesHasBeenSet = true;
}
if(jsonValue.ValueExists("lastRefreshTimestamp"))
{
m_lastRefreshTimestamp = jsonValue.GetDouble("lastRefreshTimestamp");
m_lastRefreshTimestampHasBeenSet = true;
}
return *this;
}
JsonValue InstanceRecommendation::Jsonize() const
{
JsonValue payload;
if(m_instanceArnHasBeenSet)
{
payload.WithString("instanceArn", m_instanceArn);
}
if(m_accountIdHasBeenSet)
{
payload.WithString("accountId", m_accountId);
}
if(m_instanceNameHasBeenSet)
{
payload.WithString("instanceName", m_instanceName);
}
if(m_currentInstanceTypeHasBeenSet)
{
payload.WithString("currentInstanceType", m_currentInstanceType);
}
if(m_findingHasBeenSet)
{
payload.WithString("finding", FindingMapper::GetNameForFinding(m_finding));
}
if(m_utilizationMetricsHasBeenSet)
{
Array<JsonValue> utilizationMetricsJsonList(m_utilizationMetrics.size());
for(unsigned utilizationMetricsIndex = 0; utilizationMetricsIndex < utilizationMetricsJsonList.GetLength(); ++utilizationMetricsIndex)
{
utilizationMetricsJsonList[utilizationMetricsIndex].AsObject(m_utilizationMetrics[utilizationMetricsIndex].Jsonize());
}
payload.WithArray("utilizationMetrics", std::move(utilizationMetricsJsonList));
}
if(m_lookBackPeriodInDaysHasBeenSet)
{
payload.WithDouble("lookBackPeriodInDays", m_lookBackPeriodInDays);
}
if(m_recommendationOptionsHasBeenSet)
{
Array<JsonValue> recommendationOptionsJsonList(m_recommendationOptions.size());
for(unsigned recommendationOptionsIndex = 0; recommendationOptionsIndex < recommendationOptionsJsonList.GetLength(); ++recommendationOptionsIndex)
{
recommendationOptionsJsonList[recommendationOptionsIndex].AsObject(m_recommendationOptions[recommendationOptionsIndex].Jsonize());
}
payload.WithArray("recommendationOptions", std::move(recommendationOptionsJsonList));
}
if(m_recommendationSourcesHasBeenSet)
{
Array<JsonValue> recommendationSourcesJsonList(m_recommendationSources.size());
for(unsigned recommendationSourcesIndex = 0; recommendationSourcesIndex < recommendationSourcesJsonList.GetLength(); ++recommendationSourcesIndex)
{
recommendationSourcesJsonList[recommendationSourcesIndex].AsObject(m_recommendationSources[recommendationSourcesIndex].Jsonize());
}
payload.WithArray("recommendationSources", std::move(recommendationSourcesJsonList));
}
if(m_lastRefreshTimestampHasBeenSet)
{
payload.WithDouble("lastRefreshTimestamp", m_lastRefreshTimestamp.SecondsWithMSPrecision());
}
return payload;
}
} // namespace Model
} // namespace ComputeOptimizer
} // namespace Aws