Skip to content

Commit 7ca21a7

Browse files
committed
Update API ValidateEmail: add request parameters CheckGraylist.
1 parent bc3339d commit 7ca21a7

File tree

4 files changed

+107
-42
lines changed

4 files changed

+107
-42
lines changed

dm-20151123/ChangeLog.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
2025-11-20 Version: 1.5.2
2+
- Update API ValidateEmail: add request parameters CheckGraylist.
3+
4+
15
2025-10-29 Version: 1.5.1
26
- Generated cpp 2015-11-23 for Dm.
37

dm-20151123/include/alibabacloud/Dm20151123.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
#include <alibabacloud/Dm20151123Model.hpp>
66
#include <alibabacloud/Openapi.hpp>
77
#include <alibabacloud/Utils.hpp>
8+
#include <darabonba/Runtime.hpp>
89
#include <map>
910
#include <alibabacloud/Dm20151123.hpp>
10-
#include <darabonba/Runtime.hpp>
1111
using namespace std;
1212
using json = nlohmann::json;
1313
namespace AlibabaCloud
@@ -19,7 +19,7 @@ namespace Dm20151123
1919

2020
Client(AlibabaCloud::OpenApi::Utils::Models::Config &config);
2121

22-
Darabonba::Json _postOSSObject(const string &bucketName, const Darabonba::Json &form);
22+
Darabonba::Json _postOSSObject(const string &bucketName, const Darabonba::Json &form, const Darabonba::RuntimeOptions &runtime);
2323
string getEndpoint(const string &productId, const string &regionId, const string &endpointRule, const string &network, const string &suffix, const map<string, string> &endpointMap, const string &endpoint);
2424

