15 #ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_STORAGE_OBJECT_ACCESS_CONTROL_H
16 #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_STORAGE_OBJECT_ACCESS_CONTROL_H
18 #include "google/cloud/storage/internal/access_control_common.h"
19 #include "google/cloud/storage/internal/common_metadata.h"
20 #include "google/cloud/storage/internal/patch_builder.h"
29 struct ObjectAccessControlParser;
47 using AccessControlCommon::ROLE_OWNER;
48 using AccessControlCommon::ROLE_READER;
49 using AccessControlCommon::TEAM_EDITORS;
50 using AccessControlCommon::TEAM_OWNERS;
51 using AccessControlCommon::TEAM_VIEWERS;
53 using AccessControlCommon::bucket;
54 using AccessControlCommon::domain;
55 using AccessControlCommon::email;
57 using AccessControlCommon::entity;
59 AccessControlCommon::set_entity(std::move(v));
63 using AccessControlCommon::entity_id;
64 using AccessControlCommon::etag;
65 using AccessControlCommon::has_project_team;
66 using AccessControlCommon::id;
67 using AccessControlCommon::kind;
68 using AccessControlCommon::project_team;
69 using AccessControlCommon::project_team_as_optional;
71 using AccessControlCommon::role;
73 AccessControlCommon::set_role(std::move(v));
77 using AccessControlCommon::self_link;
80 std::string
const&
object()
const {
return object_; }
90 friend struct internal::ObjectAccessControlParser;
91 friend class internal::GrpcClient;
93 std::int64_t generation_ = 0;
120 impl_.SetStringField(
"entity", v);
125 impl_.RemoveField(
"entity");
130 impl_.SetStringField(
"role", v);
135 impl_.RemoveField(
"role");
140 internal::PatchBuilder impl_;
148 #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_STORAGE_OBJECT_ACCESS_CONTROL_H