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-glacier/source/model/S3Location.cpp

191 lines
4.7 KiB
C++

/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#include <aws/glacier/model/S3Location.h>
#include <aws/core/utils/json/JsonSerializer.h>
#include <utility>
using namespace Aws::Utils::Json;
using namespace Aws::Utils;
namespace Aws
{
namespace Glacier
{
namespace Model
{
S3Location::S3Location() :
m_bucketNameHasBeenSet(false),
m_prefixHasBeenSet(false),
m_encryptionHasBeenSet(false),
m_cannedACL(CannedACL::NOT_SET),
m_cannedACLHasBeenSet(false),
m_accessControlListHasBeenSet(false),
m_taggingHasBeenSet(false),
m_userMetadataHasBeenSet(false),
m_storageClass(StorageClass::NOT_SET),
m_storageClassHasBeenSet(false)
{
}
S3Location::S3Location(JsonView jsonValue) :
m_bucketNameHasBeenSet(false),
m_prefixHasBeenSet(false),
m_encryptionHasBeenSet(false),
m_cannedACL(CannedACL::NOT_SET),
m_cannedACLHasBeenSet(false),
m_accessControlListHasBeenSet(false),
m_taggingHasBeenSet(false),
m_userMetadataHasBeenSet(false),
m_storageClass(StorageClass::NOT_SET),
m_storageClassHasBeenSet(false)
{
*this = jsonValue;
}
S3Location& S3Location::operator =(JsonView jsonValue)
{
if(jsonValue.ValueExists("BucketName"))
{
m_bucketName = jsonValue.GetString("BucketName");
m_bucketNameHasBeenSet = true;
}
if(jsonValue.ValueExists("Prefix"))
{
m_prefix = jsonValue.GetString("Prefix");
m_prefixHasBeenSet = true;
}
if(jsonValue.ValueExists("Encryption"))
{
m_encryption = jsonValue.GetObject("Encryption");
m_encryptionHasBeenSet = true;
}
if(jsonValue.ValueExists("CannedACL"))
{
m_cannedACL = CannedACLMapper::GetCannedACLForName(jsonValue.GetString("CannedACL"));
m_cannedACLHasBeenSet = true;
}
if(jsonValue.ValueExists("AccessControlList"))
{
Array<JsonView> accessControlListJsonList = jsonValue.GetArray("AccessControlList");
for(unsigned accessControlListIndex = 0; accessControlListIndex < accessControlListJsonList.GetLength(); ++accessControlListIndex)
{
m_accessControlList.push_back(accessControlListJsonList[accessControlListIndex].AsObject());
}
m_accessControlListHasBeenSet = true;
}
if(jsonValue.ValueExists("Tagging"))
{
Aws::Map<Aws::String, JsonView> taggingJsonMap = jsonValue.GetObject("Tagging").GetAllObjects();
for(auto& taggingItem : taggingJsonMap)
{
m_tagging[taggingItem.first] = taggingItem.second.AsString();
}
m_taggingHasBeenSet = true;
}
if(jsonValue.ValueExists("UserMetadata"))
{
Aws::Map<Aws::String, JsonView> userMetadataJsonMap = jsonValue.GetObject("UserMetadata").GetAllObjects();
for(auto& userMetadataItem : userMetadataJsonMap)
{
m_userMetadata[userMetadataItem.first] = userMetadataItem.second.AsString();
}
m_userMetadataHasBeenSet = true;
}
if(jsonValue.ValueExists("StorageClass"))
{
m_storageClass = StorageClassMapper::GetStorageClassForName(jsonValue.GetString("StorageClass"));
m_storageClassHasBeenSet = true;
}
return *this;
}
JsonValue S3Location::Jsonize() const
{
JsonValue payload;
if(m_bucketNameHasBeenSet)
{
payload.WithString("BucketName", m_bucketName);
}
if(m_prefixHasBeenSet)
{
payload.WithString("Prefix", m_prefix);
}
if(m_encryptionHasBeenSet)
{
payload.WithObject("Encryption", m_encryption.Jsonize());
}
if(m_cannedACLHasBeenSet)
{
payload.WithString("CannedACL", CannedACLMapper::GetNameForCannedACL(m_cannedACL));
}
if(m_accessControlListHasBeenSet)
{
Array<JsonValue> accessControlListJsonList(m_accessControlList.size());
for(unsigned accessControlListIndex = 0; accessControlListIndex < accessControlListJsonList.GetLength(); ++accessControlListIndex)
{
accessControlListJsonList[accessControlListIndex].AsObject(m_accessControlList[accessControlListIndex].Jsonize());
}
payload.WithArray("AccessControlList", std::move(accessControlListJsonList));
}
if(m_taggingHasBeenSet)
{
JsonValue taggingJsonMap;
for(auto& taggingItem : m_tagging)
{
taggingJsonMap.WithString(taggingItem.first, taggingItem.second);
}
payload.WithObject("Tagging", std::move(taggingJsonMap));
}
if(m_userMetadataHasBeenSet)
{
JsonValue userMetadataJsonMap;
for(auto& userMetadataItem : m_userMetadata)
{
userMetadataJsonMap.WithString(userMetadataItem.first, userMetadataItem.second);
}
payload.WithObject("UserMetadata", std::move(userMetadataJsonMap));
}
if(m_storageClassHasBeenSet)
{
payload.WithString("StorageClass", StorageClassMapper::GetNameForStorageClass(m_storageClass));
}
return payload;
}
} // namespace Model
} // namespace Glacier
} // namespace Aws