|
virtual | ~IdempotencyPolicy ()=default |
|
virtual std::unique_ptr< IdempotencyPolicy > | clone () const =0 |
| Create a new copy of this object. More...
|
|
|
virtual bool | IsIdempotent (internal::ListBucketsRequest const &request) const =0 |
|
virtual bool | IsIdempotent (internal::CreateBucketRequest const &request) const =0 |
|
virtual bool | IsIdempotent (internal::GetBucketMetadataRequest const &request) const =0 |
|
virtual bool | IsIdempotent (internal::DeleteBucketRequest const &request) const =0 |
|
virtual bool | IsIdempotent (internal::UpdateBucketRequest const &request) const =0 |
|
virtual bool | IsIdempotent (internal::PatchBucketRequest const &request) const =0 |
|
virtual bool | IsIdempotent (internal::GetBucketIamPolicyRequest const &request) const =0 |
|
virtual bool | IsIdempotent (internal::SetNativeBucketIamPolicyRequest const &request) const =0 |
|
virtual bool | IsIdempotent (internal::TestBucketIamPermissionsRequest const &request) const =0 |
|
virtual bool | IsIdempotent (internal::LockBucketRetentionPolicyRequest const &request) const =0 |
|
|
virtual bool | IsIdempotent (internal::InsertObjectMediaRequest const &request) const =0 |
|
virtual bool | IsIdempotent (internal::CopyObjectRequest const &request) const =0 |
|
virtual bool | IsIdempotent (internal::GetObjectMetadataRequest const &request) const =0 |
|
virtual bool | IsIdempotent (internal::ReadObjectRangeRequest const &request) const =0 |
|
virtual bool | IsIdempotent (internal::ListObjectsRequest const &request) const =0 |
|
virtual bool | IsIdempotent (internal::DeleteObjectRequest const &request) const =0 |
|
virtual bool | IsIdempotent (internal::UpdateObjectRequest const &request) const =0 |
|
virtual bool | IsIdempotent (internal::PatchObjectRequest const &request) const =0 |
|
virtual bool | IsIdempotent (internal::ComposeObjectRequest const &request) const =0 |
|
virtual bool | IsIdempotent (internal::RewriteObjectRequest const &request) const =0 |
|
virtual bool | IsIdempotent (internal::ResumableUploadRequest const &request) const =0 |
|
virtual bool | IsIdempotent (internal::UploadChunkRequest const &request) const =0 |
|
|
virtual bool | IsIdempotent (internal::ListBucketAclRequest const &request) const =0 |
|
virtual bool | IsIdempotent (internal::CreateBucketAclRequest const &request) const =0 |
|
virtual bool | IsIdempotent (internal::DeleteBucketAclRequest const &request) const =0 |
|
virtual bool | IsIdempotent (internal::GetBucketAclRequest const &request) const =0 |
|
virtual bool | IsIdempotent (internal::UpdateBucketAclRequest const &request) const =0 |
|
virtual bool | IsIdempotent (internal::PatchBucketAclRequest const &request) const =0 |
|
|
virtual bool | IsIdempotent (internal::ListObjectAclRequest const &request) const =0 |
|
virtual bool | IsIdempotent (internal::CreateObjectAclRequest const &request) const =0 |
|
virtual bool | IsIdempotent (internal::DeleteObjectAclRequest const &request) const =0 |
|
virtual bool | IsIdempotent (internal::GetObjectAclRequest const &request) const =0 |
|
virtual bool | IsIdempotent (internal::UpdateObjectAclRequest const &request) const =0 |
|
virtual bool | IsIdempotent (internal::PatchObjectAclRequest const &request) const =0 |
|
|
virtual bool | IsIdempotent (internal::ListDefaultObjectAclRequest const &request) const =0 |
|
virtual bool | IsIdempotent (internal::CreateDefaultObjectAclRequest const &request) const =0 |
|
virtual bool | IsIdempotent (internal::DeleteDefaultObjectAclRequest const &request) const =0 |
|
virtual bool | IsIdempotent (internal::GetDefaultObjectAclRequest const &request) const =0 |
|
virtual bool | IsIdempotent (internal::UpdateDefaultObjectAclRequest const &request) const =0 |
|
virtual bool | IsIdempotent (internal::PatchDefaultObjectAclRequest const &request) const =0 |
|
virtual bool | IsIdempotent (internal::GetProjectServiceAccountRequest const &request) const =0 |
|
virtual bool | IsIdempotent (internal::ListHmacKeysRequest const &request) const =0 |
|
virtual bool | IsIdempotent (internal::CreateHmacKeyRequest const &request) const =0 |
|
virtual bool | IsIdempotent (internal::DeleteHmacKeyRequest const &request) const =0 |
|
virtual bool | IsIdempotent (internal::GetHmacKeyRequest const &request) const =0 |
|
virtual bool | IsIdempotent (internal::UpdateHmacKeyRequest const &request) const =0 |
|
virtual bool | IsIdempotent (internal::SignBlobRequest const &request) const =0 |
|
virtual bool | IsIdempotent (internal::ListNotificationsRequest const &request) const =0 |
|
virtual bool | IsIdempotent (internal::CreateNotificationRequest const &request) const =0 |
|
virtual bool | IsIdempotent (internal::GetNotificationRequest const &request) const =0 |
|
virtual bool | IsIdempotent (internal::DeleteNotificationRequest const &request) const =0 |
|
Define the interface for the idempotency policy.
The idempotency policy controls which requests are treated as idempotent and therefore safe to retry on a transient failure. Non-idempotent operations can result in data loss. For example, consider DeleteObject()
, if this operation is called without pre-conditions retrying this operation may delete more than one version of an object, which may not have the desired effect. Even operations that "add" data can result in data loss, consider InsertObjectMedia()
, if called without pre-conditions retrying this operation will insert multiple new versions, possibly deleting old data if the bucket is configured to keep only N versions of each object.
Some applications are designed to handle duplicate requests without data loss, or the library may be used in an environment where the risk of data loss due to duplicate requests is negligible or zero.
This policy allows application developers to control the behavior of the library with respect to retrying non-idempotent operations. Application developers can configure the library to only retry operations that are known to be idempotent (that is, they will succeed only once). Application may also configure the library to retry all operations, regardless of whether the operations are idempotent or not.
Definition at line 58 of file idempotency_policy.h.