2525
/**

dm-20151123/include/alibabacloud/models/ValidateEmailRequest.hpp

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,12 @@ namespace Models
1313
class ValidateEmailRequest : public Darabonba::Model {
1414
public:
1515
friend void to_json(Darabonba::Json& j, const ValidateEmailRequest& obj) {
16+
DARABONBA_PTR_TO_JSON(CheckGraylist, checkGraylist_);
1617
DARABONBA_PTR_TO_JSON(Email, email_);
1718
DARABONBA_PTR_TO_JSON(Timeout, timeout_);
1819
};
1920
friend void from_json(const Darabonba::Json& j, ValidateEmailRequest& obj) {
21+
DARABONBA_PTR_FROM_JSON(CheckGraylist, checkGraylist_);
2022
DARABONBA_PTR_FROM_JSON(Email, email_);
2123
DARABONBA_PTR_FROM_JSON(Timeout, timeout_);
2224
};
@@ -31,8 +33,15 @@ namespace Models
3133
};
3234
virtual void fromMap(const Darabonba::Json &obj) override { from_json(obj, *this); validate(); };
3335
virtual Darabonba::Json toMap() const override { Darabonba::Json obj; to_json(obj, *this); return obj; };
34-
virtual bool empty() const override { return this->email_ == nullptr
35-
&& return this->timeout_ == nullptr; };
36+
virtual bool empty() const override { return this->checkGraylist_ == nullptr
37+
&& return this->email_ == nullptr && return this->timeout_ == nullptr; };
38+
// checkGraylist Field Functions
39+
bool hasCheckGraylist() const { return this->checkGraylist_ != nullptr;};
40+
void deleteCheckGraylist() { this->checkGraylist_ = nullptr;};
41+
inline bool checkGraylist() const { DARABONBA_PTR_GET_DEFAULT(checkGraylist_, false) };
42+
inline ValidateEmailRequest& setCheckGraylist(bool checkGraylist) { DARABONBA_PTR_SET_VALUE(checkGraylist_, checkGraylist) };
43+
44+
3645
// email Field Functions
3746
bool hasEmail() const { return this->email_ != nullptr;};
3847
void deleteEmail() { this->email_ = nullptr;};
@@ -48,6 +57,7 @@ namespace Models
4857

4958

5059
protected:
60+
std::shared_ptr<bool> checkGraylist_ = nullptr;
5161
// This parameter is required.
5262
std::shared_ptr<string> email_ = nullptr;
5363
std::shared_ptr<int64_t> timeout_ = nullptr;

dm-20151123/src/Client.cpp

Lines changed: 89 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@
22
#include <alibabacloud/Dm20151123.hpp>
33
#include <alibabacloud/Utils.hpp>
44
#include <alibabacloud/Openapi.hpp>
5-
#include <darabonba/http/Form.hpp>
5+
#include <darabonba/Runtime.hpp>
6+
#include <darabonba/policy/Retry.hpp>
7+
#include <darabonba/Exception.hpp>
68
#include <darabonba/Convert.hpp>
9+
#include <darabonba/http/Form.hpp>
710
#include <map>
811
#include <darabonba/Stream.hpp>
912
#include <darabonba/XML.hpp>
10-
#include <darabonba/Runtime.hpp>
1113
#include <alibabacloud/credential/Credential.hpp>
1214
#include <darabonba/http/FileField.hpp>
1315
using namespace std;
@@ -32,43 +34,88 @@ AlibabaCloud::Dm20151123::Client::Client(AlibabaCloud::OpenApi::Utils::Models::C
3234
}
3335

3436

35-
Darabonba::Json Client::_postOSSObject(const string &bucketName, const Darabonba::Json &form) {
36-
Darabonba::RuntimeOptions runtime_(json({}));
37-
38-
Darabonba::Http::Request request_ = Darabonba::Http::Request();
39-
string boundary = Darabonba::Http::Form::getBoundary();
40-
request_.setProtocol("HTTPS");
41-
request_.setMethod("POST");
42-
request_.setPathname(DARA_STRING_TEMPLATE("/"));
43-
request_.setHeaders(json({
44-
{"host" , Darabonba::Convert::stringVal(form["host"])},
45-
{"date" , Utils::Utils::getDateUTCString()},
46-
{"user-agent" , Utils::Utils::getUserAgent("")}
47-
}).get<map<string, string>>());
48-
request_.addHeader("content-type", DARA_STRING_TEMPLATE("multipart/form-data; boundary=" , boundary));
49-
request_.setBody(Darabonba::Http::Form::toFileForm(form, boundary));
50-
auto futureResp_ = Darabonba::Core::doAction(request_, runtime_);
51-
shared_ptr<Darabonba::Http::MCurlResponse> response_ = futureResp_.get();
52-
53-
json respMap = nullptr;
54-
string bodyStr = Darabonba::Stream::readAsString(response_->body());
55-
if ((response_->statusCode() >= 400) && (response_->statusCode() < 600)) {
56-
respMap = Darabonba::XML::parseXml(bodyStr, nullptr);
57-
json err = json(respMap["Error"]);
58-
throw ClientException(json({
59-
{"code" , Darabonba::Convert::stringVal(err["Code"])},
60-
{"message" , Darabonba::Convert::stringVal(err["Message"])},
61-
{"data" , json({
62-
{"httpCode" , response_->statusCode()},
63-
{"requestId" , Darabonba::Convert::stringVal(err["RequestId"])},
64-
{"hostId" , Darabonba::Convert::stringVal(err["HostId"])}
65-
})}
37+
Darabonba::Json Client::_postOSSObject(const string &bucketName, const Darabonba::Json &form, const Darabonba::RuntimeOptions &runtime) {
38+
Darabonba::RuntimeOptions runtime_(json({
39+
{"key", Darabonba::Convert::stringVal(Darabonba::defaultVal(runtime.key(), _key))},
40+
{"cert", Darabonba::Convert::stringVal(Darabonba::defaultVal(runtime.cert(), _cert))},
41+
{"ca", Darabonba::Convert::stringVal(Darabonba::defaultVal(runtime.ca(), _ca))},
42+
{"readTimeout", Darabonba::Convert::int64Val(Darabonba::defaultVal(runtime.readTimeout(), _readTimeout))},
43+
{"connectTimeout", Darabonba::Convert::int64Val(Darabonba::defaultVal(runtime.connectTimeout(), _connectTimeout))},
44+
{"httpProxy", Darabonba::Convert::stringVal(Darabonba::defaultVal(runtime.httpProxy(), _httpProxy))},
45+
{"httpsProxy", Darabonba::Convert::stringVal(Darabonba::defaultVal(runtime.httpsProxy(), _httpsProxy))},
46+
{"noProxy", Darabonba::Convert::stringVal(Darabonba::defaultVal(runtime.noProxy(), _noProxy))},
47+
{"socks5Proxy", Darabonba::Convert::stringVal(Darabonba::defaultVal(runtime.socks5Proxy(), _socks5Proxy))},
48+
{"socks5NetWork", Darabonba::Convert::stringVal(Darabonba::defaultVal(runtime.socks5NetWork(), _socks5NetWork))},
49+
{"maxIdleConns", Darabonba::Convert::int64Val(Darabonba::defaultVal(runtime.maxIdleConns(), _maxIdleConns))},
50+
{"retryOptions", _retryOptions},
51+
{"ignoreSSL", Darabonba::Convert::boolVal(Darabonba::defaultVal(runtime.ignoreSSL(), false))},
52+
{"tlsMinVersion", _tlsMinVersion}
6653
}));
54+
55+
shared_ptr<Darabonba::Http::Request> _lastRequest = nullptr;
56+
shared_ptr<Darabonba::Http::MCurlResponse> _lastResponse = nullptr;
57+
Darabonba::Exception _lastException;
58+
int _retriesAttempted = 0;
59+
Darabonba::Policy::RetryPolicyContext _context = json({
60+
{"retriesAttempted" , _retriesAttempted}
61+
});
62+
while (Darabonba::allowRetry(runtime_.retryOptions(), _context)) {
63+
if (_retriesAttempted > 0) {
64+
int _backoffTime = Darabonba::getBackoffTime(runtime_.retryOptions(), _context);
65+
if (_backoffTime > 0) {
66+
Darabonba::sleep(_backoffTime);
67+
}
68+
}
69+
_retriesAttempted++;
70+
try {
71+
Darabonba::Http::Request request_ = Darabonba::Http::Request();
72+
string boundary = Darabonba::Http::Form::getBoundary();
73+
request_.setProtocol("HTTPS");
74+
request_.setMethod("POST");
75+
request_.setPathname(DARA_STRING_TEMPLATE("/"));
76+
request_.setHeaders(json({
77+
{"host" , Darabonba::Convert::stringVal(form["host"])},
78+
{"date" , Utils::Utils::getDateUTCString()},
79+
{"user-agent" , Utils::Utils::getUserAgent("")}
80+
}).get<map<string, string>>());
81+
request_.addHeader("content-type", DARA_STRING_TEMPLATE("multipart/form-data; boundary=" , boundary));
82+
request_.setBody(Darabonba::Http::Form::toFileForm(form, boundary));
83+
_lastRequest = make_shared<Darabonba::Http::Request>(request_);
84+
auto futureResp_ = Darabonba::Core::doAction(request_, runtime_);
85+
shared_ptr<Darabonba::Http::MCurlResponse> response_ = futureResp_.get();
86+
_lastResponse = response_;
87+
88+
json respMap = nullptr;
89+
string bodyStr = Darabonba::Stream::readAsString(response_->body());
90+
if ((response_->statusCode() >= 400) && (response_->statusCode() < 600)) {
91+
respMap = Darabonba::XML::parseXml(bodyStr, nullptr);
92+
json err = json(respMap["Error"]);
93+
throw ClientException(json({
94+
{"code" , Darabonba::Convert::stringVal(err["Code"])},
95+
{"message" , Darabonba::Convert::stringVal(err["Message"])},
96+
{"data" , json({
97+
{"httpCode" , response_->statusCode()},
98+
{"requestId" , Darabonba::Convert::stringVal(err["RequestId"])},
99+
{"hostId" , Darabonba::Convert::stringVal(err["HostId"])}
100+
})}
101+
}));
102+
}
103+
104+
respMap = Darabonba::XML::parseXml(bodyStr, nullptr);
105+
return Darabonba::Core::merge(respMap
106+
);
107+
} catch (const Darabonba::Exception& ex) {
108+
_context = Darabonba::Policy::RetryPolicyContext(json({
109+
{"retriesAttempted" , _retriesAttempted},
110+
{"lastRequest" , _lastRequest},
111+
{"lastResponse" , _lastResponse},
112+
{"exception" , ex},
113+
}));
114+
continue;
115+
}
67116
}
68117

69-
respMap = Darabonba::XML::parseXml(bodyStr, nullptr);
70-
return Darabonba::Core::merge(respMap
71-
);
118+
throw *_context.exception();
72119
}
73120

74121
string Client::getEndpoint(const string &productId, const string &regionId, const string &endpointRule, const string &network, const string &suffix, const map<string, string> &endpointMap, const string &endpoint) {
@@ -3906,7 +3953,7 @@ SendValidateFileResponse Client::sendValidateFileAdvance(const SendValidateFileA
39063953
{"file" , fileObj},
39073954
{"success_action_status" , "201"}
39083955
});
3909-
_postOSSObject(authResponseBody.at("Bucket"), ossHeader);
3956+
_postOSSObject(authResponseBody.at("Bucket"), ossHeader, runtime);
39103957
sendValidateFileReq.setFileUrl(DARA_STRING_TEMPLATE("http://" , authResponseBody.at("Bucket") , "." , authResponseBody.at("Endpoint") , "/" , authResponseBody.at("ObjectKey")));
39113958
}
39123959

@@ -4347,7 +4394,7 @@ SingleSendMailResponse Client::singleSendMailAdvance(const SingleSendMailAdvance
43474394
{"file" , fileObj},
43484395
{"success_action_status" , "201"}
43494396
});
4350-
_postOSSObject(authResponseBody.at("Bucket"), ossHeader);
4397+
_postOSSObject(authResponseBody.at("Bucket"), ossHeader, runtime);
43514398
SingleSendMailRequestAttachments tmpObj = singleSendMailReq.attachments().at(i0);
43524399
tmpObj.setAttachmentUrl(DARA_STRING_TEMPLATE("http://" , authResponseBody.at("Bucket") , "." , authResponseBody.at("Endpoint") , "/" , authResponseBody.at("ObjectKey")));
43534400
i0++;
@@ -4522,6 +4569,10 @@ UpdateUserResponse Client::updateUser(const UpdateUserRequest &request) {
45224569
ValidateEmailResponse Client::validateEmailWithOptions(const ValidateEmailRequest &request, const Darabonba::RuntimeOptions &runtime) {
45234570
request.validate();
45244571
json query = {};
4572+
if (!!request.hasCheckGraylist()) {
4573+
query["CheckGraylist"] = request.checkGraylist();
4574+
}
4575+
45254576
if (!!request.hasEmail()) {
45264577
query["Email"] = request.email();
45274578
}

0 commit comments

Comments
 (0)