Google Cloud Storage C++ Client  1.42.0
A C++ Client Library for Google Cloud Storage
Public Member Functions | List of all members
google::cloud::storage::IdempotencyPolicy Class Referenceabstract

Define the interface for the idempotency policy. More...

#include <google/cloud/storage/idempotency_policy.h>

Public Member Functions

virtual ~IdempotencyPolicy ()=default
 
virtual std::unique_ptr< IdempotencyPolicyclone () const =0
 Create a new copy of this object. More...
 
Bucket resource operations
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
 
Object resource operations
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
 
BucketAccessControls resource operations
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
 
ObjectAccessControls operations
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
 
DefaultObjectAccessControls operations.
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
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ ~IdempotencyPolicy()

virtual google::cloud::storage::IdempotencyPolicy::~IdempotencyPolicy ( )
virtualdefault

Member Function Documentation

◆ clone()

virtual std::unique_ptr<IdempotencyPolicy> google::cloud::storage::IdempotencyPolicy::clone ( ) const
pure virtual

◆ IsIdempotent() [1/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::ComposeObjectRequest const &  request) const
pure virtual

◆ IsIdempotent() [2/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::CopyObjectRequest const &  request) const
pure virtual

◆ IsIdempotent() [3/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::CreateBucketAclRequest const &  request) const
pure virtual

◆ IsIdempotent() [4/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::CreateBucketRequest const &  request) const
pure virtual

◆ IsIdempotent() [5/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::CreateDefaultObjectAclRequest const &  request) const
pure virtual

◆ IsIdempotent() [6/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::CreateHmacKeyRequest const &  request) const
pure virtual

◆ IsIdempotent() [7/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::CreateNotificationRequest const &  request) const
pure virtual

◆ IsIdempotent() [8/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::CreateObjectAclRequest const &  request) const
pure virtual

◆ IsIdempotent() [9/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::DeleteBucketAclRequest const &  request) const
pure virtual

◆ IsIdempotent() [10/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::DeleteBucketRequest const &  request) const
pure virtual

◆ IsIdempotent() [11/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::DeleteDefaultObjectAclRequest const &  request) const
pure virtual

◆ IsIdempotent() [12/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::DeleteHmacKeyRequest const &  request) const
pure virtual

◆ IsIdempotent() [13/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::DeleteNotificationRequest const &  request) const
pure virtual

◆ IsIdempotent() [14/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::DeleteObjectAclRequest const &  request) const
pure virtual

◆ IsIdempotent() [15/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::DeleteObjectRequest const &  request) const
pure virtual

◆ IsIdempotent() [16/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::GetBucketAclRequest const &  request) const
pure virtual

◆ IsIdempotent() [17/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::GetBucketIamPolicyRequest const &  request) const
pure virtual

◆ IsIdempotent() [18/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::GetBucketMetadataRequest const &  request) const
pure virtual

◆ IsIdempotent() [19/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::GetDefaultObjectAclRequest const &  request) const
pure virtual

◆ IsIdempotent() [20/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::GetHmacKeyRequest const &  request) const
pure virtual

◆ IsIdempotent() [21/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::GetNotificationRequest const &  request) const
pure virtual

◆ IsIdempotent() [22/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::GetObjectAclRequest const &  request) const
pure virtual

◆ IsIdempotent() [23/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::GetObjectMetadataRequest const &  request) const
pure virtual

◆ IsIdempotent() [24/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::GetProjectServiceAccountRequest const &  request) const
pure virtual

◆ IsIdempotent() [25/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::InsertObjectMediaRequest const &  request) const
pure virtual

◆ IsIdempotent() [26/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::ListBucketAclRequest const &  request) const
pure virtual

◆ IsIdempotent() [27/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::ListBucketsRequest const &  request) const
pure virtual

◆ IsIdempotent() [28/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::ListDefaultObjectAclRequest const &  request) const
pure virtual

◆ IsIdempotent() [29/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::ListHmacKeysRequest const &  request) const
pure virtual

◆ IsIdempotent() [30/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::ListNotificationsRequest const &  request) const
pure virtual

◆ IsIdempotent() [31/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::ListObjectAclRequest const &  request) const
pure virtual

◆ IsIdempotent() [32/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::ListObjectsRequest const &  request) const
pure virtual

◆ IsIdempotent() [33/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::LockBucketRetentionPolicyRequest const &  request) const
pure virtual

◆ IsIdempotent() [34/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::PatchBucketAclRequest const &  request) const
pure virtual

◆ IsIdempotent() [35/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::PatchBucketRequest const &  request) const
pure virtual

◆ IsIdempotent() [36/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::PatchDefaultObjectAclRequest const &  request) const
pure virtual

◆ IsIdempotent() [37/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::PatchObjectAclRequest const &  request) const
pure virtual

◆ IsIdempotent() [38/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::PatchObjectRequest const &  request) const
pure virtual

◆ IsIdempotent() [39/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::ReadObjectRangeRequest const &  request) const
pure virtual

◆ IsIdempotent() [40/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::ResumableUploadRequest const &  request) const
pure virtual

◆ IsIdempotent() [41/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::RewriteObjectRequest const &  request) const
pure virtual

◆ IsIdempotent() [42/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::SetNativeBucketIamPolicyRequest const &  request) const
pure virtual

◆ IsIdempotent() [43/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::SignBlobRequest const &  request) const
pure virtual

◆ IsIdempotent() [44/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::TestBucketIamPermissionsRequest const &  request) const
pure virtual

◆ IsIdempotent() [45/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::UpdateBucketAclRequest const &  request) const
pure virtual

◆ IsIdempotent() [46/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::UpdateBucketRequest const &  request) const
pure virtual

◆ IsIdempotent() [47/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::UpdateDefaultObjectAclRequest const &  request) const
pure virtual

◆ IsIdempotent() [48/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::UpdateHmacKeyRequest const &  request) const
pure virtual

◆ IsIdempotent() [49/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::UpdateObjectAclRequest const &  request) const
pure virtual

◆ IsIdempotent() [50/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::UpdateObjectRequest const &  request) const
pure virtual

◆ IsIdempotent() [51/51]

virtual bool google::cloud::storage::IdempotencyPolicy::IsIdempotent ( internal::UploadChunkRequest const &  request) const
pure virtual