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-s3control/source/model/S3CopyObjectOperation.cpp

309 lines
12 KiB
C++
Raw Normal View History

/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#include <aws/s3control/model/S3CopyObjectOperation.h>
#include <aws/core/utils/xml/XmlSerializer.h>
#include <aws/core/utils/StringUtils.h>
#include <aws/core/utils/memory/stl/AWSStringStream.h>
#include <utility>
using namespace Aws::Utils::Xml;
using namespace Aws::Utils;
namespace Aws
{
namespace S3Control
{
namespace Model
{
S3CopyObjectOperation::S3CopyObjectOperation() :
m_targetResourceHasBeenSet(false),
m_cannedAccessControlList(S3CannedAccessControlList::NOT_SET),
m_cannedAccessControlListHasBeenSet(false),
m_accessControlGrantsHasBeenSet(false),
m_metadataDirective(S3MetadataDirective::NOT_SET),
m_metadataDirectiveHasBeenSet(false),
m_modifiedSinceConstraintHasBeenSet(false),
m_newObjectMetadataHasBeenSet(false),
m_newObjectTaggingHasBeenSet(false),
m_redirectLocationHasBeenSet(false),
m_requesterPays(false),
m_requesterPaysHasBeenSet(false),
m_storageClass(S3StorageClass::NOT_SET),
m_storageClassHasBeenSet(false),
m_unModifiedSinceConstraintHasBeenSet(false),
m_sSEAwsKmsKeyIdHasBeenSet(false),
m_targetKeyPrefixHasBeenSet(false),
m_objectLockLegalHoldStatus(S3ObjectLockLegalHoldStatus::NOT_SET),
m_objectLockLegalHoldStatusHasBeenSet(false),
m_objectLockMode(S3ObjectLockMode::NOT_SET),
m_objectLockModeHasBeenSet(false),
m_objectLockRetainUntilDateHasBeenSet(false)
{
}
S3CopyObjectOperation::S3CopyObjectOperation(const XmlNode& xmlNode) :
m_targetResourceHasBeenSet(false),
m_cannedAccessControlList(S3CannedAccessControlList::NOT_SET),
m_cannedAccessControlListHasBeenSet(false),
m_accessControlGrantsHasBeenSet(false),
m_metadataDirective(S3MetadataDirective::NOT_SET),
m_metadataDirectiveHasBeenSet(false),
m_modifiedSinceConstraintHasBeenSet(false),
m_newObjectMetadataHasBeenSet(false),
m_newObjectTaggingHasBeenSet(false),
m_redirectLocationHasBeenSet(false),
m_requesterPays(false),
m_requesterPaysHasBeenSet(false),
m_storageClass(S3StorageClass::NOT_SET),
m_storageClassHasBeenSet(false),
m_unModifiedSinceConstraintHasBeenSet(false),
m_sSEAwsKmsKeyIdHasBeenSet(false),
m_targetKeyPrefixHasBeenSet(false),
m_objectLockLegalHoldStatus(S3ObjectLockLegalHoldStatus::NOT_SET),
m_objectLockLegalHoldStatusHasBeenSet(false),
m_objectLockMode(S3ObjectLockMode::NOT_SET),
m_objectLockModeHasBeenSet(false),
m_objectLockRetainUntilDateHasBeenSet(false)
{
*this = xmlNode;
}
S3CopyObjectOperation& S3CopyObjectOperation::operator =(const XmlNode& xmlNode)
{
XmlNode resultNode = xmlNode;
if(!resultNode.IsNull())
{
XmlNode targetResourceNode = resultNode.FirstChild("TargetResource");
if(!targetResourceNode.IsNull())
{
m_targetResource = Aws::Utils::Xml::DecodeEscapedXmlText(targetResourceNode.GetText());
m_targetResourceHasBeenSet = true;
}
XmlNode cannedAccessControlListNode = resultNode.FirstChild("CannedAccessControlList");
if(!cannedAccessControlListNode.IsNull())
{
m_cannedAccessControlList = S3CannedAccessControlListMapper::GetS3CannedAccessControlListForName(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(cannedAccessControlListNode.GetText()).c_str()).c_str());
m_cannedAccessControlListHasBeenSet = true;
}
XmlNode accessControlGrantsNode = resultNode.FirstChild("AccessControlGrants");
if(!accessControlGrantsNode.IsNull())
{
XmlNode accessControlGrantsMember = accessControlGrantsNode.FirstChild("member");
while(!accessControlGrantsMember.IsNull())
{
m_accessControlGrants.push_back(accessControlGrantsMember);
accessControlGrantsMember = accessControlGrantsMember.NextNode("member");
}
m_accessControlGrantsHasBeenSet = true;
}
XmlNode metadataDirectiveNode = resultNode.FirstChild("MetadataDirective");
if(!metadataDirectiveNode.IsNull())
{
m_metadataDirective = S3MetadataDirectiveMapper::GetS3MetadataDirectiveForName(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(metadataDirectiveNode.GetText()).c_str()).c_str());
m_metadataDirectiveHasBeenSet = true;
}
XmlNode modifiedSinceConstraintNode = resultNode.FirstChild("ModifiedSinceConstraint");
if(!modifiedSinceConstraintNode.IsNull())
{
m_modifiedSinceConstraint = DateTime(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(modifiedSinceConstraintNode.GetText()).c_str()).c_str(), DateFormat::ISO_8601);
m_modifiedSinceConstraintHasBeenSet = true;
}
XmlNode newObjectMetadataNode = resultNode.FirstChild("NewObjectMetadata");
if(!newObjectMetadataNode.IsNull())
{
m_newObjectMetadata = newObjectMetadataNode;
m_newObjectMetadataHasBeenSet = true;
}
XmlNode newObjectTaggingNode = resultNode.FirstChild("NewObjectTagging");
if(!newObjectTaggingNode.IsNull())
{
XmlNode newObjectTaggingMember = newObjectTaggingNode.FirstChild("member");
while(!newObjectTaggingMember.IsNull())
{
m_newObjectTagging.push_back(newObjectTaggingMember);
newObjectTaggingMember = newObjectTaggingMember.NextNode("member");
}
m_newObjectTaggingHasBeenSet = true;
}
XmlNode redirectLocationNode = resultNode.FirstChild("RedirectLocation");
if(!redirectLocationNode.IsNull())
{
m_redirectLocation = Aws::Utils::Xml::DecodeEscapedXmlText(redirectLocationNode.GetText());
m_redirectLocationHasBeenSet = true;
}
XmlNode requesterPaysNode = resultNode.FirstChild("RequesterPays");
if(!requesterPaysNode.IsNull())
{
m_requesterPays = StringUtils::ConvertToBool(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(requesterPaysNode.GetText()).c_str()).c_str());
m_requesterPaysHasBeenSet = true;
}
XmlNode storageClassNode = resultNode.FirstChild("StorageClass");
if(!storageClassNode.IsNull())
{
m_storageClass = S3StorageClassMapper::GetS3StorageClassForName(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(storageClassNode.GetText()).c_str()).c_str());
m_storageClassHasBeenSet = true;
}
XmlNode unModifiedSinceConstraintNode = resultNode.FirstChild("UnModifiedSinceConstraint");
if(!unModifiedSinceConstraintNode.IsNull())
{
m_unModifiedSinceConstraint = DateTime(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(unModifiedSinceConstraintNode.GetText()).c_str()).c_str(), DateFormat::ISO_8601);
m_unModifiedSinceConstraintHasBeenSet = true;
}
XmlNode sSEAwsKmsKeyIdNode = resultNode.FirstChild("SSEAwsKmsKeyId");
if(!sSEAwsKmsKeyIdNode.IsNull())
{
m_sSEAwsKmsKeyId = Aws::Utils::Xml::DecodeEscapedXmlText(sSEAwsKmsKeyIdNode.GetText());
m_sSEAwsKmsKeyIdHasBeenSet = true;
}
XmlNode targetKeyPrefixNode = resultNode.FirstChild("TargetKeyPrefix");
if(!targetKeyPrefixNode.IsNull())
{
m_targetKeyPrefix = Aws::Utils::Xml::DecodeEscapedXmlText(targetKeyPrefixNode.GetText());
m_targetKeyPrefixHasBeenSet = true;
}
XmlNode objectLockLegalHoldStatusNode = resultNode.FirstChild("ObjectLockLegalHoldStatus");
if(!objectLockLegalHoldStatusNode.IsNull())
{
m_objectLockLegalHoldStatus = S3ObjectLockLegalHoldStatusMapper::GetS3ObjectLockLegalHoldStatusForName(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(objectLockLegalHoldStatusNode.GetText()).c_str()).c_str());
m_objectLockLegalHoldStatusHasBeenSet = true;
}
XmlNode objectLockModeNode = resultNode.FirstChild("ObjectLockMode");
if(!objectLockModeNode.IsNull())
{
m_objectLockMode = S3ObjectLockModeMapper::GetS3ObjectLockModeForName(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(objectLockModeNode.GetText()).c_str()).c_str());
m_objectLockModeHasBeenSet = true;
}
XmlNode objectLockRetainUntilDateNode = resultNode.FirstChild("ObjectLockRetainUntilDate");
if(!objectLockRetainUntilDateNode.IsNull())
{
m_objectLockRetainUntilDate = DateTime(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(objectLockRetainUntilDateNode.GetText()).c_str()).c_str(), DateFormat::ISO_8601);
m_objectLockRetainUntilDateHasBeenSet = true;
}
}
return *this;
}
void S3CopyObjectOperation::AddToNode(XmlNode& parentNode) const
{
Aws::StringStream ss;
if(m_targetResourceHasBeenSet)
{
XmlNode targetResourceNode = parentNode.CreateChildElement("TargetResource");
targetResourceNode.SetText(m_targetResource);
}
if(m_cannedAccessControlListHasBeenSet)
{
XmlNode cannedAccessControlListNode = parentNode.CreateChildElement("CannedAccessControlList");
cannedAccessControlListNode.SetText(S3CannedAccessControlListMapper::GetNameForS3CannedAccessControlList(m_cannedAccessControlList));
}
if(m_accessControlGrantsHasBeenSet)
{
XmlNode accessControlGrantsParentNode = parentNode.CreateChildElement("AccessControlGrants");
for(const auto& item : m_accessControlGrants)
{
XmlNode accessControlGrantsNode = accessControlGrantsParentNode.CreateChildElement("S3Grant");
item.AddToNode(accessControlGrantsNode);
}
}
if(m_metadataDirectiveHasBeenSet)
{
XmlNode metadataDirectiveNode = parentNode.CreateChildElement("MetadataDirective");
metadataDirectiveNode.SetText(S3MetadataDirectiveMapper::GetNameForS3MetadataDirective(m_metadataDirective));
}
if(m_modifiedSinceConstraintHasBeenSet)
{
XmlNode modifiedSinceConstraintNode = parentNode.CreateChildElement("ModifiedSinceConstraint");
modifiedSinceConstraintNode.SetText(m_modifiedSinceConstraint.ToGmtString(DateFormat::ISO_8601));
}
if(m_newObjectMetadataHasBeenSet)
{
XmlNode newObjectMetadataNode = parentNode.CreateChildElement("NewObjectMetadata");
m_newObjectMetadata.AddToNode(newObjectMetadataNode);
}
if(m_newObjectTaggingHasBeenSet)
{
XmlNode newObjectTaggingParentNode = parentNode.CreateChildElement("NewObjectTagging");
for(const auto& item : m_newObjectTagging)
{
XmlNode newObjectTaggingNode = newObjectTaggingParentNode.CreateChildElement("S3Tag");
item.AddToNode(newObjectTaggingNode);
}
}
if(m_redirectLocationHasBeenSet)
{
XmlNode redirectLocationNode = parentNode.CreateChildElement("RedirectLocation");
redirectLocationNode.SetText(m_redirectLocation);
}
if(m_requesterPaysHasBeenSet)
{
XmlNode requesterPaysNode = parentNode.CreateChildElement("RequesterPays");
ss << std::boolalpha << m_requesterPays;
requesterPaysNode.SetText(ss.str());
ss.str("");
}
if(m_storageClassHasBeenSet)
{
XmlNode storageClassNode = parentNode.CreateChildElement("StorageClass");
storageClassNode.SetText(S3StorageClassMapper::GetNameForS3StorageClass(m_storageClass));
}
if(m_unModifiedSinceConstraintHasBeenSet)
{
XmlNode unModifiedSinceConstraintNode = parentNode.CreateChildElement("UnModifiedSinceConstraint");
unModifiedSinceConstraintNode.SetText(m_unModifiedSinceConstraint.ToGmtString(DateFormat::ISO_8601));
}
if(m_sSEAwsKmsKeyIdHasBeenSet)
{
XmlNode sSEAwsKmsKeyIdNode = parentNode.CreateChildElement("SSEAwsKmsKeyId");
sSEAwsKmsKeyIdNode.SetText(m_sSEAwsKmsKeyId);
}
if(m_targetKeyPrefixHasBeenSet)
{
XmlNode targetKeyPrefixNode = parentNode.CreateChildElement("TargetKeyPrefix");
targetKeyPrefixNode.SetText(m_targetKeyPrefix);
}
if(m_objectLockLegalHoldStatusHasBeenSet)
{
XmlNode objectLockLegalHoldStatusNode = parentNode.CreateChildElement("ObjectLockLegalHoldStatus");
objectLockLegalHoldStatusNode.SetText(S3ObjectLockLegalHoldStatusMapper::GetNameForS3ObjectLockLegalHoldStatus(m_objectLockLegalHoldStatus));
}
if(m_objectLockModeHasBeenSet)
{
XmlNode objectLockModeNode = parentNode.CreateChildElement("ObjectLockMode");
objectLockModeNode.SetText(S3ObjectLockModeMapper::GetNameForS3ObjectLockMode(m_objectLockMode));
}
if(m_objectLockRetainUntilDateHasBeenSet)
{
XmlNode objectLockRetainUntilDateNode = parentNode.CreateChildElement("ObjectLockRetainUntilDate");
objectLockRetainUntilDateNode.SetText(m_objectLockRetainUntilDate.ToGmtString(DateFormat::ISO_8601));
}
}
} // namespace Model
} // namespace S3Control
} // namespace Aws