Class IdempotencyPolicy (2.22.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.

Functions

IsIdempotent(internal::ListBucketsRequest const &) const

Bucket resource operations

Parameter
NameDescription
request internal::ListBucketsRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::CreateBucketRequest const &) const

Bucket resource operations

Parameter
NameDescription
request internal::CreateBucketRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::GetBucketMetadataRequest const &) const

Bucket resource operations

Parameter
NameDescription
request internal::GetBucketMetadataRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::DeleteBucketRequest const &) const

Bucket resource operations

Parameter
NameDescription
request internal::DeleteBucketRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::UpdateBucketRequest const &) const

Bucket resource operations

Parameter
NameDescription
request internal::UpdateBucketRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::PatchBucketRequest const &) const

Bucket resource operations

Parameter
NameDescription
request internal::PatchBucketRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::GetBucketIamPolicyRequest const &) const

Bucket resource operations

Parameter
NameDescription
request internal::GetBucketIamPolicyRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::SetNativeBucketIamPolicyRequest const &) const

Bucket resource operations

Parameter
NameDescription
request internal::SetNativeBucketIamPolicyRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::TestBucketIamPermissionsRequest const &) const

Bucket resource operations

Parameter
NameDescription
request internal::TestBucketIamPermissionsRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::LockBucketRetentionPolicyRequest const &) const

Bucket resource operations

Parameter
NameDescription
request internal::LockBucketRetentionPolicyRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::InsertObjectMediaRequest const &) const

Object resource operations

Parameter
NameDescription
request internal::InsertObjectMediaRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::CopyObjectRequest const &) const

Object resource operations

Parameter
NameDescription
request internal::CopyObjectRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::GetObjectMetadataRequest const &) const

Object resource operations

Parameter
NameDescription
request internal::GetObjectMetadataRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::ReadObjectRangeRequest const &) const

Object resource operations

Parameter
NameDescription
request internal::ReadObjectRangeRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::ListObjectsRequest const &) const

Object resource operations

Parameter
NameDescription
request internal::ListObjectsRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::DeleteObjectRequest const &) const

Object resource operations

Parameter
NameDescription
request internal::DeleteObjectRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::UpdateObjectRequest const &) const

Object resource operations

Parameter
NameDescription
request internal::UpdateObjectRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::PatchObjectRequest const &) const

Object resource operations

Parameter
NameDescription
request internal::PatchObjectRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::ComposeObjectRequest const &) const

Object resource operations

Parameter
NameDescription
request internal::ComposeObjectRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::RewriteObjectRequest const &) const

Object resource operations

Parameter
NameDescription
request internal::RewriteObjectRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::ResumableUploadRequest const &) const

Object resource operations

Parameter
NameDescription
request internal::ResumableUploadRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::UploadChunkRequest const &) const

Object resource operations

Parameter
NameDescription
request internal::UploadChunkRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::ListBucketAclRequest const &) const

BucketAccessControls resource operations

Parameter
NameDescription
request internal::ListBucketAclRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::CreateBucketAclRequest const &) const

BucketAccessControls resource operations

Parameter
NameDescription
request internal::CreateBucketAclRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::DeleteBucketAclRequest const &) const

BucketAccessControls resource operations

Parameter
NameDescription
request internal::DeleteBucketAclRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::GetBucketAclRequest const &) const

BucketAccessControls resource operations

Parameter
NameDescription
request internal::GetBucketAclRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::UpdateBucketAclRequest const &) const

BucketAccessControls resource operations

Parameter
NameDescription
request internal::UpdateBucketAclRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::PatchBucketAclRequest const &) const

BucketAccessControls resource operations

Parameter
NameDescription
request internal::PatchBucketAclRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::ListObjectAclRequest const &) const

ObjectAccessControls operations

Parameter
NameDescription
request internal::ListObjectAclRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::CreateObjectAclRequest const &) const

ObjectAccessControls operations

Parameter
NameDescription
request internal::CreateObjectAclRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::DeleteObjectAclRequest const &) const

ObjectAccessControls operations

Parameter
NameDescription
request internal::DeleteObjectAclRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::GetObjectAclRequest const &) const

ObjectAccessControls operations

Parameter
NameDescription
request internal::GetObjectAclRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::UpdateObjectAclRequest const &) const

ObjectAccessControls operations

Parameter
NameDescription
request internal::UpdateObjectAclRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::PatchObjectAclRequest const &) const

ObjectAccessControls operations

Parameter
NameDescription
request internal::PatchObjectAclRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::ListDefaultObjectAclRequest const &) const

DefaultObjectAccessControls operations.

Parameter
NameDescription
request internal::ListDefaultObjectAclRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::CreateDefaultObjectAclRequest const &) const

DefaultObjectAccessControls operations.

Parameter
NameDescription
request internal::CreateDefaultObjectAclRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::DeleteDefaultObjectAclRequest const &) const

DefaultObjectAccessControls operations.

Parameter
NameDescription
request internal::DeleteDefaultObjectAclRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::GetDefaultObjectAclRequest const &) const

DefaultObjectAccessControls operations.

Parameter
NameDescription
request internal::GetDefaultObjectAclRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::UpdateDefaultObjectAclRequest const &) const

DefaultObjectAccessControls operations.

Parameter
NameDescription
request internal::UpdateDefaultObjectAclRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::PatchDefaultObjectAclRequest const &) const

DefaultObjectAccessControls operations.

Parameter
NameDescription
request internal::PatchDefaultObjectAclRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::GetProjectServiceAccountRequest const &) const

DefaultObjectAccessControls operations.

Parameter
NameDescription
request internal::GetProjectServiceAccountRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::ListHmacKeysRequest const &) const

DefaultObjectAccessControls operations.

Parameter
NameDescription
request internal::ListHmacKeysRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::CreateHmacKeyRequest const &) const

DefaultObjectAccessControls operations.

Parameter
NameDescription
request internal::CreateHmacKeyRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::DeleteHmacKeyRequest const &) const

DefaultObjectAccessControls operations.

Parameter
NameDescription
request internal::DeleteHmacKeyRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::GetHmacKeyRequest const &) const

DefaultObjectAccessControls operations.

Parameter
NameDescription
request internal::GetHmacKeyRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::UpdateHmacKeyRequest const &) const

DefaultObjectAccessControls operations.

Parameter
NameDescription
request internal::UpdateHmacKeyRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::SignBlobRequest const &) const

DefaultObjectAccessControls operations.

Parameter
NameDescription
request internal::SignBlobRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::ListNotificationsRequest const &) const

Parameter
NameDescription
request internal::ListNotificationsRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::CreateNotificationRequest const &) const

Parameter
NameDescription
request internal::CreateNotificationRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::GetNotificationRequest const &) const

Parameter
NameDescription
request internal::GetNotificationRequest const &
Returns
TypeDescription
bool

IsIdempotent(internal::DeleteNotificationRequest const &) const

Parameter
NameDescription
request internal::DeleteNotificationRequest const &
Returns
TypeDescription
bool

clone() const

Create a new copy of this object.

Returns
TypeDescription
std::unique_ptr< IdempotencyPolicy >