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"
33GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
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;
194
195
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;
324
325
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;
453GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END
A IdempotencyPolicy that always retries all requests.
Definition: idempotency_policy.h:196
bool IsIdempotent(internal::ResumableUploadRequest const &request) const override
bool IsIdempotent(internal::ListHmacKeysRequest const &request) const override
bool IsIdempotent(internal::ListObjectAclRequest const &request) const override
bool IsIdempotent(internal::CopyObjectRequest const &request) const override
bool IsIdempotent(internal::CreateNotificationRequest const &request) const override
bool IsIdempotent(internal::UpdateObjectAclRequest const &request) const override
AlwaysRetryIdempotencyPolicy()=default
bool IsIdempotent(internal::PatchDefaultObjectAclRequest const &request) const override
bool IsIdempotent(internal::TestBucketIamPermissionsRequest const &request) const override
bool IsIdempotent(internal::ListBucketAclRequest const &request) const override
bool IsIdempotent(internal::UpdateBucketAclRequest const &request) const override
bool IsIdempotent(internal::GetProjectServiceAccountRequest const &request) const override
bool IsIdempotent(internal::UpdateBucketRequest const &request) const override
bool IsIdempotent(internal::DeleteBucketAclRequest const &request) const override
bool IsIdempotent(internal::DeleteBucketRequest const &request) const override
bool IsIdempotent(internal::UpdateObjectRequest const &request) const override
bool IsIdempotent(internal::ListBucketsRequest const &request) const override
bool IsIdempotent(internal::GetHmacKeyRequest const &request) const override
bool IsIdempotent(internal::SignBlobRequest const &request) const override
bool IsIdempotent(internal::PatchBucketRequest const &request) const override
bool IsIdempotent(internal::GetNotificationRequest const &request) const override
bool IsIdempotent(internal::DeleteObjectRequest const &request) const override
std::unique_ptr< IdempotencyPolicy > clone() const override
Create a new copy of this object.
bool IsIdempotent(internal::ListNotificationsRequest const &request) const override
bool IsIdempotent(internal::DeleteNotificationRequest const &request) const override
bool IsIdempotent(internal::GetObjectMetadataRequest const &request) const override
bool IsIdempotent(internal::GetDefaultObjectAclRequest const &request) const override
bool IsIdempotent(internal::CreateBucketAclRequest const &request) const override
bool IsIdempotent(internal::InsertObjectMediaRequest const &request) const override
bool IsIdempotent(internal::CreateBucketRequest const &request) const override
bool IsIdempotent(internal::UpdateHmacKeyRequest const &request) const override
bool IsIdempotent(internal::DeleteHmacKeyRequest const &request) const override
bool IsIdempotent(internal::LockBucketRetentionPolicyRequest const &request) const override
bool IsIdempotent(internal::PatchBucketAclRequest const &request) const override
bool IsIdempotent(internal::GetBucketIamPolicyRequest const &request) const override
bool IsIdempotent(internal::PatchObjectRequest const &request) const override
bool IsIdempotent(internal::ListDefaultObjectAclRequest const &request) const override
bool IsIdempotent(internal::SetNativeBucketIamPolicyRequest const &request) const override
bool IsIdempotent(internal::GetBucketMetadataRequest const &request) const override
bool IsIdempotent(internal::CreateHmacKeyRequest const &request) const override
bool IsIdempotent(internal::UpdateDefaultObjectAclRequest const &request) const override
bool IsIdempotent(internal::CreateObjectAclRequest const &request) const override
bool IsIdempotent(internal::GetObjectAclRequest const &request) const override
bool IsIdempotent(internal::DeleteDefaultObjectAclRequest const &request) const override
bool IsIdempotent(internal::DeleteObjectAclRequest const &request) const override
bool IsIdempotent(internal::PatchObjectAclRequest const &request) const override
bool IsIdempotent(internal::GetBucketAclRequest const &request) const override
bool IsIdempotent(internal::ListObjectsRequest const &request) const override
bool IsIdempotent(internal::ComposeObjectRequest const &request) const override
bool IsIdempotent(internal::UploadChunkRequest const &request) const override
bool IsIdempotent(internal::CreateDefaultObjectAclRequest const &request) const override
bool IsIdempotent(internal::ReadObjectRangeRequest const &request) const override
bool IsIdempotent(internal::RewriteObjectRequest const &request) const override
Define the interface for the idempotency policy.
Definition: idempotency_policy.h:58
virtual bool IsIdempotent(internal::PatchBucketAclRequest const &request) const =0
virtual bool IsIdempotent(internal::CreateHmacKeyRequest const &request) const =0
virtual bool IsIdempotent(internal::ReadObjectRangeRequest const &request) const =0
virtual bool IsIdempotent(internal::UpdateObjectRequest const &request) const =0
virtual bool IsIdempotent(internal::ListObjectAclRequest const &request) const =0
virtual bool IsIdempotent(internal::SignBlobRequest const &request) const =0
virtual bool IsIdempotent(internal::GetObjectAclRequest const &request) const =0
virtual bool IsIdempotent(internal::DeleteObjectAclRequest const &request) const =0
virtual bool IsIdempotent(internal::CopyObjectRequest const &request) const =0
virtual bool IsIdempotent(internal::UploadChunkRequest const &request) const =0
virtual bool IsIdempotent(internal::PatchDefaultObjectAclRequest const &request) const =0
virtual bool IsIdempotent(internal::GetBucketAclRequest const &request) const =0
virtual bool IsIdempotent(internal::ResumableUploadRequest const &request) const =0
virtual std::unique_ptr< IdempotencyPolicy > clone() const =0
Create a new copy of this object.
virtual bool IsIdempotent(internal::GetBucketMetadataRequest const &request) const =0
virtual bool IsIdempotent(internal::CreateBucketAclRequest const &request) const =0
virtual bool IsIdempotent(internal::GetBucketIamPolicyRequest const &request) const =0
virtual bool IsIdempotent(internal::GetNotificationRequest const &request) const =0
virtual bool IsIdempotent(internal::CreateBucketRequest const &request) const =0
virtual bool IsIdempotent(internal::RewriteObjectRequest const &request) const =0
virtual bool IsIdempotent(internal::UpdateObjectAclRequest const &request) const =0
virtual bool IsIdempotent(internal::DeleteBucketRequest const &request) const =0
virtual bool IsIdempotent(internal::InsertObjectMediaRequest const &request) const =0
virtual bool IsIdempotent(internal::PatchObjectAclRequest const &request) const =0
virtual bool IsIdempotent(internal::UpdateBucketRequest const &request) const =0
virtual bool IsIdempotent(internal::GetHmacKeyRequest const &request) const =0
virtual bool IsIdempotent(internal::DeleteObjectRequest const &request) const =0
virtual bool IsIdempotent(internal::PatchObjectRequest const &request) const =0
virtual bool IsIdempotent(internal::CreateNotificationRequest const &request) const =0
virtual bool IsIdempotent(internal::DeleteDefaultObjectAclRequest const &request) const =0
virtual bool IsIdempotent(internal::ListBucketsRequest const &request) const =0
virtual bool IsIdempotent(internal::GetDefaultObjectAclRequest const &request) const =0
virtual bool IsIdempotent(internal::UpdateHmacKeyRequest const &request) const =0
virtual bool IsIdempotent(internal::DeleteHmacKeyRequest const &request) const =0
virtual bool IsIdempotent(internal::ComposeObjectRequest const &request) const =0
virtual bool IsIdempotent(internal::CreateDefaultObjectAclRequest const &request) const =0
virtual bool IsIdempotent(internal::SetNativeBucketIamPolicyRequest const &request) const =0
virtual bool IsIdempotent(internal::LockBucketRetentionPolicyRequest const &request) const =0
virtual bool IsIdempotent(internal::ListDefaultObjectAclRequest const &request) const =0
virtual bool IsIdempotent(internal::ListBucketAclRequest const &request) const =0
virtual bool IsIdempotent(internal::GetProjectServiceAccountRequest const &request) const =0
virtual bool IsIdempotent(internal::DeleteBucketAclRequest const &request) const =0
virtual bool IsIdempotent(internal::ListObjectsRequest const &request) const =0
virtual bool IsIdempotent(internal::UpdateDefaultObjectAclRequest const &request) const =0
virtual bool IsIdempotent(internal::ListHmacKeysRequest const &request) const =0
virtual bool IsIdempotent(internal::UpdateBucketAclRequest const &request) const =0
virtual bool IsIdempotent(internal::GetObjectMetadataRequest const &request) const =0
virtual bool IsIdempotent(internal::PatchBucketRequest const &request) const =0
virtual bool IsIdempotent(internal::DeleteNotificationRequest const &request) const =0
virtual bool IsIdempotent(internal::CreateObjectAclRequest const &request) const =0
virtual ~IdempotencyPolicy()=default
virtual bool IsIdempotent(internal::TestBucketIamPermissionsRequest const &request) const =0
virtual bool IsIdempotent(internal::ListNotificationsRequest const &request) const =0
A IdempotencyPolicy that only retries strictly idempotent requests.
Definition: idempotency_policy.h:326
bool IsIdempotent(internal::DeleteHmacKeyRequest const &request) const override
bool IsIdempotent(internal::LockBucketRetentionPolicyRequest const &request) const override
bool IsIdempotent(internal::SignBlobRequest const &request) const override
bool IsIdempotent(internal::PatchObjectAclRequest const &request) const override
bool IsIdempotent(internal::ListObjectAclRequest const &request) const override
bool IsIdempotent(internal::UpdateDefaultObjectAclRequest const &request) const override
bool IsIdempotent(internal::GetHmacKeyRequest const &request) const override
bool IsIdempotent(internal::CreateHmacKeyRequest const &request) const override
bool IsIdempotent(internal::SetNativeBucketIamPolicyRequest const &request) const override
bool IsIdempotent(internal::GetBucketAclRequest const &request) const override
bool IsIdempotent(internal::UpdateObjectRequest const &request) const override
std::unique_ptr< IdempotencyPolicy > clone() const override
Create a new copy of this object.
bool IsIdempotent(internal::CreateDefaultObjectAclRequest const &request) const override
bool IsIdempotent(internal::CreateBucketAclRequest const &request) const override
bool IsIdempotent(internal::GetBucketIamPolicyRequest const &request) const override
bool IsIdempotent(internal::ListObjectsRequest const &request) const override
bool IsIdempotent(internal::DeleteObjectAclRequest const &request) const override
bool IsIdempotent(internal::PatchObjectRequest const &request) const override
bool IsIdempotent(internal::TestBucketIamPermissionsRequest const &request) const override
StrictIdempotencyPolicy()=default
bool IsIdempotent(internal::GetBucketMetadataRequest const &request) const override
bool IsIdempotent(internal::UpdateHmacKeyRequest const &request) const override
bool IsIdempotent(internal::InsertObjectMediaRequest const &request) const override
bool IsIdempotent(internal::PatchBucketRequest const &request) const override
bool IsIdempotent(internal::PatchDefaultObjectAclRequest const &request) const override
bool IsIdempotent(internal::GetDefaultObjectAclRequest const &request) const override
bool IsIdempotent(internal::DeleteDefaultObjectAclRequest const &request) const override
bool IsIdempotent(internal::DeleteNotificationRequest const &request) const override
bool IsIdempotent(internal::CreateObjectAclRequest const &request) const override
bool IsIdempotent(internal::CreateNotificationRequest const &request) const override
bool IsIdempotent(internal::ListBucketAclRequest const &request) const override
bool IsIdempotent(internal::GetObjectAclRequest const &request) const override
bool IsIdempotent(internal::DeleteBucketRequest const &request) const override
bool IsIdempotent(internal::ListDefaultObjectAclRequest const &request) const override
bool IsIdempotent(internal::RewriteObjectRequest const &request) const override
bool IsIdempotent(internal::ListBucketsRequest const &request) const override
bool IsIdempotent(internal::ReadObjectRangeRequest const &request) const override
bool IsIdempotent(internal::UploadChunkRequest const &request) const override
bool IsIdempotent(internal::UpdateObjectAclRequest const &request) const override
bool IsIdempotent(internal::ComposeObjectRequest const &request) const override
bool IsIdempotent(internal::UpdateBucketAclRequest const &request) const override
bool IsIdempotent(internal::GetObjectMetadataRequest const &request) const override
bool IsIdempotent(internal::CreateBucketRequest const &request) const override
bool IsIdempotent(internal::ListHmacKeysRequest const &request) const override
bool IsIdempotent(internal::GetNotificationRequest const &request) const override
bool IsIdempotent(internal::ListNotificationsRequest const &request) const override
bool IsIdempotent(internal::UpdateBucketRequest const &request) const override
bool IsIdempotent(internal::ResumableUploadRequest const &request) const override
bool IsIdempotent(internal::PatchBucketAclRequest const &request) const override
bool IsIdempotent(internal::DeleteObjectRequest const &request) const override
bool IsIdempotent(internal::DeleteBucketAclRequest const &request) const override
bool IsIdempotent(internal::GetProjectServiceAccountRequest const &request) const override
bool IsIdempotent(internal::CopyObjectRequest const &request) const override
Contains all the Google Cloud Storage C++ client APIs.
Definition: auto_finalize.h:24