UpdateDomainContactPrivacyOutcome Route53DomainsClient::UpdateDomainContactPrivacy(const UpdateDomainContactPrivacyRequest& request) const { Aws::StringStream ss; Aws::Http::URI uri = m_uri; ss << "/"; uri.SetPath(uri.GetPath() + ss.str()); JsonOutcome outcome = MakeRequest(uri, request, HttpMethod::HTTP_POST); if(outcome.IsSuccess()) { return UpdateDomainContactPrivacyOutcome(UpdateDomainContactPrivacyResult(outcome.GetResult())); } else { return UpdateDomainContactPrivacyOutcome(outcome.GetError()); } }
ViewBillingOutcome Route53DomainsClient::ViewBilling(const ViewBillingRequest& request) const { Aws::StringStream ss; Aws::Http::URI uri = m_uri; ss << "/"; uri.SetPath(uri.GetPath() + ss.str()); JsonOutcome outcome = MakeRequest(uri, request, HttpMethod::HTTP_POST); if(outcome.IsSuccess()) { return ViewBillingOutcome(ViewBillingResult(outcome.GetResult())); } else { return ViewBillingOutcome(outcome.GetError()); } }
EnableDomainTransferLockOutcome Route53DomainsClient::EnableDomainTransferLock(const EnableDomainTransferLockRequest& request) const { Aws::StringStream ss; Aws::Http::URI uri = m_uri; ss << "/"; uri.SetPath(uri.GetPath() + ss.str()); JsonOutcome outcome = MakeRequest(uri, request, HttpMethod::HTTP_POST); if(outcome.IsSuccess()) { return EnableDomainTransferLockOutcome(EnableDomainTransferLockResult(outcome.GetResult())); } else { return EnableDomainTransferLockOutcome(outcome.GetError()); } }
ResendContactReachabilityEmailOutcome Route53DomainsClient::ResendContactReachabilityEmail(const ResendContactReachabilityEmailRequest& request) const { Aws::StringStream ss; Aws::Http::URI uri = m_uri; ss << "/"; uri.SetPath(uri.GetPath() + ss.str()); JsonOutcome outcome = MakeRequest(uri, request, HttpMethod::HTTP_POST); if(outcome.IsSuccess()) { return ResendContactReachabilityEmailOutcome(ResendContactReachabilityEmailResult(outcome.GetResult())); } else { return ResendContactReachabilityEmailOutcome(outcome.GetError()); } }
PutEventsOutcome MobileAnalyticsClient::PutEvents(const PutEventsRequest& request) const { Aws::StringStream ss; Aws::Http::URI uri = m_uri; ss << "/2014-06-05/events"; uri.SetPath(uri.GetPath() + ss.str()); JsonOutcome outcome = MakeRequest(uri, request, HttpMethod::HTTP_POST); if(outcome.IsSuccess()) { return PutEventsOutcome(NoResult()); } else { return PutEventsOutcome(outcome.GetError()); } }
StopBuildOutcome CodeBuildClient::StopBuild(const StopBuildRequest& request) const { Aws::StringStream ss; Aws::Http::URI uri = m_uri; ss << "/"; uri.SetPath(uri.GetPath() + ss.str()); JsonOutcome outcome = MakeRequest(uri, request, HttpMethod::HTTP_POST); if(outcome.IsSuccess()) { return StopBuildOutcome(StopBuildResult(outcome.GetResult())); } else { return StopBuildOutcome(outcome.GetError()); } }
RegisterJobDefinitionOutcome BatchClient::RegisterJobDefinition(const RegisterJobDefinitionRequest& request) const { Aws::StringStream ss; Aws::Http::URI uri = m_uri; ss << "/v1/registerjobdefinition"; uri.SetPath(uri.GetPath() + ss.str()); JsonOutcome outcome = MakeRequest(uri, request, HttpMethod::HTTP_POST); if(outcome.IsSuccess()) { return RegisterJobDefinitionOutcome(RegisterJobDefinitionResult(outcome.GetResult())); } else { return RegisterJobDefinitionOutcome(outcome.GetError()); } }
DescribeNotificationsForBudgetOutcome BudgetsClient::DescribeNotificationsForBudget(const DescribeNotificationsForBudgetRequest& request) const { Aws::StringStream ss; Aws::Http::URI uri = m_uri; ss << "/"; uri.SetPath(uri.GetPath() + ss.str()); JsonOutcome outcome = MakeRequest(uri, request, HttpMethod::HTTP_POST); if(outcome.IsSuccess()) { return DescribeNotificationsForBudgetOutcome(DescribeNotificationsForBudgetResult(outcome.GetResult())); } else { return DescribeNotificationsForBudgetOutcome(outcome.GetError()); } }
DeleteComputeEnvironmentOutcome BatchClient::DeleteComputeEnvironment(const DeleteComputeEnvironmentRequest& request) const { Aws::StringStream ss; Aws::Http::URI uri = m_uri; ss << "/v1/deletecomputeenvironment"; uri.SetPath(uri.GetPath() + ss.str()); JsonOutcome outcome = MakeRequest(uri, request, HttpMethod::HTTP_POST); if(outcome.IsSuccess()) { return DeleteComputeEnvironmentOutcome(DeleteComputeEnvironmentResult(outcome.GetResult())); } else { return DeleteComputeEnvironmentOutcome(outcome.GetError()); } }
DescribeJobsOutcome BatchClient::DescribeJobs(const DescribeJobsRequest& request) const { Aws::StringStream ss; Aws::Http::URI uri = m_uri; ss << "/v1/describejobs"; uri.SetPath(uri.GetPath() + ss.str()); JsonOutcome outcome = MakeRequest(uri, request, HttpMethod::HTTP_POST); if(outcome.IsSuccess()) { return DescribeJobsOutcome(DescribeJobsResult(outcome.GetResult())); } else { return DescribeJobsOutcome(outcome.GetError()); } }
RemoveTagsFromResourceOutcome CloudHSMClient::RemoveTagsFromResource(const RemoveTagsFromResourceRequest& request) const { Aws::StringStream ss; Aws::Http::URI uri = m_uri; ss << "/"; uri.SetPath(uri.GetPath() + ss.str()); JsonOutcome outcome = MakeRequest(uri, request, HttpMethod::HTTP_POST); if(outcome.IsSuccess()) { return RemoveTagsFromResourceOutcome(RemoveTagsFromResourceResult(outcome.GetResult())); } else { return RemoveTagsFromResourceOutcome(outcome.GetError()); } }
ModifyLunaClientOutcome CloudHSMClient::ModifyLunaClient(const ModifyLunaClientRequest& request) const { Aws::StringStream ss; Aws::Http::URI uri = m_uri; ss << "/"; uri.SetPath(uri.GetPath() + ss.str()); JsonOutcome outcome = MakeRequest(uri, request, HttpMethod::HTTP_POST); if(outcome.IsSuccess()) { return ModifyLunaClientOutcome(ModifyLunaClientResult(outcome.GetResult())); } else { return ModifyLunaClientOutcome(outcome.GetError()); } }
ListAvailableZonesOutcome CloudHSMClient::ListAvailableZones(const ListAvailableZonesRequest& request) const { Aws::StringStream ss; Aws::Http::URI uri = m_uri; ss << "/"; uri.SetPath(uri.GetPath() + ss.str()); JsonOutcome outcome = MakeRequest(uri, request, HttpMethod::HTTP_POST); if(outcome.IsSuccess()) { return ListAvailableZonesOutcome(ListAvailableZonesResult(outcome.GetResult())); } else { return ListAvailableZonesOutcome(outcome.GetError()); } }
DiscoverInputSchemaOutcome KinesisAnalyticsClient::DiscoverInputSchema(const DiscoverInputSchemaRequest& request) const { Aws::StringStream ss; Aws::Http::URI uri = m_uri; ss << "/"; uri.SetPath(uri.GetPath() + ss.str()); JsonOutcome outcome = MakeRequest(uri, request, HttpMethod::HTTP_POST); if(outcome.IsSuccess()) { return DiscoverInputSchemaOutcome(DiscoverInputSchemaResult(outcome.GetResult())); } else { return DiscoverInputSchemaOutcome(outcome.GetError()); } }
SubmitJobOutcome BatchClient::SubmitJob(const SubmitJobRequest& request) const { Aws::StringStream ss; Aws::Http::URI uri = m_uri; ss << "/v1/submitjob"; uri.SetPath(uri.GetPath() + ss.str()); JsonOutcome outcome = MakeRequest(uri, request, HttpMethod::HTTP_POST); if(outcome.IsSuccess()) { return SubmitJobOutcome(SubmitJobResult(outcome.GetResult())); } else { return SubmitJobOutcome(outcome.GetError()); } }
UpdateApplicationOutcome KinesisAnalyticsClient::UpdateApplication(const UpdateApplicationRequest& request) const { Aws::StringStream ss; Aws::Http::URI uri = m_uri; ss << "/"; uri.SetPath(uri.GetPath() + ss.str()); JsonOutcome outcome = MakeRequest(uri, request, HttpMethod::HTTP_POST); if(outcome.IsSuccess()) { return UpdateApplicationOutcome(UpdateApplicationResult(outcome.GetResult())); } else { return UpdateApplicationOutcome(outcome.GetError()); } }
UpdateJobQueueOutcome BatchClient::UpdateJobQueue(const UpdateJobQueueRequest& request) const { Aws::StringStream ss; Aws::Http::URI uri = m_uri; ss << "/v1/updatejobqueue"; uri.SetPath(uri.GetPath() + ss.str()); JsonOutcome outcome = MakeRequest(uri, request, HttpMethod::HTTP_POST); if(outcome.IsSuccess()) { return UpdateJobQueueOutcome(UpdateJobQueueResult(outcome.GetResult())); } else { return UpdateJobQueueOutcome(outcome.GetError()); } }
UpdateSubscriberOutcome BudgetsClient::UpdateSubscriber(const UpdateSubscriberRequest& request) const { Aws::StringStream ss; Aws::Http::URI uri = m_uri; ss << "/"; uri.SetPath(uri.GetPath() + ss.str()); JsonOutcome outcome = MakeRequest(uri, request, HttpMethod::HTTP_POST); if(outcome.IsSuccess()) { return UpdateSubscriberOutcome(UpdateSubscriberResult(outcome.GetResult())); } else { return UpdateSubscriberOutcome(outcome.GetError()); } }
CheckDomainAvailabilityOutcome Route53DomainsClient::CheckDomainAvailability(const CheckDomainAvailabilityRequest& request) const { Aws::StringStream ss; Aws::Http::URI uri = m_uri; ss << "/"; uri.SetPath(uri.GetPath() + ss.str()); JsonOutcome outcome = MakeRequest(uri, request, HttpMethod::HTTP_POST); if(outcome.IsSuccess()) { return CheckDomainAvailabilityOutcome(CheckDomainAvailabilityResult(outcome.GetResult())); } else { return CheckDomainAvailabilityOutcome(outcome.GetError()); } }
ListCuratedEnvironmentImagesOutcome CodeBuildClient::ListCuratedEnvironmentImages(const ListCuratedEnvironmentImagesRequest& request) const { Aws::StringStream ss; Aws::Http::URI uri = m_uri; ss << "/"; uri.SetPath(uri.GetPath() + ss.str()); JsonOutcome outcome = MakeRequest(uri, request, HttpMethod::HTTP_POST); if(outcome.IsSuccess()) { return ListCuratedEnvironmentImagesOutcome(ListCuratedEnvironmentImagesResult(outcome.GetResult())); } else { return ListCuratedEnvironmentImagesOutcome(outcome.GetError()); } }
std::shared_ptr<Aws::Http::HttpResponse> NetlibHttpClient::MakeRequest( Aws::Http::HttpRequest& request, Aws::Utils::RateLimits::RateLimiterInterface* readLimiter, Aws::Utils::RateLimits::RateLimiterInterface* writeLimiter) const { // AWS allows rate limiters to be passed around, but we are doing rate // limiting on the logger plugin side and so don't implement this. if (readLimiter != nullptr || writeLimiter != nullptr) { LOG(WARNING) << "Read/write limiters are unsupported"; } Aws::Http::URI uri = request.GetUri(); uri.SetPath(Aws::Http::URI::URLEncodePath(uri.GetPath())); Aws::String url = uri.GetURIString(); bn::http::client client = TLSTransport().getClient(); bn::http::client::request req(url); for (const auto& requestHeader : request.GetHeaders()) { req << bn::header(requestHeader.first, requestHeader.second); } std::string body; if (request.GetContentBody()) { std::stringstream ss; ss << request.GetContentBody()->rdbuf(); body = ss.str(); } auto response = std::make_shared<Standard::StandardHttpResponse>(request); try { bn::http::client::response resp; switch (request.GetMethod()) { case Aws::Http::HttpMethod::HTTP_GET: resp = client.get(req); if (resp.status() == 301 || resp.status() == 302) { VLOG(1) << "Attempting custom redirect as cpp-netlib does not support " "redirects"; for (const auto& header : resp.headers()) { if (header.first == "Location") { req.uri(header.second); resp = client.get(req); } } } break; case Aws::Http::HttpMethod::HTTP_POST: resp = client.post(req, body, request.GetContentType()); break; case Aws::Http::HttpMethod::HTTP_PUT: resp = client.put(req, body, request.GetContentType()); break; case Aws::Http::HttpMethod::HTTP_HEAD: resp = client.head(req); break; case Aws::Http::HttpMethod::HTTP_PATCH: LOG(ERROR) << "cpp-netlib does not support HTTP PATCH"; return nullptr; break; case Aws::Http::HttpMethod::HTTP_DELETE: resp = client.delete_(req); break; default: LOG(ERROR) << "Unrecognized HTTP Method used: " << static_cast<int>(request.GetMethod()); return nullptr; break; } response->SetResponseCode( static_cast<Aws::Http::HttpResponseCode>(resp.status())); for (const auto& header : resp.headers()) { if (header.first == "content-type") { response->SetContentType(header.second); } response->AddHeader(header.first, header.second); } response->GetResponseBody() << resp.body(); } catch (const std::exception& /*e*/) { LOG(ERROR) << "Exception making HTTP request to URL: " << url; return nullptr; } return response; }