]> git.proxmox.com Git - ceph.git/blame - ceph/src/rgw/rgw_cr_tools.h
import quincy 17.2.0
[ceph.git] / ceph / src / rgw / rgw_cr_tools.h
CommitLineData
9f95a23c
TL
1// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2// vim: ts=8 sw=2 smarttab ft=cpp
3
11fdf7f2
TL
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
9f95a23c 11#include "services/svc_bucket_sync.h"
11fdf7f2
TL
12
13struct 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
30using RGWUserCreateCR = RGWSimpleWriteOnlyAsyncCR<rgw_user_create_params>;
31
32struct rgw_get_user_info_params {
33 rgw_user user;
34};
35
36using RGWGetUserInfoCR = RGWSimpleAsyncCR<rgw_get_user_info_params, RGWUserInfo>;
37
38struct rgw_get_bucket_info_params {
20effc67
TL
39 std::string tenant;
40 std::string bucket_name;
11fdf7f2
TL
41};
42
43struct rgw_get_bucket_info_result {
20effc67 44 std::unique_ptr<rgw::sal::Bucket> bucket;
11fdf7f2
TL
45};
46
47using RGWGetBucketInfoCR = RGWSimpleAsyncCR<rgw_get_bucket_info_params, rgw_get_bucket_info_result>;
48
49struct rgw_bucket_create_local_params {
20effc67 50 std::shared_ptr<RGWUserInfo> user_info;
11fdf7f2
TL
51 std::string bucket_name;
52 rgw_placement_rule placement_rule;
53};
54
55using RGWBucketCreateLocalCR = RGWSimpleWriteOnlyAsyncCR<rgw_bucket_create_local_params>;
56
57struct rgw_object_simple_put_params {
58 RGWDataAccess::BucketRef bucket;
59 rgw_obj_key key;
60 bufferlist data;
20effc67
TL
61 std::map<std::string, bufferlist> attrs;
62 std::optional<std::string> user_data;
11fdf7f2
TL
63};
64
65using RGWObjectSimplePutCR = RGWSimpleWriteOnlyAsyncCR<rgw_object_simple_put_params>;
66
67
68struct rgw_bucket_lifecycle_config_params {
20effc67
TL
69 rgw::sal::Bucket* bucket;
70 rgw::sal::Attrs bucket_attrs;
11fdf7f2
TL
71 RGWLifecycleConfiguration config;
72};
73
74using RGWBucketLifecycleConfigCR = RGWSimpleWriteOnlyAsyncCR<rgw_bucket_lifecycle_config_params>;
75
9f95a23c
TL
76struct rgw_bucket_get_sync_policy_params {
77 std::optional<rgw_zone_id> zone;
78 std::optional<rgw_bucket> bucket;
79};
80
81struct rgw_bucket_get_sync_policy_result {
82 RGWBucketSyncPolicyHandlerRef policy_handler;
83};
84
85using RGWBucketGetSyncPolicyHandlerCR = RGWSimpleAsyncCR<rgw_bucket_get_sync_policy_params, rgw_bucket_get_sync_policy_result>;
11fdf7f2
TL
86
87#endif