CreateRuleRequest.cc 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. /*
  2. * Copyright 2009-2017 Alibaba Cloud All rights reserved.
  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. #include <alibabacloud/alb/model/CreateRuleRequest.h>
  17. using AlibabaCloud::Alb::Model::CreateRuleRequest;
  18. CreateRuleRequest::CreateRuleRequest()
  19. : RpcServiceRequest("alb", "2020-06-16", "CreateRule") {
  20. setMethod(HttpRequest::Method::Post);
  21. }
  22. CreateRuleRequest::~CreateRuleRequest() {}
  23. std::string CreateRuleRequest::getClientToken() const {
  24. return clientToken_;
  25. }
  26. void CreateRuleRequest::setClientToken(const std::string &clientToken) {
  27. clientToken_ = clientToken;
  28. setParameter(std::string("ClientToken"), clientToken);
  29. }
  30. std::string CreateRuleRequest::getRuleName() const {
  31. return ruleName_;
  32. }
  33. void CreateRuleRequest::setRuleName(const std::string &ruleName) {
  34. ruleName_ = ruleName;
  35. setParameter(std::string("RuleName"), ruleName);
  36. }
  37. std::string CreateRuleRequest::getListenerId() const {
  38. return listenerId_;
  39. }
  40. void CreateRuleRequest::setListenerId(const std::string &listenerId) {
  41. listenerId_ = listenerId;
  42. setParameter(std::string("ListenerId"), listenerId);
  43. }
  44. std::vector<CreateRuleRequest::Tag> CreateRuleRequest::getTag() const {
  45. return tag_;
  46. }
  47. void CreateRuleRequest::setTag(const std::vector<CreateRuleRequest::Tag> &tag) {
  48. tag_ = tag;
  49. for(int dep1 = 0; dep1 != tag.size(); dep1++) {
  50. setParameter(std::string("Tag") + "." + std::to_string(dep1 + 1) + ".Value", tag[dep1].value);
  51. setParameter(std::string("Tag") + "." + std::to_string(dep1 + 1) + ".Key", tag[dep1].key);
  52. }
  53. }
  54. std::string CreateRuleRequest::getDirection() const {
  55. return direction_;
  56. }
  57. void CreateRuleRequest::setDirection(const std::string &direction) {
  58. direction_ = direction;
  59. setParameter(std::string("Direction"), direction);
  60. }
  61. std::vector<CreateRuleRequest::RuleActions> CreateRuleRequest::getRuleActions() const {
  62. return ruleActions_;
  63. }
  64. void CreateRuleRequest::setRuleActions(const std::vector<CreateRuleRequest::RuleActions> &ruleActions) {
  65. ruleActions_ = ruleActions;
  66. for(int dep1 = 0; dep1 != ruleActions.size(); dep1++) {
  67. setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".FixedResponseConfig.HttpCode", ruleActions[dep1].fixedResponseConfig.httpCode);
  68. setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".FixedResponseConfig.Content", ruleActions[dep1].fixedResponseConfig.content);
  69. setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".FixedResponseConfig.ContentType", ruleActions[dep1].fixedResponseConfig.contentType);
  70. for(int dep2 = 0; dep2 != ruleActions[dep1].trafficMirrorConfig.mirrorGroupConfig.serverGroupTuples.size(); dep2++) {
  71. setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".TrafficMirrorConfig.MirrorGroupConfig.ServerGroupTuples." + std::to_string(dep2 + 1) + ".ServerGroupId", ruleActions[dep1].trafficMirrorConfig.mirrorGroupConfig.serverGroupTuples[dep2].serverGroupId);
  72. }
  73. setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".TrafficMirrorConfig.TargetType", ruleActions[dep1].trafficMirrorConfig.targetType);
  74. setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".ForwardGroupConfig.ServerGroupStickySession.Enabled", ruleActions[dep1].forwardGroupConfig.serverGroupStickySession.enabled ? "true" : "false");
  75. setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".ForwardGroupConfig.ServerGroupStickySession.Timeout", std::to_string(ruleActions[dep1].forwardGroupConfig.serverGroupStickySession.timeout));
  76. for(int dep2 = 0; dep2 != ruleActions[dep1].forwardGroupConfig.serverGroupTuples.size(); dep2++) {
  77. setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".ForwardGroupConfig.ServerGroupTuples." + std::to_string(dep2 + 1) + ".ServerGroupId", ruleActions[dep1].forwardGroupConfig.serverGroupTuples[dep2].serverGroupId);
  78. setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".ForwardGroupConfig.ServerGroupTuples." + std::to_string(dep2 + 1) + ".Weight", std::to_string(ruleActions[dep1].forwardGroupConfig.serverGroupTuples[dep2].weight));
  79. }
  80. setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".RemoveHeaderConfig.Key", ruleActions[dep1].removeHeaderConfig.key);
  81. setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".InsertHeaderConfig.ValueType", ruleActions[dep1].insertHeaderConfig.valueType);
  82. setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".InsertHeaderConfig.CoverEnabled", ruleActions[dep1].insertHeaderConfig.coverEnabled ? "true" : "false");
  83. setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".InsertHeaderConfig.Value", ruleActions[dep1].insertHeaderConfig.value);
  84. setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".InsertHeaderConfig.Key", ruleActions[dep1].insertHeaderConfig.key);
  85. setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".TrafficLimitConfig.QPS", std::to_string(ruleActions[dep1].trafficLimitConfig.qPS));
  86. setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".TrafficLimitConfig.PerIpQps", std::to_string(ruleActions[dep1].trafficLimitConfig.perIpQps));
  87. setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".CorsConfig.AllowCredentials", ruleActions[dep1].corsConfig.allowCredentials);
  88. for(int dep2 = 0; dep2 != ruleActions[dep1].corsConfig.allowOrigin.size(); dep2++) {
  89. setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".CorsConfig.AllowOrigin." + std::to_string(dep2 + 1), ruleActions[dep1].corsConfig.allowOrigin[dep2]);
  90. }
  91. setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".CorsConfig.MaxAge", std::to_string(ruleActions[dep1].corsConfig.maxAge));
  92. for(int dep2 = 0; dep2 != ruleActions[dep1].corsConfig.allowMethods.size(); dep2++) {
  93. setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".CorsConfig.AllowMethods." + std::to_string(dep2 + 1), ruleActions[dep1].corsConfig.allowMethods[dep2]);
  94. }
  95. for(int dep2 = 0; dep2 != ruleActions[dep1].corsConfig.allowHeaders.size(); dep2++) {
  96. setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".CorsConfig.AllowHeaders." + std::to_string(dep2 + 1), ruleActions[dep1].corsConfig.allowHeaders[dep2]);
  97. }
  98. for(int dep2 = 0; dep2 != ruleActions[dep1].corsConfig.exposeHeaders.size(); dep2++) {
  99. setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".CorsConfig.ExposeHeaders." + std::to_string(dep2 + 1), ruleActions[dep1].corsConfig.exposeHeaders[dep2]);
  100. }
  101. setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".RedirectConfig.Path", ruleActions[dep1].redirectConfig.path);
  102. setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".RedirectConfig.Protocol", ruleActions[dep1].redirectConfig.protocol);
  103. setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".RedirectConfig.Port", ruleActions[dep1].redirectConfig.port);
  104. setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".RedirectConfig.Query", ruleActions[dep1].redirectConfig.query);
  105. setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".RedirectConfig.Host", ruleActions[dep1].redirectConfig.host);
  106. setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".RedirectConfig.HttpCode", ruleActions[dep1].redirectConfig.httpCode);
  107. setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".Type", ruleActions[dep1].type);
  108. setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".Order", std::to_string(ruleActions[dep1].order));
  109. setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".RewriteConfig.Path", ruleActions[dep1].rewriteConfig.path);
  110. setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".RewriteConfig.Query", ruleActions[dep1].rewriteConfig.query);
  111. setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".RewriteConfig.Host", ruleActions[dep1].rewriteConfig.host);
  112. }
  113. }
  114. std::vector<CreateRuleRequest::RuleConditions> CreateRuleRequest::getRuleConditions() const {
  115. return ruleConditions_;
  116. }
  117. void CreateRuleRequest::setRuleConditions(const std::vector<CreateRuleRequest::RuleConditions> &ruleConditions) {
  118. ruleConditions_ = ruleConditions;
  119. for(int dep1 = 0; dep1 != ruleConditions.size(); dep1++) {
  120. for(int dep2 = 0; dep2 != ruleConditions[dep1].methodConfig.values.size(); dep2++) {
  121. setParameter(std::string("RuleConditions") + "." + std::to_string(dep1 + 1) + ".MethodConfig.Values." + std::to_string(dep2 + 1), ruleConditions[dep1].methodConfig.values[dep2]);
  122. }
  123. for(int dep2 = 0; dep2 != ruleConditions[dep1].sourceIpConfig.values.size(); dep2++) {
  124. setParameter(std::string("RuleConditions") + "." + std::to_string(dep1 + 1) + ".SourceIpConfig.Values." + std::to_string(dep2 + 1), ruleConditions[dep1].sourceIpConfig.values[dep2]);
  125. }
  126. for(int dep2 = 0; dep2 != ruleConditions[dep1].hostConfig.values.size(); dep2++) {
  127. setParameter(std::string("RuleConditions") + "." + std::to_string(dep1 + 1) + ".HostConfig.Values." + std::to_string(dep2 + 1), ruleConditions[dep1].hostConfig.values[dep2]);
  128. }
  129. for(int dep2 = 0; dep2 != ruleConditions[dep1].queryStringConfig.values.size(); dep2++) {
  130. setParameter(std::string("RuleConditions") + "." + std::to_string(dep1 + 1) + ".QueryStringConfig.Values." + std::to_string(dep2 + 1) + ".Value", ruleConditions[dep1].queryStringConfig.values[dep2].value);
  131. setParameter(std::string("RuleConditions") + "." + std::to_string(dep1 + 1) + ".QueryStringConfig.Values." + std::to_string(dep2 + 1) + ".Key", ruleConditions[dep1].queryStringConfig.values[dep2].key);
  132. }
  133. for(int dep2 = 0; dep2 != ruleConditions[dep1].responseStatusCodeConfig.values.size(); dep2++) {
  134. setParameter(std::string("RuleConditions") + "." + std::to_string(dep1 + 1) + ".ResponseStatusCodeConfig.Values." + std::to_string(dep2 + 1), ruleConditions[dep1].responseStatusCodeConfig.values[dep2]);
  135. }
  136. for(int dep2 = 0; dep2 != ruleConditions[dep1].pathConfig.values.size(); dep2++) {
  137. setParameter(std::string("RuleConditions") + "." + std::to_string(dep1 + 1) + ".PathConfig.Values." + std::to_string(dep2 + 1), ruleConditions[dep1].pathConfig.values[dep2]);
  138. }
  139. for(int dep2 = 0; dep2 != ruleConditions[dep1].cookieConfig.values.size(); dep2++) {
  140. setParameter(std::string("RuleConditions") + "." + std::to_string(dep1 + 1) + ".CookieConfig.Values." + std::to_string(dep2 + 1) + ".Value", ruleConditions[dep1].cookieConfig.values[dep2].value);
  141. setParameter(std::string("RuleConditions") + "." + std::to_string(dep1 + 1) + ".CookieConfig.Values." + std::to_string(dep2 + 1) + ".Key", ruleConditions[dep1].cookieConfig.values[dep2].key);
  142. }
  143. setParameter(std::string("RuleConditions") + "." + std::to_string(dep1 + 1) + ".Type", ruleConditions[dep1].type);
  144. for(int dep2 = 0; dep2 != ruleConditions[dep1].headerConfig.values.size(); dep2++) {
  145. setParameter(std::string("RuleConditions") + "." + std::to_string(dep1 + 1) + ".HeaderConfig.Values." + std::to_string(dep2 + 1), ruleConditions[dep1].headerConfig.values[dep2]);
  146. }
  147. setParameter(std::string("RuleConditions") + "." + std::to_string(dep1 + 1) + ".HeaderConfig.Key", ruleConditions[dep1].headerConfig.key);
  148. for(int dep2 = 0; dep2 != ruleConditions[dep1].responseHeaderConfig.values.size(); dep2++) {
  149. setParameter(std::string("RuleConditions") + "." + std::to_string(dep1 + 1) + ".ResponseHeaderConfig.Values." + std::to_string(dep2 + 1), ruleConditions[dep1].responseHeaderConfig.values[dep2]);
  150. }
  151. setParameter(std::string("RuleConditions") + "." + std::to_string(dep1 + 1) + ".ResponseHeaderConfig.Key", ruleConditions[dep1].responseHeaderConfig.key);
  152. }
  153. }
  154. bool CreateRuleRequest::getDryRun() const {
  155. return dryRun_;
  156. }
  157. void CreateRuleRequest::setDryRun(bool dryRun) {
  158. dryRun_ = dryRun;
  159. setParameter(std::string("DryRun"), dryRun ? "true" : "false");
  160. }
  161. int CreateRuleRequest::getPriority() const {
  162. return priority_;
  163. }
  164. void CreateRuleRequest::setPriority(int priority) {
  165. priority_ = priority;
  166. setParameter(std::string("Priority"), std::to_string(priority));
  167. }