]> git.proxmox.com Git - ceph.git/blob - ceph/src/rgw/rgw_cr_tools.h
import quincy beta 17.1.0
[ceph.git] / ceph / src / rgw / rgw_cr_tools.h
1 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2 // vim: ts=8 sw=2 smarttab ft=cpp
3
4 #ifndef CEPH_RGW_CR_TOOLS_H
5 #define CEPH_RGW_CR_TOOLS_H
6
7 #include "rgw_cr_rados.h"
8 #include "rgw_tools.h"
9 #include "rgw_lc.h"
10
11 #include "services/svc_bucket_sync.h"
12
13 struct rgw_user_create_params {
14 rgw_user user;
15 std::string display_name;
16 std::string email;
17 std::string access_key;
18 std::string secret_key;
19 std::string key_type; /* "swift" or "s3" */
20 std::string caps;
21
22 bool generate_key{true};
23 bool suspended{false};
24 std::optional<int32_t> max_buckets;
25 bool system{false};
26 bool exclusive{false};
27 bool apply_quota{true};
28 };
29
30 using RGWUserCreateCR = RGWSimpleWriteOnlyAsyncCR<rgw_user_create_params>;
31
32 struct rgw_get_user_info_params {
33 rgw_user user;
34 };
35
36 using RGWGetUserInfoCR = RGWSimpleAsyncCR<rgw_get_user_info_params, RGWUserInfo>;
37
38 struct rgw_get_bucket_info_params {
39 std::string tenant;
40 std::string bucket_name;
41 };
42
43 struct rgw_get_bucket_info_result {
44 std::unique_ptr<rgw::sal::Bucket> bucket;
45 };
46
47 using RGWGetBucketInfoCR = RGWSimpleAsyncCR<rgw_get_bucket_info_params, rgw_get_bucket_info_result>;
48
49 struct rgw_bucket_create_local_params {
50 std::shared_ptr<RGWUserInfo> user_info;
51 std::string bucket_name;
52 rgw_placement_rule placement_rule;
53 };
54
55 using RGWBucketCreateLocalCR = RGWSimpleWriteOnlyAsyncCR<rgw_bucket_create_local_params>;
56
57 struct rgw_object_simple_put_params {
58 RGWDataAccess::BucketRef bucket;
59 rgw_obj_key key;
60 bufferlist data;
61 std::map<std::string, bufferlist> attrs;
62 std::optional<std::string> user_data;
63 };
64
65 using RGWObjectSimplePutCR = RGWSimpleWriteOnlyAsyncCR<rgw_object_simple_put_params>;
66
67
68 struct rgw_bucket_lifecycle_config_params {
69 rgw::sal::Bucket* bucket;
70 rgw::sal::Attrs bucket_attrs;
71 RGWLifecycleConfiguration config;
72 };
73
74 using RGWBucketLifecycleConfigCR = RGWSimpleWriteOnlyAsyncCR<rgw_bucket_lifecycle_config_params>;
75
76 struct rgw_bucket_get_sync_policy_params {
77 std::optional<rgw_zone_id> zone;
78 std::optional<rgw_bucket> bucket;
79 };
80
81 struct rgw_bucket_get_sync_policy_result {
82 RGWBucketSyncPolicyHandlerRef policy_handler;
83 };
84
85 using RGWBucketGetSyncPolicyHandlerCR = RGWSimpleAsyncCR<rgw_bucket_get_sync_policy_params, rgw_bucket_get_sync_policy_result>;
86
87 #endif