olp-cpp-sdk  1.22.0
PublishPartitionDataRequest.h
1 /*
2  * Copyright (C) 2019-2023 HERE Europe B.V.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  * SPDX-License-Identifier: Apache-2.0
17  * License-Filename: LICENSE
18  */
19 
20 #pragma once
21 
22 #include <memory>
23 #include <string>
24 #include <utility>
25 #include <vector>
26 
27 #include <boost/optional.hpp>
28 
29 #include <olp/dataservice/write/DataServiceWriteApi.h>
30 
31 namespace olp {
32 namespace dataservice {
33 namespace write {
34 namespace model {
36 class DATASERVICE_WRITE_API PublishPartitionDataRequest {
37  public:
38  PublishPartitionDataRequest() = default;
42  default;
44  default;
45  virtual ~PublishPartitionDataRequest() = default;
46 
52  inline std::shared_ptr<std::vector<unsigned char>> GetData() const {
53  return data_;
54  }
55 
62  const std::shared_ptr<std::vector<unsigned char>>& data) {
63  data_ = data;
64  return *this;
65  }
66 
73  std::shared_ptr<std::vector<unsigned char>>&& data) {
74  data_ = std::move(data);
75  return *this;
76  }
77 
83  inline const std::string& GetLayerId() const { return layer_id_; }
84 
92  inline PublishPartitionDataRequest& WithLayerId(const std::string& layer_id) {
93  layer_id_ = layer_id;
94  return *this;
95  }
96 
104  inline PublishPartitionDataRequest& WithLayerId(std::string&& layer_id) {
105  layer_id_ = std::move(layer_id);
106  return *this;
107  }
108 
114  inline const boost::optional<std::string>& GetPartitionId() const {
115  return partition_id_;
116  }
117 
127  const std::string& partition_id) {
128  partition_id_ = partition_id;
129  return *this;
130  }
131 
141  std::string&& partition_id) {
142  partition_id_ = std::move(partition_id);
143  return *this;
144  }
145 
156  inline const boost::optional<std::string>& GetBillingTag() const {
157  return billing_tag_;
158  }
159 
168  const std::string& billing_tag) {
169  billing_tag_ = billing_tag;
170  return *this;
171  }
172 
182  std::string&& billing_tag) {
183  billing_tag_ = std::move(billing_tag);
184  return *this;
185  }
186 
198  inline const boost::optional<std::string>& GetChecksum() const {
199  return checksum_;
200  }
201 
210  const std::string& checksum) {
211  checksum_ = checksum;
212  return *this;
213  }
214 
222  inline PublishPartitionDataRequest& WithChecksum(std::string&& checksum) {
223  checksum_ = std::move(checksum);
224  return *this;
225  }
226 
227  private:
228  std::shared_ptr<std::vector<unsigned char>> data_;
229 
230  std::string layer_id_;
231 
232  boost::optional<std::string> partition_id_;
233 
234  boost::optional<std::string> billing_tag_;
235 
236  boost::optional<std::string> checksum_;
237 };
238 
239 } // namespace model
240 } // namespace write
241 } // namespace dataservice
242 } // namespace olp
Publishes data to a versioned and volatile layer.
Definition: PublishPartitionDataRequest.h:36
PublishPartitionDataRequest & WithPartitionId(std::string &&partition_id)
Sets the ID of the partition to which you want to publish data.
Definition: PublishPartitionDataRequest.h:140
PublishPartitionDataRequest & WithBillingTag(const std::string &billing_tag)
Sets the billing tag for the request.
Definition: PublishPartitionDataRequest.h:167
const boost::optional< std::string > & GetBillingTag() const
Gets the billing tag to group billing records together.
Definition: PublishPartitionDataRequest.h:156
const std::string & GetLayerId() const
Gets the layer ID of the catalog where you want to store the data.
Definition: PublishPartitionDataRequest.h:83
std::shared_ptr< std::vector< unsigned char > > GetData() const
Gets the data to be published to the HERE platform.
Definition: PublishPartitionDataRequest.h:52
const boost::optional< std::string > & GetChecksum() const
Gets the request checksum.
Definition: PublishPartitionDataRequest.h:198
PublishPartitionDataRequest & WithLayerId(std::string &&layer_id)
Sets the layer ID of the catalog where you want to store the data.
Definition: PublishPartitionDataRequest.h:104
PublishPartitionDataRequest & WithData(const std::shared_ptr< std::vector< unsigned char >> &data)
Sets the data to be published to the HERE platform.
Definition: PublishPartitionDataRequest.h:61
PublishPartitionDataRequest & WithLayerId(const std::string &layer_id)
Sets the layer ID of the catalog where you want to store the data.
Definition: PublishPartitionDataRequest.h:92
const boost::optional< std::string > & GetPartitionId() const
Gets the ID of the partition to which you want to publish data.
Definition: PublishPartitionDataRequest.h:114
PublishPartitionDataRequest & WithChecksum(const std::string &checksum)
Sets the request checksum.
Definition: PublishPartitionDataRequest.h:209
PublishPartitionDataRequest & WithBillingTag(std::string &&billing_tag)
Sets the billing tag for the request.
Definition: PublishPartitionDataRequest.h:181
PublishPartitionDataRequest & WithData(std::shared_ptr< std::vector< unsigned char >> &&data)
Sets the data to be published to the HERE platform.
Definition: PublishPartitionDataRequest.h:72
PublishPartitionDataRequest & WithPartitionId(const std::string &partition_id)
Sets the ID of the partition to which you want to publish data.
Definition: PublishPartitionDataRequest.h:126
PublishPartitionDataRequest & WithChecksum(std::string &&checksum)
Sets the request checksum.
Definition: PublishPartitionDataRequest.h:222
Rules all the other namespaces.
Definition: AppleSignInProperties.h:24