15 #ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_STORAGE_SIGNED_URL_OPTIONS_H
16 #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_STORAGE_SIGNED_URL_OPTIONS_H
18 #include "google/cloud/storage/internal/complex_option.h"
32 :
public internal::ComplexOption<ExpirationTime,
33 std::chrono::system_clock::time_point> {
35 std::chrono::system_clock::time_point>::ComplexOption;
39 static char const*
name() {
return "expiration_time"; }
46 :
public internal::ComplexOption<AddExtensionHeaderOption,
47 std::pair<std::string, std::string>> {
49 std::pair<std::string, std::string>>::ComplexOption;
54 : ComplexOption(std::make_pair(std::move(header), std::move(value))) {}
55 static char const*
name() {
return "expiration_time"; }
67 :
public internal::ComplexOption<AddQueryParameterOption,
68 std::pair<std::string, std::string>> {
70 std::pair<std::string, std::string>>::ComplexOption;
75 : ComplexOption(std::make_pair(std::move(key), std::move(value))) {}
77 : ComplexOption(std::make_pair(std::string(key), std::move(value))) {}
78 static char const*
name() {
return "query-parameter"; }
87 std::to_string(generation));
99 std::string disposition) {
101 std::move(disposition));
105 std::string
const& type) {
113 :
public internal::ComplexOption<SubResourceOption, std::string> {
114 using ComplexOption<SubResourceOption, std::string>::ComplexOption;
118 static char const*
name() {
return "query-parameter"; }
157 :
public internal::ComplexOption<SignedUrlTimestamp,
158 std::chrono::system_clock::time_point> {
160 std::chrono::system_clock::time_point>::ComplexOption;
164 static char const*
name() {
return "x-goog-date"; }
171 :
public internal::ComplexOption<SignedUrlDuration, std::chrono::seconds> {
172 using ComplexOption<SignedUrlDuration, std::chrono::seconds>::ComplexOption;
176 static char const*
name() {
return "x-goog-expires"; }
186 :
public internal::ComplexOption<SigningAccount, std::string> {
187 using ComplexOption<SigningAccount, std::string>::ComplexOption;
191 static char const*
name() {
return "signing-account"; }
202 :
public internal::ComplexOption<SigningAccountDelegates,
203 std::vector<std::string>> {
205 std::vector<std::string>>::ComplexOption;
209 static char const*
name() {
return "signing-account-delegates"; }
220 using ComplexOption<VirtualHostname, bool>::ComplexOption;
234 :
public internal::ComplexOption<BucketBoundHostname, std::string> {
235 using ComplexOption<BucketBoundHostname, std::string>::ComplexOption;
239 static char const*
option_name() {
return "domain-named-bucket"; }
243 struct Scheme :
public internal::ComplexOption<Scheme, std::string> {
244 using ComplexOption<Scheme, std::string>::ComplexOption;
255 :
public internal::ComplexOption<AddExtensionFieldOption,
256 std::pair<std::string, std::string>> {
258 std::pair<std::string, std::string>>::ComplexOption;
263 : ComplexOption(std::make_pair(std::move(field), std::move(value))) {}
264 static char const*
name() {
return "extension_field"; }
277 #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_STORAGE_SIGNED_URL_OPTIONS_H