// Copyright 2018 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. #ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_STORAGE_INTERNAL_LOGGING_CLIENT_H #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_STORAGE_INTERNAL_LOGGING_CLIENT_H #include "google/cloud/storage/internal/raw_client.h" #include "google/cloud/storage/version.h" namespace google { namespace cloud { namespace storage { inline namespace STORAGE_CLIENT_NS { namespace internal { /** * A decorator for `RawClient` that logs each operation. */ class LoggingClient : public RawClient { public: explicit LoggingClient(std::shared_ptr client); ~LoggingClient() override = default; ClientOptions const& client_options() const override; StatusOr ListBuckets( ListBucketsRequest const& request) override; StatusOr CreateBucket( CreateBucketRequest const& request) override; StatusOr GetBucketMetadata( GetBucketMetadataRequest const& request) override; StatusOr DeleteBucket(DeleteBucketRequest const&) override; StatusOr UpdateBucket( UpdateBucketRequest const& request) override; StatusOr PatchBucket( PatchBucketRequest const& request) override; StatusOr GetBucketIamPolicy( GetBucketIamPolicyRequest const& request) override; StatusOr GetNativeBucketIamPolicy( GetBucketIamPolicyRequest const& request) override; StatusOr SetBucketIamPolicy( SetBucketIamPolicyRequest const& request) override; StatusOr SetNativeBucketIamPolicy( SetNativeBucketIamPolicyRequest const& request) override; StatusOr TestBucketIamPermissions( TestBucketIamPermissionsRequest const& request) override; StatusOr LockBucketRetentionPolicy( LockBucketRetentionPolicyRequest const& request) override; StatusOr InsertObjectMedia( InsertObjectMediaRequest const& request) override; StatusOr CopyObject( CopyObjectRequest const& request) override; StatusOr GetObjectMetadata( GetObjectMetadataRequest const& request) override; StatusOr> ReadObject( ReadObjectRangeRequest const&) override; StatusOr ListObjects(ListObjectsRequest const&) override; StatusOr DeleteObject(DeleteObjectRequest const&) override; StatusOr UpdateObject( UpdateObjectRequest const& request) override; StatusOr PatchObject( PatchObjectRequest const& request) override; StatusOr ComposeObject( ComposeObjectRequest const& request) override; StatusOr RewriteObject( RewriteObjectRequest const&) override; StatusOr> CreateResumableSession( ResumableUploadRequest const& request) override; StatusOr> RestoreResumableSession( std::string const& request) override; StatusOr DeleteResumableUpload( DeleteResumableUploadRequest const& request) override; StatusOr ListBucketAcl( ListBucketAclRequest const& request) override; StatusOr CreateBucketAcl( CreateBucketAclRequest const&) override; StatusOr DeleteBucketAcl( DeleteBucketAclRequest const&) override; StatusOr GetBucketAcl( GetBucketAclRequest const&) override; StatusOr UpdateBucketAcl( UpdateBucketAclRequest const&) override; StatusOr PatchBucketAcl( PatchBucketAclRequest const&) override; StatusOr ListObjectAcl( ListObjectAclRequest const& request) override; StatusOr CreateObjectAcl( CreateObjectAclRequest const&) override; StatusOr DeleteObjectAcl( DeleteObjectAclRequest const&) override; StatusOr GetObjectAcl( GetObjectAclRequest const&) override; StatusOr UpdateObjectAcl( UpdateObjectAclRequest const&) override; StatusOr PatchObjectAcl( PatchObjectAclRequest const&) override; StatusOr ListDefaultObjectAcl( ListDefaultObjectAclRequest const& request) override; StatusOr CreateDefaultObjectAcl( CreateDefaultObjectAclRequest const&) override; StatusOr DeleteDefaultObjectAcl( DeleteDefaultObjectAclRequest const&) override; StatusOr GetDefaultObjectAcl( GetDefaultObjectAclRequest const&) override; StatusOr UpdateDefaultObjectAcl( UpdateDefaultObjectAclRequest const&) override; StatusOr PatchDefaultObjectAcl( PatchDefaultObjectAclRequest const&) override; StatusOr GetServiceAccount( GetProjectServiceAccountRequest const&) override; StatusOr ListHmacKeys( ListHmacKeysRequest const&) override; StatusOr CreateHmacKey( CreateHmacKeyRequest const&) override; StatusOr DeleteHmacKey(DeleteHmacKeyRequest const&) override; StatusOr GetHmacKey(GetHmacKeyRequest const&) override; StatusOr UpdateHmacKey(UpdateHmacKeyRequest const&) override; StatusOr SignBlob(SignBlobRequest const&) override; StatusOr ListNotifications( ListNotificationsRequest const&) override; StatusOr CreateNotification( CreateNotificationRequest const&) override; StatusOr GetNotification( GetNotificationRequest const&) override; StatusOr DeleteNotification( DeleteNotificationRequest const&) override; std::shared_ptr client() const { return client_; } private: std::shared_ptr client_; }; } // namespace internal } // namespace STORAGE_CLIENT_NS } // namespace storage } // namespace cloud } // namespace google #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_STORAGE_INTERNAL_LOGGING_CLIENT_H