MinIO C++ SDK
request-builder.h
1 // MinIO C++ Library for Amazon S3 Compatible Cloud Storage
2 // Copyright 2022 MinIO, Inc.
3 //
4 // Licensed under the Apache License, Version 2.0 (the "License");
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 // http://www.apache.org/licenses/LICENSE-2.0
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 
16 #ifndef _MINIO_REQUEST_BUILDER_H
17 #define _MINIO_REQUEST_BUILDER_H
18 
19 #include "creds.h"
20 #include "signer.h"
21 
22 namespace minio {
23 namespace s3 {
25  http::Method method;
26  std::string region;
27  http::BaseUrl& base_url;
28 
29  std::string user_agent;
30 
31  utils::Multimap headers;
32  utils::Multimap query_params;
33 
34  std::string bucket_name;
35  std::string object_name;
36 
37  std::string_view body = "";
38 
39  http::DataCallback data_callback = NULL;
40  void* user_arg = NULL;
41 
42  std::string sha256;
43  utils::Time date;
44 
45  bool debug = false;
46  bool ignore_cert_check = false;
47 
48  RequestBuilder(http::Method httpmethod, std::string regionvalue,
49  http::BaseUrl& baseurl);
50  http::Request Build(creds::Provider* provider = NULL);
51 
52  private:
53  void BuildHeaders(utils::Url& url, creds::Provider* provider);
54 }; // struct RequestBuilder
55 } // namespace s3
56 } // namespace minio
57 #endif // #ifndef __MINIO_REQUEST_BUILDER_H
Definition: creds.h:47
Definition: utils.h:119
Definition: utils.h:97
Definition: http.h:53
Definition: http.h:87
Definition: request-builder.h:24
Definition: utils.h:144