15 #ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_STORAGE_IDEMPOTENCY_POLICY_H
16 #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_STORAGE_IDEMPOTENCY_POLICY_H
18 #include "google/cloud/storage/internal/bucket_acl_requests.h"
19 #include "google/cloud/storage/internal/bucket_requests.h"
20 #include "google/cloud/storage/internal/default_object_acl_requests.h"
21 #include "google/cloud/storage/internal/hmac_key_requests.h"
22 #include "google/cloud/storage/internal/notification_requests.h"
23 #include "google/cloud/storage/internal/object_acl_requests.h"
24 #include "google/cloud/storage/internal/object_requests.h"
25 #include "google/cloud/storage/internal/service_account_requests.h"
26 #include "google/cloud/storage/internal/sign_blob_requests.h"
27 #include "google/cloud/storage/version.h"
68 internal::ListBucketsRequest
const& request)
const = 0;
70 internal::CreateBucketRequest
const& request)
const = 0;
72 internal::GetBucketMetadataRequest
const& request)
const = 0;
74 internal::DeleteBucketRequest
const& request)
const = 0;
76 internal::UpdateBucketRequest
const& request)
const = 0;
78 internal::PatchBucketRequest
const& request)
const = 0;
80 internal::GetBucketIamPolicyRequest
const& request)
const = 0;
82 internal::SetNativeBucketIamPolicyRequest
const& request)
const = 0;
84 internal::TestBucketIamPermissionsRequest
const& request)
const = 0;
86 internal::LockBucketRetentionPolicyRequest
const& request)
const = 0;
92 internal::InsertObjectMediaRequest
const& request)
const = 0;
94 internal::CopyObjectRequest
const& request)
const = 0;
96 internal::GetObjectMetadataRequest
const& request)
const = 0;
98 internal::ReadObjectRangeRequest
const& request)
const = 0;
100 internal::ListObjectsRequest
const& request)
const = 0;
102 internal::DeleteObjectRequest
const& request)
const = 0;
104 internal::UpdateObjectRequest
const& request)
const = 0;
106 internal::PatchObjectRequest
const& request)
const = 0;
108 internal::ComposeObjectRequest
const& request)
const = 0;
110 internal::RewriteObjectRequest
const& request)
const = 0;
112 internal::ResumableUploadRequest
const& request)
const = 0;
114 internal::UploadChunkRequest
const& request)
const = 0;
120 internal::ListBucketAclRequest
const& request)
const = 0;
122 internal::CreateBucketAclRequest
const& request)
const = 0;
124 internal::DeleteBucketAclRequest
const& request)
const = 0;
126 internal::GetBucketAclRequest
const& request)
const = 0;
128 internal::UpdateBucketAclRequest
const& request)
const = 0;
130 internal::PatchBucketAclRequest
const& request)
const = 0;
136 internal::ListObjectAclRequest
const& request)
const = 0;
138 internal::CreateObjectAclRequest
const& request)
const = 0;
140 internal::DeleteObjectAclRequest
const& request)
const = 0;
142 internal::GetObjectAclRequest
const& request)
const = 0;
144 internal::UpdateObjectAclRequest
const& request)
const = 0;
146 internal::PatchObjectAclRequest
const& request)
const = 0;
152 internal::ListDefaultObjectAclRequest
const& request)
const = 0;
154 internal::CreateDefaultObjectAclRequest
const& request)
const = 0;
156 internal::DeleteDefaultObjectAclRequest
const& request)
const = 0;
158 internal::GetDefaultObjectAclRequest
const& request)
const = 0;
160 internal::UpdateDefaultObjectAclRequest
const& request)
const = 0;
162 internal::PatchDefaultObjectAclRequest
const& request)
const = 0;
167 internal::GetProjectServiceAccountRequest
const& request)
const = 0;
169 internal::ListHmacKeysRequest
const& request)
const = 0;
171 internal::CreateHmacKeyRequest
const& request)
const = 0;
173 internal::DeleteHmacKeyRequest
const& request)
const = 0;
175 internal::GetHmacKeyRequest
const& request)
const = 0;
177 internal::UpdateHmacKeyRequest
const& request)
const = 0;
178 virtual bool IsIdempotent(internal::SignBlobRequest
const& request)
const = 0;
183 internal::ListNotificationsRequest
const& request)
const = 0;
185 internal::CreateNotificationRequest
const& request)
const = 0;
187 internal::GetNotificationRequest
const& request)
const = 0;
189 internal::DeleteNotificationRequest
const& request)
const = 0;
204 bool IsIdempotent(internal::ListBucketsRequest
const& request)
const override;
206 internal::CreateBucketRequest
const& request)
const override;
208 internal::GetBucketMetadataRequest
const& request)
const override;
210 internal::DeleteBucketRequest
const& request)
const override;
212 internal::UpdateBucketRequest
const& request)
const override;
213 bool IsIdempotent(internal::PatchBucketRequest
const& request)
const override;
215 internal::GetBucketIamPolicyRequest
const& request)
const override;
217 internal::SetNativeBucketIamPolicyRequest
const& request)
const override;
219 internal::TestBucketIamPermissionsRequest
const& request)
const override;
221 internal::LockBucketRetentionPolicyRequest
const& request)
const override;
227 internal::InsertObjectMediaRequest
const& request)
const override;
228 bool IsIdempotent(internal::CopyObjectRequest
const& request)
const override;
230 internal::GetObjectMetadataRequest
const& request)
const override;
232 internal::ReadObjectRangeRequest
const& request)
const override;
233 bool IsIdempotent(internal::ListObjectsRequest
const& request)
const override;
235 internal::DeleteObjectRequest
const& request)
const override;
237 internal::UpdateObjectRequest
const& request)
const override;
238 bool IsIdempotent(internal::PatchObjectRequest
const& request)
const override;
240 internal::ComposeObjectRequest
const& request)
const override;
242 internal::RewriteObjectRequest
const& request)
const override;
244 internal::ResumableUploadRequest
const& request)
const override;
245 bool IsIdempotent(internal::UploadChunkRequest
const& request)
const override;
251 internal::ListBucketAclRequest
const& request)
const override;
253 internal::CreateBucketAclRequest
const& request)
const override;
255 internal::DeleteBucketAclRequest
const& request)
const override;
257 internal::GetBucketAclRequest
const& request)
const override;
259 internal::UpdateBucketAclRequest
const& request)
const override;
261 internal::PatchBucketAclRequest
const& request)
const override;
267 internal::ListObjectAclRequest
const& request)
const override;
269 internal::CreateObjectAclRequest
const& request)
const override;
271 internal::DeleteObjectAclRequest
const& request)
const override;
273 internal::GetObjectAclRequest
const& request)
const override;
275 internal::UpdateObjectAclRequest
const& request)
const override;
277 internal::PatchObjectAclRequest
const& request)
const override;
283 internal::ListDefaultObjectAclRequest
const& request)
const override;
285 internal::CreateDefaultObjectAclRequest
const& request)
const override;
287 internal::DeleteDefaultObjectAclRequest
const& request)
const override;
289 internal::GetDefaultObjectAclRequest
const& request)
const override;
291 internal::UpdateDefaultObjectAclRequest
const& request)
const override;
293 internal::PatchDefaultObjectAclRequest
const& request)
const override;
298 internal::GetProjectServiceAccountRequest
const& request)
const override;
300 internal::ListHmacKeysRequest
const& request)
const override;
302 internal::CreateHmacKeyRequest
const& request)
const override;
304 internal::DeleteHmacKeyRequest
const& request)
const override;
305 bool IsIdempotent(internal::GetHmacKeyRequest
const& request)
const override;
307 internal::UpdateHmacKeyRequest
const& request)
const override;
308 bool IsIdempotent(internal::SignBlobRequest
const& request)
const override;
313 internal::ListNotificationsRequest
const& request)
const override;
315 internal::CreateNotificationRequest
const& request)
const override;
317 internal::GetNotificationRequest
const& request)
const override;
319 internal::DeleteNotificationRequest
const& request)
const override;
334 bool IsIdempotent(internal::ListBucketsRequest
const& request)
const override;
336 internal::CreateBucketRequest
const& request)
const override;
338 internal::GetBucketMetadataRequest
const& request)
const override;
340 internal::DeleteBucketRequest
const& request)
const override;
342 internal::UpdateBucketRequest
const& request)
const override;
343 bool IsIdempotent(internal::PatchBucketRequest
const& request)
const override;
345 internal::GetBucketIamPolicyRequest
const& request)
const override;
347 internal::SetNativeBucketIamPolicyRequest
const& request)
const override;
349 internal::TestBucketIamPermissionsRequest
const& request)
const override;
351 internal::LockBucketRetentionPolicyRequest
const& request)
const override;
357 internal::InsertObjectMediaRequest
const& request)
const override;
358 bool IsIdempotent(internal::CopyObjectRequest
const& request)
const override;
360 internal::GetObjectMetadataRequest
const& request)
const override;
362 internal::ReadObjectRangeRequest
const& request)
const override;
363 bool IsIdempotent(internal::ListObjectsRequest
const& request)
const override;
365 internal::DeleteObjectRequest
const& request)
const override;
367 internal::UpdateObjectRequest
const& request)
const override;
368 bool IsIdempotent(internal::PatchObjectRequest
const& request)
const override;
370 internal::ComposeObjectRequest
const& request)
const override;
372 internal::RewriteObjectRequest
const& request)
const override;
374 internal::ResumableUploadRequest
const& request)
const override;
375 bool IsIdempotent(internal::UploadChunkRequest
const& request)
const override;
381 internal::ListBucketAclRequest
const& request)
const override;
383 internal::CreateBucketAclRequest
const& request)
const override;
385 internal::DeleteBucketAclRequest
const& request)
const override;
387 internal::GetBucketAclRequest
const& request)
const override;
389 internal::UpdateBucketAclRequest
const& request)
const override;
391 internal::PatchBucketAclRequest
const& request)
const override;
397 internal::ListObjectAclRequest
const& request)
const override;
399 internal::CreateObjectAclRequest
const& request)
const override;
401 internal::DeleteObjectAclRequest
const& request)
const override;
403 internal::GetObjectAclRequest
const& request)
const override;
405 internal::UpdateObjectAclRequest
const& request)
const override;
407 internal::PatchObjectAclRequest
const& request)
const override;
413 internal::ListDefaultObjectAclRequest
const& request)
const override;
415 internal::CreateDefaultObjectAclRequest
const& request)
const override;
417 internal::DeleteDefaultObjectAclRequest
const& request)
const override;
419 internal::GetDefaultObjectAclRequest
const& request)
const override;
421 internal::UpdateDefaultObjectAclRequest
const& request)
const override;
423 internal::PatchDefaultObjectAclRequest
const& request)
const override;
428 internal::GetProjectServiceAccountRequest
const& request)
const override;
430 internal::ListHmacKeysRequest
const& request)
const override;
432 internal::CreateHmacKeyRequest
const& request)
const override;
434 internal::DeleteHmacKeyRequest
const& request)
const override;
435 bool IsIdempotent(internal::GetHmacKeyRequest
const& request)
const override;
437 internal::UpdateHmacKeyRequest
const& request)
const override;
438 bool IsIdempotent(internal::SignBlobRequest
const& request)
const override;
443 internal::ListNotificationsRequest
const& request)
const override;
445 internal::CreateNotificationRequest
const& request)
const override;
447 internal::GetNotificationRequest
const& request)
const override;
449 internal::DeleteNotificationRequest
const& request)
const override;