This topic describes how to use the SDK for C++ to create an event rule.

The following code provides an example on how to use the SDK for C++ to create an event rule:

#include <alibabacloud/event_bridge.hpp>
#include <alibabacloud/sample.hpp>
#include <darabonba/console.hpp>
#include <darabonba/core.hpp>
#include <darabonba/util.hpp>
#include <iostream>
#include <map>
#include <vector>

using namespace std;

using namespace Alibabacloud_Sample;

Alibabacloud_EventBridge::Client Alibabacloud_Sample::Client::createClient() {
  shared_ptr<Alibabacloud_EventBridge::Config> config =
      make_shared<Alibabacloud_EventBridge::Config>();
  // The AccessKey ID. 
  config->accessKeyId = make_shared<string>("<accessKeyId>");
  // The AccessKey secret. 
  config->accessKeySecret = make_shared<string>("<accessKeySecret>");
  // The endpoint. 
  config->endpoint = make_shared<string>("<endpoint>");
  return Alibabacloud_EventBridge::Client(config);
}

void Alibabacloud_Sample::Client::createEventRuleSample(
    shared_ptr<Alibabacloud_EventBridge::Client> client) {
  try {
    shared_ptr<Alibabacloud_EventBridge::CreateRuleRequest>
        createEventRuleRequest =
            make_shared<Alibabacloud_EventBridge::CreateRuleRequest>();
    shared_ptr<Alibabacloud_EventBridge::TargetEntry> targetEntry =
        make_shared<Alibabacloud_EventBridge::TargetEntry>();
    targetEntry->id = make_shared<string>("dingtalk.target");
    targetEntry->endpoint = make_shared<string>(
        "https://oapi.dingtalk.com/robot/"
        "send?access_token=1019d4a19e2ef6b2f***********396fc5e94814ed8460");
    targetEntry->type = make_shared<string>("acs.dingtalk");
    shared_ptr<Alibabacloud_EventBridge::EBTargetParam> param1 =
        make_shared<Alibabacloud_EventBridge::EBTargetParam>();
    param1->resourceKey = make_shared<string>("URL");
    param1->form = make_shared<string>("CONSTANT");
    param1->value = make_shared<string>(
        "https://oapi.dingtalk.com/robot/"
        "send?access_token=1019d4a19e2ef6b2f***********396fc5e94814ed8460");
    shared_ptr<Alibabacloud_EventBridge::EBTargetParam> param2 =
        make_shared<Alibabacloud_EventBridge::EBTargetParam>();
    param2->resourceKey = make_shared<string>("SecretKey");
    param2->form = make_shared<string>("CONSTANT");
    param2->value = make_shared<string>(
        "SEC121a71ff304a65b4f7c**************1f4d9f6c1ca514300d15234");
    shared_ptr<Alibabacloud_EventBridge::EBTargetParam> param3 =
        make_shared<Alibabacloud_EventBridge::EBTargetParam>();
    param3->resourceKey = make_shared<string>("Body");
    param3->form = make_shared<string>("TEMPLATE");
    param3->value = make_shared<string>(
        string("{\n    \"key\":\"$.source\",\n    \"value\":\"$.data\"\n}"));
    param3->template_ =
        make_shared<string>("{" msgtype ": " text "," text ": {" content
                            ": " Hello:$ { key } "}}");
    shared_ptr<vector<Alibabacloud_EventBridge::EBTargetParam>> paramList =
        make_shared<vector<Alibabacloud_EventBridge::EBTargetParam>>(
            vector<Alibabacloud_EventBridge::EBTargetParam>(
                {param1, param2, param3}));
    targetEntry->paramList = paramList;
    shared_ptr<vector<Alibabacloud_EventBridge::TargetEntry>> targetEntryList =
        make_shared<vector<Alibabacloud_EventBridge::TargetEntry>>(
            vector<Alibabacloud_EventBridge::TargetEntry>({targetEntry}));
    createEventRuleRequest->targets = targetEntryList;
    createEventRuleRequest->ruleName = make_shared<string>("myRule");
    createEventRuleRequest->eventBusName = make_shared<string>("demo-bus");
    createEventRuleRequest->filterPattern =
        make_shared<string>(string("{\"source\":[\"acs.oss\"],\"type\":[\"oss:"
                                   "ObjectCreated:UploadPart\"]}"));
    createEventRuleRequest->status = make_shared<string>("enable");
    shared_ptr<Alibabacloud_EventBridge::CreateRuleResponse> resp =
        make_shared<Alibabacloud_EventBridge::CreateRuleResponse>(
            client->createRule(createEventRuleRequest));
    Darabonba_Console::Client::log(make_shared<string>(
        "--------------------create rule success--------------------"));
    Darabonba_Console::Client::log(
        make_shared<string>(Darabonba_Util::Client::toJSONString(
            make_shared<map<string, boost::any>>(resp->toMap()))));
  } catch (std::exception &error) {
    Darabonba_Console::Client::log(error.message);
  }
}

void Alibabacloud_Sample::Client::main(shared_ptr<vector<string>> args) {
  shared_ptr<Alibabacloud_EventBridge::Client> client =
      make_shared<Alibabacloud_EventBridge::Client>(Client::createClient());
  Client::createEventRuleSample(client);
}