/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #include #include #include #include #include using namespace Aws::S3Control::Model; using namespace Aws::Utils::Xml; using namespace Aws::Utils; PutBucketPolicyRequest::PutBucketPolicyRequest() : m_accountIdHasBeenSet(false), m_bucketHasBeenSet(false), m_confirmRemoveSelfBucketAccess(false), m_confirmRemoveSelfBucketAccessHasBeenSet(false), m_policyHasBeenSet(false) { } Aws::String PutBucketPolicyRequest::SerializePayload() const { XmlDocument payloadDoc = XmlDocument::CreateWithRootNode("PutBucketPolicyRequest"); XmlNode parentNode = payloadDoc.GetRootElement(); parentNode.SetAttributeValue("xmlns", "http://awss3control.amazonaws.com/doc/2018-08-20/"); Aws::StringStream ss; if(m_policyHasBeenSet) { XmlNode policyNode = parentNode.CreateChildElement("Policy"); policyNode.SetText(m_policy); } return payloadDoc.ConvertToString(); } Aws::Http::HeaderValueCollection PutBucketPolicyRequest::GetRequestSpecificHeaders() const { Aws::Http::HeaderValueCollection headers; Aws::StringStream ss; if(m_accountIdHasBeenSet) { ss << m_accountId; headers.emplace("x-amz-account-id", ss.str()); ss.str(""); } if(m_confirmRemoveSelfBucketAccessHasBeenSet) { ss << std::boolalpha << m_confirmRemoveSelfBucketAccess; headers.emplace("x-amz-confirm-remove-self-bucket-access", ss.str()); ss.str(""); } return headers; } PutBucketPolicyRequest::EndpointParameters PutBucketPolicyRequest::GetEndpointContextParams() const { EndpointParameters parameters; // Static context parameters parameters.emplace_back(Aws::String("RequiresAccountId"), true, Aws::Endpoint::EndpointParameter::ParameterOrigin::STATIC_CONTEXT); // Operation context parameters if (AccountIdHasBeenSet()) { parameters.emplace_back(Aws::String("AccountId"), this->GetAccountId(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT); } if (BucketHasBeenSet()) { parameters.emplace_back(Aws::String("Bucket"), this->GetBucket(), Aws::Endpoint::EndpointParameter::ParameterOrigin::OPERATION_CONTEXT); } return parameters; }